commit e8d6a59a8cf8e1463b7eba9d6128c5d2194e76b0 Author: kris@sentientgeeks.com Date: Mon Sep 6 21:48:42 2021 +0530 initial commit diff --git a/.env b/.env new file mode 100644 index 0000000..9aa7d4d --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +SKIP_PREFLIGHT_CHECK=true +REACT_APP_BASENAME= "" +REACT_APP_BASE_URL = 'https://stagingapi.dexpro.io/api/v1/' diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..91f347b --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,82 @@ +module.exports = { + env: { + node: true, + es6: true, + browser: true + }, + + parserOptions: { + ecmaVersion: 6, + sourceType: 'module', + ecmaFeatures: { + jsx: true, + modules: true, + experimentalObjectRestSpread: true + } + }, + rules: { + 'no-console': 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + + // Best Practices + eqeqeq: 'error', + 'no-invalid-this': 'error', + 'no-return-assign': 'error', + 'no-unused-expressions': ['error', { allowTernary: true }], + 'no-useless-concat': 'error', + 'no-useless-return': 'error', + + // Variable + // 'init-declarations': 'error', + 'no-use-before-define': 'error', + + // Stylistic Issues + 'array-bracket-newline': ['error', { multiline: true, minItems: null }], + 'array-bracket-spacing': 'error', + 'brace-style': ['error', '1tbs', { allowSingleLine: true }], + 'block-spacing': 'error', + 'comma-dangle': 'error', + 'comma-spacing': 'error', + 'comma-style': 'error', + 'computed-property-spacing': 'error', + 'func-call-spacing': 'error', + 'implicit-arrow-linebreak': ['error', 'beside'], + // indent: ['error', 4], + 'keyword-spacing': 'error', + 'multiline-ternary': ['error', 'never'], + // 'no-lonely-if': 'error', + 'no-mixed-operators': 'error', + 'no-multiple-empty-lines': ['error', { max: 2, maxEOF: 1 }], + 'no-tabs': 'error', + 'no-unneeded-ternary': 'error', + 'no-whitespace-before-property': 'error', + 'nonblock-statement-body-position': 'error', + 'object-property-newline': ['error', { allowAllPropertiesOnSameLine: true }], + 'quote-props': ['error', 'as-needed'], + // quotes: ['error', 'prefer-single'], + semi: ['error', 'never'], + 'semi-spacing': 'error', + 'space-before-blocks': 'error', + // 'space-before-function-paren': 'error', + 'space-in-parens': 'error', + 'space-infix-ops': 'error', + 'space-unary-ops': 'error', + + // ES6 + 'arrow-spacing': 'error', + 'no-confusing-arrow': 'error', + 'no-duplicate-imports': 'error', + 'no-var': 'error', + 'object-shorthand': 'error', + 'prefer-const': 'error', + 'prefer-template': 'error' + } + + // rules: { + // 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', + // 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + // semi: ['error', 'never'], + // 'max-len': 'off', + // camelcase: ['error', { properties: 'never', ignoreDestructuring: true, ignoreImports: true }] + // } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4d29575 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/config-overrides.js b/config-overrides.js new file mode 100644 index 0000000..3aa63f7 --- /dev/null +++ b/config-overrides.js @@ -0,0 +1,38 @@ +const SassRuleRewire = require('react-app-rewire-sass-rule') +const path = require('path') +const rewireAliases = require('react-app-rewire-aliases') + +module.exports = function override(config, env) { + require('react-app-rewire-postcss')(config, { + plugins: loader => [require('postcss-rtl')()] + }) + + config = rewireAliases.aliasesOptions({ + '@src': path.resolve(__dirname, 'src'), + '@assets': path.resolve(__dirname, 'src/@core/assets'), + '@components': path.resolve(__dirname, 'src/@core/components'), + '@layouts': path.resolve(__dirname, 'src/@core/layouts'), + '@store': path.resolve(__dirname, 'src/redux'), + '@styles': path.resolve(__dirname, 'src/@core/scss'), + '@configs': path.resolve(__dirname, 'src/configs'), + '@utils': path.resolve(__dirname, 'src/utility/Utils'), + '@hooks': path.resolve(__dirname, 'src/utility/hooks') + })(config, env) + + config = new SassRuleRewire() + .withRuleOptions({ + test: /\.s[ac]ss$/i, + use: [ + { + loader: 'sass-loader', + options: { + sassOptions: { + includePaths: ['node_modules', 'src/assets'] + } + } + } + ] + }) + .rewire(config, env) + return config +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..500e3be --- /dev/null +++ b/package-lock.json @@ -0,0 +1,22227 @@ +{ + "name": "vuexy-react-admin-dashboard", + "version": "6.4.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/compat-data": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", + "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" + }, + "@babel/core": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz", + "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==", + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-compilation-targets": "^7.15.0", + "@babel/helper-module-transforms": "^7.15.0", + "@babel/helpers": "^7.14.8", + "@babel/parser": "^7.15.0", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "requires": { + "@babel/types": "^7.15.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", + "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", + "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", + "requires": { + "@babel/compat-data": "^7.15.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.0.tgz", + "integrity": "sha512-MdmDXgvTIi4heDVX/e9EFfeGpugqm9fobBVg/iioE8kueXrOHdRDe36FAY7SnE9xXLVeYCoJR/gdrBEIHRC83Q==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.0", + "@babel/helper-split-export-declaration": "^7.14.5" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", + "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", + "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "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" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", + "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", + "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "requires": { + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", + "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.0", + "@babel/helper-simple-access": "^7.14.8", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", + "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-wrap-function": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", + "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", + "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", + "requires": { + "@babel/types": "^7.14.8" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", + "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" + }, + "@babel/helper-wrap-function": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", + "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", + "requires": { + "@babel/helper-function-name": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helpers": { + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.3.tgz", + "integrity": "sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==", + "requires": { + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", + "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==" + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz", + "integrity": "sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw==", + "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.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", + "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz", + "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz", + "integrity": "sha512-knNIuusychgYN8fGJHONL0RbFxLGawhXOJNLBk75TniTsZZeA+wdkDuv6wp4lGwzQEKjZi6/WYtnb3udNPmQmQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-decorators": "^7.12.1" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", + "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", + "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", + "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", + "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", + "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.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", + "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", + "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", + "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", + "requires": { + "@babel/compat-data": "^7.14.7", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.14.5" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", + "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", + "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", + "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz", + "integrity": "sha512-c4sZMRWL4GSvP1EXy0woIP7m4jkVcEuG8R1TOZxPBPtp4FSM/kiPZub9UIs/Jrb5ZAOzvTUSGYrWsrSu1JvoPw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz", + "integrity": "sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", + "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", + "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", + "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", + "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.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", + "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz", + "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz", + "integrity": "sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", + "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", + "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", + "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", + "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", + "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.1.tgz", + "integrity": "sha512-8hAtkmsQb36yMmEtk2JZ9JnVyDSnDOdlB+0nEGzIDLuK4yR3JcEjfuFPYkdEPSh8Id+rAMeBEn+X0iVEyho6Hg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-flow": "^7.12.1" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", + "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", + "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", + "requires": { + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", + "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", + "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", + "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz", + "integrity": "sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig==", + "requires": { + "@babel/helper-module-transforms": "^7.15.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.14.8", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz", + "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==", + "requires": { + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", + "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz", + "integrity": "sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", + "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", + "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", + "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", + "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.14.5.tgz", + "integrity": "sha512-NBqLEx1GxllIOXJInJAQbrnwwYJsV3WaMHIcOwD8rhYS0AabTWn7kHdHgPgu5RmHLU0q4DMxhAMu8ue/KampgQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.15.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz", + "integrity": "sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz", + "integrity": "sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-jsx": "^7.14.5", + "@babel/types": "^7.14.9" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz", + "integrity": "sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ==", + "requires": { + "@babel/plugin-transform-react-jsx": "^7.14.5" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.14.9.tgz", + "integrity": "sha512-Fqqu0f8zv9W+RyOnx29BX/RlEsBRANbOf5xs5oxb2aHP4FKbLXxIaVPUiCti56LAR1IixMH4EyaixhUsKqoBHw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.5.tgz", + "integrity": "sha512-1TpSDnD9XR/rQ2tzunBVPThF5poaYT9GqP+of8fAtguYuI/dm2RkrMBDemsxtY0XBzvW7nXjYM0hRyKX9QYj7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz", + "integrity": "sha512-3X4HpBJimNxW4rhUy/SONPyNQHp5YRr0HhJdT2OH1BRp0of7u3Dkirc7x9FRJMKMqTBI079VZ1hzv7Ouuz///g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", + "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", + "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", + "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", + "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", + "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", + "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", + "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.0.tgz", + "integrity": "sha512-WIIEazmngMEEHDaPTx0IZY48SaAmjVWe3TRSX7cmJXn0bEv9midFzAjxiruOWYIVf5iQ10vFx7ASDpgEO08L5w==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.15.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-typescript": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", + "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", + "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/preset-env": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.0.tgz", + "integrity": "sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q==", + "requires": { + "@babel/compat-data": "^7.15.0", + "@babel/helper-compilation-targets": "^7.15.0", + "@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.9", + "@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.9", + "@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.15.0", + "@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.9", + "@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.15.0", + "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.16.0", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "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/preset-react": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.14.5.tgz", + "integrity": "sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-transform-react-display-name": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.5", + "@babel/plugin-transform-react-jsx-development": "^7.14.5", + "@babel/plugin-transform-react-pure-annotations": "^7.14.5" + } + }, + "@babel/preset-typescript": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz", + "integrity": "sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.12.1" + } + }, + "@babel/runtime": { + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.3.tgz", + "integrity": "sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==", + "requires": { + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + } + } + }, + "@babel/runtime-corejs3": { + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.3.tgz", + "integrity": "sha512-30A3lP+sRL6ml8uhoJSs+8jwpKzbw8CqBvDc1laeptxPm5FahumJxirigcbD2qTs71Sonvj1cyZB0OKGAmxQ+A==", + "requires": { + "core-js-pure": "^3.16.0", + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + } + } + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/traverse": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "@casl/ability": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@casl/ability/-/ability-5.2.2.tgz", + "integrity": "sha512-A0GTDWojP72Z4HSgS0pfbtGnhQWbquhn9luAr4Uc/HnqWWib0NvmpXC4//7gsiMUiVYCoFozQ+nG1oeZuhT7Jg==", + "requires": { + "@ucast/mongo2js": "^1.3.0" + } + }, + "@casl/react": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@casl/react/-/react-2.1.1.tgz", + "integrity": "sha512-DD0j40OZ+dcQopRdt1tsFaAZ79a1+HGCuMWvExdRcqrbjXFVnFi2kN26KMtwQuzL5FFiH4fmCADCxW3Xjxhs9A==" + }, + "@choojs/findup": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", + "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", + "requires": { + "commander": "^2.15.1" + } + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" + }, + "@csstools/normalize.css": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", + "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" + }, + "@emotion/babel-plugin": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.3.0.tgz", + "integrity": "sha512-UZKwBV2rADuhRp+ZOGgNWg2eYgbzKzQXfQPtJbu/PLy8onurxlNCLvxMQEvlr1/GudguPI5IU9qIY1+2z1M5bA==", + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/runtime": "^7.13.10", + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.5", + "@emotion/serialize": "^1.0.2", + "babel-plugin-macros": "^2.6.1", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "^4.0.3" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + } + } + }, + "@emotion/cache": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.4.0.tgz", + "integrity": "sha512-Zx70bjE7LErRO9OaZrhf22Qye1y4F7iDl+ITjet0J+i+B88PrAOBkKvaAWhxsZf72tDLajwCgfCjJ2dvH77C3g==", + "requires": { + "@emotion/memoize": "^0.7.4", + "@emotion/sheet": "^1.0.0", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "stylis": "^4.0.3" + } + }, + "@emotion/css": { + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.1.3.tgz", + "integrity": "sha512-RSQP59qtCNTf5NWD6xM08xsQdCZmVYnX/panPYvB6LQAPKQB6GL49Njf0EMbS3CyDtrlWsBcmqBtysFvfWT3rA==", + "requires": { + "@emotion/babel-plugin": "^11.0.0", + "@emotion/cache": "^11.1.3", + "@emotion/serialize": "^1.0.0", + "@emotion/sheet": "^1.0.0", + "@emotion/utils": "^1.0.0" + } + }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "requires": { + "@emotion/memoize": "0.7.4" + }, + "dependencies": { + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + } + } + }, + "@emotion/memoize": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", + "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" + }, + "@emotion/react": { + "version": "11.4.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.4.1.tgz", + "integrity": "sha512-pRegcsuGYj4FCdZN6j5vqCALkNytdrKw3TZMekTzNXixRg4wkLsU5QEaBG5LC6l01Vppxlp7FE3aTHpIG5phLg==", + "requires": { + "@babel/runtime": "^7.13.10", + "@emotion/cache": "^11.4.0", + "@emotion/serialize": "^1.0.2", + "@emotion/sheet": "^1.0.2", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz", + "integrity": "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==", + "requires": { + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.4", + "@emotion/unitless": "^0.7.5", + "@emotion/utils": "^1.0.0", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.0.2.tgz", + "integrity": "sha512-QQPB1B70JEVUHuNtzjHftMGv6eC3Y9wqavyarj4x4lg47RACkeSfNo5pxIOKizwS9AEFLohsqoaxGQj4p0vSIw==" + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@emotion/utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz", + "integrity": "sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==" + }, + "@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "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": { + "globals": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + } + } + }, + "@formatjs/intl-listformat": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-1.4.8.tgz", + "integrity": "sha512-WNMQlEg0e50VZrGIkgD5n7+DAMGt3boKi1GJALfhFMymslJb5i+5WzWxyj/3a929Z6MAFsmzRIJjKuv+BxKAOQ==", + "requires": { + "@formatjs/intl-utils": "^2.3.0" + } + }, + "@formatjs/intl-relativetimeformat": { + "version": "4.5.16", + "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-4.5.16.tgz", + "integrity": "sha512-IQ0haY97oHAH5OYUdykNiepdyEWj3SAT+Fp9ZpR85ov2JNiFx+12WWlxlVS8ehdyncC2ZMt/SwFIy2huK2+6/A==", + "requires": { + "@formatjs/intl-utils": "^2.3.0" + } + }, + "@formatjs/intl-unified-numberformat": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@formatjs/intl-unified-numberformat/-/intl-unified-numberformat-3.3.7.tgz", + "integrity": "sha512-KnWgLRHzCAgT9eyt3OS34RHoyD7dPDYhRcuKn+/6Kv2knDF8Im43J6vlSW6Hm1w63fNq3ZIT1cFk7RuVO3Psag==", + "requires": { + "@formatjs/intl-utils": "^2.3.0" + } + }, + "@formatjs/intl-utils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-utils/-/intl-utils-2.3.0.tgz", + "integrity": "sha512-KWk80UPIzPmUg+P0rKh6TqspRw0G6eux1PuJr+zz47ftMaZ9QDwbGzHZbtzWkl5hgayM/qrKRutllRC7D/vVXQ==" + }, + "@formatjs/macro": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@formatjs/macro/-/macro-0.2.8.tgz", + "integrity": "sha512-5IBdn5+D8VGdi6Px0M/PidtqzHVrOj3dVJdV+YmWNRaWHdSvBd1wUd0gMcZnQXAxN+RzlGS/ddfOxFkjSlyQuA==" + }, + "@fullcalendar/common": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/common/-/common-5.7.2.tgz", + "integrity": "sha512-0EDKmZBvTUFLvnJ7n6Vo6xMaPVm0jpYq739aSjwFPPXKgbjKFTPbWvLkaDpjJf7YhVebVSOLHbUC1Ky5wXsKvQ==", + "requires": { + "tslib": "^2.0.3" + } + }, + "@fullcalendar/core": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-5.7.2.tgz", + "integrity": "sha512-4yKLUnAEDDIePw9WJuT2sSvLWGrDGBhp20cjBmyxnJ/6eNN1RCex/OjSu7qDNHvzey+ncjlVWsY41bvZwhpfvg==", + "requires": { + "@fullcalendar/common": "~5.7.2", + "preact": "^10.0.5", + "tslib": "^2.0.3" + } + }, + "@fullcalendar/daygrid": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-5.7.2.tgz", + "integrity": "sha512-YHxOv3sLDwBWhb9+JBwQ/25VOJ0/22B6msRijIPbmJt5bljqYCIENQ4OLQ5UxZlkDC0Q9CSBg84oBtZYfW+kEg==", + "requires": { + "@fullcalendar/common": "~5.7.2", + "tslib": "^2.0.3" + } + }, + "@fullcalendar/interaction": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-5.7.2.tgz", + "integrity": "sha512-fnDcwE++0tie6wNVl/ZqUjgOQEekkdmbWH9hmcwE65y2aYMBX4IHE95MjMWVRAy2edahfAmy4xucQs2T0HYYSw==", + "requires": { + "@fullcalendar/common": "~5.7.2", + "tslib": "^2.0.3" + } + }, + "@fullcalendar/list": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/list/-/list-5.7.2.tgz", + "integrity": "sha512-IV3SACoE02vheO3wEHjbaw1TGbjdjXHwD/+OtVOgoCNAxJVd0NI0d7kbIxVIniV2vrDPWkybCS1Abi2QANk3iQ==", + "requires": { + "@fullcalendar/common": "~5.7.2", + "tslib": "^2.0.3" + } + }, + "@fullcalendar/premium-common": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/premium-common/-/premium-common-5.7.2.tgz", + "integrity": "sha512-tehsHwFxxKftCZT8JoJ6t84AOOG+7NpV9kTF/ICQV9ZBDK0S4O2UHwEiGfCY4Iz/l3YW3RVUgrO6S+/p8pnFuw==", + "requires": { + "@fullcalendar/common": "~5.7.2", + "tslib": "^2.0.3" + } + }, + "@fullcalendar/react": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-5.7.0.tgz", + "integrity": "sha512-9JdaN/pZXlUFyUe8H1NHIvEt5UVe2p/sctcfsQbKSPJ9NNTVmK+kk3qfUpOWEho6DYuFRLqYI+VwmeVM5mE8rA==", + "requires": { + "@fullcalendar/common": "~5.7.0", + "tslib": "^2.0.3" + } + }, + "@fullcalendar/scrollgrid": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/scrollgrid/-/scrollgrid-5.7.2.tgz", + "integrity": "sha512-cU0khf72kP7m1cpSYYWSFnLNii36VRlg6Kdix/2mr3BBX74bjFsJfWkWKneO/bZzJgIBvKYehQ/SYiZNC77xuA==", + "requires": { + "@fullcalendar/common": "~5.7.2", + "@fullcalendar/premium-common": "~5.7.2", + "tslib": "^2.0.3" + } + }, + "@fullcalendar/timegrid": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-5.7.2.tgz", + "integrity": "sha512-FRZRwVtlahljSILexvmhLg2LnFbJVCpeuzAIgdURmRoSDCCDuxoA6Z3l66a/QFp3LcFVbZbg7VjKibyvvB9b9A==", + "requires": { + "@fullcalendar/common": "~5.7.2", + "@fullcalendar/daygrid": "~5.7.2", + "tslib": "^2.0.3" + } + }, + "@fullcalendar/timeline": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/timeline/-/timeline-5.7.2.tgz", + "integrity": "sha512-n8FaVuGdIZVztNM8f20/TP0emTS1rfCKFZmXtm566t7u3oKEzDBmgHIHDRgNZafTX1qmCSCP7ANkgi1UKN7E8g==", + "requires": { + "@fullcalendar/common": "~5.7.2", + "@fullcalendar/premium-common": "~5.7.2", + "@fullcalendar/scrollgrid": "~5.7.2", + "tslib": "^2.0.3" + } + }, + "@gar/promisify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@hookform/resolvers": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-1.3.4.tgz", + "integrity": "sha512-K56VLSInXNIT/r14pkzRn1FJclqzGOWqpe3Bf0kz2Hf98ZOmRRFh4fhB7F3ofqCQ03CEQQkV44CTg7ql6nEvEg==" + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==" + }, + "@hypnosphi/create-react-context": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz", + "integrity": "sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A==", + "requires": { + "gud": "^1.0.0", + "warning": "^4.0.3" + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + }, + "@jest/console": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "requires": { + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "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.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + } + } + }, + "@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "requires": { + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" + } + }, + "@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "requires": { + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "requires": { + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" + } + }, + "@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "node-notifier": "^8.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "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.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + } + } + }, + "@jest/source-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "requires": { + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "requires": { + "@jest/test-result": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" + } + }, + "@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", + "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz", + "integrity": "sha512-br5Qwvh8D2OQqSXpd1g/xqXKnK0r+Jz6qVKBbWmpUcrbGOxUrf39V5oZ1876084CGn18uMdR5uvPqBv9UqtBjQ==", + "requires": { + "ansi-html": "^0.0.7", + "error-stack-parser": "^2.0.6", + "html-entities": "^1.2.1", + "native-url": "^0.2.6", + "schema-utils": "^2.6.5", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "@popperjs/core": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.3.tgz", + "integrity": "sha512-xDu17cEfh7Kid/d95kB6tZsLOmSWKCZKtprnhVepjsSaCij+lM3mItSJDuuHDMbCWTh8Ejmebwb+KONcCJ0eXQ==" + }, + "@react-leaflet/core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-1.1.0.tgz", + "integrity": "sha512-zFxMHgfjCi7khRVB7o7H8NoJl36NaezvfcaeEurVXx22lAGHFlTHiSuLOGA4tOiHj+Ep+Lo3uwUGJ3YM9BGkHg==" + }, + "@rollup/plugin-node-resolve": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", + "integrity": "sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==", + "requires": { + "@rollup/pluginutils": "^3.0.8", + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.14.2" + } + }, + "@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + } + } + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@surma/rollup-plugin-off-main-thread": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz", + "integrity": "sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A==", + "requires": { + "ejs": "^2.6.1", + "magic-string": "^0.25.0" + } + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==" + }, + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==" + }, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==" + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==" + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==" + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==" + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==" + }, + "@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + } + }, + "@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "requires": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "requires": { + "@babel/types": "^7.12.6" + } + }, + "@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "requires": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + } + }, + "@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "requires": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + } + }, + "@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "requires": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, + "@transloadit/prettier-bytes": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", + "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==" + }, + "@types/babel__core": { + "version": "7.1.15", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.15.tgz", + "integrity": "sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", + "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/eslint": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", + "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" + }, + "@types/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "requires": { + "@types/node": "*" + } + }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "@types/html-minifier-terser": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==" + }, + "@types/invariant": { + "version": "2.2.35", + "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", + "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + }, + "@types/lodash": { + "version": "4.14.172", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.172.tgz", + "integrity": "sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw==" + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "@types/node": { + "version": "16.7.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.7.tgz", + "integrity": "sha512-bxWC4rgIF/FjM7JsPvpk6ZKGITgw27qsYCbi6h4kWZWYpchOLENgvFaRBZUc64Q/M1y+X2EteahRbyo8QFCKdw==" + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/prettier": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==" + }, + "@types/prop-types": { + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" + }, + "@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "@types/react": { + "version": "17.0.19", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.19.tgz", + "integrity": "sha512-sX1HisdB1/ZESixMTGnMxH9TDe8Sk709734fEQZzCV/4lSu9kJCPbo2PbTRoZM+53Pp0P10hYVyReUueGwUi4A==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "@types/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-YesPanU1+WCigC/Aj1Mga8UCOjHIfMNHZ3zzDsUY7lI8GlKnh/Kv2QwJOQ+jNQ36Ru7IfzSedlG14hppYaN13A==" + }, + "@types/sortablejs": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.10.7.tgz", + "integrity": "sha512-lGCwwgpj8zW/ZmaueoPVSP7nnc9t8VqVWXS+ASX3eoUUENmiazv0rlXyTRludXzuX9ALjPsMqBu85TgJNWbTOg==", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==" + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + }, + "@types/tapable": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", + "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==" + }, + "@types/uglify-js": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz", + "integrity": "sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==", + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@types/webpack": { + "version": "4.41.30", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.30.tgz", + "integrity": "sha512-GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA==", + "requires": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@types/webpack-sources": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", + "integrity": "sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==", + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.30.0.tgz", + "integrity": "sha512-NgAnqk55RQ/SD+tZFD9aPwNSeHmDHHe5rtUyhIq0ZeCWZEvo4DK9rYz7v9HDuQZFvn320Ot+AikaCKMFKLlD0g==", + "requires": { + "@typescript-eslint/experimental-utils": "4.30.0", + "@typescript-eslint/scope-manager": "4.30.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.30.0.tgz", + "integrity": "sha512-K8RNIX9GnBsv5v4TjtwkKtqMSzYpjqAQg/oSphtxf3xxdt6T0owqnpojztjjTcatSteH3hLj3t/kklKx87NPqw==", + "requires": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.30.0", + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/typescript-estree": "4.30.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.30.0.tgz", + "integrity": "sha512-HJ0XuluSZSxeboLU7Q2VQ6eLlCwXPBOGnA7CqgBnz2Db3JRQYyBDJgQnop6TZ+rsbSx5gEdWhw4rE4mDa1FnZg==", + "requires": { + "@typescript-eslint/scope-manager": "4.30.0", + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/typescript-estree": "4.30.0", + "debug": "^4.3.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.30.0.tgz", + "integrity": "sha512-VJ/jAXovxNh7rIXCQbYhkyV2Y3Ac/0cVHP/FruTJSAUUm4Oacmn/nkN5zfWmWFEanN4ggP0vJSHOeajtHq3f8A==", + "requires": { + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/visitor-keys": "4.30.0" + } + }, + "@typescript-eslint/types": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.30.0.tgz", + "integrity": "sha512-YKldqbNU9K4WpTNwBqtAerQKLLW/X2A/j4yw92e3ZJYLx+BpKLeheyzoPfzIXHfM8BXfoleTdiYwpsvVPvHrDw==" + }, + "@typescript-eslint/typescript-estree": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.30.0.tgz", + "integrity": "sha512-6WN7UFYvykr/U0Qgy4kz48iGPWILvYL34xXJxvDQeiRE018B7POspNRVtAZscWntEPZpFCx4hcz/XBT+erenfg==", + "requires": { + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/visitor-keys": "4.30.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.30.0.tgz", + "integrity": "sha512-pNaaxDt/Ol/+JZwzP7MqWc8PJQTUhZwoee/PVlQ+iYoYhagccvoHnC9e4l+C/krQYYkENxznhVSDwClIbZVxRw==", + "requires": { + "@typescript-eslint/types": "4.30.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "@ucast/core": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@ucast/core/-/core-1.10.1.tgz", + "integrity": "sha512-sXKbvQiagjFh2JCpaHUa64P4UdJbOxYeC5xiZFn8y6iYdb0WkismduE+RmiJrIjw/eLDYmIEXiQeIYYowmkcAw==" + }, + "@ucast/js": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@ucast/js/-/js-3.0.2.tgz", + "integrity": "sha512-zxNkdIPVvqJjHI7D/iK8Aai1+59yqU+N7bpHFodVmiTN7ukeNiGGpNmmSjQgsUw7eNcEBnPrZHNzp5UBxwmaPw==", + "requires": { + "@ucast/core": "^1.0.0" + } + }, + "@ucast/mongo": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@ucast/mongo/-/mongo-2.4.2.tgz", + "integrity": "sha512-/zH1TdBJlYGKKD+Wh0oyD+aBvDSWrwHcD8b4tUL9UgHLhzHtkEnMVFuxbw3SRIRsAa01wmy06+LWt+WoZdj1Bw==", + "requires": { + "@ucast/core": "^1.4.1" + } + }, + "@ucast/mongo2js": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@ucast/mongo2js/-/mongo2js-1.3.3.tgz", + "integrity": "sha512-sBPtMUYg+hRnYeVYKL+ATm8FaRPdlU9PijMhGYKgsPGjV9J4Ks41ytIjGayvKUnBOEhiCaKUUnY4qPeifdqATw==", + "requires": { + "@ucast/core": "^1.6.1", + "@ucast/js": "^3.0.0", + "@ucast/mongo": "^2.4.0" + } + }, + "@uppy/aws-s3": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@uppy/aws-s3/-/aws-s3-1.8.0.tgz", + "integrity": "sha512-8fSHgoNcnZoFk6PyciRzGXj00Uhv+cXIgweuZXnRAJ8NB1ZLiY+R39aKzESG4wrgjbWklaohQtUpPdcGbvMoyg==", + "requires": { + "@uppy/companion-client": "^1.10.2", + "@uppy/utils": "^3.6.2", + "@uppy/xhr-upload": "^1.7.5", + "cuid": "^2.1.1", + "qs-stringify": "^1.1.0", + "url-parse": "^1.4.7" + } + }, + "@uppy/aws-s3-multipart": { + "version": "1.8.18", + "resolved": "https://registry.npmjs.org/@uppy/aws-s3-multipart/-/aws-s3-multipart-1.8.18.tgz", + "integrity": "sha512-m+IJSsDF253igTlQb2vgCTetqd+qgNIBX48i8HGnLj4rBfRd4FjpBpcV7DgfAn7QVOfrQOgOJoz9cGtXdaZ3lA==", + "requires": { + "@uppy/companion-client": "^1.10.2", + "@uppy/utils": "^3.6.2" + } + }, + "@uppy/companion-client": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/@uppy/companion-client/-/companion-client-1.10.2.tgz", + "integrity": "sha512-5RmsNF9UBvUqmqQz48SoiLvkpGmvQTgwNM4bJX8xwVozv/6goRpFrsMJGLwqFcHS/9xj6STKOqrM582g8exVwQ==", + "requires": { + "@uppy/utils": "^3.6.2", + "namespace-emitter": "^2.0.1", + "qs-stringify": "^1.1.0", + "url-parse": "^1.4.7" + } + }, + "@uppy/core": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/@uppy/core/-/core-1.20.1.tgz", + "integrity": "sha512-Z0yGixSNOSMgT/2aLylXQaEBB6X32RqGLQUgDJDK08jI0ZcMha5glNhD2RU1Gs9noQOAR/f7QwBssSnYJUNRfg==", + "requires": { + "@transloadit/prettier-bytes": "0.0.7", + "@uppy/store-default": "^1.2.7", + "@uppy/utils": "^3.6.2", + "cuid": "^2.1.1", + "lodash.throttle": "^4.1.1", + "mime-match": "^1.0.2", + "namespace-emitter": "^2.0.1", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/dashboard": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@uppy/dashboard/-/dashboard-1.21.1.tgz", + "integrity": "sha512-psMwBVxxhAZxYkRds4e//+Sx3zkFYRnYpt4jaF4hmwpL9SehlyhQKwaB/scZz/O4yshmgTN8Sri0mYK5FSh5SQ==", + "requires": { + "@transloadit/prettier-bytes": "0.0.7", + "@uppy/informer": "^1.6.6", + "@uppy/provider-views": "^1.12.3", + "@uppy/status-bar": "^1.9.6", + "@uppy/thumbnail-generator": "^1.7.11", + "@uppy/utils": "^3.6.2", + "classnames": "^2.2.6", + "cuid": "^2.1.1", + "is-shallow-equal": "^1.0.1", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "memoize-one": "^5.0.4", + "preact": "8.2.9", + "resize-observer-polyfill": "^1.5.0" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/drag-drop": { + "version": "1.4.31", + "resolved": "https://registry.npmjs.org/@uppy/drag-drop/-/drag-drop-1.4.31.tgz", + "integrity": "sha512-a9/WKOdAhz9mfFYI9JJNEGLP3TI8RQChndpFkjlxbsD82x2WHSB1TyWTslMdSCK6Ed3pV5IYyBVqDGsTqgveYg==", + "requires": { + "@uppy/utils": "^3.6.2", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/dropbox": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@uppy/dropbox/-/dropbox-1.5.2.tgz", + "integrity": "sha512-DSuLUozHsg72qLzlZ1b1qZ9L9gdKFdtgkd2PURpOAJPRHHNchCQDdkBSPS8aHNAuErDKFxg71DcO3CIzbZ054A==", + "requires": { + "@uppy/companion-client": "^1.10.2", + "@uppy/provider-views": "^1.12.3", + "@uppy/utils": "^3.6.2", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/facebook": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@uppy/facebook/-/facebook-1.2.2.tgz", + "integrity": "sha512-DoOQJjhy4y4DRK5iKLU9ayub4ao7cAdBd0lOsGTjyFtWzdnK9RcisZ7FDlXe2QK4ekdiFFdnBE3mOYTgYzw3gg==", + "requires": { + "@uppy/companion-client": "^1.10.2", + "@uppy/provider-views": "^1.12.3", + "@uppy/utils": "^3.6.2", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/file-input": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@uppy/file-input/-/file-input-1.5.2.tgz", + "integrity": "sha512-EI7IROt2qyGm3EoGDmb4UiWNe/P8YsGAcoCZZqFlTLkBlK7Yen5yxzQ4+KH7jWZYM6BynYnHl18aMdRcDWf/UA==", + "requires": { + "@uppy/utils": "^3.6.2", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/form": { + "version": "1.3.31", + "resolved": "https://registry.npmjs.org/@uppy/form/-/form-1.3.31.tgz", + "integrity": "sha512-FyhJSJgdYDkLAuMqYo1d7f469PbbU3wrLbyoSDtZTEDBUXeE7b4g3ygqrFhlZsxbpwGvO/ygg2/8z0Dlvt7dBQ==", + "requires": { + "@uppy/utils": "^3.6.2", + "get-form-data": "^2.0.0" + } + }, + "@uppy/golden-retriever": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@uppy/golden-retriever/-/golden-retriever-1.4.2.tgz", + "integrity": "sha512-beMRrXGZ/qdLlKW5vQN8TuXFNoeGdFnBnriKxDHMYGXEo+fKTLTqXDeFgPYqXa337H7sb1StdzCnb8YDYyDPnQ==", + "requires": { + "@transloadit/prettier-bytes": "0.0.7", + "@uppy/utils": "^3.6.2", + "lodash.throttle": "^4.1.1" + } + }, + "@uppy/google-drive": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@uppy/google-drive/-/google-drive-1.7.2.tgz", + "integrity": "sha512-29w2e36gX4394ly5t+JMhg4WVr2vpo7a46PLHKZlNwbiPKrEqBUyLy/seCxHUH+6qNtrHFIWQoLTwrlMCEOi3w==", + "requires": { + "@uppy/companion-client": "^1.10.2", + "@uppy/provider-views": "^1.12.3", + "@uppy/utils": "^3.6.2", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/informer": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@uppy/informer/-/informer-1.6.6.tgz", + "integrity": "sha512-9rZoAqNrKQN/HINnGg8rGnKEliLgc+9/tQQ0f9QcBgRIu/rnbBCTwS+qnGGdjYBdEJTSbHx+U7X9ufjrrjB+CA==", + "requires": { + "@uppy/utils": "^3.6.2", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/instagram": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@uppy/instagram/-/instagram-1.5.2.tgz", + "integrity": "sha512-hfBfO3P++sI5LNvtpHb6h5Ow/nOu2LgPeIQZ2xaeeQXjDg+wt8oToF25z+LSwXi69QxCh3mPpWNIGbq/N96Cfw==", + "requires": { + "@uppy/companion-client": "^1.10.2", + "@uppy/provider-views": "^1.12.3", + "@uppy/utils": "^3.6.2", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/onedrive": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@uppy/onedrive/-/onedrive-1.2.2.tgz", + "integrity": "sha512-o1k2/2Sh4BwxzB0c5iSheTCotoSZXsnIdNDEsnO8WJiSclnody3XUuh+D6O5UeQxCFCFS13KJ6RebLGN8t/srQ==", + "requires": { + "@uppy/companion-client": "^1.10.2", + "@uppy/provider-views": "^1.12.3", + "@uppy/utils": "^3.6.2", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/progress-bar": { + "version": "1.3.30", + "resolved": "https://registry.npmjs.org/@uppy/progress-bar/-/progress-bar-1.3.30.tgz", + "integrity": "sha512-MAn20wBMzKc1p9M/Mot4+bV/707EO/DVgoFcvoP8rmA5oZOGMINpvFGR+rUtWQoBFMvKtvs/Wkp8mcR22rCMrw==", + "requires": { + "@uppy/utils": "^3.6.2", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/provider-views": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/@uppy/provider-views/-/provider-views-1.12.3.tgz", + "integrity": "sha512-r2kra3IftmGLeKMEgZbmQM1qXixulWUUzydgpHcZqJOpeNIjJcpspJruYRctrVqaLz/8asw87V4KxDk0U4xGzw==", + "requires": { + "@uppy/utils": "^3.6.2", + "classnames": "^2.2.6", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/react": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/@uppy/react/-/react-1.10.8.tgz", + "integrity": "sha512-FO6PThrYZaEGZd7G3YooHHKsxhZqF6/Euy+jI8CLhROf78Kg0Gr3dURhwaH902NgPrA5Yfa6xRSC1d4etwMktg==", + "requires": { + "@uppy/dashboard": "^1.12.8", + "@uppy/drag-drop": "^1.4.19", + "@uppy/progress-bar": "^1.3.19", + "@uppy/status-bar": "^1.7.6", + "@uppy/utils": "^3.2.3", + "prop-types": "^15.6.1" + } + }, + "@uppy/redux-dev-tools": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/@uppy/redux-dev-tools/-/redux-dev-tools-1.3.9.tgz", + "integrity": "sha512-OVugq1AbIZ89nRifl5suv7AiC2uE5Ot4QbaTgoS8l0DwMMRpYKYAOc904Wj9F9cTZhaUBXEmTqKlZgL9NVK3FQ==" + }, + "@uppy/screen-capture": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@uppy/screen-capture/-/screen-capture-1.1.0.tgz", + "integrity": "sha512-x3LmskHdkSeE+RCUDve+jsxiD9D0MVGk1PivZjnyouTz81QrWtkEOikuJc9hyddTsDUiisxdaOVCj3eJwDWcVQ==", + "requires": { + "@uppy/utils": "^3.6.2", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/status-bar": { + "version": "1.9.6", + "resolved": "https://registry.npmjs.org/@uppy/status-bar/-/status-bar-1.9.6.tgz", + "integrity": "sha512-U/KPs5SwZ5d4hJFiCNAdriGHSk1Uhrl+iQmpJS8hoM+8r8rPfwScdua2/ehLuH69Ymwp6k7DpK2DU7UG2XZ+ag==", + "requires": { + "@transloadit/prettier-bytes": "0.0.7", + "@uppy/utils": "^3.6.2", + "classnames": "^2.2.6", + "lodash.throttle": "^4.1.1", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/store-default": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@uppy/store-default/-/store-default-1.2.7.tgz", + "integrity": "sha512-58IG9yk/i/kYQ9uEwAwMFl1H2V3syOoODrYoFfVHlxaqv+9MkXBg2tHE2gk40iaAIxcCErcPxZkBOvkqzO1SQA==" + }, + "@uppy/store-redux": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@uppy/store-redux/-/store-redux-1.2.8.tgz", + "integrity": "sha512-9lPPQf8lyADjrjNXe7u8j+Pn2MeIlUXANT8vHXy2WnbYX+WL/r7gqNUd8kiKoMksX1E+gA6VH5rmj6ysL9xVvg==", + "requires": { + "cuid": "^2.1.1" + } + }, + "@uppy/thumbnail-generator": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@uppy/thumbnail-generator/-/thumbnail-generator-1.7.11.tgz", + "integrity": "sha512-qo9ZD8ByDMM6gIJ4JPN0V/dWlruYMhmYifhUvDUu0qhPAOTJAqh2hLQ+dlmUXTns8RnDorCXScreICSQ09FuLQ==", + "requires": { + "@uppy/utils": "^3.6.2", + "exifr": "^6.0.0", + "math-log2": "^1.0.1" + } + }, + "@uppy/transloadit": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@uppy/transloadit/-/transloadit-1.7.0.tgz", + "integrity": "sha512-vQOQ+LNLAvkbiD8Zf6TJW4QeYawkADnHwFEj7XiI9npkzC8Lbt3XOLSTibj1vmICVgk277TsqnX3MUhK6+cX+A==", + "requires": { + "@uppy/companion-client": "^1.10.2", + "@uppy/provider-views": "^1.12.3", + "@uppy/tus": "^1.9.2", + "@uppy/utils": "^3.6.2", + "component-emitter": "^1.2.1", + "socket.io-client": "~2.2.0", + "url-parse": "^1.4.7" + } + }, + "@uppy/tus": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@uppy/tus/-/tus-1.9.2.tgz", + "integrity": "sha512-ejaczrrh6w514XGd3kiDD1PJ8tIgmnV50fuyRwsybDj8HQheKAEu6GsJjxcnctP8NcSx4HNDhazVLPj6+A4p9Q==", + "requires": { + "@uppy/companion-client": "^1.10.2", + "@uppy/utils": "^3.6.2", + "tus-js-client": "^2.1.1" + } + }, + "@uppy/url": { + "version": "1.5.23", + "resolved": "https://registry.npmjs.org/@uppy/url/-/url-1.5.23.tgz", + "integrity": "sha512-pRmRccuJv2Ad57jPgYckbvozeUhkMouBv2du9+BW9Sr7E5aJPbujwejVOzDcRion7TEH6YvxX1xZoWrXZ/IYOQ==", + "requires": { + "@uppy/companion-client": "^1.10.2", + "@uppy/utils": "^3.6.2", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/utils": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@uppy/utils/-/utils-3.6.2.tgz", + "integrity": "sha512-wGTZma7eywIojfuE1vXlT0fxPSpmCRMkfgFWYc+6TL2FfGqWInmePoB+yal6/M2AnjeKHz6XYMhIpZkjOxFvcw==", + "requires": { + "abortcontroller-polyfill": "^1.4.0", + "lodash.throttle": "^4.1.1" + } + }, + "@uppy/webcam": { + "version": "1.8.13", + "resolved": "https://registry.npmjs.org/@uppy/webcam/-/webcam-1.8.13.tgz", + "integrity": "sha512-DN9hPe9u9FRerGXTl4TgTMOYy2aMCXCK5Nu7FgMf7T+OT5qJmQcQ6ty4rEVlDTWdm45zmIpV1OG/dUb+iLcCjQ==", + "requires": { + "@uppy/utils": "^3.6.2", + "preact": "8.2.9" + }, + "dependencies": { + "preact": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.9.tgz", + "integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==" + } + } + }, + "@uppy/xhr-upload": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@uppy/xhr-upload/-/xhr-upload-1.7.5.tgz", + "integrity": "sha512-Itnc9j9k/PemcmT5KrZ1BEw3pTc6WJg0yyyOcE+hLO8Hjv60Fm7c/I2ZknarOroIjT1WiTSyuxTBPp+9UGkxNA==", + "requires": { + "@uppy/companion-client": "^1.10.2", + "@uppy/utils": "^3.6.2", + "cuid": "^2.1.1" + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "abortcontroller-polyfill": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz", + "integrity": "sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" + }, + "adjust-sourcemap-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", + "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", + "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "animate.css": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz", + "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==" + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + } + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "apexcharts": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.23.0.tgz", + "integrity": "sha512-1mV6qouuopvYR6UFSXi/Ge4jRMe//zyAN3aK05mAs4Iuet8mA0w31Q6OU6syD77bawt9p3YKNOmNF7OO2u9w0g==", + "requires": { + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=" + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + } + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "availity-reactstrap-validation-safe": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/availity-reactstrap-validation-safe/-/availity-reactstrap-validation-safe-2.6.1.tgz", + "integrity": "sha512-+vvE4fh848vRgQO+j1v3SSO4b3aHKkBpY/bBI3lgl85YaqnAVTUe7xt07cJsjM8Xv1YBEn4NChsqUR35HWE8RQ==", + "requires": { + "babel-runtime": "^6.26.0", + "classnames": "^2.2.6", + "lodash": "^4.17.10", + "moment": "^2.22.2", + "prop-types": "^15.6.2" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "axe-core": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.3.tgz", + "integrity": "sha512-/lqqLAmuIPi79WYfRpy2i8z+x+vxU3zX2uAm0gs1q52qTuKwolOj1P8XbufpXcsydrpKx2yGn2wzAnxCMV86QA==" + }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "axios-mock-adapter": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.19.0.tgz", + "integrity": "sha512-D+0U4LNPr7WroiBDvWilzTMYPYTuZlbo6BI8YHZtj7wYQS8NkARlP9KBt8IWWHTQJ0q/8oZ0ClPBtKCCkx8cQg==", + "requires": { + "fast-deep-equal": "^3.1.3", + "is-buffer": "^2.0.3" + } + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } + } + }, + "babel-extract-comments": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", + "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", + "requires": { + "babylon": "^6.18.0" + } + }, + "babel-jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", + "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "requires": { + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "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.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + } + } + }, + "babel-plugin-named-asset-import": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz", + "integrity": "sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw==" + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", + "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.2", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", + "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.2", + "core-js-compat": "^3.14.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", + "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.2" + } + }, + "babel-plugin-react-intl": { + "version": "5.1.18", + "resolved": "https://registry.npmjs.org/babel-plugin-react-intl/-/babel-plugin-react-intl-5.1.18.tgz", + "integrity": "sha512-tzzZoGDNQOiHmGFh+NPQJDpC10RbKlfw1CBVfALulqRa6UGkAv5eMs9sirxjhD3HryHPbYZ4x5FNdbzOyG2GJw==", + "requires": { + "@babel/core": "^7.7.2", + "@babel/helper-plugin-utils": "^7.0.0", + "@types/babel__core": "^7.1.3", + "@types/schema-utils": "^1.0.0", + "fs-extra": "^8.1.0", + "intl-messageformat-parser": "^3.6.4", + "schema-utils": "^2.2.0" + } + }, + "babel-plugin-styled-components": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.13.2.tgz", + "integrity": "sha512-Vb1R3d4g+MUfPQPVDMCGjm3cDocJEUTR7Xq7QS95JWWeksN1wdFRYpD2kulDgI3Huuaf1CZd+NK4KQmqUFh5dA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-module-imports": "^7.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", + "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "requires": { + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "babel-preset-react-app": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.0.tgz", + "integrity": "sha512-itL2z8v16khpuKutx5IH8UdCdSTuzrOhRFTEdIhveZ2i1iBKDrVE0ATa4sFVy+02GLucZNVBWtoarXBy0Msdpg==", + "requires": { + "@babel/core": "7.12.3", + "@babel/plugin-proposal-class-properties": "7.12.1", + "@babel/plugin-proposal-decorators": "7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "7.12.1", + "@babel/plugin-proposal-numeric-separator": "7.12.1", + "@babel/plugin-proposal-optional-chaining": "7.12.1", + "@babel/plugin-transform-flow-strip-types": "7.12.1", + "@babel/plugin-transform-react-display-name": "7.12.1", + "@babel/plugin-transform-runtime": "7.12.1", + "@babel/preset-env": "7.12.1", + "@babel/preset-react": "7.12.1", + "@babel/preset-typescript": "7.12.1", + "@babel/runtime": "7.12.1", + "babel-plugin-macros": "2.8.0", + "babel-plugin-transform-react-remove-prop-types": "0.4.24" + }, + "dependencies": { + "@babel/core": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz", + "integrity": "sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", + "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz", + "integrity": "sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", + "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", + "requires": { + "@babel/compat-data": "^7.12.1", + "@babel/helper-compilation-targets": "^7.12.1", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.1", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.1", + "core-js-compat": "^3.6.2", + "semver": "^5.5.0" + } + }, + "@babel/preset-react": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.1.tgz", + "integrity": "sha512-euCExymHCi0qB9u5fKw7rvlw7AZSjw/NaB9h7EkdTt5+yHRrXdiRTh7fkG3uBPpJg82CqLfp1LHLqWGSCrab+g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-react-display-name": "^7.12.1", + "@babel/plugin-transform-react-jsx": "^7.12.1", + "@babel/plugin-transform-react-jsx-development": "^7.12.1", + "@babel/plugin-transform-react-jsx-self": "^7.12.1", + "@babel/plugin-transform-react-jsx-source": "^7.12.1", + "@babel/plugin-transform-react-pure-annotations": "^7.12.1" + } + }, + "@babel/runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz", + "integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "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.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "bfj": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", + "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "requires": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, + "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=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "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.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "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.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "bootstrap": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.2.tgz", + "integrity": "sha512-vlGn0bcySYl/iV+BGA544JkkZP5LB3jsmkeKLFQakCOwCM3AOk7VkldBz4jrzSe+Z0Ezn99NVXa1o45cQY4R6A==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.16.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.8.tgz", + "integrity": "sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==", + "requires": { + "caniuse-lite": "^1.0.30001251", + "colorette": "^1.3.0", + "electron-to-chromium": "^1.3.811", + "escalade": "^3.1.1", + "node-releases": "^1.1.75" + } + }, + "bs-stepper": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/bs-stepper/-/bs-stepper-1.7.0.tgz", + "integrity": "sha512-+DX7UKKgw2GI6ucsSCRd19VHYrxf/8znRCLs1lQVVLxz+h7EqgIOxoHcJ0/QTaaNoR9Cwg78ydo6hXIasyd3LA==" + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "requires": { + "@npmcli/fs": "^1.0.0", + "@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" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "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.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + } + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "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.30001252", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz", + "integrity": "sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw==" + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "requires": { + "rsvp": "^4.8.4" + } + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "cfb": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.0.tgz", + "integrity": "sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==", + "requires": { + "adler-32": "~1.2.0", + "crc-32": "~1.2.0", + "printj": "~1.1.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" + }, + "chart.js": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz", + "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==", + "requires": { + "chartjs-color": "^2.1.0", + "moment": "^2.10.2" + } + }, + "chartjs-color": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz", + "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==", + "requires": { + "chartjs-color-string": "^0.6.0", + "color-convert": "^1.9.3" + } + }, + "chartjs-color-string": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz", + "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==", + "requires": { + "color-name": "^1.0.0" + } + }, + "check-types": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", + "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "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" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "chroma-js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.1.0.tgz", + "integrity": "sha512-uiRdh4ZZy+UTPSrAdp8hqEdVb1EllLtTHOt5TMaOjJUvi+O54/83Fc5K2ld1P+TJX+dw5B+8/sCgzI6eaur/lg==", + "requires": { + "cross-env": "^6.0.3" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==" + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "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.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cleave.js": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/cleave.js/-/cleave.js-1.6.0.tgz", + "integrity": "sha512-ivqesy3j5hQVG3gywPfwKPbi/7ZSftY/UNp5uphnqjr25yI2CP8FS2ODQPzuLXXnNLi29e2+PgPkkiKUXLs/Nw==" + }, + "clipboard": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz", + "integrity": "sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==", + "optional": true, + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "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=", + "dev": true + }, + "codepage": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", + "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", + "requires": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + } + } + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", + "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", + "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==" + }, + "combine-errors": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/combine-errors/-/combine-errors-3.0.3.tgz", + "integrity": "sha1-9N9nQAg+VwOjGBEQwrEFUfAD2oY=", + "requires": { + "custom-error-instance": "2.1.1", + "lodash.uniqby": "4.5.0" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + }, + "compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "requires": { + "arity-n": "^1.0.4" + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "confusing-browser-globals": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==" + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "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=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "requires": { + "toggle-selection": "^1.0.6" + } + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, + "core-js-compat": { + "version": "3.16.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.16.4.tgz", + "integrity": "sha512-IzCSomxRdahCYb6G3HiN6pl3JCiM0NMunRcNa1pIeC7g17Vd6Ue3AT9anQiENPIm/svThUVer1pIbLMDERIsFw==", + "requires": { + "browserslist": "^4.16.8", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "core-js-pure": { + "version": "3.16.4", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.16.4.tgz", + "integrity": "sha512-bY1K3/1Jy9D8Jd12eoeVahNXHLfHFb4TXWI8SQ4y8bImR9qDPmGITBAfmcffTkgUvbJn87r8dILOTWW5kZzkgA==" + }, + "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=" + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "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.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-env": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-6.0.3.tgz", + "integrity": "sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag==", + "requires": { + "cross-spawn": "^7.0.0" + } + }, + "cross-fetch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "requires": { + "node-fetch": "2.6.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "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", + "randomfill": "^1.0.3" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "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.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "css-blank-pseudo": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", + "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", + "requires": { + "postcss": "^7.0.5" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-has-pseudo": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", + "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^5.0.0-rc.4" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.3.0.tgz", + "integrity": "sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg==", + "requires": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.1", + "semver": "^7.3.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-prefers-color-scheme": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", + "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", + "requires": { + "postcss": "^7.0.5" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "css-to-react-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "css-unit-converter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", + "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==" + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + }, + "cssdb": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.8", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-preset-default": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.3", + "postcss-unique-selectors": "^4.0.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + } + } + }, + "csstype": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" + }, + "cuid": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/cuid/-/cuid-2.1.8.tgz", + "integrity": "sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==" + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "custom-error-instance": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/custom-error-instance/-/custom-error-instance-2.1.1.tgz", + "integrity": "sha1-PPY5FIemYppiR+sMoM4ACBt+Nho=" + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "requires": { + "internmap": "^1.0.0" + } + }, + "d3-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", + "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + }, + "d3-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + }, + "d3-interpolate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", + "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "requires": { + "d3-color": "1 - 2" + } + }, + "d3-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", + "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + }, + "d3-scale": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", + "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "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-shape": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", + "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "requires": { + "d3-path": "1 - 2" + } + }, + "d3-time": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", + "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "requires": { + "d3-array": "2" + } + }, + "d3-time-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "requires": { + "d3-time": "1 - 2" + } + }, + "damerau-levenshtein": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz", + "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + }, + "decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "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.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "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.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "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.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "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.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "optional": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/detect-it/-/detect-it-4.0.1.tgz", + "integrity": "sha512-dg5YBTJYvogK1+dA2mBUDKzOWfYZtHVba89SyZUhc4+e3i2tzgjANFg5lDRCd3UOtRcw00vUTMK8LELcMdicug==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "detect-passive-events": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-passive-events/-/detect-passive-events-2.0.3.tgz", + "integrity": "sha512-QN/1X65Axis6a9D8qg8Py9cwY/fkWAmAH/edTbmLMcv4m5dboLJ7LcAi8CfaCON2tjk904KwKX/HTdsHC6yeRg==", + "requires": { + "detect-it": "^4.0.1" + } + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + } + } + }, + "dom7": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz", + "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", + "requires": { + "ssr-window": "^3.0.0-alpha.1" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, + "domhandler": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", + "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "requires": { + "domelementtype": "^2.2.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + } + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "draft-js": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.11.7.tgz", + "integrity": "sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg==", + "requires": { + "fbjs": "^2.0.0", + "immutable": "~3.7.4", + "object-assign": "^4.1.1" + } + }, + "draftjs-to-html": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/draftjs-to-html/-/draftjs-to-html-0.9.1.tgz", + "integrity": "sha512-fFstE6+IayaVFBEvaFt/wN8vdj8FsTRzij7dy7LI9QIwf5LgfHFi9zSpvCg+feJ2tbYVqHxUkjcibwpsTpgFVQ==" + }, + "draftjs-utils": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/draftjs-utils/-/draftjs-utils-0.10.2.tgz", + "integrity": "sha512-EstHqr3R3JVcilJrBaO/A+01GvwwKmC7e4TCjC7S94ZeMh4IVmf60OuQXtHHpwItK8C2JCi3iljgN5KHkJboUg==" + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" + }, + "electron-to-chromium": { + "version": "1.3.822", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.822.tgz", + "integrity": "sha512-k7jG5oYYHxF4jx6PcqwHX3JVME/OjzolqOZiIogi9xtsfsmTjTdie4x88OakYFPEa8euciTgCCzvVNwvmjHb1Q==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emittery": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "engine.io-client": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.3.tgz", + "integrity": "sha512-PXIgpzb1brtBzh8Q6vCjzCMeu4nfEPmaDm+L3Qb2sVHwLkxC1qRiBMSjOB0NJNjZ0hbPNUKQa+s8J2XxLOIEeQ==", + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.6.3", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "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-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "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=" + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "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.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } + } + }, + "globals": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "eslint-config-react-app": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz", + "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==", + "requires": { + "confusing-browser-globals": "^1.0.10" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-module-utils": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", + "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", + "requires": { + "debug": "^3.2.7", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "eslint-plugin-flowtype": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.9.1.tgz", + "integrity": "sha512-ncUBL9lbhrcOlM5p6xQJT2c0z9co/FlP0mXdva6FrkvtzOoN7wdc8ioASonEpcWffOxnJPFPI8N0sHCavE6NAg==", + "requires": { + "lodash": "^4.17.15", + "string-natural-compare": "^3.0.1" + } + }, + "eslint-plugin-import": { + "version": "2.24.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", + "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-plugin-jest": { + "version": "24.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.4.0.tgz", + "integrity": "sha512-8qnt/hgtZ94E9dA6viqfViKBfkJwFHXgJmTWlMGDgunw1XJEGqm3eiPjDsTanM3/u/3Az82nyQM9GX7PM/QGmg==", + "requires": { + "@typescript-eslint/experimental-utils": "^4.0.1" + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz", + "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==", + "requires": { + "@babel/runtime": "^7.11.2", + "aria-query": "^4.2.2", + "array-includes": "^3.1.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.0.2", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.6", + "emoji-regex": "^9.0.0", + "has": "^1.0.3", + "jsx-ast-utils": "^3.1.0", + "language-tags": "^1.0.5" + }, + "dependencies": { + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + } + } + }, + "eslint-plugin-react": { + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz", + "integrity": "sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug==", + "requires": { + "array-includes": "^3.1.3", + "array.prototype.flatmap": "^1.2.4", + "doctrine": "^2.1.0", + "estraverse": "^5.2.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.4", + "object.fromentries": "^2.0.4", + "object.values": "^1.1.4", + "prop-types": "^15.7.2", + "resolve": "^2.0.0-next.3", + "string.prototype.matchall": "^4.0.5" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + }, + "resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz", + "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==" + }, + "eslint-plugin-testing-library": { + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-3.10.2.tgz", + "integrity": "sha512-WAmOCt7EbF1XM8XfbCKAEzAPnShkNSwcIsAD2jHdsMUT9mZJPjLCG7pMzbcC8kK366NOuGip8HKLDC+Xk4yIdA==", + "requires": { + "@typescript-eslint/experimental-utils": "^3.10.1" + }, + "dependencies": { + "@typescript-eslint/experimental-utils": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz", + "integrity": "sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==", + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/typescript-estree": "3.10.1", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/types": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz", + "integrity": "sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==" + }, + "@typescript-eslint/typescript-estree": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz", + "integrity": "sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==", + "requires": { + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/visitor-keys": "3.10.1", + "debug": "^4.1.1", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz", + "integrity": "sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + }, + "eslint-webpack-plugin": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.4.tgz", + "integrity": "sha512-7rYh0m76KyKSDE+B+2PUQrlNS4HJ51t3WKpkJg6vo2jFMbEPTG99cBV0Dm7LXSHucN4WGCG65wQcRiTFrj7iWw==", + "requires": { + "@types/eslint": "^7.2.6", + "arrify": "^2.0.1", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "eventsource": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", + "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==" + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "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" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "exifr": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/exifr/-/exifr-6.3.0.tgz", + "integrity": "sha512-NCSOP15py+4QyvD90etFN0QOVj12ygVE8kfEDG8GDc+SXf9YAOxua2x5kGp6WvxbGjufA5C3r/1ZKHOpHbEWFg==" + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "requires": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "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.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + } + } + }, + "ext": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz", + "integrity": "sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==", + "requires": { + "type": "^2.5.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "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.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "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" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastq": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.12.0.tgz", + "integrity": "sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg==", + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, + "fbjs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-2.0.0.tgz", + "integrity": "sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==", + "requires": { + "core-js": "^3.6.4", + "cross-fetch": "^3.0.4", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "core-js": { + "version": "3.16.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.16.4.tgz", + "integrity": "sha512-Tq4GVE6XCjE+hcyW6hPy0ofN3hwtLudz5ZRdrlCnsnD/xkm/PWQRudzYHiKgZKUcefV6Q57fhDHjZHJP5dpfSg==" + } + } + }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-loader": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz", + "integrity": "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "file-saver": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.2.tgz", + "integrity": "sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw==" + }, + "filesize": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", + "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatpickr": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.3.tgz", + "integrity": "sha512-007VucCkqNOMMb9ggRLNuJowwaJcyOh4sKAFcdGfahfGc7JQbf94zSzjdBq/wVyHWUEs5o3+idhFZ0wbZMRmVQ==" + }, + "flatted": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==" + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.2.tgz", + "integrity": "sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA==" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "fork-ts-checker-webpack-plugin": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz", + "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==", + "requires": { + "@babel/code-frame": "^7.5.5", + "chalk": "^2.4.1", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-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.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": 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=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-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.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-form-data": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-form-data/-/get-form-data-2.0.0.tgz", + "integrity": "sha512-YUpw0aTWeGliifqMYrTohe/YdqVmKLmaNwuscd2WlRNGfba57JHGuuvvv2c6LiZdFys285POVWANTh6SqcwFag==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "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.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "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": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "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" + } + }, + "globule": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", + "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "optional": true, + "requires": { + "delegate": "^3.1.2" + } + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "optional": true + }, + "gud": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-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.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" + }, + "history": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.0.0.tgz", + "integrity": "sha512-3NyRMKIiFSJmIPdq7FxkNMJkQ7ZEtVblOQ38VtKaA0zZMW1Eo6Q6W8oDKEflr1kNNTItSnk4JMCO1deeSgbLLg==", + "requires": { + "@babel/runtime": "^7.7.6" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==" + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + } + } + }, + "html-to-draftjs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/html-to-draftjs/-/html-to-draftjs-1.5.0.tgz", + "integrity": "sha512-kggLXBNciKDwKf+KYsuE+V5gw4dZ7nHyGMX9m0wy7urzWjKGWyNFetmArRLvRV0VrxKN70WylFsJvMTJx02OBQ==" + }, + "html-webpack-plugin": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz", + "integrity": "sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==", + "requires": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.15", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + }, + "dependencies": { + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "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.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "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.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "requires": { + "postcss": "^7.0.14" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "requires": { + "harmony-reflect": "^1.4.6" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + }, + "immer": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz", + "integrity": "sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==" + }, + "immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=" + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, + "intl-format-cache": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-4.3.1.tgz", + "integrity": "sha512-OEUYNA7D06agqPOYhbTkl0T8HA3QKSuwWh1HiClEnpd9vw7N+3XsQt5iZ0GUEchp5CW1fQk/tary+NsbF3yQ1Q==" + }, + "intl-locales-supported": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/intl-locales-supported/-/intl-locales-supported-1.8.12.tgz", + "integrity": "sha512-FJPl7p1LYO/C+LpwlDcvVpq7AeFTdFgwnq1JjdNYKjb51xkIxssXRR8LaA0fJFogjwRRztqw1ahgSJMSZsSFdw==" + }, + "intl-messageformat": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-7.8.4.tgz", + "integrity": "sha512-yS0cLESCKCYjseCOGXuV4pxJm/buTfyCJ1nzQjryHmSehlptbZbn9fnlk1I9peLopZGGbjj46yHHiTAEZ1qOTA==", + "requires": { + "intl-format-cache": "^4.2.21", + "intl-messageformat-parser": "^3.6.4" + } + }, + "intl-messageformat-parser": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-3.6.4.tgz", + "integrity": "sha512-RgPGwue0mJtoX2Ax8EmMzJzttxjnva7gx0Q7mKJ4oALrTZvtmCeAw5Msz2PcjW4dtCh/h7vN/8GJCxZO1uv+OA==", + "requires": { + "@formatjs/intl-unified-numberformat": "^3.2.0" + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "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.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" + }, + "is-shallow-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shallow-equal/-/is-shallow-equal-1.0.1.tgz", + "integrity": "sha512-lq5RvK+85Hs5J3p4oA4256M1FEffzmI533ikeDHvJd42nouRRx5wBzt36JuviiGe5dIPyHON/d0/Up+PBo6XkQ==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "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.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "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.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.0.tgz", + "integrity": "sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA==", + "requires": { + "@jest/core": "^26.6.0", + "import-local": "^3.0.2", + "jest-cli": "^26.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "requires": { + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + } + } + }, + "jest-circus": { + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-26.6.0.tgz", + "integrity": "sha512-L2/Y9szN6FJPWFK8kzWXwfp+FOR7xq0cUL4lIsdbIdwz3Vh6P1nrpcqOleSzr28zOtSHQNV9Z7Tl+KkuK7t5Ng==", + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.0", + "@jest/test-result": "^26.6.0", + "@jest/types": "^26.6.0", + "@types/babel__traverse": "^7.0.4", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^26.6.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.0", + "jest-matcher-utils": "^26.6.0", + "jest-message-util": "^26.6.0", + "jest-runner": "^26.6.0", + "jest-runtime": "^26.6.0", + "jest-snapshot": "^26.6.0", + "jest-util": "^26.6.0", + "pretty-format": "^26.6.0", + "stack-utils": "^2.0.2", + "throat": "^5.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "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.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + } + } + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" + } + }, + "jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" + }, + "jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "requires": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "requires": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" + }, + "jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==" + }, + "jest-resolve": { + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.0.tgz", + "integrity": "sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ==", + "requires": { + "@jest/types": "^26.6.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.0", + "read-pkg-up": "^7.0.1", + "resolve": "^1.17.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "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.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + } + } + }, + "jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "requires": { + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" + } + }, + "jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "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.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + } + } + }, + "jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "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.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + } + } + }, + "jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "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.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + } + } + }, + "jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "requires": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watch-typeahead": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.6.1.tgz", + "integrity": "sha512-ITVnHhj3Jd/QkqQcTqZfRgjfyRhDFM/auzgVo2RKvSwi18YMvh0WvXDJFoFED6c7jd/5jxtu4kSOb9PTu2cPVg==", + "requires": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^26.0.0", + "jest-watcher": "^26.3.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "requires": { + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==" + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "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=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-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" + } + }, + "jsx-ast-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", + "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "requires": { + "array-includes": "^3.1.2", + "object.assign": "^4.1.2" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==" + }, + "language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==" + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, + "last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "requires": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "leaflet": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.6.0.tgz", + "integrity": "sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ==" + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "requires": { + "uc.micro": "^1.0.1" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "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.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "load-script": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", + "integrity": "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ=" + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash._baseiteratee": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz", + "integrity": "sha1-NKm1VDVycnw9sueO2uPA6eZr0QI=", + "requires": { + "lodash._stringtopath": "~4.8.0" + } + }, + "lodash._basetostring": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz", + "integrity": "sha1-kyfJ3FFYhmt/pLnUL0Y45XZt2d8=" + }, + "lodash._baseuniq": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz", + "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", + "requires": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "lodash._createset": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz", + "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" + }, + "lodash._stringtopath": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz", + "integrity": "sha1-lBvPDmQmbl/B1m/tCmlZVExXaCQ=", + "requires": { + "lodash._basetostring": "~4.12.0" + } + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "lodash.orderby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.orderby/-/lodash.orderby-4.6.0.tgz", + "integrity": "sha1-5pfwTOXXhSL1TZM4syuBozk+TrM=" + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=" + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "lodash.uniqby": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz", + "integrity": "sha1-o6F7v2LutiQPSRhG6XwcTipeHiE=", + "requires": { + "lodash._baseiteratee": "~4.7.0", + "lodash._baseuniq": "~4.6.0" + } + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.x" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-log2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", + "integrity": "sha1-+4lBvl9evol55xjmJzsXjlhpRWU=" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "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" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "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.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "microevent.ts": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + }, + "mime-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mime-match/-/mime-match-1.0.2.tgz", + "integrity": "sha1-P4fDHprxpf1IX7nbE0Qosju7e6g=", + "requires": { + "wildcard": "^1.1.0" + } + }, + "mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "requires": { + "mime-db": "1.49.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mini-create-react-context": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", + "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", + "requires": { + "@babel/runtime": "^7.12.1", + "tiny-warning": "^1.0.3" + } + }, + "mini-css-extract-plugin": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz", + "integrity": "sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA==", + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + }, + "namespace-emitter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/namespace-emitter/-/namespace-emitter-2.0.1.tgz", + "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==" + }, + "nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + }, + "nanoclone": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", + "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==" + }, + "nanoid": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", + "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "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-url": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.2.6.tgz", + "integrity": "sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA==", + "requires": { + "querystring": "^0.2.0" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "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": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + }, + "node-notifier": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", + "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "node-releases": { + "version": "1.1.75", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", + "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + }, + "node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-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" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-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.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "nouislider": { + "version": "14.6.2", + "resolved": "https://registry.npmjs.org/nouislider/-/nouislider-14.6.2.tgz", + "integrity": "sha512-/lJeqJBghNAZS3P2VYrHzm1RM6YJPvvC/1wNpGaHBRX+05wpzUDafrW/ohAYp4kjKhRH8+BJ0vkorCHiMmgTMQ==" + }, + "nouislider-react": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nouislider-react/-/nouislider-react-3.3.8.tgz", + "integrity": "sha512-Le0kUs29iaUEdaO3cdZcc7EXteFNpXVuasxz4F8Z520PUI17sJJAoggiScPu+Nz6vMx0o9SgK0v8bMXcePF20A==", + "requires": { + "nouislider": "^14.5.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + } + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "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": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, + "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=", + "dev": true + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "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.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", + "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + } + }, + "object.fromentries": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", + "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + } + } + }, + "optimize-css-assets-webpack-plugin": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz", + "integrity": "sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A==", + "requires": { + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "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" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "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" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "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=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "perfect-scrollbar": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.2.tgz", + "integrity": "sha512-McHAinFkyzKbBZrFtb4MT2mxkehp15KvOX/UrjB8C5EZZXHTHgyETo5IGFYtHRTI2Pb2bsV0OE0YnkjT9Cw3aw==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "postcss-attribute-case-insensitive": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-browser-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz", + "integrity": "sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig==", + "requires": { + "postcss": "^7" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-functional-notation": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", + "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-gray": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", + "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-hex-alpha": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", + "requires": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-rebeccapurple": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", + "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-custom-media": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", + "requires": { + "postcss": "^7.0.14" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-custom-properties": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", + "requires": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-custom-selectors": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", + "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-dir-pseudo-class": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", + "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-double-position-gradients": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", + "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", + "requires": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-env-function": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", + "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-flexbugs-fixes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz", + "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==", + "requires": { + "postcss": "^7.0.26" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-focus-visible": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", + "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-focus-within": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", + "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-font-variant": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", + "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-gap-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-image-set-function": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", + "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-initial": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz", + "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-lab-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", + "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-logical": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-media-minmax": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", + "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "requires": { + "postcss": "^7.0.5" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-8.0.1.tgz", + "integrity": "sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ==", + "requires": { + "@csstools/normalize.css": "^10.1.0", + "browserslist": "^4.6.2", + "postcss": "^7.0.17", + "postcss-browser-comments": "^3.0.0", + "sanitize.css": "^10.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-overflow-shorthand": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", + "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-page-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", + "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-place": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-preset-env": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", + "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", + "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": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-pseudo-class-any-link": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", + "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-replace-overflow-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-rtl": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/postcss-rtl/-/postcss-rtl-1.5.0.tgz", + "integrity": "sha512-7uQeaMBhAlnu7xgytvTocojFKp08W4FND/xE/ajj/J6ABOGhdDF1mLGzaRrC5/u/Sr71BEUi13xgvs2j8U16AA==", + "requires": { + "rtlcss": "^2.4.0" + } + }, + "postcss-safe-parser": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-5.0.2.tgz", + "integrity": "sha512-jDUfCPJbKOABhwpUKcqCVbbXiloe/QXMcbJ6Iipf3sDIihEzTqRCeMBfRaOHxhBuTYqtASrI1KJWxzztZU4qUQ==", + "requires": { + "postcss": "^8.1.0" + }, + "dependencies": { + "nanoid": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + }, + "postcss": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", + "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" + } + } + } + }, + "postcss-selector-matches": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-not": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", + "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "preact": { + "version": "10.5.14", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.5.14.tgz", + "integrity": "sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" + }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + } + } + }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" + }, + "prismjs": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.19.0.tgz", + "integrity": "sha512-IVFtbW9mCWm9eOIaEkNyo2Vl4NnEifis2GQ7/MLRG5TQe6t+4Sj9J5QWI9i3v+SS43uZBlCAOn+zYTVYQcPXJw==", + "requires": { + "clipboard": "^2.0.0" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "prompts": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", + "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "proper-lockfile": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-2.0.1.tgz", + "integrity": "sha1-FZ+wYZPTIAP0s2kd0uwaY0qoDR0=", + "requires": { + "graceful-fs": "^4.1.2", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" + } + } + }, + "property-expr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.4.tgz", + "integrity": "sha512-sFPkHQjVKheDNnPvotjQmm3KD3uk1fWKUN7CrpdbwmUx3CrG3QiM8QpTSimvig5vTXmTvjz7+TDvXOI9+4rkcg==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "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", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "qs-stringify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/qs-stringify/-/qs-stringify-1.2.1.tgz", + "integrity": "sha512-2N5xGLGZUxpgAYq1fD1LmBSCbxQVsXYt5JU0nU3FuPWO8PlCnKNFQwXkZgyB6mrTdg7IbexX4wxIR403dJw9pw==" + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "raf-schd": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", + "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "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.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + } + } + }, + "react": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", + "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-apexcharts": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.3.6.tgz", + "integrity": "sha512-ahpMOnuw1ZdD3/fkk9MYRLpqYQ66cZz72+he1R00HaT1VcSjfYc9editQDhE2jGRDuxubmaxVcO3z4FtAk5N0w==", + "requires": { + "prop-types": "^15.5.7" + } + }, + "react-app-polyfill": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-2.0.0.tgz", + "integrity": "sha512-0sF4ny9v/B7s6aoehwze9vJNWcmCemAUYBVasscVr92+UYiEqDXOxfKjXN685mDaMRNF3WdhHQs76oTODMocFA==", + "requires": { + "core-js": "^3.6.5", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "whatwg-fetch": "^3.4.1" + }, + "dependencies": { + "core-js": { + "version": "3.16.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.16.4.tgz", + "integrity": "sha512-Tq4GVE6XCjE+hcyW6hPy0ofN3hwtLudz5ZRdrlCnsnD/xkm/PWQRudzYHiKgZKUcefV6Q57fhDHjZHJP5dpfSg==" + }, + "promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "requires": { + "asap": "~2.0.6" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + } + } + }, + "react-app-rewire-aliases": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/react-app-rewire-aliases/-/react-app-rewire-aliases-0.2.0.tgz", + "integrity": "sha1-71/8AJnuwFJ5lJ+rjUmDwVVqHB4=", + "dev": true + }, + "react-app-rewire-postcss": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/react-app-rewire-postcss/-/react-app-rewire-postcss-3.0.2.tgz", + "integrity": "sha512-sGjIIzQ4sQE8r2ZeSCokf+hKLxOr5i8J0iAlg0kxwXRdy6bDrPa345EMdYPPzUZQxnZgZIsFL+QyMWtJHulEDg==", + "dev": true, + "requires": { + "postcss-loader": "^3.0.0" + } + }, + "react-app-rewire-sass-rule": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-app-rewire-sass-rule/-/react-app-rewire-sass-rule-2.2.1.tgz", + "integrity": "sha512-vvm8MO2UD31WAaon3EpqI0CWTBCJNzHKTYRWLf4jjXpZyiPql2XUI+Gfd8mFnIcA4Str98Xrtd5VxCzF4X0j0Q==", + "dev": true, + "requires": { + "node-sass": "^4.9.0", + "sass-loader": "^7.0.3" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "sass-loader": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", + "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^6.3.0" + } + } + } + }, + "react-app-rewired": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/react-app-rewired/-/react-app-rewired-2.1.8.tgz", + "integrity": "sha512-wjXPdKPLscA7mn0I1de1NHrbfWdXz4S1ladaGgHVKdn1hTgKK5N6EdGIJM0KrS6bKnJBj7WuqJroDTsPKKr66Q==", + "dev": true, + "requires": { + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "react-chartjs-2": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-2.9.0.tgz", + "integrity": "sha512-IYwqUUnQRAJ9SNA978vxulHJTcUFTJk2LDVfbAyk0TnJFZZG7+6U/2flsE4MCw6WCbBjTTypy8T82Ch7XrPtRw==", + "requires": { + "lodash": "^4.17.4", + "prop-types": "^15.5.8" + } + }, + "react-contexify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-contexify/-/react-contexify-5.0.0.tgz", + "integrity": "sha512-2FIp7lxJ6dtfGr8EZ4uVV5p5TQjd0n2h/JU7PrejNIMiCeZWvSVPFh4lj1ZvjXosglBvP7q5JQQ8yUCdSaMSaw==", + "requires": { + "clsx": "^1.1.1" + } + }, + "react-copy-to-clipboard": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz", + "integrity": "sha512-/2t5mLMMPuN5GmdXo6TebFa8IoFxZ+KTDDqYhcDm0PhkgEzSxVvIX26G20s1EB02A4h2UZgwtfymZ3lGJm0OLg==", + "requires": { + "copy-to-clipboard": "^3", + "prop-types": "^15.5.8" + } + }, + "react-country-flag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/react-country-flag/-/react-country-flag-2.0.1.tgz", + "integrity": "sha512-cZQp+MTQUfSkI++ypDJU6PNgNU2K6Z/9htO4ct4HzvWAs19DoMbnvhzyK31lkBnW1vfx9OkMwskxuaYbEcFjLw==" + }, + "react-data-table-component": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/react-data-table-component/-/react-data-table-component-6.11.2.tgz", + "integrity": "sha512-xoaTVTX4svgY3norL707GSUZJ5Q0FRZ1g2QY5oI5soiNtGMor9yGTXjnMq6mDmL9A4a7lmA+4xntoEEMJMcIvA==", + "requires": { + "deepmerge": "^4.2.2", + "lodash.orderby": "^4.6.0", + "shortid": "^2.2.15" + } + }, + "react-dev-utils": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.4.tgz", + "integrity": "sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==", + "requires": { + "@babel/code-frame": "7.10.4", + "address": "1.1.2", + "browserslist": "4.14.2", + "chalk": "2.4.2", + "cross-spawn": "7.0.3", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "2.0.0", + "filesize": "6.1.0", + "find-up": "4.1.0", + "fork-ts-checker-webpack-plugin": "4.1.6", + "global-modules": "2.0.0", + "globby": "11.0.1", + "gzip-size": "5.1.1", + "immer": "8.0.1", + "is-root": "2.1.0", + "loader-utils": "2.0.0", + "open": "^7.0.2", + "pkg-up": "3.1.0", + "prompts": "2.4.0", + "react-error-overlay": "^6.0.9", + "recursive-readdir": "2.2.2", + "shell-quote": "1.7.2", + "strip-ansi": "6.0.0", + "text-table": "0.2.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "browserslist": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz", + "integrity": "sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==", + "requires": { + "caniuse-lite": "^1.0.30001125", + "electron-to-chromium": "^1.3.564", + "escalade": "^3.0.2", + "node-releases": "^1.1.61" + } + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "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" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + } + } + } + } + }, + "react-dom": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", + "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.1" + } + }, + "react-draft-wysiwyg": { + "version": "1.14.5", + "resolved": "https://registry.npmjs.org/react-draft-wysiwyg/-/react-draft-wysiwyg-1.14.5.tgz", + "integrity": "sha512-utbJEs91757QXYoBwKRb/4kB3JdswLlj0heUiAeXs/OxZAUISJXxLMFLBIixRlIcUnNkwxOsMikRshDMtWIS3g==", + "requires": { + "classnames": "^2.2.6", + "draftjs-utils": "^0.10.2", + "html-to-draftjs": "^1.5.0", + "linkify-it": "^2.2.0", + "prop-types": "^15.7.2" + } + }, + "react-error-overlay": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", + "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==" + }, + "react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" + }, + "react-feather": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/react-feather/-/react-feather-2.0.9.tgz", + "integrity": "sha512-yMfCGRkZdXwIs23Zw/zIWCJO3m3tlaUvtHiXlW+3FH7cIT6fiK1iJ7RJWugXq7Fso8ZaQyUm92/GOOHXvkiVUw==", + "requires": { + "prop-types": "^15.7.2" + } + }, + "react-flatpickr": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/react-flatpickr/-/react-flatpickr-3.9.1.tgz", + "integrity": "sha512-g3FdnrYfFWOj/cWuPwHhYigpchu8GwAJvUzxUrba20dhrAdW1+dwAQxE+3aGe6eFYhYlTosVYTP8XAefnn5kxg==", + "requires": { + "flatpickr": "^4.5.7", + "prop-types": "^15.5.10" + } + }, + "react-hook-form": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-6.15.1.tgz", + "integrity": "sha512-bL0LQuQ3OlM3JYfbacKtBPLOHhmgYz8Lj6ivMrvu2M6e1wnt4sbGRtPEPYCc/8z3WDbjrMwfAfLX92OsB65pFA==" + }, + "react-input-autosize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-3.0.0.tgz", + "integrity": "sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg==", + "requires": { + "prop-types": "^15.5.8" + } + }, + "react-intl": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-3.11.0.tgz", + "integrity": "sha512-W5kc9uCkNRjw4ijZ9cBts5VDtK2DkILKZ1WpqmvVLHZ6EIHMFZkhFs6LQJurN+2msdROfB59gc5K1z8kM0u6/w==", + "requires": { + "@formatjs/intl-listformat": "^1.3.7", + "@formatjs/intl-relativetimeformat": "^4.5.7", + "@formatjs/intl-unified-numberformat": "^3.0.4", + "@formatjs/intl-utils": "^2.0.4", + "@formatjs/macro": "^0.2.6", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/invariant": "^2.2.31", + "hoist-non-react-statics": "^3.3.1", + "intl-format-cache": "^4.2.19", + "intl-locales-supported": "^1.8.4", + "intl-messageformat": "^7.8.2", + "intl-messageformat-parser": "^3.6.2", + "shallow-equal": "^1.2.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-leaflet": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-3.1.0.tgz", + "integrity": "sha512-kdZS8NYbYFPmkQr7zSDR2gkKGFeWvkxqoqcmZEckzHL4d5c85dJ2gbbqhaPDpmWWgaRw9O29uA/77qpKmK4mTQ==", + "requires": { + "@react-leaflet/core": "^1.0.2" + } + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-paginate": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/react-paginate/-/react-paginate-7.0.0.tgz", + "integrity": "sha512-mzPwHGJfSs79JBGX2V0v/FfQp3yWdz0XRrB9JvsUbJdsxqCt4osk1O669+K8VPQ0Lh9v0lJsnLLoJwnsgdJFng==", + "requires": { + "prop-types": "^15.6.1" + } + }, + "react-perfect-scrollbar": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/react-perfect-scrollbar/-/react-perfect-scrollbar-1.5.5.tgz", + "integrity": "sha512-EDJxB57iGF1d3bhMtO9YKTYEutiSEM2RdQRA3bm9fNxG5W5oR7nFtmMaCzsWwW72VMuRufpyLkcgdm2D2gejSQ==", + "requires": { + "perfect-scrollbar": "^1.5.0", + "prop-types": "^15.6.1" + } + }, + "react-player": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/react-player/-/react-player-2.6.2.tgz", + "integrity": "sha512-Wi9DynNSVgddKxac5OzsH0Upk6VRYssvLLGgCRw6vsjzqMX6S5N26WDRNYnLaHykxFNtpPSDc53fXDe52hMaCg==", + "requires": { + "deepmerge": "^4.0.0", + "load-script": "^1.0.0", + "memoize-one": "^5.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.0.1" + } + }, + "react-popper": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.11.tgz", + "integrity": "sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg==", + "requires": { + "@babel/runtime": "^7.1.2", + "@hypnosphi/create-react-context": "^0.3.1", + "deep-equal": "^1.1.1", + "popper.js": "^1.14.4", + "prop-types": "^15.6.1", + "typed-styles": "^0.0.7", + "warning": "^4.0.2" + } + }, + "react-rating": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/react-rating/-/react-rating-2.0.5.tgz", + "integrity": "sha512-uldxgLCe5bzqGX7V+7/bPgQQj2Kok6eiMgTMxjKOhfhnQkFLDlc4TjMlp7gaJFAHWdbiOnqpiShI7z8as6oWtg==", + "requires": { + "@types/lodash": "^4.14.105", + "@types/react": "^16.0.40" + }, + "dependencies": { + "@types/react": { + "version": "16.14.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.14.tgz", + "integrity": "sha512-uwIWDYW8LznHzEMJl7ag9St1RsK0gw/xaFZ5+uI1ZM1HndwUgmPH3/wQkSb87GkOVg7shUxnpNW8DcN0AzvG5Q==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + } + } + }, + "react-redux": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.2.tgz", + "integrity": "sha512-8+CQ1EvIVFkYL/vu6Olo7JFLWop1qRUeb46sGtIMDCSpgwPQq8fPLpirIB0iTqFe9XYEFPHssdX8/UwN6pAkEA==", + "requires": { + "@babel/runtime": "^7.12.1", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^16.13.1" + } + }, + "react-refresh": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", + "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" + }, + "react-resize-detector": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-5.2.0.tgz", + "integrity": "sha512-PQAc03J2eyhvaiWgEdQ8+bKbbyGJzLEr70KuivBd1IEmP/iewNakLUMkxm6MWnDqsRPty85pioyg8MvGb0qC8A==", + "requires": { + "lodash": "^4.17.20", + "prop-types": "^15.7.2", + "raf-schd": "^4.0.2", + "resize-observer-polyfill": "^1.5.1" + } + }, + "react-router": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", + "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + } + } + }, + "react-router-dom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", + "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + } + } + }, + "react-scripts": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-4.0.2.tgz", + "integrity": "sha512-okaWNaGDGtnXyM2CLMUl8gYZnAubgxEulC40FYjsxn5bbj+G/mDINdy24wHz4Vypb/LWtIe8rdBU78k/74v8Mw==", + "requires": { + "@babel/core": "7.12.3", + "@pmmmwh/react-refresh-webpack-plugin": "0.4.3", + "@svgr/webpack": "5.5.0", + "@typescript-eslint/eslint-plugin": "^4.5.0", + "@typescript-eslint/parser": "^4.5.0", + "babel-eslint": "^10.1.0", + "babel-jest": "^26.6.0", + "babel-loader": "8.1.0", + "babel-plugin-named-asset-import": "^0.3.7", + "babel-preset-react-app": "^10.0.0", + "bfj": "^7.0.2", + "camelcase": "^6.1.0", + "case-sensitive-paths-webpack-plugin": "2.3.0", + "css-loader": "4.3.0", + "dotenv": "8.2.0", + "dotenv-expand": "5.1.0", + "eslint": "^7.11.0", + "eslint-config-react-app": "^6.0.0", + "eslint-plugin-flowtype": "^5.2.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jest": "^24.1.0", + "eslint-plugin-jsx-a11y": "^6.3.1", + "eslint-plugin-react": "^7.21.5", + "eslint-plugin-react-hooks": "^4.2.0", + "eslint-plugin-testing-library": "^3.9.2", + "eslint-webpack-plugin": "^2.1.0", + "file-loader": "6.1.1", + "fs-extra": "^9.0.1", + "fsevents": "^2.1.3", + "html-webpack-plugin": "4.5.0", + "identity-obj-proxy": "3.0.0", + "jest": "26.6.0", + "jest-circus": "26.6.0", + "jest-resolve": "26.6.0", + "jest-watch-typeahead": "0.6.1", + "mini-css-extract-plugin": "0.11.3", + "optimize-css-assets-webpack-plugin": "5.0.4", + "pnp-webpack-plugin": "1.6.4", + "postcss-flexbugs-fixes": "4.2.1", + "postcss-loader": "3.0.0", + "postcss-normalize": "8.0.1", + "postcss-preset-env": "6.7.0", + "postcss-safe-parser": "5.0.2", + "prompts": "2.4.0", + "react-app-polyfill": "^2.0.0", + "react-dev-utils": "^11.0.2", + "react-refresh": "^0.8.3", + "resolve": "1.18.1", + "resolve-url-loader": "^3.1.2", + "sass-loader": "^10.0.5", + "semver": "7.3.2", + "style-loader": "1.3.0", + "terser-webpack-plugin": "4.2.3", + "ts-pnp": "1.2.0", + "url-loader": "4.1.1", + "webpack": "4.44.2", + "webpack-dev-server": "3.11.0", + "webpack-manifest-plugin": "2.2.0", + "workbox-webpack-plugin": "5.1.4" + }, + "dependencies": { + "@babel/core": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "sass-loader": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.2.0.tgz", + "integrity": "sha512-kUceLzC1gIHz0zNJPpqRsJyisWatGYNFRmv2CKZK2/ngMJgLqxTbXwe/hJ85luyvZkgqU3VlJ33UVF2T/0g6mw==", + "requires": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "webpack": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", + "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + } + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "react-scroll-up": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/react-scroll-up/-/react-scroll-up-1.3.7.tgz", + "integrity": "sha512-STijjW7R/cc2+6GswZzcBb73sQgtQP5IZnSIeJlKGb2I1WDyc1bl5dbHuPeklDY0OAf3opV2DUHXDYhItZe/cw==", + "requires": { + "detect-passive-events": "^2.0.2", + "object-assign": "^4.0.1", + "prop-types": "^15.5.8", + "tween-functions": "^1.1.0" + } + }, + "react-select": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-4.0.2.tgz", + "integrity": "sha512-BiihrRpRIBBvNqofNZIBpo08Kw8DBHb/kgpIDW4bxgkttk50Sxf0alEIKobns3U7UJXk/CA4rsFUueQEg9Pm5A==", + "requires": { + "@babel/runtime": "^7.4.4", + "@emotion/cache": "^11.0.0", + "@emotion/css": "^11.0.0", + "@emotion/react": "^11.1.1", + "memoize-one": "^5.0.0", + "prop-types": "^15.6.0", + "react-input-autosize": "^3.0.0", + "react-transition-group": "^4.3.0" + } + }, + "react-shepherd": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/react-shepherd/-/react-shepherd-3.3.0.tgz", + "integrity": "sha512-w9ulB7ILt+uNJpRQmLsdBZSS600UkquDcToOsWGg2xv52FgcbMkGAIFtHAx7beXha/Pu6FFHy0SM67ZqUGWAxA==", + "requires": { + "shepherd.js": "^8.0.0" + } + }, + "react-slidedown": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/react-slidedown/-/react-slidedown-2.4.5.tgz", + "integrity": "sha512-zFDhgqQ1ZLfRr+rQA7p+13OTT/+zUR/+3v3JnwrnXPM8R+1KHhuTNseYHU8jYN3QfxjJXtqve0rgbWCBiFkpiw==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "react-smooth": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-1.0.6.tgz", + "integrity": "sha512-B2vL4trGpNSMSOzFiAul9kFAsxTukL9Wyy9EXtkQy3GJr6sZqW9e1nShdVOJ3hRYamPZ94O17r3Q0bjSw3UYtg==", + "requires": { + "lodash": "~4.17.4", + "prop-types": "^15.6.0", + "raf": "^3.4.0", + "react-transition-group": "^2.5.0" + }, + "dependencies": { + "dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + } + } + }, + "react-sortablejs": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/react-sortablejs/-/react-sortablejs-6.0.0.tgz", + "integrity": "sha512-vzi+TWOnofcYg+dYnC/Iz/ZZkBGG76uM6KaLwuAqBk0349JQxIy3PZizbK0TJdLlK6NnLt4CiEyyQXSSnVYvEw==", + "requires": { + "classnames": "^2.2.6", + "tiny-invariant": "^1.1.0" + } + }, + "react-toastify": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-7.0.3.tgz", + "integrity": "sha512-cxZ5rfurC8LzcZQMTYc8RHIkQTs+BFur18Pzk6Loz6uS8OXUWm6nXVlH/wqglz4Z7UAE8xxcF5mRjfE13487uQ==", + "requires": { + "clsx": "^1.1.1" + } + }, + "react-transition-group": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, + "reactstrap": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/reactstrap/-/reactstrap-8.6.0.tgz", + "integrity": "sha512-03/UMbLPR6MhVStVUfCLuKh8xh4JOtNVkRxDB9/uHixN+cEQPOpSYa0K69YyK1/2YdZBs2qS6y0cQkK8NQKBHA==", + "requires": { + "@babel/runtime": "^7.2.0", + "classnames": "^2.2.3", + "prop-types": "^15.5.8", + "react-popper": "^1.3.6", + "react-transition-group": "^2.3.1" + }, + "dependencies": { + "dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + } + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "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.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "recharts": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.0.4.tgz", + "integrity": "sha512-XwFRhyOW6APMKvrCqN8e1IPHAQi7lmrOqp48LKi40NFI8WjFWHgTaTfwBBMsGCnTJSezJEEd/41L3bo/tfevkw==", + "requires": { + "classnames": "^2.2.5", + "d3-interpolate": "^2.0.1", + "d3-scale": "^3.2.3", + "d3-shape": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.19", + "react-resize-detector": "^5.2.0", + "react-smooth": "^1.0.6", + "recharts-scale": "^0.4.2", + "reduce-css-calc": "^2.1.7" + } + }, + "recharts-scale": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", + "requires": { + "decimal.js-light": "^2.4.1" + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "requires": { + "minimatch": "3.0.4" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + } + } + }, + "reduce-css-calc": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", + "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", + "requires": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "redux": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", + "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", + "requires": { + "loose-envify": "^1.4.0", + "symbol-observable": "^1.2.0" + } + }, + "redux-debounced": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/redux-debounced/-/redux-debounced-0.5.0.tgz", + "integrity": "sha512-O2anhB0A6yQZH19uLETFtajcUQLcyiJcgC0hHSoFr5T3hWGtt0C5s6KNnb2RX51MwCh5VCl9ehZTv91F/rsZww==" + }, + "redux-thunk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", + "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "regjsparser": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "css-select": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", + "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.0.0", + "domhandler": "^4.2.0", + "domutils": "^2.6.0", + "nth-check": "^2.0.0" + } + }, + "css-what": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", + "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "nth-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", + "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "requires": { + "boolbase": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "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": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "resolve": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "requires": { + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "resolve-url-loader": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.4.tgz", + "integrity": "sha512-D3sQ04o0eeQEySLrcz4DsX3saHfsr8/N6tfhblxgZKXxMT2Louargg12oGNfoTRLV09GXhVUe5/qgA5vdgNigg==", + "requires": { + "adjust-sourcemap-loader": "3.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.36", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=" + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=" + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", + "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", + "requires": { + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" + } + }, + "rollup-plugin-babel": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz", + "integrity": "sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-plugin-terser": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz", + "integrity": "sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==", + "requires": { + "@babel/code-frame": "^7.5.5", + "jest-worker": "^24.9.0", + "rollup-pluginutils": "^2.8.2", + "serialize-javascript": "^4.0.0", + "terser": "^4.6.2" + }, + "dependencies": { + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==" + } + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" + }, + "rtlcss": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-2.6.2.tgz", + "integrity": "sha512-06LFAr+GAPo+BvaynsXRfoYTJvSaWRyOhURCQ7aeI1MKph9meM222F+Zkt3bDamyHHJuGi3VPtiRkpyswmQbGA==", + "requires": { + "@choojs/findup": "^0.2.1", + "chalk": "^2.4.2", + "mkdirp": "^0.5.1", + "postcss": "^6.0.23", + "strip-json-comments": "^2.0.0" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "sanitize.css": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-10.0.0.tgz", + "integrity": "sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg==" + }, + "sass": { + "version": "1.26.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.8.tgz", + "integrity": "sha512-yvtzyrKLGiXQu7H12ekXqsfoGT/aTKeMDyVzCB675k1HYuaj0py63i8Uf4SI9CHXj6apDhpfwbUr3gGOjdpu2Q==", + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "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.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "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" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "sass-loader": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", + "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", + "semver": "^6.3.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "screenfull": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.0.2.tgz", + "integrity": "sha512-cCF2b+L/mnEiORLN5xSAz6H3t18i2oHh9BA8+CQlAh5DRw2+NFAGQJOSYbcGw8B2k04g/lVvFcfZ83b3ysH5UQ==" + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "optional": true + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "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.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "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.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "optional": true + }, + "shepherd.js": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/shepherd.js/-/shepherd.js-8.3.1.tgz", + "integrity": "sha512-IhxZNhnK2m/pNTXudNfYrcwvcZNWkeYngQbQee8nC3xJ2GjeIatGqivhdZAMZ+LeogZvKMakB931d/V534uhrw==", + "requires": { + "@popperjs/core": "^2.9.2", + "deepmerge": "^4.2.2", + "smoothscroll-polyfill": "^0.4.4" + } + }, + "shortid": { + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/shortid/-/shortid-2.2.16.tgz", + "integrity": "sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==", + "requires": { + "nanoid": "^2.1.0" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "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.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, + "smoothscroll-polyfill": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz", + "integrity": "sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg==" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "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.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "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.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io-client": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz", + "integrity": "sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==", + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.3.1", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "socket.io-parser": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", + "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", + "requires": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "sortablejs": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.12.0.tgz", + "integrity": "sha512-bPn57rCjBRlt2sC24RBsu40wZsmLkSo2XeqG8k6DC1zru5eObQUIPPZAQG7W2SJ8FZQYq+BEJmvuw1Zxb3chqg==" + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "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.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "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.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "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.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "ssf": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.3.tgz", + "integrity": "sha512-pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w==", + "requires": { + "frac": "~1.1.2" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "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" + } + }, + "ssr-window": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", + "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } + }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.matchall": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", + "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "dependencies": { + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + } + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-comments": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", + "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", + "requires": { + "babel-extract-comments": "^1.0.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "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=" + }, + "style-loader": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz", + "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + } + }, + "styled-components": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.1.1.tgz", + "integrity": "sha512-1ps8ZAYu2Husx+Vz8D+MvXwEwvMwFv+hqqUwhNlDN5ybg6A+3xyW1ECrAgywhvXapNfXiz79jJyU0x22z0FFTg==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "stylis": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz", + "integrity": "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "requires": { + "svg.js": "^2.0.1" + } + }, + "svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=", + "requires": { + "svg.js": ">=2.3.x" + } + }, + "svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=", + "requires": { + "svg.js": "^2.2.5" + } + }, + "svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + }, + "svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "requires": { + "svg.js": "^2.4.0" + } + }, + "svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "requires": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "dependencies": { + "svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "requires": { + "svg.js": "^2.2.5" + } + } + } + }, + "svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "requires": { + "svg.js": "^2.6.5" + } + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "sweetalert2": { + "version": "10.14.0", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-10.14.0.tgz", + "integrity": "sha512-EBUh4k9qyRRsttm9X9j7WUhLExetvTJpcbp1VTMJCpuI2UwHLesXMIw9M+UeuqBywv0UjNMR5PKH7Qnv65m8rw==" + }, + "sweetalert2-react-content": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sweetalert2-react-content/-/sweetalert2-react-content-3.0.1.tgz", + "integrity": "sha512-VBybIRTIzY2bTkUddcp2wMJ3mp3gfGGX6+BfW2dDrEv6bXM2WtzJpFkM2imFpcPhpkOIf2/J8gLxEu0jBZq0DQ==" + }, + "swiper": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-6.0.4.tgz", + "integrity": "sha512-D+DBxgg81+uocgsvhmdzrpr4GHzhAt2yImArqzunrC80y7+/yCEAq/EJw1VASD+CBFNacF4F8FEIqJMLyDFM0g==", + "requires": { + "dom7": "^3.0.0-alpha.7", + "ssr-window": "^3.0.0-alpha.4" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "table": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "requires": { + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "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" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=" + }, + "tempy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", + "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", + "requires": { + "temp-dir": "^1.0.0", + "type-fest": "^0.3.1", + "unique-string": "^1.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" + } + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "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.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "terser": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", + "integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "optional": true + }, + "tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "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.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=" + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "requires": { + "punycode": "^2.1.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==" + }, + "tsconfig-paths": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", + "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", + "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.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tus-js-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tus-js-client/-/tus-js-client-2.3.0.tgz", + "integrity": "sha512-I4cSwm6N5qxqCmBqenvutwSHe9ntf81lLrtf6BmLpG2v4wTl89atCQKqGgqvkodE6Lx+iKIjMbaXmfvStTg01g==", + "requires": { + "buffer-from": "^0.1.1", + "combine-errors": "^3.0.3", + "is-stream": "^2.0.0", + "js-base64": "^2.6.1", + "lodash.throttle": "^4.1.1", + "proper-lockfile": "^2.0.1", + "url-parse": "^1.4.3" + }, + "dependencies": { + "buffer-from": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-0.1.2.tgz", + "integrity": "sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + } + } + }, + "tween-functions": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz", + "integrity": "sha1-GuOlDnxguz3vd06scHrLynO7w/8=" + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-styles": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", + "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "ua-parser-js": { + "version": "0.7.28", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", + "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==" + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "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.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "uppy": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/uppy/-/uppy-1.21.2.tgz", + "integrity": "sha512-4qkdvtMiVysDjb3p+BoEA9G8wVjXg8Hs2F3IiPzWOArbIfKB2pJf8QhdNgg9o6RuKZeq4wx2ynzk+KP1h6nEtQ==", + "requires": { + "@uppy/aws-s3": "^1.7.0", + "@uppy/aws-s3-multipart": "^1.8.6", + "@uppy/companion-client": "^1.5.4", + "@uppy/core": "^1.13.2", + "@uppy/dashboard": "^1.12.8", + "@uppy/drag-drop": "^1.4.19", + "@uppy/dropbox": "^1.4.16", + "@uppy/facebook": "^1.1.16", + "@uppy/file-input": "^1.4.17", + "@uppy/form": "^1.3.20", + "@uppy/golden-retriever": "^1.3.19", + "@uppy/google-drive": "^1.5.16", + "@uppy/informer": "^1.5.11", + "@uppy/instagram": "^1.4.16", + "@uppy/onedrive": "^1.1.16", + "@uppy/progress-bar": "^1.3.19", + "@uppy/provider-views": "^1.7.7", + "@uppy/redux-dev-tools": "^1.3.5", + "@uppy/screen-capture": "^1.0.8", + "@uppy/status-bar": "^1.7.6", + "@uppy/store-default": "^1.2.4", + "@uppy/store-redux": "^1.2.4", + "@uppy/thumbnail-generator": "^1.6.7", + "@uppy/transloadit": "^1.6.11", + "@uppy/tus": "^1.7.7", + "@uppy/url": "^1.5.11", + "@uppy/webcam": "^1.7.0", + "@uppy/xhr-upload": "^1.6.4" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-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.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + } + } + }, + "url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "requires": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "url-parse": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + }, + "v8-to-istanbul": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", + "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-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" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "requires": { + "makeerror": "1.0.x" + } + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "optional": 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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "optional": 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.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "optional": 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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "optional": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "optional": 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" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "webpack": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", + "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.1", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" + } + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "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.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.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": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "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" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "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.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "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.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "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" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "webpack-manifest-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz", + "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==", + "requires": { + "fs-extra": "^7.0.0", + "lodash": ">=3.5 <5", + "object.entries": "^1.1.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "requires": { + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "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.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "wildcard": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-1.1.2.tgz", + "integrity": "sha1-pwIEUwhNjNLv5wup02liY94XEKU=" + }, + "wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" + }, + "wnumb": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/wnumb/-/wnumb-1.2.0.tgz", + "integrity": "sha512-eYut5K/dW7usfk/Mwm6nxBNoTPp/uP7PlXld+hhg7lDtHLdHFnNclywGYM9BRC7Ohd4JhwuHg+vmOUGfd3NhVA==" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "workbox-background-sync": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-5.1.4.tgz", + "integrity": "sha512-AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-broadcast-update": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-5.1.4.tgz", + "integrity": "sha512-HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-build": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-5.1.4.tgz", + "integrity": "sha512-xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow==", + "requires": { + "@babel/core": "^7.8.4", + "@babel/preset-env": "^7.8.4", + "@babel/runtime": "^7.8.4", + "@hapi/joi": "^15.1.0", + "@rollup/plugin-node-resolve": "^7.1.1", + "@rollup/plugin-replace": "^2.3.1", + "@surma/rollup-plugin-off-main-thread": "^1.1.1", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.6", + "lodash.template": "^4.5.0", + "pretty-bytes": "^5.3.0", + "rollup": "^1.31.1", + "rollup-plugin-babel": "^4.3.3", + "rollup-plugin-terser": "^5.3.1", + "source-map": "^0.7.3", + "source-map-url": "^0.4.0", + "stringify-object": "^3.3.0", + "strip-comments": "^1.0.2", + "tempy": "^0.3.0", + "upath": "^1.2.0", + "workbox-background-sync": "^5.1.4", + "workbox-broadcast-update": "^5.1.4", + "workbox-cacheable-response": "^5.1.4", + "workbox-core": "^5.1.4", + "workbox-expiration": "^5.1.4", + "workbox-google-analytics": "^5.1.4", + "workbox-navigation-preload": "^5.1.4", + "workbox-precaching": "^5.1.4", + "workbox-range-requests": "^5.1.4", + "workbox-routing": "^5.1.4", + "workbox-strategies": "^5.1.4", + "workbox-streams": "^5.1.4", + "workbox-sw": "^5.1.4", + "workbox-window": "^5.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "workbox-cacheable-response": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz", + "integrity": "sha512-0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-core": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-5.1.4.tgz", + "integrity": "sha512-+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg==" + }, + "workbox-expiration": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-5.1.4.tgz", + "integrity": "sha512-oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-google-analytics": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz", + "integrity": "sha512-0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA==", + "requires": { + "workbox-background-sync": "^5.1.4", + "workbox-core": "^5.1.4", + "workbox-routing": "^5.1.4", + "workbox-strategies": "^5.1.4" + } + }, + "workbox-navigation-preload": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz", + "integrity": "sha512-Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-precaching": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-5.1.4.tgz", + "integrity": "sha512-gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-range-requests": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz", + "integrity": "sha512-1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-routing": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-5.1.4.tgz", + "integrity": "sha512-8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-strategies": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-5.1.4.tgz", + "integrity": "sha512-VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA==", + "requires": { + "workbox-core": "^5.1.4", + "workbox-routing": "^5.1.4" + } + }, + "workbox-streams": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-5.1.4.tgz", + "integrity": "sha512-xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw==", + "requires": { + "workbox-core": "^5.1.4", + "workbox-routing": "^5.1.4" + } + }, + "workbox-sw": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-5.1.4.tgz", + "integrity": "sha512-9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA==" + }, + "workbox-webpack-plugin": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-5.1.4.tgz", + "integrity": "sha512-PZafF4HpugZndqISi3rZ4ZK4A4DxO8rAqt2FwRptgsDx7NF8TVKP86/huHquUsRjMGQllsNdn4FNl8CD/UvKmQ==", + "requires": { + "@babel/runtime": "^7.5.5", + "fast-json-stable-stringify": "^2.0.0", + "source-map-url": "^0.4.0", + "upath": "^1.1.2", + "webpack-sources": "^1.3.0", + "workbox-build": "^5.1.4" + } + }, + "workbox-window": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-5.1.4.tgz", + "integrity": "sha512-vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "requires": { + "errno": "~0.1.7" + } + }, + "worker-rpc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", + "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", + "requires": { + "microevent.ts": "~0.1.1" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.4.tgz", + "integrity": "sha512-zP9z6GXm6zC27YtspwH99T3qTG7bBFv2VIkeHstMLrLlDJuzA7tQ5ls3OJ1hOGGCzTQPniNJoHXIAOS0Jljohg==" + }, + "xlsx": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.16.2.tgz", + "integrity": "sha512-XTqOy7YpCUtGbvCYaCh1t1RsZ/y8cSCbZCOYtqqZ4/EmHkyv+/ghxmCvvR8yc4Tn5fhny+3j7voKwJaRlffNKA==", + "requires": { + "adler-32": "~1.2.0", + "cfb": "^1.1.4", + "codepage": "~1.14.0", + "commander": "~2.17.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "ssf": "~0.10.3", + "wmf": "~1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + } + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "xmlhttprequest-ssl": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", + "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "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.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + } + } + }, + "yarn": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.21.1.tgz", + "integrity": "sha512-dQgmJv676X/NQczpbiDtc2hsE/pppGDJAzwlRiADMTvFzYbdxPj2WO4PcNyriSt2c4jsCMpt8UFRKHUozt21GQ==" + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "yup": { + "version": "0.32.8", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.8.tgz", + "integrity": "sha512-SZulv5FIZ9d5H99EN5tRCRPXL0eyoYxWIP1AacCrjC9d4DfP13J1dROdKGfpfRHT3eQB6/ikBl5jG21smAfCkA==", + "requires": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.11", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5809f7a --- /dev/null +++ b/package.json @@ -0,0 +1,121 @@ +{ + "name": "vuexy-react-admin-dashboard", + "version": "6.4.0", + "private": true, + "dependencies": { + "@casl/ability": "5.2.2", + "@casl/react": "2.1.1", + "@fullcalendar/core": "5.7.2", + "@fullcalendar/daygrid": "5.7.2", + "@fullcalendar/interaction": "5.7.2", + "@fullcalendar/list": "5.7.2", + "@fullcalendar/react": "5.7.0", + "@fullcalendar/timegrid": "5.7.2", + "@fullcalendar/timeline": "5.7.2", + "@hookform/resolvers": "1.3.4", + "@uppy/react": "1.10.8", + "animate.css": "4.1.1", + "apexcharts": "3.23.0", + "availity-reactstrap-validation-safe": "2.6.1", + "axios": "0.21.1", + "axios-mock-adapter": "1.19.0", + "babel-plugin-react-intl": "5.1.18", + "bootstrap": "4.5.2", + "bs-stepper": "1.7.0", + "chart.js": "2.9.4", + "chroma-js": "2.1.0", + "classnames": "2.2.6", + "cleave.js": "1.6.0", + "draft-js": "0.11.7", + "draftjs-to-html": "0.9.1", + "file-saver": "2.0.2", + "flatpickr": "4.6.3", + "history": "5.0.0", + "html-to-draftjs": "1.5.0", + "intl-messageformat": "7.8.4", + "jquery": "3.5.1", + "jsonwebtoken": "8.5.1", + "leaflet": "1.6.0", + "moment": "2.29.1", + "nouislider": "14.6.2", + "nouislider-react": "3.3.8", + "postcss-rtl": "1.5.0", + "prismjs": "1.19.0", + "prop-types": "15.7.2", + "react": "17.0.1", + "react-apexcharts": "1.3.6", + "react-chartjs-2": "2.9.0", + "react-contexify": "5.0.0", + "react-copy-to-clipboard": "5.0.2", + "react-country-flag": "2.0.1", + "react-data-table-component": "6.11.2", + "react-dom": "17.0.1", + "react-draft-wysiwyg": "1.14.5", + "react-feather": "~2.0.3", + "react-flatpickr": "3.9.1", + "react-hook-form": "6.15.1", + "react-intl": "3.11.0", + "react-leaflet": "3.1.0", + "react-paginate": "7.0.0", + "react-perfect-scrollbar": "1.5.5", + "react-player": "2.6.2", + "react-rating": "2.0.5", + "react-redux": "7.2.2", + "react-router-dom": "5.2.0", + "react-scripts": "4.0.2", + "react-scroll-up": "1.3.7", + "react-select": "4.0.2", + "react-shepherd": "3.3.0", + "react-slidedown": "2.4.5", + "react-sortablejs": "6.0.0", + "react-toastify": "7.0.3", + "react-treeview": "^0.4.7", + "reactstrap": "8.6.0", + "recharts": "2.0.4", + "redux": "4.0.5", + "redux-debounced": "0.5.0", + "redux-thunk": "2.3.0", + "sass": "1.26.8", + "screenfull": "5.0.2", + "sortablejs": "1.12.0", + "styled-components": "5.1.1", + "sweetalert2": "10.14.0", + "sweetalert2-react-content": "3.0.1", + "swiper": "6.0.4", + "uppy": "1.21.2", + "webpack": "4.43.0", + "wnumb": "1.2.0", + "xlsx": "0.16.2", + "yarn": "1.21.1", + "yup": "0.32.8" + }, + "scripts": { + "start": "react-app-rewired start", + "build": "react-app-rewired build", + "test": "react-app-rewired test", + "eject": "react-app-rewired eject", + "lint": "eslint src/**/*.js src/**/*.jsx", + "lint:fix": "eslint src/**/*.js --fix" + }, + "eslintConfig": { + "extends": "react-app" + }, + "devDependencies": { + "@types/sortablejs": "^1.10.6", + "eslint": "^7.8.0", + "eslint-plugin-import": "^2.22.0", + "eslint-plugin-react": "^7.20.6", + "node-sass": "^4.13.1", + "react-app-rewire-aliases": "^0.2.0", + "react-app-rewire-postcss": "^3.0.2", + "react-app-rewire-sass-rule": "^2.1.1", + "react-app-rewired": "^2.1.6", + "sass-loader": "^8.0.2" + }, + "browserslist": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "homepage": "" +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..a11777c Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..5e9846d --- /dev/null +++ b/public/index.html @@ -0,0 +1,42 @@ + + + + + + + + + + + + + Vuexy - React Admin Dashboard Template + + +
+ + + diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..1f2f141 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/src/@core/assets/data/locales/de.json b/src/@core/assets/data/locales/de.json new file mode 100644 index 0000000..cf027f3 --- /dev/null +++ b/src/@core/assets/data/locales/de.json @@ -0,0 +1,181 @@ +{ + "Dashboards": "Instrumententafel", + "Analytics": "Analytics", + "eCommerce": "eCommerce", + "Apps": "Apps", + "Email": "Email", + "Chat": "Plaudern", + "Todo": "Machen", + "Calendar": "Kalandar", + "Ecommerce": "E-Commerce", + "Shop": "Geschäft", + "Wish List": "Wunschzettel", + "Details": "Einzelheiten", + "Checkout": "Auschecken", + "User": "Benutzerin", + "List": "Liste", + "View": "Aussicht", + "Edit": "Bearbeiten", + "Starter Kit": "Starter Kit", + "1 Column": "1 Spalte", + "2 Columns": "2 Spalten", + "Fixed Navbar": "Feste Navigationsleiste", + "Floating Navbar": "Schwimmende Navigationsleiste", + "Fixed Layout": "Festes Layout", + "Static Layout": "Statisches Layout", + "Dark Layout": "Dunkles Layout", + "Light Layout": "Helles Layout", + "Content": "Inhalt", + "Grid": "Gitter", + "Typography": "Typografie", + "Text Utilities": "Textdienstprogramme", + "Syntax Highlighter": "Syntax Textmarker", + "Helper Classes": "Hilfsklassen", + "Colors": "Farben", + "Icons": "Icons", + "Feather": "Feder", + "UI Elements": "UI-Elemente", + "Card": "Karte", + "Basic": "Basic", + "Advance": "Voraus", + "Statistics": "Statistiken", + "Actions": "Kartenaktionen", + "Table": "Tabelle", + "Reactstrap Tables": "Reactstrap Tabelles", + "React Tables": "React Tabelles", + "DataTable": "Datentabelle", + "Advanced": "Fortgeschrittene", + "Mail Template": "Mail-Vorlage", + "Page Layouts": "Seitenlayouts", + "Collapsed Menu": "Reduziertes Menü", + "Layout Boxed": "Layout Boxed", + "Without Menu": "Ohne Menü", + "Layout Empty": "Layout leer", + "Layout Blank": "Layout leer", + "Components": "Komponenten", + "Alerts": "Warnungen", + "Buttons": "Tasten", + "Breadcrumbs": "Semmelbrösel", + "Carousel": "Karussell", + "Collapse": "Zusammenbruch", + "Dropdowns": "Dropdowns", + "List Group": "Listengruppe", + "Modals": "Modals", + "Pagination": "Seitennummerierung", + "Navs Component": "Navs-Komponente", + "Navbar": "Navbar", + "Tabs Component": "Registerkarten-Komponente", + "Pills Component": "Pillenkomponente", + "Tooltips": "Tooltips", + "Popovers": "Popovers", + "Badges": "Abzeichen", + "Pill Badges": "Pillenabzeichen", + "Progress": "Fortschritt", + "Media Objects": "Medienobjekte", + "Spinner": "Spinner", + "Toasts": "Toast", + "Timeline": "Zeitleiste", + "Extra Components": "Zusätzliche Komponenten", + "Avatar": "Benutzerbild", + "Chips": "Chips", + "Divider": "Teiler", + "Wizard": "Magier", + "Forms & Tables": "Formulare und Tabellen", + "Form Elements": "Formularelemente", + "Select": "Wählen", + "Switch": "Schalter", + "Checkbox": "Kontrollkästchen", + "Radio": "Radio", + "Input": "Eingang", + "Input Groups": "Eingabegruppen", + "Number Input": "Zahleneingabe", + "Textarea": "Textarea", + "Date & Time Picker": "Datums- und Uhrzeitauswahl", + "Input Mask": "Eingabemaske", + "Form Layout": "Formularlayout", + "Form Wizard": "Formzauberer", + "Form Validation": "Formularvalidierung", + "React Hook Form": "React Hook Form", + "Pages": "Seiten", + "Authentication": "Authentifizierung", + "Login v1": "Einloggen v1", + "Login v2": "Einloggen v2", + "Register v1": "Registrieren v1", + "Register v2": "Registrieren v2", + "Forgot Password v1": "Passwort vergessen v1", + "Forgot Password v2": "Passwort vergessen v2", + "Reset Password v1": "Passwort zurücksetzen v1", + "Reset Password v2": "Passwort zurücksetzen v2", + "Coming Soon": "Demnächst", + "Error": "Error", + "Not Authorized": "Nicht berechtigt", + "Maintenance": "Instandhaltung", + "Profile": "Profil", + "Account Settings": "Account Einstellungen", + "Tree": "Baum", + "Miscellaneous": "Sonstiges", + "FAQ": "FAQ", + "Knowledge Base": "Wissensbasis", + "Search": "Suche", + "Invoice": "Rechnung", + "Charts & Maps": "Karten & Pläne", + "Charts": "Diagramme", + "Apex": "Apex", + "ChartJS": "ChartJS", + "Recharts": "Recharts", + "Leaflet Maps": "Leaflet Maps", + "Extensions": "Erweiterungen", + "Sweet Alert": "Süßer Alarm", + "Toastr": "Toastr", + "Sliders": "Schieberegler", + "File Uploader": "Datei-Uploader", + "Editor": "Editor", + "Drag & Drop": "Ziehen und loslassen", + "Tour": "Tour", + "Auto Complete": "Automatisch vervollständigen", + "Clipboard": "Zwischenablage", + "React Player": "Reagieren Player", + "Context Menu": "Kontextmenü", + "Swiper": "Swiper", + "I18n": "I18n", + "React Paginate": "Paginieren reagieren", + "Export": "Export", + "Import": "Importieren", + "Export Selected": "Ausgewählte exportieren", + "Access Control": "Zugangskontrolle", + "Others": "Andere", + "Menu Levels": "Menüebenen", + "Second Level": "zweites Level", + "Second Level 2.1": "zweites Level 2.1", + "Second Level 2.2": "zweites Level 2.2", + "Third Level": "Drittes Level", + "Third Level 3.1": "Drittes Level 3.1", + "Third Level 3.2": "Drittes Level 2.2", + "Disabled Menu": "Deaktiviertes Menü", + "Documentation": "Dokumentation", + "Raise Support": "Unterstützung erhöhen", + "Change Log": "Änderungsprotokoll", + "text": "Kuchen Sesam Snaps Cupcake Lebkuchen dänisch Ich liebe Lebkuchen. Apfelkuchen Jujubes Chupa Chups Muffin Halvah Lutscher. Schokoladenkuchen-Haferkuchen-Tiramisumarzipanzuckerpflaume. Donut süße Torte Haferkuchen Dragée Obstkuchen Zuckerwatte Zitronentropfen.", + "Pricing": "Preisgestaltung", + "Blog": "Blog", + "Detail": "Einzelheiten", + "Form Repeater": "Form Repeater", + "Preview": "Vorschau", + "Add": "Hinzufügen", + "Ratings": "Bewertungen", + "show": "show", + "entries": "einträge", + "search": "suche", + "Prev": "Zurück", + "Next": "Nächster", + "BlockUI": "BlockUI", + "Reactstrap": "Reactstrap", + "Welcome": "Herzlich willkommen", + "Reset Password": "Passwort zurücksetzen", + "Verify Email": "E-Mail bestätigen", + "Deactivate Account": "Benutzerkonto deaktivieren", + "Promotional": "Werbung", + "Apps & Pages": "Apps & Seiten", + "User Interface": "Benutzeroberfläche", + "Misc": "Sonstiges" +} diff --git a/src/@core/assets/data/locales/en.json b/src/@core/assets/data/locales/en.json new file mode 100644 index 0000000..8846860 --- /dev/null +++ b/src/@core/assets/data/locales/en.json @@ -0,0 +1,179 @@ +{ + "Dashboards": "Dashboards", + "Analytics": "Analytics", + "Apps": "Apps", + "eCommerce": "eCommerce", + "Email": "Email", + "Chat": "Chat", + "Todo": "Todo", + "Calendar": "Calendar", + "Ecommerce": "Ecommerce", + "Shop": "Shop", + "Wish List": "Wish List", + "Details": "Details", + "Checkout": "Checkout", + "User": "User", + "List": "List", + "View": "View", + "Edit": "Edit", + "Starter Kit": "Starter Kit", + "1 Column": "1 Column", + "2 Columns": "2 Columns", + "Fixed Navbar": "Fixed Navbar", + "Floating Navbar": "Floating Navbar", + "Fixed Layout": "Fixed Layout", + "Static Layout": "Static Layout", + "Dark Layout": "Dark Layout", + "Light Layout": "Light Layout", + "UI Elements": "UI Elements", + "Content": "Content", + "Grid": "Grid", + "Typography": "Typography", + "Text Utilities": "Text Utilities", + "Syntax Highlighter": "Syntax Highlighter", + "Colors": "Colors", + "Icons": "Icons", + "Feather": "Feather", + "Card": "Card", + "Basic": "Basic", + "Advance": "Advance", + "Statistics": "Statistics", + "Actions": "Actions", + "Table": "Table", + "Reactstrap Tables": "Reactstrap Tables", + "React Tables": "React Tables", + "DataTable": "DataTable", + "Advanced": "Advanced", + "Mail Template": "Mail Template", + "Page Layouts": "Page Layouts", + "Collapsed Menu": "Collapsed Menu", + "Layout Boxed": "Layout Boxed", + "Without Menu": "Without Menu", + "Layout Empty": "Layout Empty", + "Layout Blank": "Layout Blank", + "Components": "Components", + "Alerts": "Alerts", + "Buttons": "Buttons", + "Breadcrumbs": "Breadcrumbs", + "Carousel": "Carousel", + "Collapse": "Collapse", + "Dropdowns": "Dropdowns", + "List Group": "List Group", + "Modals": "Modals", + "Pagination": "Pagination", + "Navs Component": "Navs Component", + "Navbar": "Navbar", + "Tabs Component": "Tabs Component", + "Pills Component": "Pills Component", + "Tooltips": "Tooltips", + "Popovers": "Popovers", + "Badges": "Badges", + "Pill Badges": "Pill Badges", + "Progress": "Progress", + "Media Objects": "Media Objects", + "Spinner": "Spinner", + "Toasts": "Toasts", + "Timeline": "Timeline", + "Extra Components": "Extra Components", + "Avatar": "Avatar", + "Chips": "Chips", + "Divider": "Divider", + "Wizard": "Wizard", + "Forms & Tables": "Forms & Tables", + "Form Elements": "Form Elements", + "Select": "Select", + "Switch": "Switch", + "Checkbox": "Checkbox", + "Radio": "Radio", + "Input": "Input", + "Input Groups": "Input Groups", + "Number Input": "Number Input", + "Textarea": "Textarea", + "Date & Time Picker": "Date & Time Picker", + "Input Mask": "Input Mask", + "Form Layout": "Form Layout", + "Form Wizard": "Form Wizard", + "React Hook Form": "React Hook Form", + "Form Validation": "Form Validation", + "Pages": "Pages", + "Authentication": "Authentication", + "Login v1": "Login v1", + "Login v2": "Login v2", + "Register v1": "Register v1", + "Register v2": "Register v2", + "Forgot Password v1": "Forgot Password v1", + "Forgot Password v2": "Forgot Password v2", + "Reset Password v1": "Reset Password v1", + "Reset Password v2": "Reset Password v2", + "Miscellaneous": "Miscellaneous", + "Coming Soon": "Coming Soon", + "Error": "Error", + "Not Authorized": "Not Authorized", + "Maintenance": "Maintenance", + "Extensions": "Extensions", + "Profile": "Profile", + "Account Settings": "Account Settings", + "FAQ": "FAQ", + "Knowledge Base": "Knowledge Base", + "Search": "Search", + "Invoice": "Invoice", + "Charts & Maps": "Charts & Maps", + "Charts": "Charts", + "Apex": "Apex", + "ChartJS": "ChartJS", + "Recharts": "Recharts", + "Leaflet Maps": "Leaflet Maps", + "Sweet Alert": "Sweet Alert", + "Toastr": "Toastr", + "Sliders": "Sliders", + "File Uploader": "File Uploader", + "Editor": "Editor", + "Drag & Drop": "Drag & Drop", + "Tour": "Tour", + "Auto Complete": "Auto Complete", + "Clipboard": "Clipboard", + "React Player": "React Player", + "Swiper": "Swiper", + "Context Menu": "Context Menu", + "Tree": "Tree", + "I18n": "I18n", + "React Paginate": "React Paginate", + "Export": "Export", + "Import": "Import", + "Export Selected": "Export Selected", + "Access Control": "Access Control", + "Others": "Others", + "Menu Levels": "Menu Levels", + "Second Level": "Second Level", + "Second Level 2.1": "Second Level 2.1", + "Second Level 2.2": "Second Level 2.2", + "Third Level 3.1": "Third Level 3.1", + "Third Level 3.2": "Third Level 3.2", + "Disabled Menu": "Disabled Menu", + "Documentation": "Documentation", + "Raise Support": "Raise Support", + "Change Log": "Change Log", + "text": "Cake sesame snaps cupcake gingerbread danish I love gingerbread. Apple pie pie jujubes chupa chups muffin halvah lollipop. Chocolate cake oat cake tiramisu marzipan sugar plum. Donut sweet pie oat cake dragée fruitcake cotton candy lemon drops.", + "Pricing": "Pricing", + "Blog": "Blog", + "Detail": "Detail", + "Form Repeater": "Form Repeater", + "Preview": "Preview", + "Add": "Add", + "Ratings": "Ratings", + "show": "show", + "entries": "entries", + "search": "search", + "Prev": "Prev", + "Next": "Next", + "BlockUI": "BlockUI", + "Reactstrap": "Reactstrap", + "Welcome": "Welcome", + "Reset Password": "Reset Password", + "Verify Email": "Verify Email", + "Deactivate Account": "Deactivate Account", + "Promotional": "Promotional", + "Apps & Pages": "Apps & Pages", + "User Interface": "User Interface", + "Misc": "Misc" +} diff --git a/src/@core/assets/data/locales/fr.json b/src/@core/assets/data/locales/fr.json new file mode 100644 index 0000000..9ea5581 --- /dev/null +++ b/src/@core/assets/data/locales/fr.json @@ -0,0 +1,180 @@ +{ + "Dashboards": "Tableau de bord", + "Analytics": "Analytique", + "Apps": "applications", + "eCommerce": "commerce électronique", + "Email": "Email", + "Chat": "Bavarder", + "Todo": "Faire", + "Calendar": "Calandre", + "Ecommerce": "Commerce électronique", + "Shop": "Boutique", + "Wish List": "Liste de souhaits", + "Details": "Détails", + "User": "Utilisatrice", + "List": "liste", + "View": "Vue", + "Edit": "modifier", + "Checkout": "Check-out", + "Starter Kit": "Kit de démarrage", + "1 Column": "1 colonne", + "2 Columns": "2 colonnes", + "Fixed Navbar": "Barre de navigation fixe", + "Floating Navbar": "Barre de navigation flottante", + "Fixed Layout": "Mise en page fixe", + "Static Layout": "Disposition statique", + "Dark Layout": "Mise en page sombre", + "Light Layout": "Mise en lumière", + "UI Elements": "Éléments d'interface utilisateur", + "Content": "Contenu", + "Grid": "la grille", + "Typography": "Typographie", + "Text Utilities": "Utilitaires de texte", + "Syntax Highlighter": "Surligneur de syntaxe", + "Colors": "Couleurs", + "Icons": "Les icônes", + "Feather": "Plume", + "Card": "Carte", + "Basic": "De base", + "Advance": "Avance", + "Statistics": "Statistiques", + "Actions": "Actions de carte", + "Table": "Table", + "Reactstrap Tables": "Tables de réactstrap", + "React Tables": "Tables de réaction", + "DataTable": "DataTable", + "Advanced": "Avancé", + "Mail Template": "Modèle de courrier", + "Page Layouts": "Mises en page", + "Collapsed Menu": "Menu réduit", + "Layout Boxed": "Disposition encadrée", + "Without Menu": "Sans menu", + "Layout Empty": "Disposition vide", + "Layout Blank": "Mise en page vierge", + "Components": "Composants", + "Alerts": "Les alertes", + "Buttons": "Boutons", + "Breadcrumbs": "Chapelure", + "Carousel": "Carrousel", + "Collapse": "Effondrer", + "Dropdowns": "Des listes déroulantes", + "List Group": "Groupe de liste", + "Modals": "Modaux", + "Pagination": "Pagination", + "Navs Component": "Composante navs", + "Navbar": "Barre de navigation", + "Tabs Component": "Composant Onglets", + "Pills Component": "Composant pilules", + "Tooltips": "Info-bulles", + "Popovers": "popovers", + "Badges": "Insignes", + "Pill Badges": "Insignes de pilule", + "Progress": "Le progrès", + "Media Objects": "Objets multimédia", + "Spinner": "Fileur", + "Toasts": "Toasts", + "Timeline": "Chronologie", + "Extra Components": "Composants Extra", + "Avatar": "Avatar", + "Chips": "chips", + "Divider": "Diviseur", + "Wizard": "sorcier", + "Form Elements": "Éléments de formulaire", + "Forms & Tables": "Formulaires et tableaux", + "Select": "Sélectionner", + "Switch": "Commutateur", + "Checkbox": "Case à cocher", + "Radio": "Radio", + "Input": "Contribution", + "Input Groups": "Groupes d'entrée", + "Number Input": "Nombre d'entrée", + "Textarea": "Textarea", + "Date & Time Picker": "Sélecteur de date et heure", + "Input Mask": "Masque de saisie", + "Form Layout": "Disposition du formulaire", + "Form Wizard": "Assistant de formulaire", + "Form Validation": "Validation de formulaire", + "React Hook Form": "React Hook Form", + "Pages": "Des pages", + "Authentication": "Authentification", + "Login v1": "S'identifier v1", + "Login v2": "S'identifier v2", + "Register v1": "S'inscrire v1", + "Register v2": "S'inscrire v2", + "Forgot Password v1": "Mot de passe oublié v1", + "Forgot Password v2": "Mot de passe oublié v2", + "Reset Password v1": "réinitialiser le mot de passe v1", + "Reset Password v2": "réinitialiser le mot de passe v2", + "Coming Soon": "Arrive bientôt", + "Error": "Erreur", + "Not Authorized": "Pas autorisé", + "Maintenance": "Entretien", + "Profile": "Profil", + "Account Settings": "Paramètres du compte", + "FAQ": "FAQ", + "Knowledge Base": "Base de connaissances", + "Search": "Chercher", + "Invoice": "Facture d'achat", + "Charts & Maps": "Graphiques et cartes", + "Charts": "Graphiques", + "Apex": "Sommet", + "ChartJS": "ChartJS", + "Recharts": "Recharts", + "Leaflet Maps": "Leaflet Maps", + "Extensions": "Les extensions", + "Sweet Alert": "Douce alerte", + "Toastr": "Toastr", + "Sliders": "Curseurs", + "File Uploader": "Chargeur de fichiers", + "Editor": "éditeur", + "Swiper": "Swiper", + "Tree": "Arbre", + "Drag & Drop": "Drag & Drop", + "Tour": "Tour", + "Auto Complete": "+Terminé automatiquement", + "Clipboard": "Presse-papiers", + "React Player": "Réagir multimédia", + "Context Menu": "Menu contextuel", + "Miscellaneous": "Divers", + "I18n": "I18n", + "React Paginate": "Réagir Paginer", + "Export": "Exportation", + "Import": "Importation", + "Export Selected": "Exporter la sélection", + "Access Control": "Contrôle d'accès", + "Others": "Autres", + "Menu Levels": "Niveaux de menu", + "Second Level": "Deuxième niveau", + "Second Level 2.1": "Deuxième niveau 2.1", + "Second Level 2.2": "Deuxième niveau 2.2", + "Third Level": "Troisième niveau", + "Third Level 3.1": "Troisième niveau 3.1", + "Third Level 3.2": "Troisième niveau 3.2", + "Disabled Menu": "Menu désactivé", + "Documentation": "Documentation", + "Raise Support": "Augmenter le soutien", + "Change Log": "Changer le journal", + "text": "Gâteau au sésame s'enclenche petit pain au pain d'épices danois J'adore le pain d'épices. Tarte aux pommes jujubes chupa chups muffin halvah lollipop. Gateau au chocolat gateau d 'avoine tiramisu prune sucre. Donut tarte sucrée gâteau à l'avoine dragée gouttes de fruits gâteau au citron en barbe à papa.", + "Pricing": "Tarification", + "Blog": "Blog", + "Detail": "Détails", + "Form Repeater": "Répétiteur de formulaire", + "Preview": "Aperçu", + "Add": "Ajouter", + "Ratings": "Évaluations", + "show": "spectacle", + "entries": "entrées", + "search": "chercher", + "Prev": "Précédente", + "Next": "Prochain", + "BlockUI": "BlockUI", + "Reactstrap": "Reactstrap", + "Welcome": "Welcome", + "Reset Password": "Réinitialiser le mot de passe", + "Verify Email": "Vérifier l'e-mail", + "Deactivate Account": "Désactiver le compte", + "Promotional": "Promotionnel", + "Apps & Pages": "Applications et pages", + "User Interface": "Interface utilisateur", + "Misc": "Divers" +} diff --git a/src/@core/assets/data/locales/pt.json b/src/@core/assets/data/locales/pt.json new file mode 100644 index 0000000..d8a8a96 --- /dev/null +++ b/src/@core/assets/data/locales/pt.json @@ -0,0 +1,181 @@ +{ + "Dashboards": "painel de controle", + "Analytics": "Analytics", + "eCommerce": "comércio eletrônico", + "Apps": "Apps", + "Email": "O email", + "Chat": "Bate-papo", + "Todo": "Façam", + "Calendar": "Calendário", + "Ecommerce": "Comércio eletrônico", + "Shop": "fazer compras", + "Wish List": "Lista de Desejos", + "Details": "Detalhes", + "Checkout": "Confira", + "User": "Do utilizador", + "List": "Lista", + "View": "Visão", + "Edit": "Editar", + "Starter Kit": "Kit iniciante", + "1 Column": "1 coluna", + "2 Columns": "2 colunas", + "Fixed Navbar": "Navbar fixa", + "Floating Navbar": "Navbar flutuante", + "Fixed Layout": "Layout fixo", + "Static Layout": "Layout estático", + "Dark Layout": "Layout escuro", + "Light Layout": "Layout de luz", + "Content": "Conteúdo", + "Grid": "Grade", + "Typography": "Tipografia", + "Text Utilities": "Utilitários de texto", + "Syntax Highlighter": "Marcador de sintaxe", + "Helper Classes": "Classes Auxiliares", + "Colors": "Cores", + "Icons": "Ícones", + "Feather": "Pena", + "UI Elements": "Elementos da interface do usuário", + "Card": "Cartão", + "Basic": "Basic", + "Advance": "Avançar", + "Statistics": "Estatisticas", + "Actions": "Ações do Cartão", + "Table": "Tabela", + "Reactstrap Tables": "Mesa Reactstrap", + "React Tables": "Mesa React", + "DataTable": "Tabela de dados", + "Advanced": "Avançado", + "Mail Template": "Modelo de Correio", + "Page Layouts": "Layouts de página", + "Collapsed Menu": "Menu recolhido", + "Layout Boxed": "Layout em caixa", + "Without Menu": "Sem Menu", + "Layout Empty": "Layout vazio", + "Layout Blank": "Layout em branco", + "Components": "Componentes", + "Alerts": "Alertas", + "Buttons": "Botões", + "Breadcrumbs": "Pão ralado", + "Carousel": "Carrossel", + "Collapse": "Colapso", + "Dropdowns": "Dropdowns", + "List Group": "Grupo de listas", + "Modals": "Modais", + "Pagination": "Paginação", + "Navs Component": "Componente Navs", + "Navbar": "Navbar", + "Tabs Component": "Componente de guias", + "Pills Component": "Componente de comprimidos", + "Tooltips": "Dicas de ferramentas", + "Popovers": "Popovers", + "Badges": "Distintivos", + "Pill Badges": "Emblemas de pílula", + "Progress": "Progresso", + "Media Objects": "Objetos de Mídia", + "Spinner": "Girador", + "Toasts": "Torradas", + "Timeline": "Linha do tempo", + "Extra Components": "Componentes extras", + "Avatar": "Avatar", + "Chips": "Salgadinhos", + "Divider": "Divisor", + "Wizard": "Mago", + "Form Elements": "Elementos do formulário", + "Forms & Tables": "Formulários e tabelas", + "Select": "Selecione", + "Switch": "Interruptor", + "Checkbox": "Caixa de seleção", + "Radio": "Rádio", + "Input": "Entrada", + "Input Groups": "Grupos de entrada", + "Number Input": "Entrada numérica", + "Textarea": "Textarea", + "Date & Time Picker": "Selecionador de data e hora", + "Input Mask": "Máscara de entrada", + "Form Layout": "Layout do formulário", + "Form Wizard": "Assistente de Formulário", + "Form Validation": "Validação de Formulário", + "React Hook Form": "React Hook Form", + "Pages": "Páginas", + "Authentication": "Autenticação", + "Login v1": "Conecte-se v1", + "Login v2": "Conecte-se v2", + "Register v1": "Registro v1", + "Register v2": "Registro v2", + "Forgot Password v1": "Esqueceu a senha v1", + "Forgot Password v2": "Esqueceu a senha v2", + "Reset Password v1": "Redefinir senha v1", + "Reset Password v2": "Redefinir senha v2", + "Coming Soon": "Em breve", + "Error": "Erro", + "Not Authorized": "Não autorizado", + "Maintenance": "Manutenção", + "Profile": "Perfil", + "FAQ": "Perguntas frequentes", + "Knowledge Base": "Base de Conhecimento", + "Search": "Procurar", + "Account Settings": "Configurações da conta", + "Invoice": "Fatura", + "Swiper": "Swiper", + "Miscellaneous": "Diversas", + "Charts & Maps": "Gráficos e Mapas", + "Charts": "Gráficos", + "Apex": "Ápice", + "ChartJS": "ChartJS", + "Recharts": "Recharts", + "Leaflet Maps": "Leaflet Maps", + "Extensions": "Extensões", + "Sweet Alert": "Alerta Doce", + "Toastr": "Toastr", + "Sliders": "Sliders", + "File Uploader": "Uploader de arquivos", + "Editor": "Editor", + "Tree": "árvore", + "Drag & Drop": "Arraste e solte", + "Tour": "Tour", + "Auto Complete": "Autocompletar", + "Clipboard": "Prancheta", + "React Player": "Reagir de mídia", + "Context Menu": "Menu contextual", + "I18n": "I18n", + "React Paginate": "React Paginate", + "Export": "Exportação", + "Import": "Importar", + "Export Selected": "Exportar selecionado", + "Access Control": "Controle de acesso", + "Others": "Outras", + "Menu Levels": "Níveis de Menu", + "Second Level": "Segundo nível", + "Second Level 2.1": "Segundo nível 2.1", + "Second Level 2.2": "Segundo nível 2.2", + "Third Level": "Terceiro nivel", + "Third Level 3.1": "Terceiro nivel 3.1", + "Third Level 3.2": "Terceiro nivel 3.2", + "Disabled Menu": "Menu desativado", + "Documentation": "Documentação", + "Raise Support": "Levantar Suporte", + "Change Log": "Log de alterações", + "text": "O sésamo do bolo agarra dinamarquês do pão-de-espécie do queque eu amo o pão-de-espécie. Torta de torta de maçã jujuba chupa chups muffin halvah pirulito. Ameixa do açúcar do maçapão do tiramisu do bolo da aveia do bolo de chocolate. Bolo de aveia de torta doce donut dragée fruitcake algodão doce gotas de limão.", + "Pricing": "Preços", + "Blog": "Blog", + "Detail": "Detalhes", + "Form Repeater": "Repetidor de formulários", + "Preview": "Pré-visualização", + "Add": "Adicionar", + "Ratings": "Avaliações", + "show": "mostrar", + "entries": "entradas", + "search": "procurar", + "Prev": "Anterior", + "Next": "Próximo", + "BlockUI": "BlockUI", + "Reactstrap": "Reactstrap", + "Welcome": "Bem-vinda", + "Reset Password": "Redefinir senha", + "Verify Email": "Verificar e-mail", + "Deactivate Account": "Desativar conta", + "Promotional": "Promocional", + "Apps & Pages": "Aplicativos e páginas", + "User Interface": "Interface de usuário", + "Misc": "Misc" +} diff --git a/src/@core/assets/fonts/feather/fonts/feather.eot b/src/@core/assets/fonts/feather/fonts/feather.eot new file mode 100644 index 0000000..58371d9 Binary files /dev/null and b/src/@core/assets/fonts/feather/fonts/feather.eot differ diff --git a/src/@core/assets/fonts/feather/fonts/feather.svg b/src/@core/assets/fonts/feather/fonts/feather.svg new file mode 100644 index 0000000..4be5505 --- /dev/null +++ b/src/@core/assets/fonts/feather/fonts/feather.svg @@ -0,0 +1,849 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/@core/assets/fonts/feather/fonts/feather.ttf b/src/@core/assets/fonts/feather/fonts/feather.ttf new file mode 100644 index 0000000..0b33dac Binary files /dev/null and b/src/@core/assets/fonts/feather/fonts/feather.ttf differ diff --git a/src/@core/assets/fonts/feather/fonts/feather.woff b/src/@core/assets/fonts/feather/fonts/feather.woff new file mode 100644 index 0000000..9b03a72 Binary files /dev/null and b/src/@core/assets/fonts/feather/fonts/feather.woff differ diff --git a/src/@core/assets/fonts/feather/iconfont.css b/src/@core/assets/fonts/feather/iconfont.css new file mode 100644 index 0000000..a3d4aba --- /dev/null +++ b/src/@core/assets/fonts/feather/iconfont.css @@ -0,0 +1,568 @@ + +@font-face { + font-family: "feather"; + src: url('fonts/feather.eot?t=1525787366991'); /* IE9*/ + src: url('fonts/feather.eot?t=1525787366991#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('fonts/feather.woff?t=1525787366991') format('woff'), /* chrome, firefox */ + url('fonts/feather.ttf?t=1525787366991') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ + url('fonts/feather.svg?t=1525787366991#feather') format('svg'); /* iOS 4.1- */ +} + +.feather { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'feather' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-alert-octagon:before { content: "\e81b"; } + +.icon-alert-circle:before { content: "\e81c"; } + +.icon-activity:before { content: "\e81d"; } + +.icon-alert-triangle:before { content: "\e81e"; } + +.icon-align-center:before { content: "\e81f"; } + +.icon-airplay:before { content: "\e820"; } + +.icon-align-justify:before { content: "\e821"; } + +.icon-align-left:before { content: "\e822"; } + +.icon-align-right:before { content: "\e823"; } + +.icon-arrow-down-left:before { content: "\e824"; } + +.icon-arrow-down-right:before { content: "\e825"; } + +.icon-anchor:before { content: "\e826"; } + +.icon-aperture:before { content: "\e827"; } + +.icon-arrow-left:before { content: "\e828"; } + +.icon-arrow-right:before { content: "\e829"; } + +.icon-arrow-down:before { content: "\e82a"; } + +.icon-arrow-up-left:before { content: "\e82b"; } + +.icon-arrow-up-right:before { content: "\e82c"; } + +.icon-arrow-up:before { content: "\e82d"; } + +.icon-award:before { content: "\e82e"; } + +.icon-bar-chart:before { content: "\e82f"; } + +.icon-at-sign:before { content: "\e830"; } + +.icon-bar-chart-2:before { content: "\e831"; } + +.icon-battery-charging:before { content: "\e832"; } + +.icon-bell-off:before { content: "\e833"; } + +.icon-battery:before { content: "\e834"; } + +.icon-bluetooth:before { content: "\e835"; } + +.icon-bell:before { content: "\e836"; } + +.icon-book:before { content: "\e837"; } + +.icon-briefcase:before { content: "\e838"; } + +.icon-camera-off:before { content: "\e839"; } + +.icon-calendar:before { content: "\e83a"; } + +.icon-bookmark:before { content: "\e83b"; } + +.icon-box:before { content: "\e83c"; } + +.icon-camera:before { content: "\e83d"; } + +.icon-check-circle:before { content: "\e83e"; } + +.icon-check:before { content: "\e83f"; } + +.icon-check-square:before { content: "\e840"; } + +.icon-cast:before { content: "\e841"; } + +.icon-chevron-down:before { content: "\e842"; } + +.icon-chevron-left:before { content: "\e843"; } + +.icon-chevron-right:before { content: "\e844"; } + +.icon-chevron-up:before { content: "\e845"; } + +.icon-chevrons-down:before { content: "\e846"; } + +.icon-chevrons-right:before { content: "\e847"; } + +.icon-chevrons-up:before { content: "\e848"; } + +.icon-chevrons-left:before { content: "\e849"; } + +.icon-circle:before { content: "\e84a"; } + +.icon-clipboard:before { content: "\e84b"; } + +.icon-chrome:before { content: "\e84c"; } + +.icon-clock:before { content: "\e84d"; } + +.icon-cloud-lightning:before { content: "\e84e"; } + +.icon-cloud-drizzle:before { content: "\e84f"; } + +.icon-cloud-rain:before { content: "\e850"; } + +.icon-cloud-off:before { content: "\e851"; } + +.icon-codepen:before { content: "\e852"; } + +.icon-cloud-snow:before { content: "\e853"; } + +.icon-compass:before { content: "\e854"; } + +.icon-copy:before { content: "\e855"; } + +.icon-corner-down-right:before { content: "\e856"; } + +.icon-corner-down-left:before { content: "\e857"; } + +.icon-corner-left-down:before { content: "\e858"; } + +.icon-corner-left-up:before { content: "\e859"; } + +.icon-corner-up-left:before { content: "\e85a"; } + +.icon-corner-up-right:before { content: "\e85b"; } + +.icon-corner-right-down:before { content: "\e85c"; } + +.icon-corner-right-up:before { content: "\e85d"; } + +.icon-cpu:before { content: "\e85e"; } + +.icon-credit-card:before { content: "\e85f"; } + +.icon-crosshair:before { content: "\e860"; } + +.icon-disc:before { content: "\e861"; } + +.icon-delete:before { content: "\e862"; } + +.icon-download-cloud:before { content: "\e863"; } + +.icon-download:before { content: "\e864"; } + +.icon-droplet:before { content: "\e865"; } + +.icon-edit-2:before { content: "\e866"; } + +.icon-edit:before { content: "\e867"; } + +.icon-edit-1:before { content: "\e868"; } + +.icon-external-link:before { content: "\e869"; } + +.icon-eye:before { content: "\e86a"; } + +.icon-feather:before { content: "\e86b"; } + +.icon-facebook:before { content: "\e86c"; } + +.icon-file-minus:before { content: "\e86d"; } + +.icon-eye-off:before { content: "\e86e"; } + +.icon-fast-forward:before { content: "\e86f"; } + +.icon-file-text:before { content: "\e870"; } + +.icon-film:before { content: "\e871"; } + +.icon-file:before { content: "\e872"; } + +.icon-file-plus:before { content: "\e873"; } + +.icon-folder:before { content: "\e874"; } + +.icon-filter:before { content: "\e875"; } + +.icon-flag:before { content: "\e876"; } + +.icon-globe:before { content: "\e877"; } + +.icon-grid:before { content: "\e878"; } + +.icon-heart:before { content: "\e879"; } + +.icon-home:before { content: "\e87a"; } + +.icon-github:before { content: "\e87b"; } + +.icon-image:before { content: "\e87c"; } + +.icon-inbox:before { content: "\e87d"; } + +.icon-layers:before { content: "\e87e"; } + +.icon-info:before { content: "\e87f"; } + +.icon-instagram:before { content: "\e880"; } + +.icon-layout:before { content: "\e881"; } + +.icon-link-2:before { content: "\e882"; } + +.icon-life-buoy:before { content: "\e883"; } + +.icon-link:before { content: "\e884"; } + +.icon-log-in:before { content: "\e885"; } + +.icon-list:before { content: "\e886"; } + +.icon-lock:before { content: "\e887"; } + +.icon-log-out:before { content: "\e888"; } + +.icon-loader:before { content: "\e889"; } + +.icon-mail:before { content: "\e88a"; } + +.icon-maximize-2:before { content: "\e88b"; } + +.icon-map:before { content: "\e88c"; } + +.icon-map-pin:before { content: "\e88e"; } + +.icon-menu:before { content: "\e88f"; } + +.icon-message-circle:before { content: "\e890"; } + +.icon-message-square:before { content: "\e891"; } + +.icon-minimize-2:before { content: "\e892"; } + +.icon-mic-off:before { content: "\e893"; } + +.icon-minus-circle:before { content: "\e894"; } + +.icon-mic:before { content: "\e895"; } + +.icon-minus-square:before { content: "\e896"; } + +.icon-minus:before { content: "\e897"; } + +.icon-moon:before { content: "\e898"; } + +.icon-monitor:before { content: "\e899"; } + +.icon-more-vertical:before { content: "\e89a"; } + +.icon-more-horizontal:before { content: "\e89b"; } + +.icon-move:before { content: "\e89c"; } + +.icon-music:before { content: "\e89d"; } + +.icon-navigation-2:before { content: "\e89e"; } + +.icon-navigation:before { content: "\e89f"; } + +.icon-octagon:before { content: "\e8a0"; } + +.icon-package:before { content: "\e8a1"; } + +.icon-pause-circle:before { content: "\e8a2"; } + +.icon-pause:before { content: "\e8a3"; } + +.icon-percent:before { content: "\e8a4"; } + +.icon-phone-call:before { content: "\e8a5"; } + +.icon-phone-forwarded:before { content: "\e8a6"; } + +.icon-phone-missed:before { content: "\e8a7"; } + +.icon-phone-off:before { content: "\e8a8"; } + +.icon-phone-incoming:before { content: "\e8a9"; } + +.icon-phone:before { content: "\e8aa"; } + +.icon-phone-outgoing:before { content: "\e8ab"; } + +.icon-pie-chart:before { content: "\e8ac"; } + +.icon-play-circle:before { content: "\e8ad"; } + +.icon-play:before { content: "\e8ae"; } + +.icon-plus-square:before { content: "\e8af"; } + +.icon-plus-circle:before { content: "\e8b0"; } + +.icon-plus:before { content: "\e8b1"; } + +.icon-pocket:before { content: "\e8b2"; } + +.icon-printer:before { content: "\e8b3"; } + +.icon-power:before { content: "\e8b4"; } + +.icon-radio:before { content: "\e8b5"; } + +.icon-repeat:before { content: "\e8b6"; } + +.icon-refresh-ccw:before { content: "\e8b7"; } + +.icon-rewind:before { content: "\e8b8"; } + +.icon-rotate-ccw:before { content: "\e8b9"; } + +.icon-refresh-cw:before { content: "\e8ba"; } + +.icon-rotate-cw:before { content: "\e8bb"; } + +.icon-save:before { content: "\e8bc"; } + +.icon-search:before { content: "\e8bd"; } + +.icon-server:before { content: "\e8be"; } + +.icon-scissors:before { content: "\e8bf"; } + +.icon-share-2:before { content: "\e8c0"; } + +.icon-share:before { content: "\e8c1"; } + +.icon-shield:before { content: "\e8c2"; } + +.icon-settings:before { content: "\e8c3"; } + +.icon-skip-back:before { content: "\e8c4"; } + +.icon-shuffle:before { content: "\e8c5"; } + +.icon-sidebar:before { content: "\e8c6"; } + +.icon-skip-forward:before { content: "\e8c7"; } + +.icon-slack:before { content: "\e8c8"; } + +.icon-slash:before { content: "\e8c9"; } + +.icon-smartphone:before { content: "\e8ca"; } + +.icon-square:before { content: "\e8cb"; } + +.icon-speaker:before { content: "\e8cc"; } + +.icon-star:before { content: "\e8cd"; } + +.icon-stop-circle:before { content: "\e8ce"; } + +.icon-sun:before { content: "\e8cf"; } + +.icon-sunrise:before { content: "\e8d0"; } + +.icon-tablet:before { content: "\e8d1"; } + +.icon-tag:before { content: "\e8d2"; } + +.icon-sunset:before { content: "\e8d3"; } + +.icon-target:before { content: "\e8d4"; } + +.icon-thermometer:before { content: "\e8d5"; } + +.icon-thumbs-up:before { content: "\e8d6"; } + +.icon-thumbs-down:before { content: "\e8d7"; } + +.icon-toggle-left:before { content: "\e8d8"; } + +.icon-toggle-right:before { content: "\e8d9"; } + +.icon-trash-2:before { content: "\e8da"; } + +.icon-trash:before { content: "\e8db"; } + +.icon-trending-up:before { content: "\e8dc"; } + +.icon-trending-down:before { content: "\e8dd"; } + +.icon-triangle:before { content: "\e8de"; } + +.icon-type:before { content: "\e8df"; } + +.icon-twitter:before { content: "\e8e0"; } + +.icon-upload:before { content: "\e8e1"; } + +.icon-umbrella:before { content: "\e8e2"; } + +.icon-upload-cloud:before { content: "\e8e3"; } + +.icon-unlock:before { content: "\e8e4"; } + +.icon-user-check:before { content: "\e8e5"; } + +.icon-user-minus:before { content: "\e8e6"; } + +.icon-user-plus:before { content: "\e8e7"; } + +.icon-user-x:before { content: "\e8e8"; } + +.icon-user:before { content: "\e8e9"; } + +.icon-users:before { content: "\e8ea"; } + +.icon-video-off:before { content: "\e8eb"; } + +.icon-video:before { content: "\e8ec"; } + +.icon-voicemail:before { content: "\e8ed"; } + +.icon-volume-x:before { content: "\e8ee"; } + +.icon-volume-2:before { content: "\e8ef"; } + +.icon-volume-1:before { content: "\e8f0"; } + +.icon-volume:before { content: "\e8f1"; } + +.icon-watch:before { content: "\e8f2"; } + +.icon-wifi:before { content: "\e8f3"; } + +.icon-x-square:before { content: "\e8f4"; } + +.icon-wind:before { content: "\e8f5"; } + +.icon-x:before { content: "\e8f6"; } + +.icon-x-circle:before { content: "\e8f7"; } + +.icon-zap:before { content: "\e8f8"; } + +.icon-zoom-in:before { content: "\e8f9"; } + +.icon-zoom-out:before { content: "\e8fa"; } + +.icon-command:before { content: "\e8fb"; } + +.icon-cloud:before { content: "\e8fc"; } + +.icon-hash:before { content: "\e8fd"; } + +.icon-headphones:before { content: "\e8fe"; } + +.icon-underline:before { content: "\e8ff"; } + +.icon-italic:before { content: "\e900"; } + +.icon-bold:before { content: "\e901"; } + +.icon-crop:before { content: "\e902"; } + +.icon-help-circle:before { content: "\e903"; } + +.icon-paperclip:before { content: "\e904"; } + +.icon-shopping-cart:before { content: "\e905"; } + +.icon-tv:before { content: "\e906"; } + +.icon-wifi-off:before { content: "\e907"; } + +.icon-minimize:before { content: "\e88d"; } + +.icon-maximize:before { content: "\e908"; } + +.icon-gitlab:before { content: "\e909"; } + +.icon-sliders:before { content: "\e90a"; } + +.icon-star-on:before { content: "\e90b"; } + +.icon-heart-on:before { content: "\e90c"; } + +.icon-archive:before { content: "\e90d"; } + +.icon-arrow-down-circle:before { content: "\e90e"; } + +.icon-arrow-up-circle:before { content: "\e90f"; } + +.icon-arrow-left-circle:before { content: "\e910"; } + +.icon-arrow-right-circle:before { content: "\e911"; } + +.icon-bar-chart-line-:before { content: "\e912"; } + +.icon-bar-chart-line:before { content: "\e913"; } + +.icon-book-open:before { content: "\e914"; } + +.icon-code:before { content: "\e915"; } + +.icon-database:before { content: "\e916"; } + +.icon-dollar-sign:before { content: "\e917"; } + +.icon-folder-plus:before { content: "\e918"; } + +.icon-gift:before { content: "\e919"; } + +.icon-folder-minus:before { content: "\e91a"; } + +.icon-git-commit:before { content: "\e91b"; } + +.icon-git-branch:before { content: "\e91c"; } + +.icon-git-pull-request:before { content: "\e91d"; } + +.icon-git-merge:before { content: "\e91e"; } + +.icon-linkedin:before { content: "\e91f"; } + +.icon-hard-drive:before { content: "\e920"; } + +.icon-more-vertical-:before { content: "\e921"; } + +.icon-more-horizontal-:before { content: "\e922"; } + +.icon-rss:before { content: "\e923"; } + +.icon-send:before { content: "\e924"; } + +.icon-shield-off:before { content: "\e925"; } + +.icon-shopping-bag:before { content: "\e926"; } + +.icon-terminal:before { content: "\e927"; } + +.icon-truck:before { content: "\e928"; } + +.icon-zap-off:before { content: "\e929"; } + +.icon-youtube:before { content: "\e92a"; } diff --git a/src/@core/auth/jwt/jwtDefaultConfig.js b/src/@core/auth/jwt/jwtDefaultConfig.js new file mode 100644 index 0000000..40ed293 --- /dev/null +++ b/src/@core/auth/jwt/jwtDefaultConfig.js @@ -0,0 +1,15 @@ +// ** Auth Endpoints +export default { + loginEndpoint: '/jwt/login', + registerEndpoint: '/jwt/register', + refreshEndpoint: '/jwt/refresh-token', + logoutEndpoint: '/jwt/logout', + + // ** This will be prefixed in authorization header with token + // ? e.g. Authorization: Bearer + tokenType: 'Bearer', + + // ** Value of this property will be used as key to store JWT token in storage + storageTokenKeyName: 'accessToken', + storageRefreshTokenKeyName: 'refreshToken' +} diff --git a/src/@core/auth/jwt/jwtService.js b/src/@core/auth/jwt/jwtService.js new file mode 100644 index 0000000..2ea1018 --- /dev/null +++ b/src/@core/auth/jwt/jwtService.js @@ -0,0 +1,108 @@ +import axios from 'axios' +import jwtDefaultConfig from './jwtDefaultConfig' + +export default class JwtService { + // ** jwtConfig <= Will be used by this service + jwtConfig = { ...jwtDefaultConfig } + + // ** For Refreshing Token + isAlreadyFetchingAccessToken = false + + // ** For Refreshing Token + subscribers = [] + + constructor(jwtOverrideConfig) { + this.jwtConfig = { ...this.jwtConfig, ...jwtOverrideConfig } + + // ** Request Interceptor + axios.interceptors.request.use( + config => { + // ** Get token from localStorage + const accessToken = this.getToken() + + // ** If token is present add it to request's Authorization Header + if (accessToken) { + // ** eslint-disable-next-line no-param-reassign + config.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}` + } + return config + }, + error => Promise.reject(error) + ) + + // ** Add request/response interceptor + axios.interceptors.response.use( + response => response, + error => { + // ** const { config, response: { status } } = error + const { config, response } = error + const originalRequest = config + + // ** if (status === 401) { + if (response && response.status === 401) { + if (!this.isAlreadyFetchingAccessToken) { + this.isAlreadyFetchingAccessToken = true + this.refreshToken().then(r => { + this.isAlreadyFetchingAccessToken = false + + // ** Update accessToken in localStorage + this.setToken(r.data.accessToken) + this.setRefreshToken(r.data.refreshToken) + + this.onAccessTokenFetched(r.data.accessToken) + }) + } + const retryOriginalRequest = new Promise(resolve => { + this.addSubscriber(accessToken => { + // ** Make sure to assign accessToken according to your response. + // ** Check: https://pixinvent.ticksy.com/ticket/2413870 + // ** Change Authorization header + originalRequest.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}` + resolve(this.axios(originalRequest)) + }) + }) + return retryOriginalRequest + } + return Promise.reject(error) + } + ) + } + + onAccessTokenFetched(accessToken) { + this.subscribers = this.subscribers.filter(callback => callback(accessToken)) + } + + addSubscriber(callback) { + this.subscribers.push(callback) + } + + getToken() { + return localStorage.getItem(this.jwtConfig.storageTokenKeyName) + } + + getRefreshToken() { + return localStorage.getItem(this.jwtConfig.storageRefreshTokenKeyName) + } + + setToken(value) { + localStorage.setItem(this.jwtConfig.storageTokenKeyName, value) + } + + setRefreshToken(value) { + localStorage.setItem(this.jwtConfig.storageRefreshTokenKeyName, value) + } + + login(...args) { + return axios.post(this.jwtConfig.loginEndpoint, ...args) + } + + register(...args) { + return axios.post(this.jwtConfig.registerEndpoint, ...args) + } + + refreshToken() { + return axios.post(this.jwtConfig.refreshEndpoint, { + refreshToken: this.getRefreshToken() + }) + } +} diff --git a/src/@core/auth/jwt/useJwt.js b/src/@core/auth/jwt/useJwt.js new file mode 100644 index 0000000..7a0e4be --- /dev/null +++ b/src/@core/auth/jwt/useJwt.js @@ -0,0 +1,11 @@ +// ** JWT Service Import +import JwtService from './jwtService' + +// ** Export Service as useJwt +export default function useJwt(jwtOverrideConfig) { + const jwt = new JwtService(jwtOverrideConfig) + + return { + jwt + } +} diff --git a/src/@core/components/app-collapse/index.js b/src/@core/components/app-collapse/index.js new file mode 100644 index 0000000..f4d6eac --- /dev/null +++ b/src/@core/components/app-collapse/index.js @@ -0,0 +1,120 @@ +// ** React Imports +import { useState } from 'react' + +// ** Third Party Components +import Proptypes from 'prop-types' +import classnames from 'classnames' +import { ChevronUp } from 'react-feather' +import { Collapse, Card, CardHeader, CardBody, CardTitle } from 'reactstrap' + +const AppCollapse = props => { + // ** Props + const { data, type, accordion, active, toggle, titleKey, contentKey, className } = props + + /** + ** If accordion is true then return only one active index else return an Array + */ + const defaultActive = () => { + if (accordion) { + return active + } else { + return [...active] + } + } + + // ** State + const [openCollapse, setOpenCollapse] = useState(defaultActive()) + + // ** Function to handle Collapse Toggle + const handleCollapseToggle = id => { + if (accordion) { + if (id === openCollapse) { + setOpenCollapse(null) + } else { + setOpenCollapse(id) + } + } else { + const arr = openCollapse, + index = arr.indexOf(id) + if (arr.includes(id)) { + arr.splice(index, 1) + setOpenCollapse([...arr]) + } else { + arr.push(id) + setOpenCollapse([...arr]) + } + } + } + + // ** Function to render collapse + const renderData = () => { + return data.map((item, index) => { + const title = titleKey ? item[titleKey] : item.title, + content = contentKey ? item[contentKey] : item.content + + return ( + + handleCollapseToggle(index) + } + : { + onClick: () => handleCollapseToggle(index) + })} + /*eslint-enable */ + > + {title} + + + + {content} + + + ) + }) + } + + return ( +
+ {renderData()} +
+ ) +} + +export default AppCollapse + +// ** PropTypes +AppCollapse.propTypes = { + data: Proptypes.array.isRequired, + accordion: Proptypes.bool, + type: Proptypes.oneOf(['shadow', 'border', 'margin']), + active: Proptypes.oneOfType([Proptypes.array, Proptypes.number]), + titleKey: Proptypes.string, + contentKey: Proptypes.string, + className: Proptypes.string +} + +// ** Default Props +AppCollapse.defaultProps = { + active: [], + toggle: 'click' +} diff --git a/src/@core/components/autocomplete/autocomplete.scss b/src/@core/components/autocomplete/autocomplete.scss new file mode 100644 index 0000000..64395bf --- /dev/null +++ b/src/@core/components/autocomplete/autocomplete.scss @@ -0,0 +1,85 @@ +// Component: Autocomplete +// ======================================================================== + +@import '../../scss/base/bootstrap-extended/include'; +@import '../../scss/base/components/include'; + +$autocomplete-active-color: #f1f1f1; + +.autocomplete-container { + position: relative; + .autocomplete-search { + height: 100%; + width: 100%; + background-color: $white; + &:focus { + box-shadow: none; + } + } + .suggestions-list { + z-index: 998; + list-style: none; + padding-left: 0; + border-radius: 0.5rem; + max-height: 450px; + height: auto; + width: 100%; + position: absolute; + margin-top: 0.5rem; + list-style-type: none; + background-color: $white; + box-shadow: 0 15px 30px 0 rgba(0, 0, 0, 0.11), 0 5px 15px 0 rgba(0, 0, 0, 0.08); + .suggestion-item { + padding: 0.9rem 1rem; + color: $body-color; + line-height: 1 !important; + a { + color: $body-color; + } + &.suggestion-title { + font-size: 0.85rem; + color: $text-muted; + text-transform: uppercase; + letter-spacing: 0.6px; + margin-top: 0.75rem; + margin-bottom: 0; + } + &.active, + &:hover:not(.suggestion-title-wrapper):not(.no-result) { + background-color: $autocomplete-active-color; + color: $body-color; + } + + &:hover:not(.suggestion-title-wrapper):not(.no-result) { + cursor: pointer; + } + } + &.open-up { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.5rem; + } + } +} + +// Dark +.dark-layout { + .autocomplete-container { + .suggestions-list { + background-color: $theme-dark-card-bg; + .suggestion-item { + color: $theme-dark-body-color !important; + &.suggestion-title-wrapper { + color: $theme-dark-text-muted-color; + } + &:not(.suggestion-title-wrapper) { + &.active, + &:hover { + background-color: $theme-dark-body-bg !important; + } + } + } + } + } +} diff --git a/src/@core/components/autocomplete/index.js b/src/@core/components/autocomplete/index.js new file mode 100644 index 0000000..0ec1e8a --- /dev/null +++ b/src/@core/components/autocomplete/index.js @@ -0,0 +1,354 @@ +// ** React Imports +import { Fragment, useEffect, useState, useRef } from 'react' +import ReactDOM from 'react-dom' +import { useHistory } from 'react-router-dom' + +// ** Third Party Components +import PropTypes from 'prop-types' +import classnames from 'classnames' +import { AlertCircle } from 'react-feather' +import PerfectScrollbar from 'react-perfect-scrollbar' + +// ** Custom Hooks +import { useOnClickOutside } from '@hooks/useOnClickOutside' + +// ** Styles +import '@styles/base/bootstrap-extended/_include.scss' +import './autocomplete.scss' + +const Autocomplete = props => { + // ** Refs + const container = useRef(null) + const inputElRef = useRef(null) + const suggestionsListRef = useRef(null) + + // ** States + const [focused, setFocused] = useState(false) + const [activeSuggestion, setActiveSuggestion] = useState(0) + const [showSuggestions, setShowSuggestions] = useState(false) + const [userInput, setUserInput] = useState(props.value ? props.value : '') + + // ** Vars + const history = useHistory() + let filteredData = [] + + // ** Suggestion Item Click Event + const onSuggestionItemClick = (url, e) => { + setActiveSuggestion(0) + setShowSuggestions(false) + setUserInput(filteredData[activeSuggestion][props.filterKey]) + if (url !== undefined && url !== null) { + history.push(url) + } + + if (props.onSuggestionClick) { + props.onSuggestionClick(url, e) + } + } + + // ** Suggestion Hover Event + const onSuggestionItemHover = index => { + setActiveSuggestion(index) + } + + // ** Input On Change Event + const onChange = e => { + const userInput = e.currentTarget.value + setActiveSuggestion(0) + setShowSuggestions(true) + setUserInput(userInput) + if (e.target.value < 1) { + setShowSuggestions(false) + } + } + + // ** Input Click Event + const onInputClick = e => { + e.stopPropagation() + } + + // ** Input's Keydown Event + const onKeyDown = e => { + const filterKey = props.filterKey + const suggestionList = ReactDOM.findDOMNode(suggestionsListRef.current) + + // ** User pressed the up arrow + if (e.keyCode === 38 && activeSuggestion !== 0) { + setActiveSuggestion(activeSuggestion - 1) + + if (e.target.value.length > -1 && suggestionList !== null && activeSuggestion <= filteredData.length / 2) { + suggestionList.scrollTop = 0 + } + } else if (e.keyCode === 40 && activeSuggestion < filteredData.length - 1) { + // ** User pressed the down arrow + setActiveSuggestion(activeSuggestion + 1) + + if (e.target.value.length > -1 && suggestionList !== null && activeSuggestion >= filteredData.length / 2) { + suggestionList.scrollTop = suggestionList.scrollHeight + } + } else if (e.keyCode === 27) { + // ** User Pressed ESC + setShowSuggestions(false) + setUserInput('') + } else if (e.keyCode === 13 && showSuggestions) { + // ** User Pressed ENTER + onSuggestionItemClick(filteredData[activeSuggestion].link, e) + setUserInput(filteredData[activeSuggestion][filterKey]) + setShowSuggestions(false) + } else { + return + } + + // ** Custom Keydown Event + if (props.onKeyDown !== undefined && props.onKeyDown !== null) { + props.onKeyDown(e, userInput) + } + } + + // ** Function To Render Grouped Suggestions + const renderGroupedSuggestion = arr => { + const { filterKey, customRender } = props + + const renderSuggestion = (item, i) => { + if (!customRender) { + const suggestionURL = item.link !== undefined && item.link !== null ? item.link : null + return ( +
  • onSuggestionItemClick(suggestionURL, e)} + onMouseEnter={() => { + onSuggestionItemHover(filteredData.indexOf(item)) + }} + > + {item[filterKey]} +
  • + ) + } else if (customRender) { + return customRender( + item, + i, + filteredData, + activeSuggestion, + onSuggestionItemClick, + onSuggestionItemHover, + userInput + ) + } else { + return null + } + } + + return arr.map((item, i) => { + return renderSuggestion(item, i) + }) + } + + // ** Function To Render Ungrouped Suggestions + const renderUngroupedSuggestions = () => { + const { filterKey, suggestions, customRender, suggestionLimit } = props + + filteredData = [] + const sortSingleData = suggestions + .filter(i => { + const startCondition = i[filterKey].toLowerCase().startsWith(userInput.toLowerCase()), + includeCondition = i[filterKey].toLowerCase().includes(userInput.toLowerCase()) + if (startCondition) { + return startCondition + } else if (!startCondition && includeCondition) { + return includeCondition + } else { + return null + } + }) + .slice(0, suggestionLimit) + filteredData.push(...sortSingleData) + if (sortSingleData.length) { + return sortSingleData.map((suggestion, index) => { + const suggestionURL = suggestion.link !== undefined && suggestion.link !== null ? suggestion.link : null + if (!customRender) { + return ( +
  • onSuggestionItemClick(suggestionURL, e)} + onMouseEnter={() => onSuggestionItemHover(filteredData.indexOf(suggestion))} + > + {suggestion[filterKey]} +
  • + ) + } else if (customRender) { + return customRender( + suggestion, + index, + filteredData, + activeSuggestion, + onSuggestionItemClick, + onSuggestionItemHover, + userInput + ) + } else { + return null + } + }) + } else { + return ( +
  • + No Result +
  • + ) + } + } + + // ** Function To Render Suggestions + const renderSuggestions = () => { + const { filterKey, grouped, filterHeaderKey, suggestions } = props + + // ** Checks if suggestions are grouped or not. + if (grouped === undefined || grouped === null || !grouped) { + return renderUngroupedSuggestions() + } else { + filteredData = [] + return suggestions.map(suggestion => { + const sortData = suggestion.data + .filter(i => { + const startCondition = i[filterKey].toLowerCase().startsWith(userInput.toLowerCase()), + includeCondition = i[filterKey].toLowerCase().includes(userInput.toLowerCase()) + if (startCondition) { + return startCondition + } else if (!startCondition && includeCondition) { + return includeCondition + } else { + return null + } + }) + .slice(0, suggestion.searchLimit) + + filteredData.push(...sortData) + return ( + +
  • +
    {suggestion[filterHeaderKey]}
    +
  • + {sortData.length ? ( + renderGroupedSuggestion(sortData) + ) : ( +
  • + No Result +
  • + )} +
    + ) + }) + } + } + + //** ComponentDidMount + useEffect(() => { + if (props.defaultSuggestions && focused) { + setShowSuggestions(true) + } + }, [focused, props.defaultSuggestions]) + + //** ComponentDidUpdate + useEffect(() => { + const textInput = ReactDOM.findDOMNode(inputElRef.current) + + // ** For searchbar focus + if (textInput !== null && props.autoFocus) { + inputElRef.current.focus() + } + + // ** If user has passed default suggestions & focus then show default suggestions + if (props.defaultSuggestions && focused) { + setShowSuggestions(true) + } + + // ** Function to run on user passed Clear Input + if (props.clearInput) { + props.clearInput(userInput, setUserInput) + } + + // ** Function on Suggestions Shown + if (props.onSuggestionsShown && showSuggestions) { + props.onSuggestionsShown(userInput) + } + }, [setShowSuggestions, focused, userInput, showSuggestions, props]) + + // ** On External Click Close The Search & Call Passed Function + useOnClickOutside(container, () => { + setShowSuggestions(false) + if (props.externalClick) { + props.externalClick() + } + }) + + let suggestionsListComponent + + if (showSuggestions) { + suggestionsListComponent = ( + + {renderSuggestions()} + + ) + } + + return ( +
    + { + onChange(e) + if (props.onChange) { + props.onChange(e) + } + }} + onKeyDown={e => onKeyDown(e)} + value={userInput} + className={`autocomplete-search ${props.className ? props.className : ''}`} + placeholder={props.placeholder} + onClick={onInputClick} + ref={inputElRef} + onFocus={e => setFocused(true)} + autoFocus={props.autoFocus} + onBlur={e => { + if (props.onBlur) props.onBlur(e) + setFocused(false) + }} + /> + {suggestionsListComponent} +
    + ) +} + +export default Autocomplete + +// ** PropTypes +Autocomplete.propTypes = { + suggestions: PropTypes.array.isRequired, + filterKey: PropTypes.string.isRequired, + defaultValue: PropTypes.string, + wrapperClass: PropTypes.string, + filterHeaderKey: PropTypes.string, + placeholder: PropTypes.string, + suggestionLimit: PropTypes.number, + grouped: PropTypes.bool, + autoFocus: PropTypes.bool, + onKeyDown: PropTypes.func, + onChange: PropTypes.func, + onSuggestionsShown: PropTypes.func, + onSuggestionItemClick: PropTypes.func, + clearInput: PropTypes.func, + externalClick: PropTypes.func +} diff --git a/src/@core/components/avatar-group/index.js b/src/@core/components/avatar-group/index.js new file mode 100644 index 0000000..e445689 --- /dev/null +++ b/src/@core/components/avatar-group/index.js @@ -0,0 +1,65 @@ +// ** React Imports +import { Fragment } from 'react' + +// ** Third Party Components +import Proptypes from 'prop-types' +import classnames from 'classnames' +import { UncontrolledTooltip } from 'reactstrap' + +// ** Custom Components +import Avatar from '@components/avatar' + +const AvatarGroup = props => { + // ** Props + const { data, tag, className } = props + + // ** Conditional Tag + const Tag = tag ? tag : 'div' + + // ** Render Data + const renderData = () => { + return data.map((item, i) => { + const ItemTag = item.tag ? item.tag : 'div' + return ( + + {item.title ? ( + + {item.title} + + ) : null} + {!item.meta ? ( + + ) : null} + {item.meta ? {item.meta} : null} + + ) + }) + } + + return ( + + {renderData()} + + ) +} + +export default AvatarGroup + +// ** PropTypes +AvatarGroup.propTypes = { + data: Proptypes.array.isRequired, + tag: Proptypes.oneOfType([Proptypes.func, Proptypes.string]) +} diff --git a/src/@core/components/avatar/index.js b/src/@core/components/avatar/index.js new file mode 100644 index 0000000..e72b7e6 --- /dev/null +++ b/src/@core/components/avatar/index.js @@ -0,0 +1,155 @@ +// ** React Imports +import { forwardRef } from 'react' + +// ** Third Party Components +import Proptypes from 'prop-types' +import { Badge } from 'reactstrap' +import classnames from 'classnames' + +const Avatar = forwardRef((props, ref) => { + // ** Props + const { + color, + className, + imgClassName, + initials, + size, + badgeUp, + content, + icon, + badgeColor, + badgeText, + img, + imgHeight, + imgWidth, + status, + tag: Tag, + contentStyles, + ...rest + } = props + + // ** Function to extract initials from content + const getInitials = str => { + const results = [] + const wordArray = str.split(' ') + wordArray.forEach(e => { + results.push(e[0]) + }) + return results.join('') + } + + return ( + + {img === false || img === undefined ? ( + + {initials ? getInitials(content) : content} + + {icon ? icon : null} + {badgeUp ? ( + + {badgeText ? badgeText : '0'} + + ) : null} + + ) : ( + avatarImg + )} + {status ? ( + + ) : null} + + ) +}) + +export default Avatar + +// ** PropTypes +Avatar.propTypes = { + imgClassName: Proptypes.string, + className: Proptypes.string, + src: Proptypes.string, + tag: Proptypes.oneOfType([Proptypes.func, Proptypes.string]), + badgeUp: Proptypes.bool, + content: Proptypes.string, + icon: Proptypes.node, + contentStyles: Proptypes.object, + badgeText: Proptypes.string, + imgHeight: Proptypes.oneOfType([Proptypes.string, Proptypes.number]), + imgWidth: Proptypes.oneOfType([Proptypes.string, Proptypes.number]), + size: Proptypes.oneOf(['sm', 'lg', 'xl']), + status: Proptypes.oneOf(['online', 'offline', 'away', 'busy']), + badgeColor: Proptypes.oneOf([ + 'primary', + 'secondary', + 'success', + 'danger', + 'info', + 'warning', + 'dark', + 'light-primary', + 'light-secondary', + 'light-success', + 'light-danger', + 'light-info', + 'light-warning', + 'light-dark' + ]), + color: Proptypes.oneOf([ + 'primary', + 'secondary', + 'success', + 'danger', + 'info', + 'warning', + 'dark', + 'light-primary', + 'light-secondary', + 'light-success', + 'light-danger', + 'light-info', + 'light-warning', + 'light-dark' + ]), + initials(props) { + if (props['initials'] && props['content'] === undefined) { + return new Error('content prop is required with initials prop.') + } + if (props['initials'] && typeof props['content'] !== 'string') { + return new Error('content prop must be a string.') + } + if (typeof props['initials'] !== 'boolean' && props['initials'] !== undefined) { + return new Error('initials must be a boolean!') + } + } +} + +// ** Default Props +Avatar.defaultProps = { + tag: 'div' +} diff --git a/src/@core/components/breadcrumbs/index.js b/src/@core/components/breadcrumbs/index.js new file mode 100644 index 0000000..5a37bab --- /dev/null +++ b/src/@core/components/breadcrumbs/index.js @@ -0,0 +1,92 @@ +// ** React Imports +import { Link } from 'react-router-dom' + +// ** Third Party Components +import Proptypes from 'prop-types' +import { Grid, CheckSquare, MessageSquare, Mail, Calendar } from 'react-feather' +import { + Breadcrumb, + BreadcrumbItem, + UncontrolledButtonDropdown, + DropdownMenu, + DropdownItem, + DropdownToggle +} from 'reactstrap' + +const BreadCrumbs = props => { + // ** Props + const { breadCrumbTitle, breadCrumbParent, breadCrumbParent2, breadCrumbParent3, breadCrumbActive } = props + + return ( +
    +
    +
    +
    + {breadCrumbTitle ?

    {breadCrumbTitle}

    : ''} +
    + + + Home + + + {breadCrumbParent} + + {breadCrumbParent2 ? ( + + {breadCrumbParent2} + + ) : ( + '' + )} + {breadCrumbParent3 ? ( + + {breadCrumbParent3} + + ) : ( + '' + )} + + {breadCrumbActive} + + +
    +
    +
    +
    +
    +
    + + + + + + + + Todo + + + + Chat + + + + Email + + + + Calendar + + + +
    +
    +
    + ) +} +export default BreadCrumbs + +// ** PropTypes +BreadCrumbs.propTypes = { + breadCrumbTitle: Proptypes.string.isRequired, + breadCrumbActive: Proptypes.string.isRequired +} diff --git a/src/@core/components/card-actions/index.js b/src/@core/components/card-actions/index.js new file mode 100644 index 0000000..8ab73b6 --- /dev/null +++ b/src/@core/components/card-actions/index.js @@ -0,0 +1,132 @@ +// ** React Imports +import { Fragment, useState, useEffect } from 'react' + +// ** Third Party Components +import PropTypes from 'prop-types' +import classnames from 'classnames' +import UiLoader from '@components/ui-loader' +import { ChevronDown, RotateCw, X } from 'react-feather' +import { Card, CardHeader, CardTitle, Collapse, Spinner } from 'reactstrap' + +const CardActions = props => { + // ** Props + const { title, actions, children, collapseIcon, reloadIcon, removeIcon, endReload } = props + + // ** States + const [reload, setReload] = useState(false) + const [collapse, setCollapse] = useState(true) + const [visibility, setVisibility] = useState(true) + + /** + ** If custom icon is defined then consider that else default icons + */ + const Icons = { + collapse: collapseIcon ? collapseIcon : ChevronDown, + remove: removeIcon ? removeIcon : X, + reload: reloadIcon ? reloadIcon : RotateCw + } + + // ** Action to call + const callAction = action => { + switch (action) { + case 'collapse': + return setCollapse(!collapse) + case 'remove': + return setVisibility(false) + case 'reload': + return setReload(true) + default: + } + } + + // ** Renders card actions + const renderIcons = () => { + /** + ** IF: user passes array of actions then loop through them & render all of the actions + ** ELSE: render single action + */ + + if (Array.isArray(actions)) { + return actions.map((action, i) => { + const Tag = Icons[action] + return ( + callAction(action)} + /> + ) + }) + } else { + const Tag = Icons[actions] + return callAction(actions)} /> + } + } + + // ** Ends reload + const removeReload = () => { + setReload(false) + } + + // ** If user passes endReload function call it. + useEffect(() => { + if (reload) { + endReload(removeReload) + } + }) + + // ** If user passes collapse action then return as Wrapper else return + const CollapseWrapper = actions === 'collapse' || actions.includes('collapse') ? Collapse : Fragment + + // ** If user passes reload action then return as Wrapper else return + const BlockUiWrapper = actions === 'reload' || actions.includes('reload') ? UiLoader : Fragment + + return ( + + + + {title} +
    {renderIcons()}
    +
    + + {children} + +
    +
    + ) +} + +export default CardActions + +// ** PropTypes +CardActions.propTypes = { + title: PropTypes.string.isRequired, + collapseIcon: PropTypes.any, + removeIcon: PropTypes.any, + reloadIcon: PropTypes.any, + actions: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]).isRequired, + endReload(props) { + // ** User passes reload action and doesn't pass endReload then return Error + if ( + (props['actions'] === 'reload' && props['endReload'] === undefined) || + (props['actions'].includes('reload') && props['endReload'] === undefined) + ) { + return new Error('Please provide a function to end reload!') + } + } +} diff --git a/src/@core/components/card-snippet/index.js b/src/@core/components/card-snippet/index.js new file mode 100644 index 0000000..d00288f --- /dev/null +++ b/src/@core/components/card-snippet/index.js @@ -0,0 +1,51 @@ +// ** React Imports +import { Fragment, useState } from 'react' + +// ** Third Party Components +import PropTypes from 'prop-types' +import { Code } from 'react-feather' +import { Card, CardHeader, CardBody, CardTitle, Collapse } from 'reactstrap' + +const CardSnippet = props => { + // ** Props + const { title, children, noBody, code, iconCode } = props + + // ** State + const [isOpen, setIsOpen] = useState(false) + + // ** If user passes custom icon then render that else render default icon + const IconCode = iconCode ? iconCode : + + // ** To toggle collapse + const toggle = () => setIsOpen(!isOpen) + + // ** If user passes noBody then return else return + const Wrapper = noBody ? Fragment : CardBody + + return ( + + + {title} +
    + {IconCode} +
    +
    + {children} + + {code} + +
    + ) +} + +export default CardSnippet + +// ** PropTypes +CardSnippet.propTypes = { + className: PropTypes.string, + title: PropTypes.string.isRequired, + children: PropTypes.any, + code: PropTypes.node, + iconCode: PropTypes.node, + noBody: PropTypes.bool +} diff --git a/src/@core/components/customizer/index.js b/src/@core/components/customizer/index.js new file mode 100644 index 0000000..3893791 --- /dev/null +++ b/src/@core/components/customizer/index.js @@ -0,0 +1,357 @@ +// ** React Imports +import { useState } from 'react' + +// ** Third Party Components +import Select from 'react-select' +import classnames from 'classnames' +import { Settings, X } from 'react-feather' +import { CustomInput, FormGroup } from 'reactstrap' +import PerfectScrollbar from 'react-perfect-scrollbar' +import { selectThemeColors } from '@utils' + +// ** Styles +import '@styles/react/libs/react-select/_react-select.scss' + +const Customizer = props => { + // ** Props + const { + skin, + setSkin, + isRtl, + setIsRtl, + layout, + setLayout, + navbarType, + setNavbarType, + footerType, + setFooterType, + navbarColor, + setNavbarColor, + isHidden, + setIsHidden, + contentWidth, + setContentWidth, + menuCollapsed, + setMenuCollapsed, + transition, + setTransition + } = props + + // ** State + const [openCustomizer, setOpenCustomizer] = useState(false) + + // ** Toggles Customizer + const handleToggle = e => { + e.preventDefault() + setOpenCustomizer(!openCustomizer) + } + + // ** Render Layout Skin Options + const renderSkinsRadio = () => { + const skinsArr = [ + { + name: 'light', + label: 'Light', + checked: skin === 'light' + }, + { + name: 'bordered', + label: 'Bordered', + checked: skin === 'bordered' + }, + { + name: 'dark', + label: 'Dark', + checked: skin === 'dark' + }, + { + name: 'semi-dark', + label: 'Semi Dark', + checked: skin === 'semi-dark' + } + ] + + return skinsArr.map((radio, index) => { + const marginCondition = index !== skinsArr.length - 1 + + if (layout === 'HorizontalLayout' && radio.name === 'semi-dark') { + return null + } + + return ( + setSkin(radio.name)} + className={classnames({ 'mr-1': marginCondition })} + /> + ) + }) + } + + // ** Render Navbar Colors Options + const renderNavbarColors = () => { + const colorsArr = ['white', 'primary', 'secondary', 'success', 'danger', 'info', 'warning', 'dark'] + + return colorsArr.map(color => ( +
  • setNavbarColor(color)} + >
  • + )) + } + + // ** Render Navbar Type Options + const renderNavbarTypeRadio = () => { + const navbarTypeArr = [ + { + name: 'floating', + label: 'Floating', + checked: navbarType === 'floating' + }, + { + name: 'sticky', + label: 'Sticky', + checked: navbarType === 'sticky' + }, + { + name: 'static', + label: 'Static', + checked: navbarType === 'static' + }, + { + name: 'hidden', + label: 'Hidden', + checked: navbarType === 'hidden' + } + ] + + return navbarTypeArr.map((radio, index) => { + const marginCondition = index !== navbarTypeArr.length - 1 + + if (layout === 'HorizontalLayout' && radio.name === 'hidden') { + return null + } + + return ( + setNavbarType(radio.name)} + className={classnames({ 'mr-1': marginCondition })} + /> + ) + }) + } + + // ** Render Footer Type Options + const renderFooterTypeRadio = () => { + const footerTypeArr = [ + { + name: 'sticky', + label: 'Sticky', + checked: footerType === 'sticky' + }, + { + name: 'static', + label: 'Static', + checked: footerType === 'static' + }, + { + name: 'hidden', + label: 'Hidden', + checked: footerType === 'hidden' + } + ] + + return footerTypeArr.map((radio, index) => { + const marginCondition = index !== footerTypeArr.length - 1 + + return ( + setFooterType(radio.name)} + className={classnames({ 'mr-1': marginCondition })} + /> + ) + }) + } + + // ** Router Transition Options + const transitionOptions = [ + { value: 'fadeIn', label: 'Fade' }, + { value: 'fadeInLeft', label: 'Fade In Left' }, + { value: 'zoomIn', label: 'Zoom In' }, + { value: 'none', label: 'None' } + ] + + // ** Get Current Transition + const transitionValue = transitionOptions.find(i => i.value === transition) + + return ( +
    + + + + +
    +

    Theme Customizer

    +

    Customize & Preview in Real Time

    + + + +
    + +
    + +
    + +

    Skin

    +
    {renderSkinsRadio()}
    +
    + + +

    Content Width

    +
    + setContentWidth('full')} + /> + setContentWidth('boxed')} + /> +
    +
    + + +
    +

    RTL

    + setIsRtl(!isRtl)} /> +
    +
    + + +
    +

    Router Transition

    + + setInputVisibility(!inputVisibility)}> + {renderIcon()} + + + + ) +} + +export default InputPasswordToggle + +// ** PropTypes +InputPasswordToggle.propTypes = { + hideIcon: PropTypes.node, + showIcon: PropTypes.node, + visible: PropTypes.bool, + className: PropTypes.string, + placeholder: PropTypes.string, + iconSize: PropTypes.number, + inputClassName: PropTypes.string, + label(props, propName, componentName) { + // ** If label is defined and htmlFor is undefined throw error + if (props[propName] && props['htmlFor'] === 'undefined') { + throw new Error('htmlFor prop is required when label prop is present') + } + }, + htmlFor(props, propName, componentName) { + // ** If htmlFor is defined and label is undefined throw error + if (props[propName] && props['label'] === 'undefined') { + throw new Error('label prop is required when htmlFor prop is present') + } + } +} + +// ** Default Props +InputPasswordToggle.defaultProps = { + visible: false +} diff --git a/src/@core/components/number-input/index.js b/src/@core/components/number-input/index.js new file mode 100644 index 0000000..0e9492b --- /dev/null +++ b/src/@core/components/number-input/index.js @@ -0,0 +1,205 @@ +// ** React Imports +import PropTypes from 'prop-types' +import classnames from 'classnames' +import { Plus, Minus } from 'react-feather' +import { useState, useEffect } from 'react' +import { InputGroup, InputGroupAddon, Input, Button } from 'reactstrap' + +// ** Styles +import './number-input.scss' + +// ** Keycode Vars +const KEYCODE_UP = 38 +const KEYCODE_DOWN = 40 + +const NumberInput = props => { + // ** Props + const { + min, + max, + step, + size, + wrap, + value, + style, + upIcon, + disabled, + readonly, + onChange, + downIcon, + vertical, + className, + onDecrement, + onIncrement, + inputClassName, + ...rest + } = props + + // ** State + const [count, setCount] = useState(value || min) + + // ** Handle btn down click + const handleDecrement = () => { + if (!disabled && !readonly) { + // ** If count is equals or smaller than min then return and do nothing + if (!wrap && count <= min) { + return + } + + // ** Returns the decreased count based on wrap & and min prop + const countCondition = () => { + if (count - step < min) { + if (wrap) { + return max + } else { + return min + } + } else { + return count - step + } + } + + setCount(countCondition()) + + if (onDecrement) { + onIncrement(count) + } + } + } + + // ** Handle btn up click + const handleIncrement = () => { + if (!disabled && !readonly) { + // ** If count is equals or larger than min then return and do nothing + if (!wrap && count >= max) { + return + } + + // ** Returns the Increased count based on wrap & and max prop + const countCondition = () => { + if (count + step > max) { + if (wrap) { + return min + } else { + return max + } + } else { + return count + step + } + } + + setCount(countCondition()) + + if (onIncrement) { + onIncrement(count) + } + } + } + + // ** Handle input change + const handleInputChange = e => { + setCount(Number(e.target.value)) + } + + // ** Handle Arrow Up & Down + const handleKeyDown = e => { + e.preventDefault() + if (!readonly) { + if (e.keyCode === KEYCODE_UP) { + handleIncrement() + } + if (e.keyCode === KEYCODE_DOWN) { + handleDecrement() + } + } + } + + // ** UseEffect based on user passed onChange + useEffect(() => { + if (onChange) { + onChange(count) + } + }, [count]) + + return ( + + + + + + + + + + ) +} + +export default NumberInput + +// ** Default Props +NumberInput.defaultProps = { + min: 1, + step: 1, + wrap: false, + max: Infinity, + disabled: false, + readonly: false, + downIcon: , + upIcon: +} + +// ** PropTypes +NumberInput.propTypes = { + wrap: PropTypes.bool, + min: PropTypes.number, + max: PropTypes.number, + step: PropTypes.number, + value: PropTypes.number, + style: PropTypes.object, + vertical: PropTypes.bool, + disabled: PropTypes.bool, + readonly: PropTypes.bool, + onChange: PropTypes.func, + upIcon: PropTypes.element, + downIcon: PropTypes.element, + className: PropTypes.string, + onDecrement: PropTypes.func, + onIncrement: PropTypes.func, + inputClassName: PropTypes.string, + size: PropTypes.oneOf(['sm', 'lg']) +} diff --git a/src/@core/components/number-input/number-input.scss b/src/@core/components/number-input/number-input.scss new file mode 100644 index 0000000..fe03f79 --- /dev/null +++ b/src/@core/components/number-input/number-input.scss @@ -0,0 +1,153 @@ +// Component: Number Input +// ======================================================================== + +@import '../../scss/base/bootstrap-extended/include'; +@import '../../scss/base/components/include'; + +.number-input { + border-radius: $border-radius; + text-align: center; + border: 1px solid $custom-control-border-color; + overflow: hidden; + + .form-control { + text-align: center; + padding: 0 0.25rem; + border-color: $custom-control-border-color; + + ::-webkit-outer-spin-button, + ::-webkit-inner-spin-button { + margin: 0; + -webkit-appearance: none; + } + -moz-appearance: textfield; + } + + &:focus, + &:active, + &:focus-within { + outline: 0; + box-shadow: none; + border-color: $primary; + + .form-control { + box-shadow: none; + border-color: $custom-control-border-color !important; + } + } + + &:not(.vertical-number-input) { + .form-control { + border-top: 0; + border-bottom: 0; + } + } + + &.disabled, + &.readonly { + &:focus, + &:active, + &:focus-within { + outline: 0; + box-shadow: none; + border-color: $custom-control-border-color; + } + .btn { + background-color: $input-disabled-bg; + opacity: 1; + } + } + + &.vertical-number-input { + display: inline-flex; + flex-direction: column; + width: auto; + max-width: 3rem; + + .input-group-prepend, + .input-group-append { + margin-right: 0; + margin-left: 0; + + .btn { + width: 100%; + } + } + + .input-group-prepend .btn { + border-bottom-left-radius: 0; + border-top-right-radius: $btn-border-radius; + } + + .input-group-append .btn { + border-bottom-left-radius: $btn-border-radius; + border-top-right-radius: 0; + } + + .form-control { + border-left: 0; + border-right: 0; + width: 100%; + padding-left: 0.5rem; + padding-right: 0.5rem; + font-size: 0.85rem; + } + + &-sm { + max-width: 2.5rem; + .form-control { + padding-left: 0.25rem; + padding-right: 0.25rem; + font-size: 0.75rem; + } + } + + &-lg { + max-width: 3.5rem; + .form-control { + font-size: 1rem; + } + } + } +} + +.dark-layout { + .number-input { + border-color: $theme-dark-input-border-color; + + .input-group-prepend, + .input-group-append { + button:not(.disabled) { + svg { + stroke: $theme-dark-body-color; + } + } + } + + &:focus, + &:active, + &:focus-within { + border-color: $primary !important; + + .form-control { + border-color: $theme-dark-input-border-color !important; + } + } + + &:not(.disabled), + &:not(.readonly) { + &:focus, + &:active, + &:focus-within { + border-color: $theme-dark-input-border-color; + } + } + + &.disabled, + &.readonly { + .btn { + background-color: $theme-dark-input-disabled-border-color; + } + } + } +} diff --git a/src/@core/components/repeater/index.js b/src/@core/components/repeater/index.js new file mode 100644 index 0000000..bd893dd --- /dev/null +++ b/src/@core/components/repeater/index.js @@ -0,0 +1,33 @@ +// ** Third Party Components +import PropTypes from 'prop-types' + +const Repeater = props => { + // ** Props + const { count, tag, component, children, ...rest } = props + + // ** Custom Tag + const Tag = tag + + // ** Default Items + const items = [] + + // ** Loop passed count times and push it in items Array + for (let i = 0; i < count; i++) { + items.push(children(i)) + } + + return {items} +} + +// ** PropTypes +Repeater.propTypes = { + count: PropTypes.number.isRequired, + tag: PropTypes.string.isRequired +} + +// ** Default Props +Repeater.defaultProps = { + tag: 'div' +} + +export default Repeater diff --git a/src/@core/components/ripple-button/index.js b/src/@core/components/ripple-button/index.js new file mode 100644 index 0000000..fda6ec1 --- /dev/null +++ b/src/@core/components/ripple-button/index.js @@ -0,0 +1,75 @@ +// ** React Imports +import { useState, useEffect } from 'react' + +// ** Third Party Components +import { Button } from 'reactstrap' +import classnames from 'classnames' + +// ** Styles +import './ripple-button.scss' + +const RippleButton = ({ className, children, onClick, ...rest }) => { + // ** States + const [mounted, setMounted] = useState(false) + const [isRippling, setIsRippling] = useState(false) + const [coords, setCoords] = useState({ x: -1, y: -1 }) + + // ** Toggle mounted on mount & unmount + useEffect(() => { + setMounted(true) + return () => setMounted(false) + }, []) + + // ** Check for coords and set ripple + useEffect(() => { + if (mounted) { + if (coords.x !== -1 && coords.y !== -1) { + setIsRippling(true) + setTimeout(() => setIsRippling(false), 500) + } else { + setIsRippling(false) + } + } + }, [coords]) + + // ** Reset Coords on ripple end + useEffect(() => { + if (mounted) { + if (!isRippling) setCoords({ x: -1, y: -1 }) + } + }, [isRippling]) + + return ( + + ) +} + +// ** PropTypes +RippleButton.propTypes = { + ...Button.propTypes +} + +Button.Ripple = RippleButton diff --git a/src/@core/components/ripple-button/ripple-button.scss b/src/@core/components/ripple-button/ripple-button.scss new file mode 100644 index 0000000..00d4164 --- /dev/null +++ b/src/@core/components/ripple-button/ripple-button.scss @@ -0,0 +1,36 @@ +// Component: Ripple Button +// ======================================================================== + +@import '../../scss/base/bootstrap-extended/include'; +@import '../../scss/base/components/include'; + +.waves-effect { + position: relative; + overflow: hidden; + .waves-ripple { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + opacity: 0; + width: 0; + height: 0; + border-radius: 50%; + background: rgba($color: $white, $alpha: 0.2); + animation: ripple-effect 0.7s ease; + } +} + +@keyframes ripple-effect { + 0% { + opacity: 0; + } + 25% { + opacity: 1; + } + 100% { + width: 200%; + padding-bottom: 200%; + opacity: 0; + } +} diff --git a/src/@core/components/sidebar/index.js b/src/@core/components/sidebar/index.js new file mode 100644 index 0000000..ea78d94 --- /dev/null +++ b/src/@core/components/sidebar/index.js @@ -0,0 +1,89 @@ +// ** Third Party Components +import { X } from 'react-feather' +import Proptypes from 'prop-types' +import classnames from 'classnames' +import { Modal, ModalHeader, ModalBody } from 'reactstrap' + +const Sidebar = props => { + // ** Props + const { + width, + open, + toggleSidebar, + size, + bodyClassName, + contentClassName, + wrapperClassName, + headerClassName, + className, + title, + children, + closeBtn, + ...rest + } = props + + // ** If user passes custom close btn render that else default close btn + const renderCloseBtn = closeBtn ? closeBtn : + + return ( + + +
    + {title} +
    +
    + + {children} + +
    + ) +} + +export default Sidebar + +// ** PropTypes +Sidebar.propTypes = { + title: Proptypes.string.isRequired, + open: Proptypes.bool.isRequired, + toggleSidebar: Proptypes.func.isRequired, + size: Proptypes.oneOf(['sm', 'lg']), + className: Proptypes.string, + bodyClassName: Proptypes.string, + contentClassName: Proptypes.string, + wrapperClassName: Proptypes.string, + children: Proptypes.any.isRequired, + width: Proptypes.oneOfType([Proptypes.number, Proptypes.string]) +} diff --git a/src/@core/components/spinner/Fallback-spinner.js b/src/@core/components/spinner/Fallback-spinner.js new file mode 100644 index 0000000..578d6d7 --- /dev/null +++ b/src/@core/components/spinner/Fallback-spinner.js @@ -0,0 +1,17 @@ +// ** Logo +import logo from '@src/assets/images/logo/logo.png' + +const SpinnerComponent = () => { + return ( +
    + logo +
    +
    +
    +
    +
    +
    + ) +} + +export default SpinnerComponent diff --git a/src/@core/components/spinner/Loading-spinner.js b/src/@core/components/spinner/Loading-spinner.js new file mode 100644 index 0000000..08da3c3 --- /dev/null +++ b/src/@core/components/spinner/Loading-spinner.js @@ -0,0 +1,13 @@ +const ComponentSpinner = () => { + return ( +
    +
    +
    +
    +
    +
    +
    + ) +} + +export default ComponentSpinner diff --git a/src/@core/components/statistics-card/index.js b/src/@core/components/statistics-card/index.js new file mode 100644 index 0000000..668345e --- /dev/null +++ b/src/@core/components/statistics-card/index.js @@ -0,0 +1,52 @@ +// ** Third Party Components +import Proptypes from 'prop-types' +import classnames from 'classnames' +import Chart from 'react-apexcharts' +import { Card, CardBody } from 'reactstrap' + +const StatisticsCards = props => { + // ** Props + const { className, hideChart, iconRight, iconBg, icon, stat, statTitle, options, series, type, height } = props + + return ( + + +
    +
    +
    {icon}
    +
    +
    +
    +

    {stat}

    +

    {statTitle}

    +
    +
    + {!hideChart && } +
    + ) +} +export default StatisticsCards + +// ** PropTypes +StatisticsCards.propTypes = { + className: Proptypes.string, + hideChart: Proptypes.bool, + iconRight: Proptypes.bool, + iconBg: Proptypes.string, + icon: Proptypes.node.isRequired, + stat: Proptypes.string.isRequired, + statTitle: Proptypes.string.isRequired, + options: Proptypes.object, + series: Proptypes.array, + type: Proptypes.string, + height: Proptypes.string +} diff --git a/src/@core/components/timeline/index.js b/src/@core/components/timeline/index.js new file mode 100644 index 0000000..b10ba88 --- /dev/null +++ b/src/@core/components/timeline/index.js @@ -0,0 +1,76 @@ +// ** Third Party Components +import Proptypes from 'prop-types' +import classnames from 'classnames' + +const Timeline = props => { + // ** Props + const { data, tag, className } = props + + // ** Custom Tagg + const Tag = tag ? tag : 'ul' + + return ( + + {data.map((item, i) => { + const ItemTag = item.tag ? item.tag : 'li' + + return ( + + + {item.icon ? item.icon : null} + +
    +
    +
    {item.title}
    + {item.meta ? ( + + {item.meta} + + ) : null} +
    +

    + {item.content} +

    + {item.customContent ? item.customContent : null} +
    +
    + ) + })} +
    + ) +} + +export default Timeline + +// ** PropTypes +Timeline.propTypes = { + data: Proptypes.array.isRequired, + className: Proptypes.string, + tag: Proptypes.string +} diff --git a/src/@core/components/ui-loader/index.js b/src/@core/components/ui-loader/index.js new file mode 100644 index 0000000..1170578 --- /dev/null +++ b/src/@core/components/ui-loader/index.js @@ -0,0 +1,45 @@ +// ** Third Party Components +import { Fragment } from 'react' +import Proptypes from 'prop-types' +import classnames from 'classnames' +import { Spinner } from 'reactstrap' + +import './ui-loader.scss' + +const UILoader = props => { + const { children, blocking, loader, className, tag, overlayColor } = props + + const Tag = tag + + return ( + + {children} + {blocking ? ( + +
    +
    {loader}
    +
    + ) : null} +
    + ) +} + +export default UILoader + +UILoader.defaultProps = { + tag: 'div', + blocking: false, + loader: +} + +UILoader.propTypes = { + tag: Proptypes.string, + loader: Proptypes.any, + className: Proptypes.string, + overlayColor: Proptypes.string, + blocking: Proptypes.bool.isRequired +} diff --git a/src/@core/components/ui-loader/ui-loader.scss b/src/@core/components/ui-loader/ui-loader.scss new file mode 100644 index 0000000..882f441 --- /dev/null +++ b/src/@core/components/ui-loader/ui-loader.scss @@ -0,0 +1,35 @@ +// Component: UI Loader +// ======================================================================== + +@import '../../scss/base/bootstrap-extended/include'; +@import '../../scss/base/components/include'; + +.ui-loader { + position: relative; + + &.show { + // background-color: rgba($color: $black, $alpha: 0.3); + .overlay { + content: ''; + position: absolute; + width: 100%; + height: 100%; + top: 0; + background-color: rgba($color: $black, $alpha: 0.3); + } + + > :first-child, + code { + background-color: initial; + } + } + + .loader { + position: absolute; + top: 50%; + left: 50%; + height: 50%; + margin-top: -1rem; + margin-left: -1rem; + } +} diff --git a/src/@core/components/widgets/stats/ChartOptions.js b/src/@core/components/widgets/stats/ChartOptions.js new file mode 100644 index 0000000..60e0d5c --- /dev/null +++ b/src/@core/components/widgets/stats/ChartOptions.js @@ -0,0 +1,104 @@ +// ** Area Chart Common Options +export const areaChartOptions = { + chart: { + toolbar: { + show: false + }, + sparkline: { + enabled: true + } + }, + grid: { + show: false + }, + colors: ['#7367F0'], + dataLabels: { + enabled: false + }, + stroke: { + curve: 'smooth', + width: 2.5 + }, + fill: { + type: 'gradient', + gradient: { + shadeIntensity: 0.9, + opacityFrom: 0.7, + opacityTo: 0.5, + stops: [0, 80, 100] + } + }, + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + } + }, + yaxis: { + labels: { + show: false + } + }, + tooltip: { + x: { show: false } + } +} + +// ** Line Chart Common Options +export const lineChartOptions = { + chart: { + toolbar: { + show: false + }, + sparkline: { + enabled: true + }, + dropShadow: { + enabled: true, + top: 5, + left: 0, + blur: 4, + opacity: 0.1 + } + }, + grid: { + show: false + }, + colors: ['#7367F0'], + dataLabels: { + enabled: false + }, + stroke: { + curve: 'smooth', + width: 5 + }, + fill: { + type: 'gradient', + gradient: { + shadeIntensity: 1, + gradientToColors: ['#A9A2F6'], + opacityFrom: 1, + opacityTo: 1, + stops: [0, 100, 100, 100] + } + }, + + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + } + }, + yaxis: { + labels: { + show: false + } + }, + tooltip: { + x: { show: false } + } +} diff --git a/src/@core/components/widgets/stats/StatsHorizontal.js b/src/@core/components/widgets/stats/StatsHorizontal.js new file mode 100644 index 0000000..c72535d --- /dev/null +++ b/src/@core/components/widgets/stats/StatsHorizontal.js @@ -0,0 +1,32 @@ +// ** Third Party Components +import PropTypes from 'prop-types' +import { Card, CardBody } from 'reactstrap' + +const StatsHorizontal = ({ icon, color, stats, statTitle, className, ...rest }) => { + return ( + + +
    +
    +

    {stats}

    +

    {statTitle}

    +
    +
    +
    {icon}
    +
    +
    +
    +
    + ) +} + +export default StatsHorizontal + +// ** PropTypes +StatsHorizontal.propTypes = { + icon: PropTypes.element.isRequired, + color: PropTypes.string.isRequired, + stats: PropTypes.string.isRequired, + statTitle: PropTypes.string.isRequired, + className: PropTypes.string +} diff --git a/src/@core/components/widgets/stats/StatsVertical.js b/src/@core/components/widgets/stats/StatsVertical.js new file mode 100644 index 0000000..db25de5 --- /dev/null +++ b/src/@core/components/widgets/stats/StatsVertical.js @@ -0,0 +1,28 @@ +// ** Third Party Components +import PropTypes from 'prop-types' +import { Card, CardBody } from 'reactstrap' + +const StatsVertical = ({ icon, color, stats, statTitle, className, ...rest }) => { + return ( + + +
    +
    {icon}
    +
    +

    {stats}

    +

    {statTitle}

    +
    +
    + ) +} + +export default StatsVertical + +// ** PropTypes +StatsVertical.propTypes = { + icon: PropTypes.element.isRequired, + color: PropTypes.string.isRequired, + stats: PropTypes.string.isRequired, + statTitle: PropTypes.string.isRequired, + className: PropTypes.string +} diff --git a/src/@core/components/widgets/stats/StatsWithAreaChart.js b/src/@core/components/widgets/stats/StatsWithAreaChart.js new file mode 100644 index 0000000..0863945 --- /dev/null +++ b/src/@core/components/widgets/stats/StatsWithAreaChart.js @@ -0,0 +1,51 @@ +// ** Custom Components +import Avatar from '@components/avatar' + +// ** Third Party Components +import PropTypes from 'prop-types' +import classnames from 'classnames' +import Chart from 'react-apexcharts' +import { Card, CardBody } from 'reactstrap' + +// ** Default Options +import { areaChartOptions } from './ChartOptions' + +const StatsWithAreaChart = props => { + // ** Props + const { icon, color, stats, statTitle, series, options, type, height, className, ...rest } = props + return ( + + + +

    {stats}

    +

    {statTitle}

    +
    + +
    + ) +} + +export default StatsWithAreaChart + +// ** PropTypes +StatsWithAreaChart.propTypes = { + icon: PropTypes.element.isRequired, + color: PropTypes.string.isRequired, + stats: PropTypes.string.isRequired, + statTitle: PropTypes.string.isRequired, + options: PropTypes.object, + series: PropTypes.array.isRequired, + type: PropTypes.string, + height: PropTypes.string, + className: PropTypes.string +} + +// ** Default Props +StatsWithAreaChart.defaultProps = { + options: areaChartOptions, + color: 'primary' +} diff --git a/src/@core/components/widgets/stats/StatsWithLineChart.js b/src/@core/components/widgets/stats/StatsWithLineChart.js new file mode 100644 index 0000000..d54ff89 --- /dev/null +++ b/src/@core/components/widgets/stats/StatsWithLineChart.js @@ -0,0 +1,45 @@ +// ** Custom Components +import Avatar from '@components/avatar' + +// ** Third Party Components +import PropTypes from 'prop-types' +import Chart from 'react-apexcharts' +import { Card, CardHeader, CardText } from 'reactstrap' + +// ** Default Options +import { lineChartOptions } from './ChartOptions' + +const StatsWithLineChart = ({ icon, color, stats, statTitle, series, options, type, height, ...rest }) => { + return ( + + +
    +

    {stats}

    + {statTitle} +
    + +
    + +
    + ) +} + +export default StatsWithLineChart + +// ** PropTypes +StatsWithLineChart.propTypes = { + icon: PropTypes.element.isRequired, + color: PropTypes.string.isRequired, + stats: PropTypes.string.isRequired, + statTitle: PropTypes.string.isRequired, + options: PropTypes.object, + series: PropTypes.array.isRequired, + type: PropTypes.string, + height: PropTypes.string +} + +// ** Default Props +StatsWithLineChart.defaultProps = { + options: lineChartOptions, + color: 'primary' +} diff --git a/src/@core/components/widgets/stats/TinyChartStats.js b/src/@core/components/widgets/stats/TinyChartStats.js new file mode 100644 index 0000000..3e8914f --- /dev/null +++ b/src/@core/components/widgets/stats/TinyChartStats.js @@ -0,0 +1,35 @@ +// ** Third Party Components +import PropTypes from 'prop-types' +import Chart from 'react-apexcharts' +import { Card, CardBody } from 'reactstrap' + +const TinyChartStats = props => { + // ** Props + const { title, stats, options, series, type, height } = props + + return ( + + +
    {title}
    +

    {stats}

    + +
    +
    + ) +} + +export default TinyChartStats + +// ** PropTypes +TinyChartStats.propTypes = { + title: PropTypes.string.isRequired, + stats: PropTypes.string.isRequired, + options: PropTypes.object.isRequired, + series: PropTypes.array.isRequired, + type: PropTypes.string.isRequired +} + +// ** Default Props +TinyChartStats.defaultProps = { + height: 100 +} diff --git a/src/@core/components/wizard/index.js b/src/@core/components/wizard/index.js new file mode 100644 index 0000000..d794b96 --- /dev/null +++ b/src/@core/components/wizard/index.js @@ -0,0 +1,121 @@ +// ** React Imports +import { useEffect, useState, Fragment, forwardRef } from 'react' + +// ** Third Party Components +import Stepper from 'bs-stepper' +import classnames from 'classnames' +import { PropTypes } from 'prop-types' +import { ChevronRight } from 'react-feather' + +// ** Styles +import 'bs-stepper/dist/css/bs-stepper.min.css' +import '../../../@core/scss/base/plugins/forms/form-wizard.scss' + +const Wizard = forwardRef((props, ref) => { + // ** Props + const { type, className, steps, separator, options, instance } = props + + // ** State + const [activeIndex, setActiveIndex] = useState(0) + + // ** Vars + let stepper = null + + // ** Step change listener on mount + useEffect(() => { + stepper = new Stepper(ref.current, options) + + ref.current.addEventListener('shown.bs-stepper', function (event) { + setActiveIndex(event.detail.indexStep) + }) + + if (instance) { + instance(stepper) + } + }, []) + + // ** Renders Wizard Header + const renderHeader = () => { + return steps.map((step, index) => { + return ( + + {index !== 0 && index !== steps.length ?
    {separator}
    : null} +
    index, + active: index === activeIndex + })} + data-target={`#${step.id}`} + > + +
    +
    + ) + }) + } + + // ** Renders Wizard Content + const renderContent = () => { + return steps.map((step, index) => { + return ( +
    + {step.content} +
    + ) + }) + } + + return ( +
    +
    {renderHeader()}
    +
    {renderContent()}
    +
    + ) +}) + +export default Wizard + +// ** Default Props +Wizard.defaultProps = { + type: 'horizontal', + separator: , + options: {} +} + +// ** PropTypes +Wizard.propTypes = { + type: PropTypes.string, + instance: PropTypes.func, + options: PropTypes.object, + className: PropTypes.string, + separator: PropTypes.element, + steps: PropTypes.arrayOf( + PropTypes.shape({ + id: PropTypes.string.isRequired, + title: PropTypes.string.isRequired, + subtitle: PropTypes.string, + icon: PropTypes.any, + content: PropTypes.any.isRequired + }) + ).isRequired +} diff --git a/src/@core/constant/index.js b/src/@core/constant/index.js new file mode 100644 index 0000000..e6b18e7 --- /dev/null +++ b/src/@core/constant/index.js @@ -0,0 +1,6 @@ +// ** Endpoints +export const HOST_NAME = process.env.API_BASE_URL +export default { + accountListEndpoint: `${HOST_NAME}user/list/account` +} + \ No newline at end of file diff --git a/src/@core/layouts/BlankLayout.js b/src/@core/layouts/BlankLayout.js new file mode 100644 index 0000000..1250625 --- /dev/null +++ b/src/@core/layouts/BlankLayout.js @@ -0,0 +1,35 @@ +// ** React Imports +import { useEffect, useState } from 'react' + +// ** Custom Hooks +import { useSkin } from '@hooks/useSkin' + +const BlankLayout = ({ children, ...rest }) => { + // ** Hooks + const [skin, setSkin] = useSkin() + + // ** States + const [isMounted, setIsMounted] = useState(false) + + //** ComponentDidMount + useEffect(() => { + setIsMounted(true) + return () => setIsMounted(false) + }, []) + + if (!isMounted) { + return null + } + + return ( +
    +
    +
    +
    {children}
    +
    +
    +
    + ) +} + +export default BlankLayout diff --git a/src/@core/layouts/HorizontalLayout.js b/src/@core/layouts/HorizontalLayout.js new file mode 100644 index 0000000..57b491a --- /dev/null +++ b/src/@core/layouts/HorizontalLayout.js @@ -0,0 +1,211 @@ +// ** React Imports +import { useState, useEffect } from 'react' +import { Link } from 'react-router-dom' + +// ** Store & Actions +import { useSelector, useDispatch } from 'react-redux' +import { handleMenuHidden, handleContentWidth } from '@store/actions/layout' + +// ** Third Party Components +import classnames from 'classnames' +import { ArrowUp } from 'react-feather' +import ScrollToTop from 'react-scroll-up' +import { Navbar, NavItem, Button } from 'reactstrap' + +// ** Configs +import themeConfig from '@configs/themeConfig' + +// ** Custom Components + +import Customizer from '@components/customizer' +import NavbarComponent from './components/navbar' +import FooterComponent from './components/footer' +import MenuComponent from './components/menu/horizontal-menu' + +// ** Custom Hooks +import { useRTL } from '@hooks/useRTL' +import { useSkin } from '@hooks/useSkin' +import { useNavbarType } from '@hooks/useNavbarType' +import { useFooterType } from '@hooks/useFooterType' +import { useNavbarColor } from '@hooks/useNavbarColor' + +// ** Styles +import '@styles/base/core/menu/menu-types/horizontal-menu.scss' + +const HorizontalLayout = props => { + // ** Props + const { children, navbar, footer, menu, currentActiveItem, routerProps } = props + + // ** Hooks + const [skin, setSkin] = useSkin() + const [isRtl, setIsRtl] = useRTL() + const [navbarType, setNavbarType] = useNavbarType() + const [footerType, setFooterType] = useFooterType() + const [navbarColor, setNavbarColor] = useNavbarColor() + + // ** States + const [isMounted, setIsMounted] = useState(false) + const [navbarScrolled, setNavbarScrolled] = useState(false) + + // ** Store Vars + const dispatch = useDispatch() + const layoutStore = useSelector(state => state.layout) + + // ** Vars + const contentWidth = layoutStore.contentWidth + const isHidden = layoutStore.menuHidden + + // ** Handles Content Width + const setContentWidth = val => dispatch(handleContentWidth(val)) + + // ** Handles Content Width + const setIsHidden = val => dispatch(handleMenuHidden(val)) + + // ** UseEffect Cleanup + const cleanup = () => { + setIsMounted(false) + setNavbarScrolled(false) + } + + //** ComponentDidMount + useEffect(() => { + setIsMounted(true) + window.addEventListener('scroll', function () { + if (window.pageYOffset > 65 && navbarScrolled === false) { + setNavbarScrolled(true) + } + if (window.pageYOffset < 65) { + setNavbarScrolled(false) + } + }) + return () => cleanup() + }, []) + + // ** Vars + const footerClasses = { + static: 'footer-static', + sticky: 'footer-fixed', + hidden: 'footer-hidden' + } + + const navbarWrapperClasses = { + floating: 'navbar-floating', + sticky: 'navbar-sticky', + static: 'navbar-static' + } + + const navbarClasses = { + floating: 'floating-nav', + sticky: 'fixed-top' + } + + const bgColorCondition = navbarColor !== '' && navbarColor !== 'light' && navbarColor !== 'white' + + if (!isMounted) { + return null + } + + return ( +
    + + {!navbar && ( +
    +
      + + + + logo + +

      {themeConfig.app.appName}

      + +
      +
    +
    + )} + +
    + {navbar ? navbar({ skin, setSkin }) : } +
    +
    + {!isHidden ? ( +
    + + {menu ? ( + menu({ routerProps, currentActiveItem }) + ) : ( + + )} + +
    + ) : null} + + {children} + {themeConfig.layout.customizer === true ? ( + + ) : null} +
    + {footer ? ( + footer({ footerType, footerClasses }) + ) : ( + + )} +
    + + {themeConfig.layout.scrollTop === true ? ( +
    + + + +
    + ) : null} +
    + ) +} +export default HorizontalLayout diff --git a/src/@core/layouts/components/BuyNow.js b/src/@core/layouts/components/BuyNow.js new file mode 100644 index 0000000..4b09cdb --- /dev/null +++ b/src/@core/layouts/components/BuyNow.js @@ -0,0 +1,14 @@ +// ** Third Party Components +import { Button } from 'reactstrap' + +const BuyNow = () => { + return ( +
    + +
    + ) +} + +export default BuyNow diff --git a/src/@core/layouts/components/footer/index.js b/src/@core/layouts/components/footer/index.js new file mode 100644 index 0000000..73cfecc --- /dev/null +++ b/src/@core/layouts/components/footer/index.js @@ -0,0 +1,22 @@ +// ** Icons Import +import { Heart } from 'react-feather' + +const Footer = () => { + return ( +

    + + COPYRIGHT © {new Date().getFullYear()}{' '} + + Pixinvent + + , All rights Reserved + + + Hand-crafted & Made with + + +

    + ) +} + +export default Footer diff --git a/src/@core/layouts/components/layout-wrapper/index.js b/src/@core/layouts/components/layout-wrapper/index.js new file mode 100644 index 0000000..81ad7c7 --- /dev/null +++ b/src/@core/layouts/components/layout-wrapper/index.js @@ -0,0 +1,89 @@ +// ** React Imports +import { Fragment, useEffect } from 'react' + +// ** Third Party Components +import classnames from 'classnames' + +// ** Store & Actions +import { useSelector, useDispatch } from 'react-redux' +import { handleContentWidth, handleMenuCollapsed, handleMenuHidden } from '@store/actions/layout' + +// ** Styles +import 'animate.css/animate.css' + +const LayoutWrapper = props => { + // ** Props + const { layout, children, appLayout, wrapperClass, transition, routeMeta } = props + + // ** Store Vars + const dispatch = useDispatch() + const store = useSelector(state => state) + const navbarStore = store.navbar + const contentWidth = store.layout.contentWidth + + //** Vars + const Tag = layout === 'HorizontalLayout' && !appLayout ? 'div' : Fragment + + // ** Clean Up Function + const cleanUp = () => { + if (routeMeta) { + if (routeMeta.contentWidth) { + dispatch(handleContentWidth('full')) + } + if (routeMeta.menuCollapsed) { + dispatch(handleMenuCollapsed(!routeMeta.menuCollapsed)) + } + if (routeMeta.menuHidden) { + dispatch(handleMenuHidden(!routeMeta.menuHidden)) + } + } + } + + // ** ComponentDidMount + useEffect(() => { + if (routeMeta) { + if (routeMeta.contentWidth) { + dispatch(handleContentWidth(routeMeta.contentWidth)) + } + if (routeMeta.menuCollapsed) { + dispatch(handleMenuCollapsed(routeMeta.menuCollapsed)) + } + if (routeMeta.menuHidden) { + dispatch(handleMenuHidden(routeMeta.menuHidden)) + } + } + return () => cleanUp() + }, []) + + return ( +
    +
    +
    +
    + + {children} + +
    +
    + ) +} + +export default LayoutWrapper diff --git a/src/@core/layouts/components/menu/horizontal-menu/HorizontalNavMenuGroup.js b/src/@core/layouts/components/menu/horizontal-menu/HorizontalNavMenuGroup.js new file mode 100644 index 0000000..a094d43 --- /dev/null +++ b/src/@core/layouts/components/menu/horizontal-menu/HorizontalNavMenuGroup.js @@ -0,0 +1,120 @@ +// ** React Imports +import { Link, useLocation } from 'react-router-dom' + +// ** Third Party Components +import classnames from 'classnames' +import { FormattedMessage } from 'react-intl' +import { Dropdown, DropdownMenu, DropdownToggle } from 'reactstrap' + +// ** Utils +import { isNavGroupActive } from '@layouts/utils' + +// ** Horizontal Menu Items Component +import HorizontalNavMenuItems from './HorizontalNavMenuItems' + +const HorizontalNavMenuGroup = props => { + // ** Props + const { + item, + submenu, + groupActive, + onMouseEnter, + onMouseLeave, + openDropdown, + setGroupActive, + activeItem, + setActiveItem, + routerProps, + setOpenDropdown, + currentActiveItem + } = props + + // ** URL Var + const currentURL = useLocation().pathname + + // ** Dropdown menu modifiers + const menuModifiers = { + setMaxHeight: { + enabled: true, + fn: data => { + const pageHeight = window.innerHeight, + ddTop = data.instance.reference.getBoundingClientRect().top, + ddHeight = data.popper.height + let maxHeight, stylesObj + + // ** Calculate and set height + if (pageHeight - ddTop - ddHeight - 28 < 1) { + maxHeight = pageHeight - ddTop - 25 + stylesObj = { + maxHeight, + overflowY: 'auto' + } + } + + const ddRef = data.instance.popper.getBoundingClientRect() + + // ** If there is not space left to open sub menu open it to the right + if (ddRef.left + ddRef.width - (window.innerWidth - 16) >= 0) { + data.instance.popper.closest('.dropdown').classList.add('openLeft') + } + + return { + ...data, + styles: { + ...stylesObj + } + } + } + } + } + return ( + onMouseEnter(item.id)} + onMouseEnter={() => onMouseEnter(item.id)} + onMouseLeave={() => onMouseLeave(item.id)} + > + e.preventDefault()} + > + {item.icon} + + + + + + + + + ) +} + +export default HorizontalNavMenuGroup diff --git a/src/@core/layouts/components/menu/horizontal-menu/HorizontalNavMenuItems.js b/src/@core/layouts/components/menu/horizontal-menu/HorizontalNavMenuItems.js new file mode 100644 index 0000000..c6dde20 --- /dev/null +++ b/src/@core/layouts/components/menu/horizontal-menu/HorizontalNavMenuItems.js @@ -0,0 +1,40 @@ +// ** React Imports +import { useContext } from 'react' + +// ** Ability Context +import { AbilityContext } from '@src/utility/context/Can' + +// ** Menu Components Imports +import HorizontalNavMenuLink from './HorizontalNavMenuLink' +import HorizontalNavMenuGroup from './HorizontalNavMenuGroup' +import { + resolveHorizontalNavMenuItemComponent as resolveNavItemComponent, + canViewMenuGroup, + canViewMenuItem +} from '@layouts/utils' + +const HorizontalNavMenuItems = props => { + // ** Context + const ability = useContext(AbilityContext) + + // ** Components Object + const Components = { + HorizontalNavMenuGroup, + HorizontalNavMenuLink + } + + // ** Render Nav Items + const RenderNavItems = props.items.map((item, index) => { + const TagName = Components[resolveNavItemComponent(item)] + if (item.children) { + // return canViewMenuGroup(item) && + return + } + // return canViewMenuItem(item) && + return + }) + + return RenderNavItems +} + +export default HorizontalNavMenuItems diff --git a/src/@core/layouts/components/menu/horizontal-menu/HorizontalNavMenuLink.js b/src/@core/layouts/components/menu/horizontal-menu/HorizontalNavMenuLink.js new file mode 100644 index 0000000..9b37959 --- /dev/null +++ b/src/@core/layouts/components/menu/horizontal-menu/HorizontalNavMenuLink.js @@ -0,0 +1,98 @@ +// ** React Imports +import { useEffect } from 'react' +import { NavLink, useLocation } from 'react-router-dom' + +// ** Horizontal menu items array +import navigation from '@src/navigation/horizontal' + +// ** Third Party Components +import classnames from 'classnames' +import { DropdownItem } from 'reactstrap' +import { FormattedMessage } from 'react-intl' + +// ** Utils +import { isNavLinkActive, search, getAllParents } from '@layouts/utils' + +const HorizontalNavMenuLink = ({ + item, + setOpenDropdown, + setGroupActive, + activeItem, + setActiveItem, + routerProps, + currentActiveItem, + isChild +}) => { + // ** Conditional Link Tag, if item has newTab or externalLink props use tag else use NavLink + const LinkTag = item.externalLink ? 'a' : NavLink + + // ** URL Vars + const location = useLocation() + const currentURL = location.pathname + + const navLinkActive = isNavLinkActive(item.navLink, currentURL, routerProps) + + // ** Get parents of current items + const searchParents = (navigation, currentURL) => { + const parents = search(navigation, currentURL, routerProps) // Search for parent object + const allParents = getAllParents(parents, 'id') // Parents Object to Parents Array + allParents.pop() + return allParents + } + + // ** Remove all items from OpenDropdown array + const resetOpenDropdowns = () => setOpenDropdown([]) + + // ** On mount update active group array + useEffect(() => { + if (currentActiveItem !== null) { + setActiveItem(currentActiveItem) + const arr = searchParents(navigation, currentURL) + setGroupActive([...arr]) + } + }, [location]) + + return ( +
  • + { + if (!match) { + return false + } + + if (match.url && match.url !== '' && match.url === item.navLink) { + currentActiveItem = item.navLink + } + } + })} + /*eslint-enable */ + > + {item.icon} + + + + +
  • + ) +} + +export default HorizontalNavMenuLink diff --git a/src/@core/layouts/components/menu/horizontal-menu/index.js b/src/@core/layouts/components/menu/horizontal-menu/index.js new file mode 100644 index 0000000..7a42f04 --- /dev/null +++ b/src/@core/layouts/components/menu/horizontal-menu/index.js @@ -0,0 +1,52 @@ +// ** React Imports +import { useState } from 'react' + +// ** Horizontal Menu Array +import navigation from '@src/navigation/horizontal' + +// ** Horizontal Menu Components +import HorizontalNavMenuItems from './HorizontalNavMenuItems' + +const HorizontalMenu = ({ currentActiveItem, routerProps }) => { + // ** States + const [activeItem, setActiveItem] = useState(null) + const [groupActive, setGroupActive] = useState([]) + const [openDropdown, setOpenDropdown] = useState([]) + + // ** On mouse enter push the ID to openDropdown array + const onMouseEnter = id => { + const arr = openDropdown + arr.push(id) + setOpenDropdown([...arr]) + } + + // ** On mouse leave remove the ID to openDropdown array + const onMouseLeave = id => { + const arr = openDropdown + arr.splice(arr.indexOf(id), 1) + setOpenDropdown([...arr]) + } + + return ( +
    + +
    + ) +} + +export default HorizontalMenu diff --git a/src/@core/layouts/components/menu/vertical-menu/VerticalMenuHeader.js b/src/@core/layouts/components/menu/vertical-menu/VerticalMenuHeader.js new file mode 100644 index 0000000..747eec6 --- /dev/null +++ b/src/@core/layouts/components/menu/vertical-menu/VerticalMenuHeader.js @@ -0,0 +1,65 @@ +// ** React Imports +import { useEffect } from 'react' +import { NavLink } from 'react-router-dom' + +// ** Third Party Components +import { Disc, X, Circle } from 'react-feather' + +// ** Config +import themeConfig from '@configs/themeConfig' + +const VerticalMenuHeader = props => { + // ** Props + const { menuCollapsed, setMenuCollapsed, setMenuVisibility, setGroupOpen, menuHover } = props + + // ** Reset open group + useEffect(() => { + if (!menuHover && menuCollapsed) setGroupOpen([]) + }, [menuHover, menuCollapsed]) + + // ** Menu toggler component + const Toggler = () => { + if (!menuCollapsed) { + return ( + setMenuCollapsed(true)} + /> + ) + } else { + return ( + setMenuCollapsed(false)} + /> + ) + } + } + + return ( +
    +
      +
    • + + + logo + +

      {themeConfig.app.appName}

      +
      +
    • +
    • +
      + + setMenuVisibility(false)} className='toggle-icon icon-x d-block d-xl-none' size={20} /> +
      +
    • +
    +
    + ) +} + +export default VerticalMenuHeader diff --git a/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuGroup.js b/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuGroup.js new file mode 100644 index 0000000..5116e07 --- /dev/null +++ b/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuGroup.js @@ -0,0 +1,145 @@ +// ** React Imports +import { Link, useLocation } from 'react-router-dom' + +// ** Third Party Components +import classnames from 'classnames' +import { Collapse, Badge } from 'reactstrap' +import { FormattedMessage } from 'react-intl' + +// ** Vertical Menu Items Component +import VerticalNavMenuItems from './VerticalNavMenuItems' + +// ** Utils +import { isNavGroupActive, getAllParents } from '@layouts/utils' + +const VerticalNavMenuGroup = ({ + item, + groupActive, + setGroupActive, + activeItem, + setActiveItem, + groupOpen, + setGroupOpen, + parentItem, + menuCollapsed, + menuHover, + routerProps, + currentActiveItem +}) => { + // ** Current Val + const currentURL = useLocation().pathname + + // ** Toggles Open Group + const toggleOpenGroup = (item, parentItem) => { + let openArr = groupOpen + let allParents + + if (parentItem) { + allParents = getAllParents(parentItem, 'id') + allParents.pop() + } + + // ** If user clicked on menu group inside already opened group i.g. when user click on blog group inside pages group + if (groupOpen && allParents && groupOpen[0] === allParents[0]) { + groupOpen.includes(item) ? openArr.splice(openArr.indexOf(item), 1) : openArr.push(item) + } else { + openArr = [] + if (!groupOpen.includes(item)) { + openArr.push(item) + } + } + + // ** Set Open Group + setGroupOpen([...openArr]) + } + + // ** Toggle Active Group + const toggleActiveGroup = (item, parentItem) => { + let activeArr = groupActive + let allParents + + if (parentItem) { + allParents = getAllParents(parentItem, 'id') + activeArr = allParents + } else { + activeArr.includes(item) ? activeArr.splice(activeArr.indexOf(item), 1) : activeArr.push(item) + } + + // ** Set open group removing any activegroup item present in opengroup state + const openArr = groupOpen.filter(val => !activeArr.includes(val)) + setGroupOpen([...openArr]) + + // ** Set Active Group + setGroupActive([...activeArr]) + } + + // ** On Group Item Click + const onCollapseClick = (e, item) => { + if ((groupActive && groupActive.includes(item.id)) || isNavGroupActive(item.children, currentURL, routerProps)) { + toggleActiveGroup(item.id) + } else { + toggleOpenGroup(item.id, parentItem) + } + + e.preventDefault() + } + + // ** Returns condition to add open class + const openClassCondition = id => { + if ((menuCollapsed && menuHover) || menuCollapsed === false) { + if (groupActive.includes(id) || groupOpen.includes(item.id)) { + return true + } + } else if (groupActive.includes(id) && menuCollapsed && menuHover === false) { + return false + } else { + return null + } + } + + return ( +
  • + onCollapseClick(e, item)}> + {item.icon} + + + + + {item.badge && item.badgeText ? ( + + {item.badgeText} + + ) : null} + + + {/* Render Child Recursively Through VerticalNavMenuItems Component */} +
      + + + +
    +
  • + ) +} + +export default VerticalNavMenuGroup diff --git a/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuItems.js b/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuItems.js new file mode 100644 index 0000000..ee754b5 --- /dev/null +++ b/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuItems.js @@ -0,0 +1,42 @@ +// ** React Imports +import { useContext } from 'react' + +// ** Vertical Menu Components +import VerticalNavMenuLink from './VerticalNavMenuLink' +import VerticalNavMenuGroup from './VerticalNavMenuGroup' +import VerticalNavMenuSectionHeader from './VerticalNavMenuSectionHeader' + +// ** Ability Context +import { AbilityContext } from '@src/utility/context/Can' + +// ** Utils +import { + resolveVerticalNavMenuItemComponent as resolveNavItemComponent, + canViewMenuGroup, + canViewMenuItem +} from '@layouts/utils' + +const VerticalMenuNavItems = props => { + // ** Context + const ability = useContext(AbilityContext) + + // ** Components Object + const Components = { + VerticalNavMenuSectionHeader, + VerticalNavMenuGroup, + VerticalNavMenuLink + } + + // ** Render Nav Menu Items + const RenderNavItems = props.items.map((item, index) => { + const TagName = Components[resolveNavItemComponent(item)] + if (item.children) { + return canViewMenuGroup(item) && + } + return canViewMenuItem(item) && + }) + + return RenderNavItems +} + +export default VerticalMenuNavItems diff --git a/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuLink.js b/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuLink.js new file mode 100644 index 0000000..a647e0e --- /dev/null +++ b/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuLink.js @@ -0,0 +1,122 @@ +// ** React Imports +import { useEffect } from 'react' +import { NavLink, useLocation, matchPath, useParams } from 'react-router-dom' + +// ** Third Party Components +import { Badge } from 'reactstrap' +import classnames from 'classnames' +import { FormattedMessage } from 'react-intl' + +// ** Vertical Menu Array Of Items +import navigation from '@src/navigation/vertical' + +// ** Utils +import { isNavLinkActive, search, getAllParents } from '@layouts/utils' + +const VerticalNavMenuLink = ({ + item, + groupActive, + setGroupActive, + activeItem, + setActiveItem, + groupOpen, + setGroupOpen, + toggleActiveGroup, + parentItem, + routerProps, + currentActiveItem +}) => { + // ** Conditional Link Tag, if item has newTab or externalLink props use
    tag else use NavLink + const LinkTag = item.externalLink ? 'a' : NavLink + + // ** URL Vars + const location = useLocation() + const currentURL = location.pathname + + // ** To match path + const match = matchPath(currentURL, { + path: `${item.navLink}/:param`, + exact: true, + strict: false + }) + + // ** Search for current item parents + const searchParents = (navigation, currentURL) => { + const parents = search(navigation, currentURL, routerProps) // Search for parent object + const allParents = getAllParents(parents, 'id') // Parents Object to Parents Array + return allParents + } + + // ** URL Vars + const resetActiveGroup = navLink => { + const parents = search(navigation, navLink, match) + toggleActiveGroup(item.id, parents) + } + + // ** Reset Active & Open Group Arrays + const resetActiveAndOpenGroups = () => { + setGroupActive([]) + setGroupOpen([]) + } + + // ** Checks url & updates active item + useEffect(() => { + if (currentActiveItem !== null) { + setActiveItem(currentActiveItem) + const arr = searchParents(navigation, currentURL) + setGroupActive([...arr]) + } + }, [location]) + + return ( +
  • + { + if (!match) { + return false + } + + if (match.url && match.url !== '' && match.url === item.navLink) { + currentActiveItem = item.navLink + } + } + })} + /*eslint-enable */ + onClick={e => { + if (!item.navLink.length) { + e.preventDefault() + } + parentItem ? resetActiveGroup(item.navLink) : resetActiveAndOpenGroups() + }} + > + {item.icon} + + + + + {item.badge && item.badgeText ? ( + + {item.badgeText} + + ) : null} + +
  • + ) +} + +export default VerticalNavMenuLink diff --git a/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuSectionHeader.js b/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuSectionHeader.js new file mode 100644 index 0000000..d8913aa --- /dev/null +++ b/src/@core/layouts/components/menu/vertical-menu/VerticalNavMenuSectionHeader.js @@ -0,0 +1,16 @@ +// ** Third Party Components +import { FormattedMessage } from 'react-intl' +import { MoreHorizontal } from 'react-feather' + +const VerticalNavMenuSectionHeader = ({ item, index }) => { + return ( +
  • + + + + +
  • + ) +} + +export default VerticalNavMenuSectionHeader diff --git a/src/@core/layouts/components/menu/vertical-menu/index.js b/src/@core/layouts/components/menu/vertical-menu/index.js new file mode 100644 index 0000000..d6c2a8e --- /dev/null +++ b/src/@core/layouts/components/menu/vertical-menu/index.js @@ -0,0 +1,98 @@ +// ** React Imports +import { Fragment, useState, useRef } from 'react' + +// ** Vertical Menu Items Array +import navigation from '@src/navigation/vertical' + +// ** Third Party Components +import classnames from 'classnames' +import PerfectScrollbar from 'react-perfect-scrollbar' + +// ** Vertical Menu Components +import VerticalMenuHeader from './VerticalMenuHeader' +import VerticalNavMenuItems from './VerticalNavMenuItems' + +const Sidebar = props => { + // ** Props + const { menuCollapsed, routerProps, menu, currentActiveItem, skin } = props + + // ** States + const [groupOpen, setGroupOpen] = useState([]) + const [groupActive, setGroupActive] = useState([]) + const [activeItem, setActiveItem] = useState(null) + + // ** Menu Hover State + const [menuHover, setMenuHover] = useState(false) + + // ** Ref + const shadowRef = useRef(null) + + // ** Function to handle Mouse Enter + const onMouseEnter = () => { + if (menuCollapsed) { + setMenuHover(true) + } + } + + // ** Scroll Menu + const scrollMenu = container => { + if (shadowRef && container.scrollTop > 0) { + if (!shadowRef.current.classList.contains('d-block')) { + shadowRef.current.classList.add('d-block') + } + } else { + if (shadowRef.current.classList.contains('d-block')) { + shadowRef.current.classList.remove('d-block') + } + } + } + + return ( + +
    setMenuHover(false)} + > + {menu ? ( + menu(props) + ) : ( + + {/* Vertical Menu Header */} + + {/* Vertical Menu Header Shadow */} +
    + {/* Perfect Scrollbar */} + scrollMenu(container)} + > +
      + +
    +
    +
    + )} +
    +
    + ) +} + +export default Sidebar diff --git a/src/@core/layouts/components/navbar/CartDropdown.js b/src/@core/layouts/components/navbar/CartDropdown.js new file mode 100644 index 0000000..90797c3 --- /dev/null +++ b/src/@core/layouts/components/navbar/CartDropdown.js @@ -0,0 +1,129 @@ +// ** React Imports +import { useEffect, Fragment, useState } from 'react' +import { Link } from 'react-router-dom' + +// ** Custom Components +import NumberInput from '@components/number-input' + +// ** Third Party Components +import { ShoppingCart, X } from 'react-feather' +import PerfectScrollbar from 'react-perfect-scrollbar' +import { Dropdown, DropdownMenu, DropdownToggle, DropdownItem, Media, Badge, Button } from 'reactstrap' + +// ** Store & Actions +import { useDispatch, useSelector } from 'react-redux' +import { getCartItems, deleteCartItem, getProduct } from '@src/views/apps/ecommerce/store/actions' + +const CartDropdown = () => { + // ** State + const [dropdownOpen, setDropdownOpen] = useState(false) + + // ** Store Vars + const dispatch = useDispatch() + const store = useSelector(state => state.ecommerce) + + // ** ComponentDidMount + useEffect(() => { + dispatch(getCartItems()) + }, []) + + // ** Function to toggle Dropdown + const toggle = () => setDropdownOpen(prevState => !prevState) + + // ** Function to call on Dropdown Item Click + const handleDropdownItemClick = id => { + dispatch(getProduct(id)) + toggle() + } + + // ** Loops through Cart Array to return Cart Items + const renderCartItems = () => { + if (store.cart.length) { + let total = 0 + + return ( + + + {store.cart.map(item => { + total += item.price + + return ( + + {item.name} + + dispatch(deleteCartItem(item.id))} /> +
    +
    + handleDropdownItemClick(item.id)} + > + {item.name} + +
    + by {item.brand} +
    +
    + +
    +
    ${item.price}
    +
    +
    + ) + })} +
    +
  • +
    +
    Total:
    +
    ${Number(total.toFixed(2))}
    +
    + + Checkout + +
  • +
    + ) + } else { + return

    Your cart is empty

    + } + } + + return ( + + + + {store.cart.length > 0 ? ( + + {store.cart.length} + + ) : null} + + +
  • + +

    My Cart

    + + {store.cart.length || 0} Items + +
    +
  • + {renderCartItems()} +
    +
    + ) +} + +export default CartDropdown diff --git a/src/@core/layouts/components/navbar/IntlDropdown.js b/src/@core/layouts/components/navbar/IntlDropdown.js new file mode 100644 index 0000000..1cca793 --- /dev/null +++ b/src/@core/layouts/components/navbar/IntlDropdown.js @@ -0,0 +1,61 @@ +// ** React Imports +import { useContext } from 'react' + +// ** Third Party Components +import ReactCountryFlag from 'react-country-flag' +import { UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +// ** Internationalization Context +import { IntlContext } from '@src/utility/context/Internationalization' + +const IntlDropdown = () => { + // ** Context + const intlContext = useContext(IntlContext) + + // ** Vars + const langObj = { + en: 'English', + de: 'German', + fr: 'French', + pt: 'Portuguese' + } + + // ** Function to switch Language + const handleLangUpdate = (e, lang) => { + e.preventDefault() + intlContext.switchLanguage(lang) + } + + return ( + + e.preventDefault()}> + + {langObj[intlContext.locale]} + + + handleLangUpdate(e, 'en')}> + + English + + handleLangUpdate(e, 'fr')}> + + French + + handleLangUpdate(e, 'de')}> + + German + + handleLangUpdate(e, 'pt')}> + + Portuguese + + + + ) +} + +export default IntlDropdown diff --git a/src/@core/layouts/components/navbar/NavIcons.js b/src/@core/layouts/components/navbar/NavIcons.js new file mode 100644 index 0000000..e69de29 diff --git a/src/@core/layouts/components/navbar/NavbarBookmarks.js b/src/@core/layouts/components/navbar/NavbarBookmarks.js new file mode 100644 index 0000000..30f00ce --- /dev/null +++ b/src/@core/layouts/components/navbar/NavbarBookmarks.js @@ -0,0 +1,300 @@ +// ** React Imports +import { Fragment, useEffect, useState } from 'react' +import { Link } from 'react-router-dom' + +// ** Third Party Components +import * as Icon from 'react-feather' +import classnames from 'classnames' +import Autocomplete from '@components/autocomplete' +import { + NavItem, + NavLink, + UncontrolledTooltip, + UncontrolledDropdown, + DropdownToggle, + DropdownMenu, + DropdownItem, + Tooltip +} from 'reactstrap' + +// ** Store & Actions +import { useDispatch, useSelector } from 'react-redux' +import { getBookmarks, updateBookmarked, handleSearchQuery } from '@store/actions/navbar' + +const NavbarBookmarks = props => { + // ** Props + const { setMenuVisibility } = props + + // ** State + const [value, setValue] = useState('') + const [openSearch, setOpenSearch] = useState(false) + + // ** Store Vars + const dispatch = useDispatch() + const store = useSelector(state => state.navbar) + + // ** ComponentDidMount + useEffect(() => { + dispatch(getBookmarks()) + }, []) + + // ** Function to toggle Theme (Light/Dark) + const ThemeToggler = () => { + if (props.skin === 'dark') { + return props.setSkin('light')} /> + } else { + return props.setSkin('dark')} /> + } +} + const [tooltipOpen, setTooltipOpen] = useState(false) + const toggle = () => setTooltipOpen(!tooltipOpen) + + const [mailtpOpen, setMailtpOpen] = useState(false) + const mailtoggle = () => setMailtpOpen(!mailtpOpen) + + const [smstpOpen, setSmstpOpen] = useState(false) + const smstoggle = () => setSmstpOpen(!smstpOpen) + + const [doctpOpen, setDoctpOpen] = useState(false) + const doctoggle = () => setDoctpOpen(!doctpOpen) + + const [markettpOpen, setMarkettpOpen] = useState(false) + const markettoggle = () => setMarkettpOpen(!markettpOpen) + + const [zoomtpOpen, setZoomtpOpen] = useState(false) + const zoomtoggle = () => setZoomtpOpen(!zoomtpOpen) + + const [linkedtpOpen, setLinkedtpOpen] = useState(false) + const linkedtoggle = () => setLinkedtpOpen(!linkedtpOpen) + + const [swthemetpOpen, setSwitchThemetpOpen] = useState(false) + const switchThemetoggle = () => setSwitchThemetpOpen(!swthemetpOpen) + // ** Loops through Bookmarks Array to return Bookmarks + const renderBookmarks = () => { + if (store.bookmarks.length) { + return store.bookmarks + .map(item => { + const IconTag = Icon[item.icon] + return ( + + + + {item.title} + + + ) + }) + .slice(0, 10) + } else { + return null + } + } + + // ** If user has more than 10 bookmarks then add the extra Bookmarks to a dropdown + const renderExtraBookmarksDropdown = () => { + if (store.bookmarks.length && store.bookmarks.length >= 11) { + return ( + + + + + + + + {store.bookmarks + .map(item => { + const IconTag = Icon[item.icon] + return ( + + + {item.title} + + ) + }) + .slice(10)} + + + + + ) + } else { + return null + } + } + + // ** Removes query in store + const handleClearQueryInStore = () => dispatch(handleSearchQuery('')) + + // ** Loops through Bookmarks Array to return Bookmarks + const onKeyDown = e => { + if (e.keyCode === 27 || e.keyCode === 13) { + setTimeout(() => { + setOpenSearch(false) + handleClearQueryInStore() + }, 1) + } + } + + // ** Function to toggle Bookmarks + const handleBookmarkUpdate = id => dispatch(updateBookmarked(id)) + + // ** Function to handle Bookmarks visibility + const handleBookmarkVisibility = () => { + setOpenSearch(!openSearch) + setValue('') + handleClearQueryInStore() + } + + // ** Function to handle Input change + const handleInputChange = e => { + setValue(e.target.value) + dispatch(handleSearchQuery(e.target.value)) + } + + // ** Function to handle external Input click + const handleExternalClick = () => { + if (openSearch === true) { + setOpenSearch(false) + handleClearQueryInStore() + } + } + + // ** Function to clear input value + const handleClearInput = setUserInput => { + if (!openSearch) { + setUserInput('') + handleClearQueryInStore() + } + } + + return ( + +
      + + + + + Switch Theme + + + +
      + + + + Xero + + + + + + Email + + + + + + SMS + + + + + + Documents + + + + + + Marketting + + + + + + Zoom + + + + + + LinkedIn + + +
      + {renderExtraBookmarksDropdown()} + +
      +
      + +
      + {openSearch && store.suggestions.length ? ( + handleClearInput(setUserInput)} + onKeyDown={onKeyDown} + value={value} + onChange={handleInputChange} + customRender={( + item, + i, + filteredData, + activeSuggestion, + onSuggestionItemClick, + onSuggestionItemHover + ) => { + const IconTag = Icon[item.icon ? item.icon : 'X'] + return ( +
    • onSuggestionItemHover(filteredData.indexOf(item))} + className={classnames('suggestion-item d-flex align-items-center justify-content-between', { + active: filteredData.indexOf(item) === activeSuggestion + })} + > + { + setOpenSearch(false) + handleClearQueryInStore() + }} + style={{ + width: 'calc(90%)' + }} + > +
      + + {item.title} +
      + + handleBookmarkUpdate(item.id)} + /> +
    • + ) + }} + /> + ) : null} +
      +
      +
    +
    + ) +} + +export default NavbarBookmarks diff --git a/src/@core/layouts/components/navbar/NavbarSearch.js b/src/@core/layouts/components/navbar/NavbarSearch.js new file mode 100644 index 0000000..df4863f --- /dev/null +++ b/src/@core/layouts/components/navbar/NavbarSearch.js @@ -0,0 +1,160 @@ +// ** React Imports +import { useEffect, useState } from 'react' + +// ** Third Party Components +import axios from 'axios' +import classnames from 'classnames' +import * as Icon from 'react-feather' +import { NavItem, NavLink } from 'reactstrap' + +// ** Store & Actions +import { useDispatch } from 'react-redux' +import { handleSearchQuery } from '@store/actions/navbar' + +// ** Custom Components +import Autocomplete from '@components/autocomplete' + +const NavbarSearch = () => { + // ** Store Vars + const dispatch = useDispatch() + + // ** States + const [suggestions, setSuggestions] = useState([]) + const [navbarSearch, setNavbarSearch] = useState(false) + + // ** ComponentDidMount + useEffect(() => { + axios.get('/api/main-search/data').then(({ data }) => { + setSuggestions(data.searchArr) + }) + }, []) + + // ** Removes query in store + const handleClearQueryInStore = () => dispatch(handleSearchQuery('')) + + // ** Function to handle external Input click + const handleExternalClick = () => { + if (navbarSearch === true) { + setNavbarSearch(false) + handleClearQueryInStore() + } + } + + // ** Function to clear input value + const handleClearInput = setUserInput => { + if (!navbarSearch) { + setUserInput('') + handleClearQueryInStore() + } + } + + // ** Function to close search on ESC & ENTER Click + const onKeyDown = e => { + if (e.keyCode === 27 || e.keyCode === 13) { + setTimeout(() => { + setNavbarSearch(false) + handleClearQueryInStore() + }, 1) + } + } + + // ** Function to handle search suggestion Click + const handleSuggestionItemClick = () => { + setNavbarSearch(false) + handleClearQueryInStore() + } + + // ** Function to handle search list Click + const handleListItemClick = (func, link, e) => { + func(link, e) + setTimeout(() => { + setNavbarSearch(false) + }, 1) + handleClearQueryInStore() + } + + return ( + setNavbarSearch(true)}> + + + +
    +
    + +
    + {navbarSearch ? ( + handleClearInput(setUserInput)} + onKeyDown={onKeyDown} + onChange={e => dispatch(handleSearchQuery(e.target.value))} + customRender={(item, i, filteredData, activeSuggestion, onSuggestionItemClick, onSuggestionItemHover) => { + const IconTag = Icon[item.icon ? item.icon : 'X'] + return ( +
  • handleListItemClick(onSuggestionItemClick, item.link, e)} + onMouseEnter={() => onSuggestionItemHover(filteredData.indexOf(item))} + > +
    +
    + {item.icon ? ( + + ) : item.file ? ( + {item.title} + ) : item.img ? ( + {item.title} + ) : null} +
    +

    {item.title}

    + {item.by || item.email ? ( + {item.by ? item.by : item.email ? item.email : null} + ) : null} +
    +
    + {item.size || item.date ? ( +
    + {item.size ? item.size : item.date ? item.date : null} +
    + ) : null} +
    +
  • + ) + }} + /> + ) : null} +
    + { + e.stopPropagation() + setNavbarSearch(false) + handleClearQueryInStore() + }} + /> +
    +
    +
    + ) +} + +export default NavbarSearch diff --git a/src/@core/layouts/components/navbar/NotificationDropdown.js b/src/@core/layouts/components/navbar/NotificationDropdown.js new file mode 100644 index 0000000..f8864d4 --- /dev/null +++ b/src/@core/layouts/components/navbar/NotificationDropdown.js @@ -0,0 +1,176 @@ +// ** React Imports +import { Fragment } from 'react' + +// ** Custom Components +import Avatar from '@components/avatar' + +// ** Third Party Components +import classnames from 'classnames' +import PerfectScrollbar from 'react-perfect-scrollbar' +import { Bell, X, Check, AlertTriangle } from 'react-feather' +import { + Button, + Badge, + Media, + CustomInput, + DropdownMenu, + DropdownItem, + DropdownToggle, + UncontrolledDropdown +} from 'reactstrap' + +const NotificationDropdown = () => { + // ** Notification Array + const notificationsArray = [ + { + img: require('@src/assets/images/portrait/small/avatar-s-15.jpg').default, + subtitle: 'Won the monthly best seller badge.', + title: ( + + Congratulation Sam 🎉winner! + + ) + }, + { + img: require('@src/assets/images/portrait/small/avatar-s-3.jpg').default, + subtitle: 'You have 10 unread messages.', + title: ( + + New message received + + ) + }, + { + avatarContent: 'MD', + color: 'light-danger', + subtitle: 'MD Inc. order updated', + title: ( + + Revised Order 👋 checkout + + ) + }, + { + title:
    System Notifications
    , + switch: + }, + { + avatarIcon: , + color: 'light-danger', + subtitle: 'USA Server is down due to hight CPU usage', + title: ( + + Server down registered + + ) + }, + { + avatarIcon: , + color: 'light-success', + subtitle: 'Last month sales report generated', + title: ( + + Sales report generated + + ) + }, + { + avatarIcon: , + color: 'light-warning', + subtitle: 'BLR Server using high memory', + title: ( + + High memory usage + + ) + } + ] + + // ** Function to render Notifications + /*eslint-disable */ + const renderNotificationItems = () => { + return ( + + {notificationsArray.map((item, index) => { + return ( +
    e.preventDefault()}> + + {!item.switch ? ( + + + + + + {item.title} + {item.subtitle} + + + ) : ( + + {item.title} + {item.switch} + + )} + + + ) + })} + + ) + } + /*eslint-enable */ + + return ( + + e.preventDefault()}> + + + 5 + + + +
  • + +

    Notifications

    + + 6 New + +
    +
  • + {renderNotificationItems()} +
  • + + Read all notifications + +
  • +
    +
    + ) +} + +export default NotificationDropdown diff --git a/src/@core/layouts/components/navbar/UserDropdown.js b/src/@core/layouts/components/navbar/UserDropdown.js new file mode 100644 index 0000000..bcb158b --- /dev/null +++ b/src/@core/layouts/components/navbar/UserDropdown.js @@ -0,0 +1,72 @@ +// ** React Imports +import { useEffect, useState } from 'react' +import { Link } from 'react-router-dom' + +// ** Custom Components +import Avatar from '@components/avatar' + +// ** Utils +import { isUserLoggedIn } from '@utils' + +// ** Store & Actions +import { useDispatch } from 'react-redux' +import { handleLogout } from '@store/actions/auth' + +// ** Third Party Components +import { UncontrolledDropdown, DropdownMenu, DropdownToggle, DropdownItem } from 'reactstrap' +import { User, Mail, CheckSquare, MessageSquare, Settings, CreditCard, HelpCircle, Power } from 'react-feather' + +// ** Default Avatar Image +import defaultAvatar from '@src/assets/images/portrait/small/avatar-s-11.jpg' + +const UserDropdown = () => { + // ** Store Vars + const dispatch = useDispatch() + + // ** State + const [userData, setUserData] = useState(null) + + //** ComponentDidMount + useEffect(() => { + if (isUserLoggedIn() !== null) { + setUserData(JSON.parse(localStorage.getItem('userData'))) + } + }, []) + + //** Vars + const userAvatar = (userData && userData.avatar) || defaultAvatar + + return ( + + e.preventDefault()}> +
    + {(userData && userData['first_name']) || 'John Doe'} + {(userData && userData.role) || 'Admin'} +
    + +
    + + + + Profile + + + + Tasks + + + + + + Settings + + dispatch(handleLogout())}> + + Logout + + +
    + ) +} + +export default UserDropdown diff --git a/src/@core/layouts/components/navbar/index.js b/src/@core/layouts/components/navbar/index.js new file mode 100644 index 0000000..4d791eb --- /dev/null +++ b/src/@core/layouts/components/navbar/index.js @@ -0,0 +1,45 @@ +// ** React Imports +import { Fragment, useState } from 'react' +// ** Dropdowns Imports +// ** Dropdowns Imports +import IntlDropdown from './IntlDropdown' +import NavbarSearch from './NavbarSearch' +import NotificationDropdown from './NotificationDropdown' +import * as Icon from 'react-feather' +// ** Custom Components +import NavbarBookmarks from './NavbarBookmarks' +import UserDropdown from './UserDropdown' + + +// import NavIcons from './NavIcons' +// ** Third Party Components + +import { NavItem, NavLink, Tooltip } from 'reactstrap' + +const ThemeNavbar = props => { + // ** Props + const { skin, setSkin, setMenuVisibility } = props + + return ( + +
    +
      + + setMenuVisibility(true)}> + + + +
    + +
    +
    +
    + +
      + +
    +
    + ) +} + +export default ThemeNavbar diff --git a/src/@core/layouts/utils.js b/src/@core/layouts/utils.js new file mode 100644 index 0000000..83edf98 --- /dev/null +++ b/src/@core/layouts/utils.js @@ -0,0 +1,159 @@ +// ** React Imports +import { useContext } from 'react' +import { AbilityContext } from '@src/utility/context/Can' + +/** + * Return which component to render based on it's data/context + * @param {Object} item nav menu item + */ +export const resolveVerticalNavMenuItemComponent = item => { + if (item.header) return 'VerticalNavMenuSectionHeader' + if (item.children) return 'VerticalNavMenuGroup' + return 'VerticalNavMenuLink' +} + +/** + * Return which component to render based on it's data/context + * @param {Object} item nav menu item + */ +export const resolveHorizontalNavMenuItemComponent = item => { + if (item.children) return 'HorizontalNavMenuGroup' + return 'HorizontalNavMenuLink' +} + +/** + * Check if nav-link is active + * @param {Object} link nav-link object + */ +// export const isNavLinkActive = (link, currentURL, match) => { +// // return currentURL === link || (URLParams && Object.keys(URLParams).length && currentURLFilter === item.navLink) +// const getFirstObjProp = obj => obj[Object.keys(obj)[0]] +// return ( +// currentURL === link || +// (match !== null && match !== undefined && match.url === `${link}/${getFirstObjProp(match.params)}`) +// ) +// } + +export const isNavLinkActive = (link, currentURL, routerProps) => { + return ( + currentURL === link || + (routerProps && routerProps.meta && routerProps.meta.navLink && routerProps.meta.navLink === link) + ) + // return currentURL === link +} + +/** + * Check if nav group is + * @param {Array} children Group children + */ +// export const isNavGroupActive = (children, currentURL, match) => { +// return children.some(child => { +// // If child have children => It's group => Go deeper(recursive) +// if (child.children) { +// return isNavGroupActive(child.children, currentURL, match) +// } +// // else it's link => Check for matched Route +// return isNavLinkActive(child.navLink, currentURL, match) +// }) +// } +export const isNavGroupActive = (children, currentURL, routerProps) => { + return children.some(child => { + // If child have children => It's group => Go deeper(recursive) + if (child.children) { + return isNavGroupActive(child.children, currentURL, routerProps) + } + // else it's link => Check for matched Route + return isNavLinkActive(child.navLink, currentURL, routerProps) + }) +} + +/** + * Search for parent object + * @param {Array} navigation Group children + * @param {string} currentURL current URL + */ +// export const search = (navigation, currentURL, match) => { +// let result +// navigation.some(child => { +// let children +// // If child have children => It's group => Go deeper(recursive) +// if (child.children && (children = search(child.children, currentURL, match))) { +// return (result = { +// id: child.id, +// children +// }) +// } + +// // else it's link => Check for matched Route +// if (isNavLinkActive(child.navLink, currentURL, match)) { +// return (result = { +// id: child.id +// }) +// } +// }) +// return result +// } + +export const search = (navigation, currentURL, routerProps) => { + let result + navigation.some(child => { + let children + // If child have children => It's group => Go deeper(recursive) + if (child.children && (children = search(child.children, currentURL, routerProps))) { + return (result = { + id: child.id, + children + }) + } + + // else it's link => Check for matched Route + if (isNavLinkActive(child.navLink, currentURL, routerProps)) { + return (result = { + id: child.id + }) + } + }) + return result +} + +/** + * Loop through nested object + * @param {object} obj nested object + */ +export const getAllParents = (obj, match) => { + const res = [] + const recurse = (obj, current) => { + for (const key in obj) { + const value = obj[key] + if (value !== undefined) { + if (value && typeof value === 'object') { + recurse(value, key) + } else { + if (key === match) { + res.push(value) + } + } + } + } + } + recurse(obj) + return res +} + +export const canViewMenuGroup = item => { + const ability = useContext(AbilityContext) + // ! This same logic is used in canViewHorizontalNavMenuGroup and canViewHorizontalNavMenuHeaderGroup. So make sure to update logic in them as well + const hasAnyVisibleChild = item.children && item.children.some(i => ability.can(i.action, i.resource)) + + // ** If resource and action is defined in item => Return based on children visibility (Hide group if no child is visible) + // ** Else check for ability using provided resource and action along with checking if has any visible child + if (!(item.action && item.resource)) { + return hasAnyVisibleChild + } + return ability.can(item.action, item.resource) && hasAnyVisibleChild +} + +export const canViewMenuItem = item => { + const ability = useContext(AbilityContext) + return ability.can(item.action, item.resource) +} diff --git a/src/@core/scss/base/bootstrap-extended.scss b/src/@core/scss/base/bootstrap-extended.scss new file mode 100644 index 0000000..89c5f99 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended.scss @@ -0,0 +1,47 @@ +// ================================================================================================ +// File Name: bootstrap-extended.scss +// Description: List of modified Bootstrap files. This is an actual copy of bootstrap.scss +// excluding files that have not been modified. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import 'bootstrap-extended/include'; // Bootstrap includes +@import 'components/include'; // Components includes + +// Custom template mixins +@import 'core/mixins/alert'; // Template custom mixins + +// Core CSS +@import 'bootstrap-extended/reboot'; +@import 'bootstrap-extended/helper'; +@import 'bootstrap-extended/type'; +@import 'bootstrap-extended/code'; +@import 'bootstrap-extended/tables'; +@import 'bootstrap-extended/forms'; +@import 'bootstrap-extended/buttons'; +@import 'bootstrap-extended/button-group'; + +// Components +@import 'bootstrap-extended/dropdown'; +@import 'bootstrap-extended/navbar'; +@import 'bootstrap-extended/card'; +@import 'bootstrap-extended/breadcrumb'; +@import 'bootstrap-extended/badge'; +@import 'bootstrap-extended/nav'; +@import 'bootstrap-extended/alert'; +@import 'bootstrap-extended/media'; +@import 'bootstrap-extended/progress'; +@import 'bootstrap-extended/list-group'; +@import 'bootstrap-extended/toast'; +@import 'bootstrap-extended/collapse'; +@import 'bootstrap-extended/pagination'; + +// Components w/ JavaScript +@import 'bootstrap-extended/modal'; +@import 'bootstrap-extended/popover'; + +// Utility classes +@import 'bootstrap-extended/utilities'; diff --git a/src/@core/scss/base/bootstrap-extended/_alert.scss b/src/@core/scss/base/bootstrap-extended/_alert.scss new file mode 100644 index 0000000..f24e998 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_alert.scss @@ -0,0 +1,56 @@ +// Alerts + +.alert { + font-weight: 500; + border: none; + padding: 0; + // close + &.alert-dismissible { + .close { + padding: 0.5rem $alert-padding-x 0.5rem $alert-padding-x; + background-color: transparent !important; + box-shadow: none !important; + } + .alert-body { + padding: $alert-padding-y ($alert-padding-x * 2) $alert-padding-y $alert-padding-x; + } + } + .close:focus { + outline: 0; + } + + .alert-link:hover { + text-decoration: underline; + } + + // For Alert Content + p { + font-weight: 500; + padding: 2px 0; + margin-bottom: 0; + vertical-align: middle; + } + + // For alert heading + .alert-heading { + font-weight: 600; + font-size: $font-size-base; + padding: $alert-padding-y $alert-padding-x; + margin-bottom: 0; + } + .alert-body { + padding: $alert-padding-y $alert-padding-x; + i, + svg { + position: relative; + top: -2px; + } + } + + // For dark alert + &.alert-dark { + .alert-heading { + @include alert-heading-bs($dark); + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_badge.scss b/src/@core/scss/base/bootstrap-extended/_badge.scss new file mode 100644 index 0000000..636da58 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_badge.scss @@ -0,0 +1,90 @@ +// Badge + +.badge { + color: $white; + &[class*='badge-'] { + [class*='icon-'] { + line-height: 1; + } + + a { + color: $white; + } + + // badge dropdown alignment + .dropdown-toggle, + &.dropdown-toggle { + span, + i, + svg { + vertical-align: text-top; + } + i, + svg { + padding-left: 0.2rem; + } + &::after { + position: relative; + top: 0; + left: 0; + font-size: 1rem; + } + } + .dropdown-menu { + a { + color: $dropdown-color; + } + } + } + + i, + svg { + height: 12px; + width: 11px; + font-size: 12px; + stroke-width: 3; + vertical-align: top; + } + + // square badge + &.badge-square { + border-radius: 0; + } + + // badge-up + // to align badge over any element + &.badge-up { + position: absolute; + top: -11px; + right: -9px; + min-width: 1.429rem; + min-height: 1.429rem; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.786rem; + line-height: 0.786; + padding-left: 0.25rem; + padding-right: 0.25rem; + &.badge-sm { + top: -0.5rem; + right: -0.5rem; + } + } +} + +// For fullscreen search +.badge-icon { + i, + svg { + font-size: 100%; + margin-right: 5px; + } +} + +// badge dropup pointer +.dropup { + .badge { + cursor: pointer; + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_breadcrumb.scss b/src/@core/scss/base/bootstrap-extended/_breadcrumb.scss new file mode 100644 index 0000000..e44405f --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_breadcrumb.scss @@ -0,0 +1,76 @@ +.breadcrumb { + &:not([class*='breadcrumb-']) { + .breadcrumb-item + .breadcrumb-item { + &:before { + content: ' '; + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $body-color), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + color: $body-color; + margin-right: $breadcrumb-item-padding; + background-size: 14px; + } + } + } + .breadcrumb-item + .breadcrumb-item { + &:before { + height: 20px; + } + } +} + +/* Component Specific */ +.breadcrumb-slash { + &.breadcrumb { + .breadcrumb-item + .breadcrumb-item:before { + content: '/'; + } + } +} +.breadcrumb-dots { + &.breadcrumb { + .breadcrumb-item + .breadcrumb-item:before { + content: '.'; + position: relative; + top: -4px; + } + } +} +.breadcrumb-dashes { + &.breadcrumb { + .breadcrumb-item + .breadcrumb-item:before { + content: '-'; + } + } +} +.breadcrumb-pipes { + &.breadcrumb { + .breadcrumb-item + .breadcrumb-item:before { + content: '|'; + } + } +} +.breadcrumb-chevron { + &.breadcrumb { + .breadcrumb-item + .breadcrumb-item:before { + content: ' '; + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $body-color), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + color: $body-color; + margin-right: $breadcrumb-item-padding; + background-size: 14px; + } + } +} + +@media (max-width: 648px) { + .content-header .breadcrumb { + display: none; + } + .breadcrumbs-top { + .content-header-title { + display: contents !important; + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_button-group.scss b/src/@core/scss/base/bootstrap-extended/_button-group.scss new file mode 100644 index 0000000..21bb5df --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_button-group.scss @@ -0,0 +1,59 @@ +// +// Split button dropdowns +// + +.dropdown-toggle-split { + padding-right: $btn-padding-x / 1.9; + padding-left: $btn-padding-x / 1.9; +} + +.btn-lg + .dropdown-toggle-split, +.btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: $input-btn-padding-x-lg / 1.75; + padding-left: $input-btn-padding-x-lg / 1.75; +} + +.btn-sm + .dropdown-toggle-split, +.btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: $input-btn-padding-x-sm / 1.9; + padding-left: $input-btn-padding-x-sm / 1.9; +} + +// button group border +.btn-group { + [class*='btn-']:not([class*='btn-outline-']):not([class*='btn-flat-']):not([class*='btn-gradient-']):not([class*='btn-relief-']) { + border-left-color: rgba($black, 0.08) !important; + border-right-color: rgba($black, 0.08) !important; + } +} + +// remove first btn group border left +.btn-group + > .btn:not([class*='btn-outline-']):not([class*='btn-flat-']):not([class*='btn-gradient-']):not([class*='btn-relief-']):first-child, +.btn-group + > .btn:not([class*='btn-outline-']):not([class*='btn-flat-']):not([class*='btn-gradient-']):not([class*='btn-relief-']):first-of-type { + border-left-color: transparent !important; +} + +// remove last btn group border right +.btn-group + > .btn:not([class*='btn-outline-']):not([class*='btn-flat-']):not([class*='btn-gradient-']):not([class*='btn-relief-']):last-child, +.btn-group + > .btn:not([class*='btn-outline-']):not([class*='btn-flat-']):not([class*='btn-gradient-']):not([class*='btn-relief-']):last-of-type { + border-right-color: transparent !important; +} + +// toggle button +.btn-group-toggle { + [class*='btn-outline-'] { + &:not(:last-child) { + border-right-width: 0 !important; + } + } + :not([class*='btn-outline-']) { + &.active, + &:active { + box-shadow: inset $box-shadow; + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_buttons.scss b/src/@core/scss/base/bootstrap-extended/_buttons.scss new file mode 100644 index 0000000..260370c --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_buttons.scss @@ -0,0 +1,67 @@ +// var for box shadow of gradient buttons +// Buttons +.btn { + box-shadow: none; + font-weight: 500; + + // gradient button on hover transition + &[class*='bg-gradient-'] { + transition: all 0.2s ease; + &:hover { + transform: translateY(-2px); + } + } + + // Icon button padding + &.btn-icon { + padding: 0.715rem 0.736rem; + } + &.btn-sm { + &.btn-icon { + padding: 0.5rem; + line-height: 0.5; + } + } + &.btn-lg { + &.btn-icon { + padding: 1rem; + line-height: 0.75; + } + } + + &:focus, + &.focus, + &:active, + &.active { + outline: none; + box-shadow: none; + } + + &:not(:disabled):not(.disabled):active:focus, + &:not(:disabled):not(.disabled).active:focus { + box-shadow: none !important; + } + + // feather icons inside btn + .feather { + vertical-align: bottom; + } +} + +// For Waves Input Padding +.btn.waves-input-wrapper { + padding: 0; +} + +@include media-breakpoint-down(sm) { + .btn-sm-block { + display: block; + width: 100%; + } +} + +// Remove cursor-pointer from button if button is disabled +// * setting it to inherit will auto adept cursor +.waves-effect { + cursor: inherit; +} diff --git a/src/@core/scss/base/bootstrap-extended/_card.scss b/src/@core/scss/base/bootstrap-extended/_card.scss new file mode 100644 index 0000000..d879311 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_card.scss @@ -0,0 +1,514 @@ +.card { + border: none; + margin-bottom: $content-padding; + box-shadow: $box-shadow; + transition: all 0.3s ease-in-out, background 0s, color 0s, border-color 0s; + .card { + box-shadow: none !important; + } + .card-title { + font-weight: 500; + font-size: 1.285rem; + margin-bottom: 1.53rem; // Considering sub-title minus margin + } + .card-bordered { + border: $card-border-width solid $card-border-color; + } + .card-img { + object-fit: cover; + } + .card-img-overlay { + border-radius: $card-border-radius; + } + + //fullscreen card + &.card-fullscreen { + display: block; + z-index: 9999; + position: fixed; + width: 100% !important; + height: 100% !important; + top: 0; + right: 0; + left: 0; + bottom: 0; + overflow: auto; + } + .card-body[class*='border-bottom-'] { + border-bottom-width: 2px !important; + } + .card-img-overlay { + &.bg-overlay { + background: rgba($black, 0.45); + } + .text-muted { + color: $gray-800 !important; + } + } + &.card-minimal { + border: none; + box-shadow: none; + } + + .card-header { + position: relative; + display: flex; + align-items: center; + flex-wrap: wrap; + justify-content: space-between; + border-bottom: none; + padding: 1.5rem; + background-color: transparent; + .card-title { + margin-bottom: 0; + } + + .heading-elements { + position: relative; + top: -1px; + + li:not(:first-child) a { + margin-left: 0.75rem; + } + + a { + &.btn { + padding-top: 6px; + padding-bottom: 6px; + } + i, + svg { + height: 1rem; + width: 1rem; + font-size: 1rem; + } + &[data-action='collapse'] { + i, + svg { + transition: all 0.25s ease-out; + display: inline-block; + } + &.rotate { + i, + svg { + transform: rotate(-180deg); + } + } + } + } + } + + & + .card-content > .card-body:first-of-type, + & + .card-body { + padding-top: 0px; + } + } + .card-footer { + border-top: 1px solid $gray-300; + background-color: transparent; + } +} +// Card Column +.card-columns { + .card { + margin-bottom: $spacer * 2.2; + } +} + +.card-group, +.card-deck { + margin-bottom: 0.75rem; +} + +.card-head-inverse { + .heading-elements { + i, + svg { + color: $white; + } + } + color: $white; +} +.card-transparent { + background-color: transparent; +} + +.text-white { + .card-img-overlay { + .text-muted { + color: $white !important; + } + } + code { + background-color: rgba($white, 1); + } + .heading-elements { + i, + svg { + color: $white; + } + } +} + +// overlay-img-card +.overlay-img-card { + .card-img-overlay, + img { + max-height: 34.64rem; + } +} + +// IE Specific CSS +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + // img-fluid class + .card-body, + .card-content { + min-height: 1px; + } +} + +//--------------- Advance Cards --------------- +//--------------------------------------------- + +// Congratulations Card +.card-congratulations { + background: linear-gradient(118deg, rgba($primary, 1), rgba($primary, 0.7)); + color: $white; + + // image on left + .congratulations-img-left { + width: 200px; + position: absolute; + top: 0; + left: 0; + + @include media-breakpoint-down(xs) { + width: 140px; + } + } + // image on right + .congratulations-img-right { + width: 175px; + position: absolute; + top: 0; + right: 0; + + @include media-breakpoint-down(xs) { + width: 140px; + } + } + + .avatar { + margin-bottom: 2rem; + } +} +// congratulation medal card +.congratulation-medal { + position: absolute; + top: 0; + right: 37px; +} + +// Deposits Card +.card-deposits { + .deposits-divider { + margin-top: 1.8rem; + margin-bottom: 1.4rem; + } +} + +// Employee Task Card +.card-employee-task { + .employee-task { + &:not(:last-child) { + margin-bottom: 1.5rem; + } + } +} + +// Developer Meetup Card +.card-developer-meetup { + .meetup-img-wrapper { + background-color: rgba($primary, 0.1); + } + .meetup-header { + margin-bottom: 2rem; + + .meetup-day { + text-align: center; + border-right: 1px solid $custom-control-border-color; + padding-right: 1.3rem; + margin-right: 1.3rem; + } + } + .media { + .avatar .avatar-content { + width: 34px; + height: 34px; + } + & + .media { + margin-top: 1.2rem; + } + } + .avatar-group { + margin-top: 2rem; + } +} + +// Profile Card +.card-profile { + text-align: center; + .card-body { + position: relative; + padding: 5rem 2.3rem $card-spacer-y 2.3rem; + + .profile-image-wrapper { + display: flex; + justify-content: center; + + .profile-image { + position: absolute; + top: -4rem; + padding: 0.5rem; + border-radius: 50%; + background-color: $white; + box-shadow: 0 0 8px 0 rgba($black, 0.14); + margin-bottom: 1.15rem; + + img { + width: 100px; + height: 100px; + } + } + } + + .profile-badge { + margin-top: 0.8rem; + margin-bottom: 0.8rem; + } + } +} + +// Apply Job Card +.card-apply-job { + .apply-job-package { + padding: 1.2rem; + margin-bottom: 1.15rem; + display: flex; + align-items: center; + justify-content: space-between; + sup { + top: -0.8rem; + } + } +} + +// Transaction Card +.card-transaction { + .transaction-item { + display: flex; + align-items: center; + justify-content: space-between; + &:not(:last-child) { + margin-bottom: 1.2rem; + } + + .avatar { + margin-right: 1.2rem; + .avatar-content { + width: 42px; + height: 42px; + } + } + + .transaction-title { + margin-bottom: 0.2rem; + margin-top: 0.2rem; + } + } +} + +// User Timeline Card +.card-user-timeline { + .user-timeline-title-icon { + width: 1.714rem; + height: 1.714rem; + margin-right: 1.3rem; + } + .timeline { + .timeline-item { + &:last-child { + .timeline-event { + min-height: auto; + } + } + &:not(:last-child) { + padding-bottom: 2.3rem; + } + } + } +} + +// Business Card +.business-card { + .business-items { + &:not(:last-child) { + margin-bottom: 1.3rem; + } + + .business-item { + border: 1px solid $border-color; + border-radius: $border-radius; + padding: 1rem 1rem 1rem 1.3rem; + &:not(:last-child) { + margin-bottom: 0.85rem; + } + } + } +} + +// States Card +.card-browser-states { + .browser-states { + margin-top: 2.14rem; + display: flex; + justify-content: space-between; + align-items: center; + } +} + +// App Design Card +.card-app-design { + .design-group { + margin-bottom: 2rem; + + .avatar:not(:last-child) { + margin-right: 0.6rem; + } + } + + .design-planning-wrapper { + display: flex; + align-items: center; + flex-wrap: wrap; + &:not(:last-child) { + margin-bottom: 1.3rem; + } + + .design-planning { + padding: 0.5rem; + margin-bottom: 0.7rem; + text-align: center; + background-color: $body-bg; + border-radius: $border-radius; + min-width: 6.4rem; + &:not(:last-child) { + margin-right: 0.7rem; + } + } + } +} + +//--------------- Statistics Card --------------- +//------------------------------------------------ + +.card-statistics { + .card-header { + padding-left: 2.4rem; + } + .statistics-body { + padding: 2rem 2.4rem 2.8rem !important; + + .avatar .avatar-content { + width: 48px; + height: 48px; + + .avatar-icon { + width: 24px; + height: 24px; + } + } + } +} + +//--------------- Analytics Card --------------- +//---------------------------------------------- + +// Chart-dropdown Button +.chart-dropdown { + .btn { + font-size: 1rem; + font-weight: $font-weight-normal; + &:after { + display: none; + } + } +} + +// Revenue Report & Budget Card +.card-revenue-budget { + .revenue-report-wrapper { + padding: 1.286rem 1.5rem; + + @include media-breakpoint-up(md) { + border-right: 1px solid $border-color; + } + + #revenue-report-chart { + .apexcharts-series { + &[seriesName='Earning'] { + transform: scaleY(0.965); + } + &[seriesName='Expense'] { + transform: scaleY(1.035); + } + } + } + } + + .budget-wrapper { + padding: 2rem 3rem; + text-align: center; + + @include media-breakpoint-down(sm) { + padding-top: 0; + } + + .budget-dropdown { + margin-bottom: 2rem; + } + + #budget-chart { + margin-top: 2rem; + margin-bottom: 2rem; + } + } +} + +// Earnings Card +.earnings-card { + .apexcharts-canvas .apexcharts-pie { + .apexcharts-datalabel-label { + font-size: 0.8rem; + fill: $body-color !important; + } + .apexcharts-datalabel-value { + fill: $headings-color; + font-size: 1.286rem; + font-weight: 500; + } + } +} + +// IE Specific CSS +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + // make icon center in avatar-content + #dashboard-analytics, + #statistics-card { + .avatar { + .avatar-content { + padding: 0 !important; + } + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_code.scss b/src/@core/scss/base/bootstrap-extended/_code.scss new file mode 100644 index 0000000..09a369f --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_code.scss @@ -0,0 +1,14 @@ +// Inline code +code { + padding: 0.1rem 0.4rem; + font-size: 90%; + color: $code-color; + background-color: $kbd-bg; + @include border-radius($border-radius/2); +} +pre { + background-color: #f7f7f9; + code { + background-color: transparent !important; + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_collapse.scss b/src/@core/scss/base/bootstrap-extended/_collapse.scss new file mode 100644 index 0000000..6bbf6b3 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_collapse.scss @@ -0,0 +1,140 @@ +// For Collapse And Accordion + +// For collapse-title +[class*='collapse-'] { + .collapse-title { + font-weight: 500; + font-size: 1.1rem; + } + .card { + margin-bottom: 0; + &:last-of-type { + margin-bottom: 0; + } + &:not(:last-of-type) { + border-bottom: 1px solid $border-color; + } + .card-header { + cursor: pointer; + padding: 1rem 2.8rem 1rem 1rem; + } + .card-body { + padding: 1rem; + line-height: 1.5; + padding-top: 0.42rem; + } + } +} + +// For collapse title +.collapse-title { + color: inherit; + &:hover { + color: inherit; + } +} + +// To add a border below collapse/accordion heading +.collapse-default { + .card:first-child { + border-top: 0; + } + .card:last-child { + border-bottom: 0; + } + .card { + border-radius: 0; + } +} + +// For Collapse with border + +.collapse-border { + .card { + border: 1px solid $border-color; + &:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + } + &:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0; + } + } +} + +// For Collapse with shadow +.collapse-shadow { + box-shadow: 0 0px 4px 0 rgba($black, 0.1); + padding: 0.15rem 0.75rem; + border-radius: $border-radius; + .card { + border-radius: 0; + transition: border 0.5s ease-in-out, all 0.3s ease-in-out; + &.open { + border-radius: 0.571rem; + margin: 10px 0; + border: 0; + box-shadow: 0px 0px 8px 0px rgba($black, 0.1) !important; + } + } + .card:first-child { + border-top-left-radius: 0.571rem; + border-top-right-radius: 0.571rem; + } + .card:last-child { + border-bottom-left-radius: 0.571rem; + border-bottom-right-radius: 0.571rem; + } +} + +// For Collapse with margin +.collapse-margin { + .card { + margin-top: 0.71rem; + margin-bottom: 0.71rem; + box-shadow: 0 2px 15px 0 rgba($black, 0.05) !important; + border-radius: 0.358rem; + border-bottom: 0 solid transparent !important; + } + .card-header { + border-radius: 0.358rem; + } +} + +// Collapse Icon & Animation +.collapse-icon { + .card-header { + position: relative; + } + + [data-toggle='collapse'] { + &:after { + position: absolute; + top: 58%; + right: 1rem; + margin-top: -8px; + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $body-color), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 14px; + width: 14px; + height: 11px; + content: ''; + transition: all 300ms linear 0s; + } + + &:disabled { + &:before { + background-image: url(str-replace(str-replace($chevron-up, 'currentColor', $body-color), '#', '%23')); + } + } + } + + [aria-expanded='false'] { + &:after { + transform: rotate(-180deg); + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_dropdown.scss b/src/@core/scss/base/bootstrap-extended/_dropdown.scss new file mode 100644 index 0000000..4fa6004 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_dropdown.scss @@ -0,0 +1,255 @@ +// The dropdown menu +.dropdown { + [class*='btn-outline-'].dropdown-toggle.dropdown-toggle-split { + border-left: 0 !important; + } + + // If don't won't dropdown/up arrow + &.no-arrow { + .dropdown-toggle { + &:after { + display: none; + } + i, + svg { + margin-right: 0; + } + } + } +} + +// dropdown menu +.dropdown-menu { + // border: 1px solid rgba($black, 0.05); // border opacity has been reduced to make it look same as vue's dropdown border [component page, list view page] + border-radius: $dropdown-border-radius; + transform: scale(1, 0); + box-shadow: $dropdown-box-shadow; // this according to vue version + + .dropdown-item { + width: auto; + cursor: pointer; + } + + // Dropdown Header + .dropdown-header { + font-weight: 500; + line-height: 1; + } +} + +.show { + > .dropdown-menu { + transform: scale(1, 1); + opacity: 1; + display: block; + } + .dropdown-toggle { + &:focus { + box-shadow: none; + } + } + + // For DD box shadow on show + .btn { + &.dropdown-toggle { + &:focus { + box-shadow: none; + } + } + } +} + +.dropdown-toggle { + // changed icon caret + + &::after { + border: none !important; + content: ' '; + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $white), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 16px; + color: $body-color; + width: 14px; + height: 11px; + position: relative; + top: 1px; + right: 0px; + left: 0.714rem; + padding: 0; + margin: 0; + vertical-align: 0; + } + // arrow size according to toggle sizes + &.btn-lg { + &::after { + background-size: 18px; + } + } + + &.btn-sm { + &::after { + background-size: 14px; + } + } + + &.dropdown-toggle-split { + &:after { + left: 0; + } + } + + // hide default arrow to show custom icon DD + &.nav-hide-arrow { + &::after { + display: none; + } + } + + // Prevent the focus on the dropdown toggle when closing dropdowns + &:focus { + outline: 0; + } +} + +// DropUp +.dropup { + position: relative; + .dropdown-toggle { + // changed icon dropup caret + &::after { + background-image: url(str-replace(str-replace($chevron-up, 'currentColor', $white), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 16px; + width: 14px; + height: 11px; + content: ''; + vertical-align: 0.05rem; + } + } + .dropdown-menu { + min-width: 8rem; + } +} + +// DropLeft +.dropleft { + .dropdown-toggle { + // changed icon dropup caret + &::before { + border: none !important; + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $white), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 16px; + width: 14px; + height: 11px; + content: ''; + position: relative; + left: 0; + } + } + .dropdown-menu { + min-width: 8rem; + } +} + +// DropRight +.dropright { + .dropdown-toggle { + // changed icon dropup caret + &::after { + border: none !important; + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $white), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 16px; + width: 14px; + height: 11px; + content: ''; + } + } + .dropdown-menu { + min-width: 8rem; + } +} + +// Dropdown ::before position +.dropdown-menu { + // Dropdown margin according to dropdown position + + &[x-placement='bottom-start'], + &[x-placement='bottom-end'] { + margin-top: $dropdown_spacing; + } + + &[x-placement='top-start'], + &[x-placement='top-end'] { + margin-bottom: $dropdown_spacing; + } + + &[x-placement='right-start'] { + margin-left: $dropdown_spacing; + } + &[x-placement='left-start'] { + margin-right: $dropdown_spacing; + } +} + +// Dropdown icon +.dropdown, +.dropup { + &.dropdown-icon-wrapper { + .dropdown-toggle { + &:after { + display: none; + } + } + .dropdown-menu { + min-width: auto; + .dropdown-item { + padding: 0.5rem 1.1rem; + cursor: pointer; + i, + svg { + height: 1.3rem; + width: 1.3rem; + font-size: 1.3rem; + } + } + } + } +} + +// Dropdown menu animation for Horizontal menu +.horizontal-menu-wrapper .dropdown-menu, +.header-navbar .dropdown-menu { + animation-duration: 0.3s; + animation-fill-mode: both; + animation-name: slideIn; +} + +// Hidden dropdown toggle arrow +.dropdown-toggle.hide-arrow, +.dropdown-toggle-hide-arrow > .dropdown-toggle { + &::before, + &::after { + display: none; + } +} + +@keyframes slideIn { + 0% { + transform: translateY(1rem); + opacity: 0; + } + 100% { + transform: translateY(0rem); + opacity: 1; + } + 0% { + transform: translateY(1rem); + opacity: 0; + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_forms.scss b/src/@core/scss/base/bootstrap-extended/_forms.scss new file mode 100644 index 0000000..8dbc515 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_forms.scss @@ -0,0 +1,570 @@ +// +// Labels +// +label { + color: $headings-color; + font-size: $small-font-size; +} + +// placeholder specific scss +.form-control { + &::placeholder { + transition: all 0.2s ease; + } + + &:focus { + &::placeholder { + transform: translate(5px); + transition: all 0.2s ease; + } + &:valid, + &.is-valid { + box-shadow: $input-focus-box-shadow; + } + } +} + +.form-control-plaintext { + &:focus { + outline: none; + } +} + +.custom-file-label { + line-height: 1.75; + height: $custom-file-height !important; + &:after { + height: 2.58rem; + line-height: 1.75; + } +} + +.valid-tooltip, +.invalid-tooltip { + top: 102%; + left: 5px; +} + +/*************** +* Form Group +***************/ + +// input group !important for overriding the dark style +.input-group { + &:not(.bootstrap-touchspin):focus-within { + box-shadow: $input-focus-box-shadow; + border-radius: $input-border-radius; + .form-control, + .input-group-text { + border-color: $primary; + box-shadow: none; + + &.is-valid { + border-color: $success; + } + + &.is-invalid { + border-color: $danger; + } + } + } + &.is-valid { + .input-group-text { + border-color: $success !important; + } + &:not(.bootstrap-touchspin):focus-within { + .input-group-text { + border-color: $success; + } + } + } + &.is-invalid { + .input-group-text { + border-color: $danger !important; + } + &:not(.bootstrap-touchspin):focus-within { + .input-group-text { + border-color: $danger; + } + } + } + + &.disabled { + .input-group-text { + background-color: $input-disabled-bg; + } + } + + &.round { + .form-control, + .input-group-text, + &:focus-within { + @include border-radius(1.5rem); + } + } + &.square { + .form-control, + .input-group-text, + &:focus-within { + @include border-radius(0); + } + } + &.round, + &.square { + .input-group-prepend { + .input-group-text { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + } + .input-group-append { + .input-group-text { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + } + .form-control { + &:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + &:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + } + } + &.square { + .form-control, + .input-group-text { + @include border-radius(0); + } + } +} + +.input-group-text { + @include transition($input-transition); +} + +.input-group-prepend { + .input-group-text { + border-right: 0; + } +} + +.input-group-append { + .input-group-text { + border-left: 0; + } + &:not(:last-child) .input-group-text { + border-right: 0; + } +} + +// input group merge +.input-group-merge { + .form-control { + &:not(:first-child) { + padding-left: 0; + border-left: 0; + } + + &:not(:last-child) { + padding-right: 0; + border-right: 0; + } + + &.is-valid { + ~ .input-group-append { + .input-group-text { + border-color: $success; + } + } + } + } + .input-group-prepend { + ~ .form-control.is-valid { + .input-group-text & { + border-color: $success; + } + } + } +} + +// Text area line height +textarea { + &.form-control { + line-height: 1.6rem; + padding: 0.8rem 1rem !important; + } + + &.form-control-sm { + padding: 0.4rem 0.857rem !important; + } + + &.form-control-lg { + padding: 1rem 1.143rem !important; + } +} + +// Used for Card - Check it and remove if not used +.form-actions { + border-top: 1px solid darken($body-bg, 10%); + padding: 20px 0; + margin-top: 20px; + + &.filled { + background-color: $body-bg; + } + &.center { + text-align: center; + } + &.right { + text-align: right; + } + + &.top { + border-top: 0; + border-bottom: 1px solid darken($body-bg, 10%); + margin-top: 0; + margin-bottom: 20px; + } + + @include media-breakpoint-down(sm) { + .buttons-group { + float: left !important; + margin-bottom: 10px; + } + } +} + +// Form-horizontal layout +.form-horizontal { + .form-group { + @include media-breakpoint-up(sm) { + .label-control { + text-align: right; + } + } + } +} + +// Select Inputs Specific SCSS +select.form-control { + &:not([multiple='multiple']) { + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $input-border-color), '#', '%23')); + background-position: calc(100% - 12px) 13px, calc(100% - 20px) 13px, 100% 0; + background-size: 18px 14px, 18px 14px; + background-repeat: no-repeat; + -webkit-appearance: none; + -moz-appearance: none; + padding-right: 1.5rem; + } + &.form-control-lg { + background-position: calc(100% - 12px) 16px, calc(100% - 20px) 16px, 100% 0; + } + &.form-control-sm { + background-position: calc(100% - 12px) 8px, calc(100% - 20px) 8px, 100% 0; + } +} + +// For customs-select remove double arrow +.custom-select { + -moz-appearance: none; // For firefox + -webkit-appearance: none; // for chrome +} + +// Custom Checkbox +.custom-checkbox { + .custom-control-label::before, + .custom-control-label::after { + top: 0.07rem; + } + + .custom-control-label::after { + background-size: 57%; + } +} + +// Custom Radio +.custom-radio { + .custom-control-label::before { + top: 0.1rem; + } +} + +// Custom checkbox and radio in common +.custom-checkbox, +.custom-radio { + &.custom-control { + padding-left: 1.8rem; + + .input-group & { + padding-left: 1.3rem; + } + } + + .custom-control-input { + width: 1.285rem; + height: 1.285rem; + } + + .custom-control-label { + font-size: $font-size-base; + position: static; + // vertical-align: middle; + &::before, + &::after { + width: 18px; + height: 18px; + left: 0; + } + } + .custom-control-input:checked ~ .custom-control-label::before { + box-shadow: 0 2px 4px 0 rgba($custom-control-indicator-checked-bg, 0.4) !important; + } + + .custom-control-input:disabled ~ .custom-control-label::before { + border: none; + box-shadow: none !important; + } + + .custom-control-input:focus ~ .custom-control-label::before { + border-color: none; + box-shadow: 0 2px 4px 0 rgba($custom-control-indicator-checked-bg, 0.4) !important; + } +} + +// Custom-checkbox when not disabled and active +.custom-control-input:not(:disabled) { + &:active ~ .custom-control-label { + &::before { + background-color: $primary; + border-color: $primary; + } + } +} + +/* Floating label Group */ +.form-label-group { + position: relative; + margin-bottom: $form-group-margin-bottom; + + // Form-Control-Large in Floating Label Group + .form-control-lg { + ~ label { + font-size: $input-font-size; + padding: 1rem; + } + } + + // Form-label + > label { + position: absolute; + top: 0; + left: 0; + display: block; + transition: all 0.25s ease-in-out; + padding: 0.6rem; + pointer-events: none; + cursor: text; + color: rgba($black, 0.4); + font-size: 0.7rem; + opacity: 0; + } + // form-input + > input, + textarea { + // from-input on focus change label color + &:focus, + &:not(:active) { + &:not(:placeholder-shown) ~ label { + color: rgba($primary, 1) !important; + transition: all 0.25s ease-in-out; + opacity: 1; + } + } + &:not(:focus) { + &:not(:placeholder-shown) ~ label { + color: rgba($black, 0.4) !important; + } + } + // form-label after entering text in input box + &:not(:placeholder-shown) ~ label { + padding: 0.25rem 0; + top: -20px; + left: 3px; + } + + &.form-control-lg:not(:placeholder-shown) ~ label { + top: -23px; + } + + &.form-control-sm:not(:placeholder-shown) ~ label { + top: -18px; + } + } +} + +/* Switches */ + +.custom-switch { + padding-left: 0; + line-height: 1.7rem; + + .custom-control-label { + padding-left: 3.5rem; + line-height: 1.7rem; + + /* For bg color of switch*/ + &::before { + border: none; + background-color: $switch-bg-color; + height: 1.7rem; + box-shadow: none !important; + transition: opacity 0.25s ease, background-color 0.1s ease; + cursor: pointer; + user-select: none; + top: 0; + left: 0; + } + /*For Switch handle*/ + &:after { + position: absolute; + top: 4px; + left: 4px; + box-shadow: -1px 2px 3px 0 rgba($black, 0.2); + background-color: $switch-indicator-color; + transition: all 0.15s ease-out; + cursor: pointer; + user-select: none; + } + + /*For Switch text*/ + .switch-text-left, + .switch-text-right, + .switch-icon-left, + .switch-icon-right { + position: absolute; + cursor: pointer; + user-select: none; + line-height: 1.8; + i, + svg { + height: 13px; + width: 13px; + font-size: 13px; + } + } + .switch-text-left, + .switch-icon-left { + left: 6px; + color: $white; + opacity: 0; + transform: translateX(8px); + transition: opacity 0.1s ease, transform 0.15s ease; + } + .switch-text-right, + .switch-icon-right { + right: 13px; + opacity: 1; + transform: translateX(0px); + transition: opacity 0.08s ease, transform 0.15s ease; + } + &:focus { + outline: 0; + } + } + + /*For Switch label*/ + + .switch-label { + padding-left: 1rem; + } + + // after its checked + + .custom-control-input:checked ~ .custom-control-label::before { + box-shadow: none; + } + + /*For Switch Handle Animation*/ + .custom-control-input:checked ~ .custom-control-label::after { + transform: translateX(1.4rem); + } + + .custom-control-input:checked ~ .custom-control-label { + .switch-text-left, + .switch-icon-left { + transform: translateX(0); + opacity: 1; + } + + .switch-text-right, + .switch-icon-right { + transform: translateX(-8px); + opacity: 0; + } + } + .custom-control-input:not(:checked) ~ .custom-control-label { + .switch-text-left { + opacity: 0; + } + .switch-text-right { + opacity: 1; + } + } + .custom-control-input:checked ~ .custom-control-label { + .switch-text-right { + opacity: 0; + } + .switch-text-left { + opacity: 1; + } + } +} + +/* Textarea with Counter */ +.textarea-counter-value { + background-color: $primary; + color: $white; + padding: 1px 6px; + font-size: 0.6rem; + border-radius: 0 0 5px 5px; + margin-right: 1rem; +} + +.btn.disabled-max-min { + background-color: rgba($black, 0.5) !important; + cursor: default; +} + +/* Number Type Input Box Scss for - Remove arrow on hover */ +input[type='number']::-webkit-inner-spin-button, +input[type='number']::-webkit-outer-spin-button { + -webkit-appearance: none; +} + +// IE Specific CSS +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + // floating Label Group + .form-label-group { + label { + display: none; + } + } + + // Bootstrap Select + select.form-control { + &:not([multiple='multiple']) { + background: none; + } + } +} + +// Date & Time Picker - Form Control Bg color +.picker__input { + &.form-control { + background-color: $white; + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_functions.scss b/src/@core/scss/base/bootstrap-extended/_functions.scss new file mode 100644 index 0000000..57a6eab --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_functions.scss @@ -0,0 +1,10 @@ +@function str-replace($string, $search, $replace: '') { + $index: str-index($string, $search); + + @if $index { + @return str-slice($string, 1, $index - 1) + $replace + + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); + } + + @return $string; +} diff --git a/src/@core/scss/base/bootstrap-extended/_helper.scss b/src/@core/scss/base/bootstrap-extended/_helper.scss new file mode 100644 index 0000000..759af3d --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_helper.scss @@ -0,0 +1,106 @@ +// ================================================================================================ +// File Name: helper.scss +// Description: Helper classes provides template related customization. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// Content helpers +// ------------------------- + +// typography page icon with list +.list-style-icons { + padding-left: 10px; + margin-left: 0; + list-style: none; + > li svg, + > li i { + margin-right: 6px; + } +} + +//Pull the element +.pull-up { + transition: all 0.25s ease; + + &:hover { + transform: translateY(-4px) scale(1.02); + box-shadow: 0px 14px 24px rgba(62, 57, 107, 0.2); + z-index: 30; + } +} + +// Spinner classes +.spinner { + display: inline-block; + animation: spin 1s linear infinite; +} +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + +.spinner-reverse { + display: inline-block; + animation: spin-reverse 1s linear infinite; +} +@keyframes spin-reverse { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(-360deg); + } +} + +// Bullets used in application pages +.bullet { + width: 1rem; + height: 1rem; + border-radius: 50%; + display: inline-block; + &.bullet-xs { + width: 0.5rem; + height: 0.5rem; + } + &.bullet-sm { + width: 0.714rem; + height: 0.714rem; + } + &.bullet-lg { + width: 1.25rem; + height: 1.25rem; + } +} + +// Section Label - used in pages and apps +.section-label { + font-size: 0.85rem; + color: $text-muted; + text-transform: uppercase; + letter-spacing: 0.6px; +} + +// Used for table cell fit +.cell-fit { + width: 0.1%; + white-space: nowrap; +} + +// Card match height +.match-height { + > [class*='col'] { + display: flex; + flex-flow: column; + + > .card { + flex: 1 1 auto; + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_include.scss b/src/@core/scss/base/bootstrap-extended/_include.scss new file mode 100644 index 0000000..ea9344d --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_include.scss @@ -0,0 +1,24 @@ +// ================================================================================================ +// File Name: include.scss +// Description: Common components file to include all theme specific custom components. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// Variables +// ------------------------------ + +// Functions +@import 'bootstrap/scss/functions'; // Bootstrap core function +@import 'functions'; // Bootstrap extended function + +// Variables +@import 'scss/variables/variables'; // Bootstrap custom variable override (for user purpose) +@import 'variables'; // Bootstrap extended variable override +@import 'bootstrap/scss/variables'; // Bootstrap core variable + +// Mixins +@import 'bootstrap/scss/mixins'; // Bootstrap core mixins +@import 'mixins'; // Bootstrap extended mixins diff --git a/src/@core/scss/base/bootstrap-extended/_list-group.scss b/src/@core/scss/base/bootstrap-extended/_list-group.scss new file mode 100644 index 0000000..eec9f40 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_list-group.scss @@ -0,0 +1,101 @@ +/* =============================================================================================== + File Name: list-group.scss + Description: Contain list item, list group related extended SCSS. + ---------------------------------------------------------------------------------------------- + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent +================================================================================================*/ + +// Inline list style with pipeline separator + +ul.list-inline { + li { + display: inline-block; + } + // used in search page + &.list-inline-pipe { + > li + li:before { + content: ' | '; + padding-right: 2px; + } + } +} + +// bootstrap list group +.list-group { + .list-group-item { + line-height: 1.5; + &.active { + &:hover { + background-color: $primary; + } + &:focus { + // color: $body-color; + outline: 0; + &:hover { + color: $white; + } + } + small { + color: $white !important; + } + } + &:hover { + background-color: $body-bg; + } + + i, + svg { + position: relative; + } + + &:not(.active):focus:active { + color: inherit; + } + } + .list-group-item-action { + &.active { + background-color: $primary; + color: $white; + &:focus { + background-color: $primary; + } + } + &:focus { + background-color: $body-bg; + outline: 0; + } + } + + // List group with circle for pages like knowledge base + &.list-group-circle { + border: none; + .list-group-item { + border: none; + position: relative; + padding-left: 1.5rem; + &:after { + content: ' '; + background-image: url(str-replace(str-replace($circle, 'currentColor', $body-color), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + color: $body-color; + background-size: 10px; + position: absolute; + height: 10px; + width: 10px; + top: 1.15rem; + left: 0; + } + &:hover { + background-color: transparent; + } + } + } +} + +// for drag and drop border radius on selected +.list-group-item.gu-mirror { + border-radius: 0; +} diff --git a/src/@core/scss/base/bootstrap-extended/_media.scss b/src/@core/scss/base/bootstrap-extended/_media.scss new file mode 100644 index 0000000..a03bf49 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_media.scss @@ -0,0 +1,22 @@ +.media-list { + .media { + padding: 1.25rem; + width: 100%; + margin-top: 0; + .media-left { + margin-right: 1rem; + } + .media-right { + margin-left: 1rem; + } + } + a.media { + color: $gray-600 !important; + } +} + +.media-bordered { + .media:not(:first-child) { + border-top: 1px solid $border-color; + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_mixins.scss b/src/@core/scss/base/bootstrap-extended/_mixins.scss new file mode 100644 index 0000000..46f5b18 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_mixins.scss @@ -0,0 +1,13 @@ +// =============================================================================================== +// File Name: mixins.scss +// Description: Extended mixins file with new mixins features. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import 'mixins/_type'; //(NEW) + +// Components +@import 'mixins/_navs'; diff --git a/src/@core/scss/base/bootstrap-extended/_modal.scss b/src/@core/scss/base/bootstrap-extended/_modal.scss new file mode 100644 index 0000000..0c5a3fb --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_modal.scss @@ -0,0 +1,175 @@ +// Modals + +.modal { + // Modal Header + + .modal-header { + background-color: $body-bg; + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + // close button + + .close { + padding: 0.2rem 0.62rem; + box-shadow: 0 5px 20px 0 rgba($black, 0.1); + border-radius: $border-radius; + background: $white; + opacity: 1; + transition: all 0.23s ease 0.1s; + position: relative; + transform: translate(8px, -2px); + + // For hover effect of close btn + &:hover, + &:focus, + &:active { + opacity: 1; + outline: none; + transform: translate(5px, 3px); + box-shadow: none; + } + } + } + // Modal Content + .modal-content { + border: none; + // overflow: unset; updated to "visible" as close icon is not visible in IE + overflow: visible; + box-shadow: 0 5px 20px 0 rgba($black, 0.1); + } + + .modal-footer { + padding: $modal-inner-padding; + } + + // modal sticky for apps + &.modal-sticky { + bottom: 0; + right: 0; + top: auto; + left: auto; + height: auto; + position: fixed; + .modal-header { + display: flex; + align-items: center; + justify-content: space-between; + } + .modal-dialog { + margin-right: #{$content-padding} !important; + box-shadow: 0px 0px 24px 0 rgba($black, 0.25); + border-radius: $border-radius; + } + .modal-actions { + background: transparent; + box-shadow: none; + line-height: 0; + } + } +} + +// Modal XS +.modal-xs { + max-width: 300px; +} + +// Modal XL +@media (min-width: 1200px) { + .modal-xl { + margin-left: 3%; + margin-right: 3%; + } +} + +// Slide In Modal // +.modal-slide-in, +.modal-slide-in .modal { + padding: 0 !important; + overflow: hidden !important; +} + +.modal-slide-in { + .modal-dialog { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: auto; + margin: 0; + max-width: none; + width: ($modal-slide-in-width-sm - 5); + + .modal-content { + padding-bottom: ($modal-title-line-height * $close-font-size) + $modal-header-padding-y; + padding-top: ($modal-title-line-height * $close-font-size) + $modal-header-padding-y; + overflow: auto; + border-radius: 0; + height: 100%; + } + + .modal-body { + padding-bottom: 0; + padding-top: 0; + margin: auto 0; + flex-grow: 0; + } + + @media (min-width: (map-get($grid-breakpoints, sm))) { + width: $modal-slide-in-width; + } + + &.sidebar-sm { + width: $modal-slide-in-width-sm; + } + &.sidebar-lg { + @media (min-width: (map-get($grid-breakpoints, sm))) { + width: $modal-slide-in-width-lg; + } + } + } + + .close { + top: $modal-header-padding-y / 2; + z-index: 10; + transform: none; + position: absolute; + top: 1.5rem; + right: $modal-header-padding-x; + margin: 0; + padding: 0 !important; + line-height: 0.5; + transform: translate(0, -50%); + } +} + +// Slide from Right +.modal-slide-in.fade .modal-dialog, +.modal-slide-in .modal.fade .modal-dialog { + transform: translateX(100%); + transition: transform 0.1s ease-out; +} + +.modal-slide-in.show .modal-dialog, +.modal-slide-in .modal.show .modal-dialog { + transform: translateX(0) !important; + transition: transform 0.1s ease-out; +} + +// To remove Max-width of XS Modal in Small Screen + +@media (max-width: 576px) { + .modal { + padding-right: 1rem; + padding-left: 1rem; + .modal-xs, + .modal-sm { + max-width: unset; + } + &.modal-sticky .modal-dialog { + margin-right: 0.2rem !important; + margin-left: 0.2rem; + margin-bottom: 3rem; + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_nav.scss b/src/@core/scss/base/bootstrap-extended/_nav.scss new file mode 100644 index 0000000..7130cf9 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_nav.scss @@ -0,0 +1,272 @@ +// Component nav and nav/pill tabs + +.nav { + border-radius: 0.25rem; + // for component navs + // to wrap border around nav component + &.wrap-border { + border: 1px solid $nav-component-border-color; + li.nav-header { + margin: 0 0.5rem; + } + li.nav-item, + div { + padding: 2px 0.714rem; + } + } + + &.nav-left { + .nav-item .nav-link { + justify-content: flex-start; + } + } + + &.nav-right { + .nav-item .nav-link { + justify-content: flex-end; + } + } + + // Square Border + &.square-border { + border-radius: 0; + .nav-item { + .nav-link.active { + border-radius: 0; + } + } + } + + // for main menu toggle lock + .modern-nav-toggle { + padding: 0; + margin: 1.571rem 0; + } + + // Dropdown without background need arrow color changes + .dropdown.show { + .dropdown-toggle { + &::after { + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $white), '#', '%23')); + } + } + } + + .dropdown-toggle { + &:not(.active) { + &::after { + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $body-color), '#', '%23')); + } + } + } +} +.nav-pills, +.nav-tabs { + // if icon added inside nav-link + .nav-link { + display: flex; + align-items: center; + justify-content: center; + i, + svg { + margin-right: 0.5rem; + } + } +} +// nav pills +.nav-pills { + margin-bottom: 1rem; + // nav item of nav pill + .nav-link { + padding: $btn-padding-y $btn-padding-x; + font-size: $btn-font-size; + line-height: $btn-font-size; + border: 1px solid transparent; + color: $headings-color; + &.active { + border-color: $nav-pills-link-active-bg; + box-shadow: 0 4px 18px -4px rgba($nav-pills-link-active-bg, 0.65); + } + &.disabled { + color: $nav-link-disabled-color; + } + &.dropdown-toggle::after { + top: 1px; + left: 1px; + } + } + + &.dropdown { + &.show { + .nav-link { + color: $white; + } + .dropdown-item { + &.active { + &:hover { + color: $primary; + } + } + } + } + } + + // Justified Pills + &.nav-justified { + @include nav-justified; + @include nav-tabs-justified; + .nav-link { + display: block; + + &.active { + border: none; + + &:hover, + &:focus { + border: none; + } + } + } + } +} + +// Basic Nav Tabs +.nav-tabs { + margin-bottom: 1rem; + position: relative; + // Basic nav item + .nav-item { + position: relative; + } + .nav-link { + color: $body-color; + border: none; + min-width: auto; + font-weight: 450; + padding: 0.61rem 1.2rem; + border-radius: 0; + position: relative; + overflow: hidden; + + &:after { + content: ''; + + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 3px; + background: linear-gradient(30deg, rgba($primary, 1), rgba($primary, 0.5)) !important; + transition: transform 0.3s; + transform: translate3d(0, 150%, 0); + } + &.active { + position: relative; + color: $primary; + + &:after { + transform: translate3d(0, 0, 0); + // box-shadow: 0 0 8px 0 rgba($primary, 0.5) !important; + } + } + + &.dropdown-toggle { + &::after { + top: 1px; + left: 1px; + } + } + } + // Justified Tabs + &.nav-justified { + @include nav-justified; + @include nav-tabs-justified; + + .nav-item { + a.nav-link { + display: block; + border-radius: 0; + + &.active { + border: none; + } + &:hover { + border-color: transparent; + } + } + } + } +} + +// Nav Tabs Vertical +.nav-vertical { + overflow: hidden; + .nav.nav-tabs { + // nav item styles for vertical nav tabs + .nav-item { + .nav-link { + margin-bottom: 0; + &:after { + transform: rotate(90deg) translate3d(0, 150%, 0); + left: 70%; + } + &.active { + &:after { + left: auto; + right: -1.4rem; + transform: rotate(90deg) translate3d(0, 225%, 0); + top: 1.25rem; + width: 2.14rem; + } + } + } + } + + // vertical nav left tabs + &.nav-left { + float: left; + display: table; + margin-right: 1rem; + + ~ .tab-content { + .tab-pane { + display: none; + overflow-y: auto; + padding-left: 1rem; + &.active { + display: block; + } + } + } + } + + // vertical right nav tabs + &.nav-right { + float: right; + display: table; + margin-left: 1rem; + + .nav-item { + .nav-link { + &.active { + &:after { + left: -0.9rem; + transform: rotate(90deg) translate3d(0, 10%, 0); + } + } + } + } + + ~ .tab-content { + .tab-pane { + display: none; + overflow-y: auto; + padding-right: 1rem; + &.active { + display: block; + } + } + } + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_navbar.scss b/src/@core/scss/base/bootstrap-extended/_navbar.scss new file mode 100644 index 0000000..5c42c4e --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_navbar.scss @@ -0,0 +1,670 @@ +/* =============================================================================================== + File Name: navbar.scss + Description: Contain header navigation bar, vertical main navigation bar and + horiznotal main navigation bar related SCSS. + ---------------------------------------------------------------------------------------------- + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent +================================================================================================*/ + +@function set-navbar-text-color($color) { + @if (lightness($color) > 50) { + @return $white; // Lighter backgorund, return dark color + } @else { + @return $black; // Darker background, return light color + } +} + +.header-navbar { + padding: 0px; + min-height: $navbar-height; + font-family: $font-family-monospace; + transition: 300ms ease all, background 0s; + z-index: 997; + + &.fixed-top { + left: $menu-expanded-width; + } + + // Apply navbar color as per background + &[class*='bg-'] { + .navbar-nav { + .nav-item { + > a { + color: set-navbar-text-color($theme-dark-body-color) !important; + + i, + svg, + span { + color: set-navbar-text-color($theme-dark-body-color) !important; + } + } + + .dropdown-menu { + i, + svg { + color: inherit !important; + } + } + } + + .search-input { + .input, + .search-list .auto-suggestion span { + color: $body-color !important; + } + } + } + } + + //* Navbar modifiers + //*------------------------ + + // floating nav + &.floating-nav { + position: fixed; + right: 0; + margin: #{$floating-nav-margin} #{$content-padding} 0; + width: calc(100vw - (100vw - 100%) - calc(#{$content-padding} * 2) - #{$menu-expanded-width}); + border-radius: $card-border-radius; + z-index: 12; + } + + // static nav + &.navbar-static-top { + top: 0; + right: 0; + left: $menu-expanded-width; + width: calc(100vw - (100vw - 100%) - #{$sidebar-width}); + background: transparent; + box-shadow: none !important; // remove this if removing "menu-shadow" class + } + + // add border to navbar + &.navbar-border { + border-bottom: 1px solid $border-color; + } + + // add shadow to navbar + &.navbar-shadow { + box-shadow: $box-shadow; + } + + &.navbar-dark.navbar-border { + border-bottom: 1px solid $theme-dark-border-color; + } + + // Hide navbar dropdown arrow + &:not(.navbar-horizontal) { + .nav-link { + &.dropdown-toggle::after { + display: none; + } + } + } + + //* Navbar modifiers + //*------------------------ + + .navbar-container { + padding: 0.8rem 1rem; + // Added more horizontal padding above small screen + @include media-breakpoint-up(sm) { + padding: 0.8rem 1.4rem; + } + flex-basis: 100%; + transition: 300ms ease all; + margin-left: 0; + + // Navbar bookmark primary color on hover + .bookmark-wrapper { + // for bookmark z-index + .bookmark-input { + z-index: 1; + } + } + + // Language dd style + .dropdown-language { + .selected-language { + font-weight: 500; + } + .nav-link { + .flag-icon { + margin-right: 0.4rem; + } + } + .dropdown-menu .dropdown-item { + .flag-icon { + margin-right: 0.4rem; + } + } + } + + ul.navbar-nav { + li { + line-height: 1.5; + &.dropdown { + .dropdown-menu { + .vertical-layout & { + top: 41px !important; // Apply navbar dd position on vertical layouts only (Not for horizontal layout due to hover out issue) + } + } + } + + &.dropdown-language { + .dropdown-menu.dropdown-menu-right { + right: -2px; + } + } + + // Cart & Notification badge + &.dropdown-cart, + &.dropdown-notification { + .badge { + &.badge-up { + right: -3px; + } + } + .dropdown-menu.dropdown-menu-right { + right: -2px; + padding: 0; + left: inherit; + &::before { + background: $primary; + border-color: $primary; + } + } + .dropdown-menu-header { + border-top-left-radius: $dropdown-border-radius; + border-top-right-radius: $dropdown-border-radius; + .dropdown-header { + padding: 1.22rem 1.28rem; + } + } + .notification-text { + margin-bottom: 0.5rem; + font-size: smaller; + color: $text-muted; + } + .dropdown-menu-footer { + padding: 1.28rem; + } + } + &.dropdown-notification { + .media-body { + .media-heading { + color: $body-color; + margin-bottom: 0; + line-height: 1.2; + } + } + } + + // Cart dropdown + &.dropdown-cart { + .media { + position: relative; + img { + background: $body-bg; + } + &:hover { + .cart-item-remove { + visibility: visible; + } + } + } + .media-heading { + width: 8rem; + h6.cart-item-title { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + } + .cart-item-by { + color: $text-muted; + display: -webkit-box; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + overflow: hidden; + } + } + .media-body { + display: flex; + align-items: center; + justify-content: space-between; + } + .cart-item-price { + margin-bottom: 0; + width: 5rem; + text-align: right; + } + + .cart-item-remove { + position: absolute; + top: 10px; + right: 17px; + width: 14px; + height: 14px; + cursor: pointer; + @include media-breakpoint-up(md) { + visibility: hidden; + } + } + } + + > a.nav-link { + color: $body-color; + padding: 0 0.5rem; + position: relative; + } + + &.dropdown-user { + line-height: 1 !important; // Set due to custom 2 line component in navbar + .dropdown-menu { + width: 12rem; + margin-top: 10px; + i, + svg { + height: 16px; + width: 16px; + font-size: 16px; + vertical-align: top; + } + } + } + + // Logged in user dropdown styles + a.dropdown-user-link { + display: flex; + align-items: center; + + .user-name { + display: inline-block; + margin-bottom: 0.435rem; + margin-left: 0.2rem; + } + + .user-status { + font-size: smaller; + } + + img { + box-shadow: 0 4px 8px 0 rgba($black, 0.12), 0 2px 4px 0 rgba($black, 0.08); + } + } + + // navbar toggle menu size (display below lg) + a.menu-toggle { + i, + svg { + height: 1.6rem; + width: 1.6rem; + font-size: 1.6rem; + } + } + + a.dropdown-user-link { + .user-nav { + display: flex; + flex-direction: column; + align-items: flex-end; + float: left; + margin-right: $spacer - 0.2; + } + } + + div.input-group { + padding: 0.7rem 1rem; + } + + i, + svg { + &.ficon { + height: 1.5rem; + width: 1.5rem; + font-size: 1.5rem; + color: $body-color; + + &:hover { + color: $primary; + } + } + } + + .media-list { + max-height: 25rem; + } + + .scrollable-container { + position: relative; + } + } + } + + //Navbar notification css + .dropdown-menu-media { + width: 30rem; + + .dropdown-menu-header { + border-bottom: 1px solid $border-color; + } + + .media-list { + .media { + padding: 0.9rem 1.28rem; + border: none; + border-bottom: 1px solid $border-color; + + &:hover { + background: $body-bg; + } + + .media-meta { + color: $body-color; + } + } + + a:last-of-type { + .media { + border-bottom: none; + } + } + } + + .dropdown-menu-footer { + border-top: 1px solid $border-color; + } + } + } +} + +// Navbar shadow on scroll +.header-navbar-shadow { + display: none; +} + +// Floating Navbar +.navbar-floating { + // Floating nav should have same padding across all screen + .navbar-container { + padding: 0.8rem 1rem; + } + .header-navbar-shadow { + display: block; + background: linear-gradient( + 180deg, + hsla(0, 0%, 97.3%, 0.95) 44%, + hsla(0, 0%, 97.3%, 0.46) 73%, + hsla(0, 0%, 100%, 0) + ); + padding-top: 2.2rem; + background-repeat: repeat; + width: 100%; + height: 102px; + position: fixed; + top: 0; + left: 0; + z-index: 11; + } +} + +// Navbar colors +.navbar-light { + background: $white; + + &.navbar-horizontal { + background: $white; + } + + .navbar-nav { + .active { + &.nav-link { + background-color: rgba($black, 0.03); + } + } + + .disabled { + &.nav-link { + color: $nav-link-disabled-color; + } + } + } +} + +.navbar-dark { + background: $gray-600; + + .navbar-brand { + color: $white !important; + } + + &.navbar-horizontal { + background: $gray-600; + } + + .nav-search { + .form-control, + .btn-secondary { + color: $white; + background: $gray-600; + } + } + + .navbar-nav { + li { + line-height: 1; + } + + .active { + &.nav-link { + background-color: rgba($white, 0.05); + } + } + + .disabled { + &.nav-link { + color: $gray-300; + } + } + } +} + +// Media queries for device support +// ========================================= +@include media-breakpoint-down(sm) { + .header-navbar { + // generic navbar dropdown specific + .navbar-nav { + .show { + position: static; + } + + .open-navbar-container { + padding-top: 0.625rem; + } + } + + .navbar-container { + .show { + .dropdown-menu { + right: 0; + left: 0 !important; + float: none; + width: auto !important; + margin-top: 0; + overflow: hidden; + } + } + + .dropdown-user { + .dropdown-menu-right { + right: 0 !important; + } + } + + ul.navbar-nav { + li { + .dropdown-toggle::after { + margin-right: 0; + margin-left: -2px; + } + } + } + } + } + + // dark navbar + .navbar-dark { + .navbar-header { + .navbar-nav { + .nav-link { + color: $white; + } + } + } + + .navbar-container { + .navbar-nav { + .nav-link { + color: $gray-600; + } + } + } + } + + // light navbar + .navbar-light { + .navbar-header { + .navbar-nav { + .nav-link { + color: $gray-600; + } + } + } + + .navbar-container { + .navbar-nav { + .nav-link { + color: $gray-600; + } + } + } + } +} + +// For Medium and down: iPad support for navbr + +// navbar static top +@include media-breakpoint-down(lg) { + .header-navbar { + // floating nav width + &.floating-nav { + width: calc(100vw - (100vw - 100%) - calc(#{$content-padding} * 2)); + } + &.navbar-static-top { + left: 0; + width: 100%; + } + } +} + +//For responsive sub nav +@mixin responsive_sub_nav { + .header-navbar { + .navbar-nav { + margin: 0; + flex-flow: row wrap; + + .dropdown-menu { + position: absolute; + } + + .nav-item { + float: left; + } + } + } +} + +@include media-breakpoint-down(md) { + @include responsive_sub_nav; +} +@media (max-width: 767px) { + @include responsive_sub_nav; +} + +@include media-breakpoint-down(xs) { + .header-navbar { + &.floating-nav { + width: calc( + 100vw - (100vw - 100%) - calc(#{$content-padding} + 0.4rem) + ) !important; // SM screen calc as per updated spacings + margin-left: 1rem; + margin-right: 1.2rem; + } + + .navbar-container ul.navbar-nav li .selected-language { + display: none; + } + } +} + +/* ----------- iPhone 5, 5S iPhone 6----------- */ + +// Set dropdown height as per the screen size +@mixin extend_mobile_specific($menu_height) { + .header-navbar { + .navbar-container { + .show { + .dropdown-menu { + max-height: $menu_height; + } + } + } + } +} + +/* Landscape */ + +@media only screen and (min-device-width: 26.78em) and (max-device-width: 47.64em) and (-webkit-min-device-pixel-ratio: 2) and (orientation: landscape) { + @include extend_mobile_specific(180px); +} + +/* ----------- iPhone 6+ ----------- */ + +/* Landscape */ + +@media only screen and (min-device-width: 29.57em) and (max-device-width: 52.57em) and (-webkit-min-device-pixel-ratio: 3) and (orientation: landscape) { + @include extend_mobile_specific(280px); +} + +// for width of navbar in fixed-top +@media (max-width: 1201px) { + .header-navbar { + &.fixed-top { + left: 0; + } + } + + .horizontal-layout { + .header-navbar { + .navbar-container { + padding-left: 0.8rem; + padding-right: 0.8rem; + } + } + } +} + +@media (max-width: 1199px) { + .header-navbar { + .navbar-container { + ul.navbar-nav li a.dropdown-user-link .user-name { + margin-bottom: 0; + } + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_pagination.scss b/src/@core/scss/base/bootstrap-extended/_pagination.scss new file mode 100644 index 0000000..d391d29 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_pagination.scss @@ -0,0 +1,307 @@ +// Pagination + +// default look for page item, first and last item + +.page-item { + border-radius: 5rem; + + &:not(.prev-item), + &:not(.next-item), + &:not(.first), + &:not(.last), + &:not(.active) { + .page-link { + line-height: 1.3; + } + } + + .page-link { + display: flex; + align-items: center; + justify-content: center; + } + &.previous, + &.prev, + &.next, + &.first, + &.last { + .page-link { + width: auto; + } + } + + &.prev-item, + &.next-item { + .page-link { + transition: all 0.2s ease-out; + } + } + + // prev and next item separated styles + &.prev-item { + margin-right: 0.3571rem; + + .page-link { + border-radius: 50%; + + &:before { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $pagination-color), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 14px; + color: $body-color; + width: 8px; + height: 18px; + content: ''; + } + + &:hover { + background: $pagination-hover-bg; + color: $pagination-hover-color; + } + &:active, + &:hover { + background-color: $primary !important; + &:before { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $white), '#', '%23')) !important; + } + } + } + &.disabled { + .page-link { + &:before { + background-image: url(str-replace( + str-replace($chevron-left, 'currentColor', $pagination-disabled-color), + '#', + '%23' + )); + } + } + } + + & ~ .page-item:nth-child(2) { + border-top-left-radius: 5rem; + border-bottom-left-radius: 5rem; + .page-link { + border-top-left-radius: 5rem !important; + border-bottom-left-radius: 5rem !important; + } + } + + & ~ .page-item:nth-last-child(2) { + border-top-right-radius: 5rem; + border-bottom-right-radius: 5rem; + .page-link { + border-top-right-radius: 5rem !important; + border-bottom-right-radius: 5rem !important; + } + } + } + + &.next-item { + margin-left: 0.3571rem; + + .page-link { + border-radius: 50%; + + &:after { + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $pagination-color), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 14px; + width: 8px; + height: 18px; + content: ''; + } + + &:hover { + background: $pagination-hover-bg; + color: $pagination-hover-color; + } + &:active, + &:hover { + background-color: $primary !important; + &:after { + background-image: url(str-replace( + str-replace($chevron-right, 'currentColor', $white), + '#', + '%23' + )) !important; + } + } + } + &.disabled { + .page-link { + &:after { + background-image: url(str-replace( + str-replace($chevron-right, 'currentColor', $pagination-disabled-color), + '#', + '%23' + )); + } + } + } + } + + // prev and next style + &.prev, + &.previous { + .page-link { + &:before { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $pagination-color), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 14px; + color: $body-color; + width: 12px; + height: 18px; + content: ''; + } + // &:active, + &:hover { + &:before { + background-image: url(str-replace( + str-replace($chevron-left, 'currentColor', $pagination-active-color), + '#', + '%23' + )) !important; + } + } + } + &.disabled { + .page-link { + &:before { + background-image: url(str-replace( + str-replace($chevron-left, 'currentColor', $pagination-disabled-color), + '#', + '%23' + )); + } + } + } + } + &.next { + .page-link { + &:after { + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $pagination-color), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 14px; + color: $body-color; + width: 12px; + height: 18px; + content: ''; + } + // &:active, + &:hover { + &:after { + background-image: url(str-replace( + str-replace($chevron-right, 'currentColor', $primary), + '#', + '%23' + )) !important; + } + } + } + &.disabled { + .page-link { + &:after { + background-image: url(str-replace( + str-replace($chevron-right, 'currentColor', $pagination-disabled-color), + '#', + '%23' + )); + } + } + } + } + + &.disabled { + .page-link { + color: $pagination-disabled-color; + } + } + + // page link customization + + .page-link { + border: none; + margin: 0; + margin-left: 0; + font-size: 1rem; + min-width: 2.286rem; + &:focus { + box-shadow: none; + } + + &:hover { + color: $primary; + } + } + + // for active page item + &.active { + background-color: $pagination-bg; + border-radius: 0; + + .page-link { + z-index: 3; + border-radius: 5rem; + background-color: $primary; + color: $white !important; + font-weight: 600; + } + } + + // if you don't want separated look + + &:first-child:not(.prev-item) { + &.active { + border-top-left-radius: 1.428rem; + border-bottom-left-radius: 1.428rem; + .page-link { + border-radius: 5rem; + } + } + .page-link { + border-top-left-radius: 1.428rem; + border-bottom-left-radius: 1.428rem; + } + } + + &:last-child:not(.next-item) { + &.active { + border-top-right-radius: 1.428rem; + border-bottom-right-radius: 1.428rem; + .page-link { + border-radius: 5rem; + } + } + .page-link { + border-top-right-radius: 1.428rem; + border-bottom-right-radius: 1.428rem; + } + } +} + +// For Pagination Font sizes +.pagination { + // For Pagination lg + &.pagination-lg { + .page-item { + .page-link { + font-size: $pagination-font-size-lg; + min-width: 2.6rem; + } + } + } + // For Pagination sm + &.pagination-sm { + .page-item { + .page-link { + font-size: $pagination-font-size-sm; + min-width: 2rem; + } + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_popover.scss b/src/@core/scss/base/bootstrap-extended/_popover.scss new file mode 100644 index 0000000..4463541 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_popover.scss @@ -0,0 +1,45 @@ +// Popovers + +.popover { + box-shadow: $popover-box-shadow; + // popover header style + .popover-header { + @include font-size(1.07rem); + border: 1px solid $popover-header-bg; + } + // popover body style + .popover-body { + border: 1px solid $popover-border-color; + border-top-color: $popover-bg; + border-bottom-left-radius: $popover-border-radius; + border-bottom-right-radius: $popover-border-radius; + } + // popover bottom arrow color like header + &.bs-popover-bottom { + .arrow:after { + border-bottom-color: $popover-header-bg; + } + } +} +// To set arrow border as we have added border to popover-body and popover-header +.bs-popover-top { + > .arrow { + &::after { + bottom: $popover-border-width + 1px; + } + } +} +.bs-popover-right { + > .arrow { + &::after { + left: $popover-border-width + 1px; + } + } +} +.bs-popover-left { + > .arrow { + &::after { + right: $popover-border-width + 1px; + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_progress.scss b/src/@core/scss/base/bootstrap-extended/_progress.scss new file mode 100644 index 0000000..c8268bd --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_progress.scss @@ -0,0 +1,20 @@ +/*========================================================================================= + File Name: progress.scss + Description: Extended bootstrap progress bar scss. + ---------------------------------------------------------------------------------------- + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent + ---------------------------------------------------------------------------------------- +==========================================================================================*/ + +.progress { + // border radius to set for stacked bars + .progress-bar + .progress-bar:not(:last-child) { + border-radius: 0; + } + .progress-bar:last-child { + border-top-right-radius: $progress-border-radius; + border-bottom-right-radius: $progress-border-radius; + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_reboot.scss b/src/@core/scss/base/bootstrap-extended/_reboot.scss new file mode 100644 index 0000000..02cbfea --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_reboot.scss @@ -0,0 +1,15 @@ +a { + &:focus { + outline: none; + } +} + +a:not([href]) { + color: inherit; + text-decoration: none; + + @include hover() { + color: inherit; + text-decoration: none; + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_tables.scss b/src/@core/scss/base/bootstrap-extended/_tables.scss new file mode 100644 index 0000000..a490309 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_tables.scss @@ -0,0 +1,122 @@ +// ================================================================================================ +// File Name: tables.scss +// Description: Tables pages custom scss +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// table-white-space +.table-white-space { + th, + td { + white-space: nowrap; + } +} + +// table th, td padding +.table { + thead, + tfoot { + th { + vertical-align: top; + text-transform: uppercase; + font-size: $table-th-font-size; + letter-spacing: 0.5px; + } + } + th, + td { + padding: $table-cell-padding 2rem; + vertical-align: middle; + } + &.table-sm { + th, + td { + padding: $table-cell-padding-sm 0.5rem; + &:first-child { + padding-left: 0.75rem; + } + } + } +} +// if we are not using table-light class then also header color should apply +.table:not(.table-dark):not(.table-light) { + thead:not(.thead-dark) th, + tfoot:not(.thead-dark) th { + background-color: $table-head-bg; + } +} +// table inside card, don't need margin bottom +.table-hover { + tbody { + tr { + cursor: pointer; + } + } +} +// Table - hover animation +.table-hover-animation { + background-color: $body-bg; + thead { + th { + border-bottom: 0; + } + } + th, + td { + border: 0; + } + tbody { + tr { + transition: all 0.25s ease; + background-color: $white; + &:hover { + transform: translateY(-4px); + } + } + } +} + +// table border radius +.card .table { + margin-bottom: 0; + border-bottom-left-radius: $border-radius; + border-bottom-right-radius: $border-radius; + tbody { + tr:last-child { + td:first-child { + border-bottom-left-radius: $border-radius; + } + td:last-child { + border-bottom-right-radius: $border-radius; + } + } + } +} + +// Contexual table inside card radius +.card { + table { + tr[class*='table-']:last-child { + td:first-child { + border-bottom-left-radius: $border-radius; + } + td:last-child { + border-bottom-right-radius: $border-radius; + } + } + } +} + +// IE Specific CSS +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .table-hover-animation { + tr { + &:hover { + border-bottom-color: $table-border-color; + } + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_toast.scss b/src/@core/scss/base/bootstrap-extended/_toast.scss new file mode 100644 index 0000000..7990e30 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_toast.scss @@ -0,0 +1,16 @@ +// Toasts + +.toast { + &.show { + z-index: 1030; + } + .close:focus { + outline: none; + } +} + +@include media-breakpoint-down(xs) { + .toast { + left: 1rem; + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_type.scss b/src/@core/scss/base/bootstrap-extended/_type.scss new file mode 100644 index 0000000..5558a4c --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_type.scss @@ -0,0 +1,22 @@ +// ================================================================================================ +// File Name: type.scss +// Description: Type pages custom scss +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// text heading color +.text-body-heading { + color: $headings-color; + &:hover { + color: inherit !important; + } +} +// text body hover color if have link +.text-body { + &[href]:hover { + color: $link-hover-color !important; + } +} diff --git a/src/@core/scss/base/bootstrap-extended/_utilities.scss b/src/@core/scss/base/bootstrap-extended/_utilities.scss new file mode 100644 index 0000000..59e62a5 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_utilities.scss @@ -0,0 +1,465 @@ +// ================================================================================================ +// File Name: utilities.scss +// Description: Utility classes provides color, width, position & background etc.. +// related customization. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// Sizes Variable for height and width mixins +$sizes-px: ( + // in px + 50: 50px, + 100: 100px, + 150: 150px, + 200: 200px, + 250: 250px, + 300: 300px, + 350: 350px, + 400: 405px, + 450: 455px, + 500: 500px, + 550: 550px, + 600: 600px, + 650: 650px, + 700: 700px, + 750: 750px, + 800: 800px +) !default; + +$sizes-per: ( + // in % + 5: 5%, + 10: 10%, + 15: 15%, + 20: 20%, + 25: 25%, + 30: 30%, + 35: 35%, + 40: 40%, + 45: 45%, + 50: 50%, + 55: 55%, + 60: 60%, + 65: 65%, + 70: 70%, + 75: 75%, + 80: 80%, + 85: 85%, + 90: 90%, + 95: 95% +) !default; + +//--------------- Text --------------- +//------------------------------------ + +// Font Size +//---------- +//small +.font-small-1 { + font-size: 0.7rem !important; + + // for Feather SVG icons as we are using base size as 1rem + @at-root svg#{&} { + height: 0.7rem !important; + width: 0.7rem !important; + } +} +.font-small-2 { + font-size: 0.8rem !important; + @at-root svg#{&} { + height: 0.8rem !important; + width: 0.8rem !important; + } +} +.font-small-3 { + font-size: 0.9rem !important; + @at-root svg#{&} { + height: 0.9rem !important; + width: 0.9rem !important; + } +} +.font-small-4 { + font-size: 1rem !important; + @at-root svg#{&} { + height: 1rem !important; + width: 1rem !important; + } +} +//medium +.font-medium-1 { + font-size: 1.1rem !important; + @at-root svg#{&} { + height: 1.1rem !important; + width: 1.1rem !important; + } +} +.font-medium-2 { + font-size: 1.2rem !important; + @at-root svg#{&} { + height: 1.2rem !important; + width: 1.2rem !important; + } +} +.font-medium-3 { + font-size: 1.3rem !important; + @at-root svg#{&} { + height: 1.3rem !important; + width: 1.3rem !important; + } +} +.font-medium-4 { + font-size: 1.4rem !important; + @at-root svg#{&} { + height: 1.4rem !important; + width: 1.4rem !important; + } +} +.font-medium-5 { + font-size: 1.5rem !important; + @at-root svg#{&} { + height: 1.5rem !important; + width: 1.5rem !important; + } +} +//large +.font-large-1 { + font-size: 2rem !important; + @at-root svg#{&} { + height: 2rem !important; + width: 2rem !important; + } +} +.font-large-2 { + font-size: 3rem !important; + @at-root svg#{&} { + height: 3rem !important; + width: 3rem !important; + } +} +.font-large-3 { + font-size: 4rem !important; + @at-root svg#{&} { + height: 4rem !important; + width: 4rem !important; + } +} +.font-large-4 { + font-size: 5rem !important; + @at-root svg#{&} { + height: 5rem !important; + width: 5rem !important; + } +} +.font-large-5 { + font-size: 6rem !important; + @at-root svg#{&} { + height: 6rem !important; + width: 6rem !important; + } +} + +// Line height +//---------- +.line-height-1 { + line-height: 1 !important; +} +.line-height-condensed { + line-height: 1.5 !important; +} +.line-height-inherit { + line-height: inherit !important; +} + +// Transform +//---------- +.rotate-45 { + transform: rotate(45deg); +} +.rotate-45-inverse { + transform: rotate(-45deg); +} +.rotate-90 { + transform: rotate(90deg); +} +.rotate-90-inverse { + transform: rotate(-90deg); +} +.rotate-180 { + transform: rotate(180deg); +} +.rotate-180-inverse { + transform: rotate(-180deg); +} + +//-------------- Borders -------------- +//------------------------------------- + +// Border width - 2px +.border-2 { + border-width: 2px !important; +} +.border-top-2 { + border-top-width: 2px !important; +} +.border-bottom-2 { + border-bottom-width: 2px !important; +} +.border-left-2 { + border-left-width: 2px !important; +} +.border-right-2 { + border-right-width: 2px !important; +} + +// Border width - 3px +.border-3 { + border-width: 3px !important; +} +.border-top-3 { + border-top-width: 3px !important; +} +.border-bottom-3 { + border-bottom-width: 3px !important; +} +.border-left-3 { + border-left-width: 3px !important; +} +.border-right-3 { + border-right-width: 3px !important; +} + +// Shapes radius : Round / Square +.round { + @include border-radius(1.5rem); +} +.square { + @include border-radius(0); +} + +//-------------- Sizing -------------- +//------------------------------------ + +// Width && Height +.fit { + max-width: 100% !important; +} +.half-width { + width: 50% !important; +} +.full-width { + width: 100% !important; +} +.full-height { + height: 100% !important; +} + +// height & width in PX +@each $name, $size in $sizes-px { + .height-#{$name} { + height: $size !important; + } + + .width-#{$name} { + width: $size !important; + } +} + +// height & width in % +@each $name, $size in $sizes-per { + .height-#{$name}-per { + height: $size !important; + } + + .width-#{$name}-per { + width: $size !important; + } +} + +//------------- Position ------------- +//------------------------------------ +.position-top-0 { + top: 0; +} +.position-right-0 { + right: 0; +} +.position-bottom-0 { + bottom: 0; +} +.position-left-0 { + left: 0; +} + +//------------- Overflow ------------- +//------------------------------------ +.overflow-visible { + overflow: visible; +} +.overflow-scroll { + overflow: scroll; +} +.overflow-x-scroll { + overflow: scroll; +} +.overflow-y-scroll { + overflow: scroll; +} + +//-------------- Cursor -------------- +//------------------------------------ +.cursor-pointer { + cursor: pointer; +} +.cursor-move { + cursor: move; +} +.cursor-default { + cursor: default; +} +.cursor-progress { + cursor: progress; +} +.cursor-not-allowed { + cursor: not-allowed; +} + +//-------------- Z-index -------------- +//------------------------------------- +.zindex-1 { + z-index: 1 !important; +} +.zindex-2 { + z-index: 2 !important; +} +.zindex-3 { + z-index: 3 !important; +} +.zindex-4 { + z-index: 4 !important; +} +.zindex-0 { + z-index: 0 !important; +} +.zindex-minus-1 { + z-index: -1 !important; +} +.zindex-minus-2 { + z-index: -2 !important; +} +.zindex-minus-3 { + z-index: -3 !important; +} +.zindex-minus-4 { + z-index: -4 !important; +} + +//------------ Box Shadow ------------ +//------------------------------------ +.box-shadow-0 { + box-shadow: none !important; +} +.box-shadow-1 { + box-shadow: 0 2px 5px 0 rgba($black, 0.16), 0 2px 10px 0 rgba($black, 0.12); +} +.box-shadow-2 { + box-shadow: 0 8px 17px 0 rgba($black, 0.2), 0 6px 20px 0 rgba($black, 0.19); +} +.box-shadow-3 { + box-shadow: 0 12px 15px 0 rgba($black, 0.24), 0 17px 50px 0 rgba($black, 0.19); +} +.box-shadow-4 { + box-shadow: 0 16px 28px 0 rgba($black, 0.22), 0 25px 55px 0 rgba($black, 0.21); +} +.box-shadow-5 { + box-shadow: 0 27px 24px 0 rgba($black, 0.2), 0 40px 77px 0 rgba($black, 0.22); +} +.box-shadow-6 { + box-shadow: 0 4px 8px 0 rgba($black, 0.12), 0 2px 4px 0 rgba($black, 0.08); +} + +//-------------- Outline -------------- +//------------------------------------- +.outline-none { + outline: none !important; +} + +//-------------- Lists -------------- +//----------------------------------- +.list-style-inside { + list-style: inside; +} +.list-style-circle { + list-style: circle; +} +.list-style-square { + list-style: square; +} + +//--------- Background Image --------- +//------------------------------------ +.bg-cover { + background-size: cover !important; +} +.background-repeat { + background-repeat: repeat !important; +} +.background-no-repeat { + background-repeat: no-repeat !important; +} + +//-------------- Icons -------------- +//----------------------------------- +.icon-bg-circle { + color: $white; + padding: 0.5rem; + border-radius: 50%; +} +.icon-left { + margin-right: 0.5rem; +} +.icon-right { + margin-right: 0.5rem; +} + +// Used for blockUI +.blockOverlay { + z-index: 1050 !important; +} +.blockElement, +.blockPage { + z-index: 1051 !important; +} + +.hidden { + display: none; + visibility: hidden; +} + +a { + &:hover { + cursor: pointer; + } +} + +//Tables +//-------------------------- +.table-middle { + td { + vertical-align: middle; + } +} + +//SVG +//-------------------------- +.fill-current { + fill: currentColor; +} + +//Cursor +//-------------------------- +.pointer-events-none { + pointer-events: none; +} diff --git a/src/@core/scss/base/bootstrap-extended/_variables.scss b/src/@core/scss/base/bootstrap-extended/_variables.scss new file mode 100644 index 0000000..e8dc986 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/_variables.scss @@ -0,0 +1,499 @@ +// ================================================================================================ +// File Name: variables.scss +// Description: Custom overrides of Bootstrap variables +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// Color system + +$white: #fff !default; +$gray-50: #f6f6f6 !default; +$gray-100: #babfc7 !default; // $gray-lightest +$gray-200: #ededed !default; // $gray-lighter +$gray-300: #dae1e7 !default; // $gray-light +$gray-400: #636363 !default; +$gray-500: #adb5bd !default; +$gray-600: #b8c2cc !default; // $gray +$gray-700: #4e5154 !default; +$gray-800: #1e1e1e !default; // $gray-dark +$gray-900: #2a2e30 !default; +$black: #22292f !default; // 231f48 22292f + +$purple: #7367f0 !default; //$primary +$green: #28c76f !default; //$success +$blue: #00cfe8 !default; //$info +$orange: #ff9f43 !default; //$warning +$red: #ea5455 !default; //$danger + +$primary: $purple !default; +$secondary: #82868b !default; +$info: $blue !default; +$warning: $orange !default; +$light: $gray-50 !default; +$dark: #4b4b4b !default; + +// Spacing +// +// Control the default styling of most Bootstrap elements by modifying these +// variables. Mostly focused on spacing. +// You can add more entries to the $spacers map, should you need more variation. + +// scss-docs-start container-max-widths +$container-max-widths: ( + sm: 540px, + md: 720px, + lg: 960px, + xl: 1140px, + xxl: 1440px // Custom xxl size +) !default; +// scss-docs-end container-max-widths + +// stylelint-disable +$spacer: 1rem !default; +$spacers: () !default; +// stylelint-disable-next-line scss/dollar-variable-default +$spacers: map-merge( + ( + 0: 0, + 25: ( + $spacer * 0.25 + ), + 50: ( + $spacer * 0.5 + ), + 75: ( + $spacer * 0.75 + ), + 1: ( + $spacer + ), + 2: ( + $spacer * 1.5 + ), + 3: ( + $spacer * 3 + ), + 4: ( + $spacer * 3.5 + ), + 5: ( + $spacer * 4 + ) + ), + $spacers +); + +// Body +// +// Settings for the `` element. +$body-bg: #f8f8f8 !default; +$body-color: #6e6b7b !default; + +// Links +// +// Style anchor elements. + +$link-color: $primary !default; +$link-hover-color: darken($link-color, 5%) !default; +$link-hover-decoration: none !default; + +// Grid columns +// +// Set the number of columns and specify the width of the gutters. + +$grid-gutter-width: 2rem !default; + +// Components +// +// Define common padding and border radius sizes and more. + +$line-height-lg: 1.25 !default; +$line-height-sm: 1 !default; + +$border-width: 1px !default; +$border-color: #ebe9f1 !default; +$border-radius: 0.357rem !default; +$border-radius-lg: 0.6rem !default; +$border-radius-sm: 0.25rem !default; + +// shadow +$box-shadow: 0 4px 24px 0 rgba($black, 0.1) !default; +// Typography + +// +// Font, line-height, and color for body text, headings, and more. + +// stylelint-disable value-keyword-case +$font-family-sans-serif: 'Montserrat', Helvetica, Arial, serif !default; +$font-family-monospace: 'Montserrat', Helvetica, Arial, serif !default; + +// stylelint-enable value-keyword-case +$font-size-base: 1rem !default; +$font-size-lg: ceil($font-size-base * 1.25) !default; +$font-size-sm: ceil($font-size-base * 0.85) !default; + +$font-weight-normal: 400 !default; +$font-weight-bold: 500 !default; +$font-weight-bolder: 600 !default; + +$line-height-base: 1.45 !default; + +$h1-font-size: $font-size-base * 2 !default; +$h2-font-size: $font-size-base * 1.714 !default; +$h3-font-size: $font-size-base * 1.5 !default; +$h4-font-size: $font-size-base * 1.286 !default; +$h5-font-size: $font-size-base * 1.07 !default; + +$headings-font-family: inherit !default; +$headings-color: #5e5873 !default; + +$display1-weight: $font-weight-normal !default; +$display2-weight: $font-weight-normal !default; +$display3-weight: $font-weight-normal !default; +$display4-weight: $font-weight-normal !default; + +$lead-font-size: $font-size-base * 1.14 !default; +$lead-font-weight: $font-weight-normal !default; + +$small-font-size: 0.857rem !default; + +$text-muted: #b9b9c3 !default; +$hr-border-color: $border-color !default; + +$blockquote-small-color: $text-muted !default; + +// Tables + +$table-cell-padding: 0.72rem !default; + +$table-accent-bg: #fafafc !default; +$table-hover-bg: #f6f6f9 !default; + +$table-border-color: $border-color !default; + +$table-head-bg: #f3f2f7 !default; +$table-head-color: $headings-color !default; + +$table-dark-bg: $dark !default; +$table-dark-border-color: #404040 !default; + +$table-th-font-size: 0.857rem !default; // custom + +// Buttons + Forms +$btn-padding-y: 0.786rem !default; +$btn-padding-x: 1.5rem !default; +$input-btn-padding-y: 0.75rem !default; +$input-btn-padding-x: 2rem !default; + +$input-btn-padding-y-sm: 0.486rem !default; +$input-btn-padding-x-sm: 1rem !default; +$input-btn-font-size-sm: $font-size-base * 0.9 !default; + +$input-btn-padding-y-lg: 0.8rem !default; +$input-btn-padding-x-lg: 2rem !default; +$input-btn-font-size-lg: $font-size-base * 1.25 !default; +$btn-line-height: 1 !default; +$btn-border-radius: 0.358rem !default; +$btn-border-radius-lg: 0.358rem !default; +$btn-border-radius-sm: 0.358rem !default; + +$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, background 0s, border 0s !default; + +// Forms +$custom-control-border-color: #d8d6de; +$label-margin-bottom: 0.2857rem !default; + +$input-padding-y: 0.438rem !default; +$input-padding-x: 1rem !default; +$input-font-size: 1rem !default; +$input-line-height: $line-height-base !default; + +$input-padding-y-sm: 0.188rem !default; +$input-padding-x-sm: 0.857rem !default; +$input-font-size-sm: 0.857rem !default; + +$input-padding-y-lg: 0.75rem !default; +$input-padding-x-lg: 1.143rem !default; +$input-font-size-lg: 1.143rem !default; + +$input-disabled-bg: #efefef !default; + +$input-color: $body-color !default; +$input-border-color: $custom-control-border-color !default; +$input-box-shadow: inset 0 1px 1px rgba($black, 0.075) !default; + +$input-border-radius: $border-radius !default; +$input-border-radius-lg: $border-radius !default; +$input-border-radius-sm: $border-radius !default; + +$input-focus-border-color: $primary !default; +$input-focus-box-shadow: 0 3px 10px 0 rgba($black, 0.1) !default; + +$input-placeholder-color: $text-muted !default; +$input-plaintext-color: $body-color !default; + +$input-height: 2.714rem !default; +$input-height-sm: 2.142rem !default; +$input-height-lg: 3.2857rem !default; + +$input-group-addon-bg: white !default; +$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, background 0s, border-color 0s !default; + +$custom-control-indicator-border-color: $custom-control-border-color; + +$custom-checkbox-indicator-border-radius: 3px !default; +$custom-checkbox-indicator-checked-color: white !default; +$custom-checkbox-indicator-indeterminate-color: white !default; +$custom-checkbox-indicator-icon-checked: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9.5 7.5'%3E%3Cpolyline points='0.75 4.35 4.18 6.75 8.75 0.75' style='fill:none;stroke:%23fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px'/%3E%3C/svg%3E"); + +$custom-checkbox-indicator-icon-indeterminate: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{$custom-checkbox-indicator-indeterminate-color}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-minus'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E"); + +$custom-control-indicator-checked-disabled-bg: rgba($primary, 0.65); + +$custom-radio-indicator-icon-checked: none; + +$custom-file-height-inner: $input-height !default; + +$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator +$custom-select-disabled-bg: $input-disabled-bg !default; +$custom-select-bg-size: 10px 10px !default; // In pixels because image dimensions +$custom-select-indicator-color: $input-border-color !default; +$custom-select-indicator: url("data:image/svg+xml,") !default; + +// $custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default; +// $custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default; + +$custom-select-border-radius: $input-border-radius !default; +$custom-select-focus-box-shadow: $input-focus-box-shadow !default; + +$custom-select-padding-y-sm: $input-padding-y-sm !default; +$custom-select-padding-x-sm: $input-padding-x-sm !default; +$custom-select-font-size-sm: $input-font-size-sm !default; +$custom-select-height-sm: $input-height-sm !default; + +$custom-select-padding-y-lg: $input-padding-y-lg !default; +$custom-select-padding-x-lg: $input-padding-x-lg !default; +$custom-select-font-size-lg: $input-font-size-lg !default; +$custom-select-height-lg: $input-height-lg !default; + +// Dropdowns +// +// Dropdown menu container and contents. + +$dropdown-border-color: rgba($black, 0.05) !default; +$dropdown-border-radius: 0.358rem !default; +$dropdown-box-shadow: 0 5px 25px rgba($black, 0.1) !default; + +$dropdown-link-color: $body-color !default; +$dropdown-link-hover-color: $primary !default; +$dropdown-link-hover-bg: rgba($primary, 0.12) !default; + +$dropdown-divider-bg: rgba($black, 0.08) !default; +$dropdown-font-size: 1rem !default; +$dropdown-spacer: 0 !default; +$zindex-dropdown: 10 !default; + +$dropdown-box-shadow: 0 5px 25px 0 rgba($black, 0.1) !default; + +$dropdown-link-disabled-color: $text-muted !default; + +$dropdown-item-padding-y: 0.65rem !default; +$dropdown-item-padding-x: 1.28rem !default; + +$dropdown-header-color: $headings-color !default; + +$dropdown_spacing: 0.5rem; // custom + +// Pagination + +$pagination-padding-y: 0.5rem !default; +$pagination-padding-x: 0.85rem !default; +$pagination-padding-y-lg: 0.5575rem !default; +$pagination-padding-x-lg: 1rem !default; +$pagination-padding-y-sm: 0.443rem !default; +$pagination-padding-x-sm: 0.745rem !default; + +$pagination-disabled-color: $text-muted !default; + +$pagination-color: $body-color !default; +$pagination-bg: #f3f2f7 !default; + +$pagination-hover-color: $primary !default; +$pagination-hover-bg: #f3f2f7 !default; + +$pagination-active-color: $primary !default; + +$pagination-disabled-color: $text-muted !default; +$pagination-disabled-bg: #f3f2f7 !default; + +$pagination-font-size-lg: 1.14rem !default; // custom +$pagination-font-size-sm: 0.857rem !default; // custom + +// Cards +$card-spacer-y: 1.5rem !default; +$card-spacer-x: 1.5rem !default; +$card-border-radius: 0.428rem !default; + +//Alerts + +$alert-padding-y: 0.71rem !default; +$alert-padding-x: 1rem !default; +$alert-border-radius: 0.358rem !default; +$alert-link-font-weight: 700 !default; + +// List group + +$list-group-border-radius: 0.358rem !default; +$list-group-disabled-color: $text-muted !default; + +// Nav tabs + +$nav-link-padding-y: 0.358rem !default; +$nav-link-padding-x: 0.5rem !default; +$nav-link-disabled-color: $text-muted !default; + +$nav-tabs-border-width: 0 !default; +$nav-tabs-border-radius: 0.25 !default; +$nav-tabs-link-active-color: $primary !default; + +$nav-tabs-link-active-bg: transparent !default; + +$nav-pills-border-radius: $btn-border-radius !default; + +// navbar + +$floating-nav-margin: 1.3rem; + +// Tooltips + +$tooltip-bg: #323232 !default; +$tooltip-padding-y: 0.4rem !default; +$tooltip-padding-x: 0.775rem !default; +$tooltip-font-size: 0.857rem !default; +$tooltip-border-radius: 0.358rem !default; +$tooltip-opacity: 1 !default; +$tooltip-max-width: 220px !default; + +// Popovers + +$popover-font-size: 1rem !default; +$popover-border-width: 0 !default; +$popover-border-radius: 0.358rem !default; +$popover-border-color: $border-color !default; +$popover-box-shadow: 0 0 10px 0 rgba($black, 0.1) !default; + +$popover-header-bg: $primary !default; +$popover-header-color: $white !default; +$popover-header-padding-y: 0.65rem !default; +$popover-header-padding-x: 1.21rem !default; + +// Toasts + +$toast-max-width: 380px !default; +$toast-padding-x: 1.14rem !default; +$toast-padding-y: 0.15rem !default; +$toast-font-size: 0.857rem !default; +$toast-color: $body-color !default; +$toast-border-width: 0 !default; +$toast-border-radius: 0.286rem !default; +$toast-box-shadow: 0 2px 20px 0 rgba($black, 0.08) !default; + +$toast-header-color: $body-color !default; +$toast-header-background-color: $white !default; + +// Progress + +$progress-height: 0.857rem !default; +$progress-border-radius: 5rem !default; +$progress-font-size: $font-size-base * 0.857 !default; +$progress-bg: rgba($primary, 0.12) !default; + +// Breadcrumbs + +$breadcrumb-font-size: 1rem !default; + +$breadcrumb-padding-y: 0.3rem !default; +$breadcrumb-item-padding: 0.6rem !default; + +$breadcrumb-margin-bottom: 0 !default; + +$breadcrumb-bg: transparent !default; +$breadcrumb-divider-color: $body-color !default; +$breadcrumb-active-color: $body-color !default; + +$breadcrumb-border-radius: 0 !default; + +// Carousel + +$carousel-control-color: $white !default; +$carousel-control-prev-icon-bg: url('data:image/svg+xml,') !default; +$carousel-control-next-icon-bg: url('data:image/svg+xml,') !default; + +// Badges + +$badge-font-size: 85% !default; +$badge-padding-y: 0.3rem !default; +$badge-padding-x: 0.5rem !default; +$badge-font-weight: 600 !default; +$badge-border-radius: 0.358rem !default; + +$badge-pill-padding-x: 0.5rem !default; + +// Modal +$modal-inner-padding: 0.8rem 1.4rem !default; + +$modal-footer-border-color: rgba($black, 0.05) !default; + +$modal-header-padding-y: 0.8rem !default; +$modal-header-padding-x: 1.4rem !default; +$modal-content-border-radius: 0.358rem !default; + +$modal-xl: 94% !default; +$modal-sm: 400px !default; + +// Slide In Modal +$modal-slide-in-width-sm: 25rem !default; // custom +$modal-slide-in-width: 28rem !default; // custom +$modal-slide-in-width-lg: 30rem !default; // custom + +// Close + +$close-font-size: $font-size-base * 2 !default; +$close-font-weight: 400 !default; +$close-color: $headings-color !default; + +// Code + +$code-font-size: 90% !default; +$kbd-bg: #eee !default; + +// Switch +$custom-switch-width: 3rem !default; +$custom-switch-indicator-border-radius: 1rem !default; +$custom-switch-indicator-size: 1rem !default; + +//svg color +$svg-color-light: #626262 !default; + +// SVG icons +// For Breadcrumb +$double-chevron-right: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-chevrons-right'%3E%3Cpolyline points='13 17 18 12 13 7'%3E%3C/polyline%3E%3Cpolyline points='6 17 11 12 6 7'%3E%3C/polyline%3E%3C/svg%3E"; +// Chevron Icons +$chevron-left: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-chevron-left'%3E%3Cpolyline points='15 18 9 12 15 6'%3E%3C/polyline%3E%3C/svg%3E"; +$chevron-right: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-chevron-right'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E"; +$chevron-up: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-chevron-up'%3E%3Cpolyline points='18 15 12 9 6 15'%3E%3C/polyline%3E%3C/svg%3E"; +$chevron-down: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-chevron-down'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"; + +$download: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-download'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'%3E%3C/path%3E%3Cpolyline points='7 10 12 15 17 10'%3E%3C/polyline%3E%3Cline x1='12' y1='15' x2='12' y2='3'%3E%3C/line%3E%3C/svg%3E"; +$remove: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-x'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E"; +$check: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-check'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E"; +$circle: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-circle'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3C/svg%3E"; +$infoIcon: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-info'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='16' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'%3E%3C/line%3E%3C/svg%3E"; +$warningIcon: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-alert-triangle'%3E%3Cpath d='M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'%3E%3C/path%3E%3Cline x1='12' y1='9' x2='12' y2='13'%3E%3C/line%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'%3E%3C/line%3E%3C/svg%3E"; +$menu: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' stroke='currentColor' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' class='css-i6dzq1'%3E%3Cline x1='3' y1='12' x2='21' y2='12'%3E%3C/line%3E%3Cline x1='3' y1='6' x2='21' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='18' x2='21' y2='18'%3E%3C/line%3E%3C/svg%3E"; + +$chat-bg-light: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIzLjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyNjAgMjYwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNjAgMjYwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0UxRTBFOTt9Cjwvc3R5bGU+CjxnPgoJPGcgaWQ9ImktbGlrZS1mb29kIj4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjQuNCwxNmMwLjIsMC42LDAuNCwxLjMsMC41LDJoLTMuN2wxLjIsMi4zbDAuNSwwLjlsLTAuMiwwLjFWMjhjMi4yLDEuNywyLjcsNC44LDEsNwoJCQljLTAuOCwxLTEuOSwxLjctMy4yLDEuOVYzN2MtMC45LDMuNS00LjEsNi03LjgsNmgtMjBjLTMuNiwwLTYuOC0yLjUtNy43LTZ2LTAuMWMtMi43LTAuNC00LjYtMy00LjItNS43YzAuMi0xLjMsMC45LTIuNSwxLjktMy4yCgkJCXYtNi44bC0wLjgtMS42bC0wLjQtMC45bDAuOS0wLjRMLTE3LDE4aC0zQy0xNy4yLDUuNi00LjktMi4yLDcuNSwwLjZDMTUuNCwyLjMsMjEuOSw4LjIsMjQuNCwxNnogTS0xMi40LDE4Yy0wLjIsMC0wLjMsMC0wLjQsMC4xCgkJCWwtMy4xLDEuNmwwLjksMS44bDEuMy0wLjdjMC44LTAuNCwxLjgtMC40LDIuNywwbDIuMiwxLjFjMC4zLDAuMSwwLjYsMC4xLDAuOSwwbDIuMi0xLjFjMC44LTAuNCwxLjgtMC40LDIuNywwbDIuMiwxLjEKCQkJYzAuMywwLjEsMC42LDAuMSwwLjksMGwyLjItMS4xYzAuOC0wLjQsMS44LTAuNCwyLjcsMGwyLjIsMS4xQzcuNCwyMiw3LjcsMjIsOCwyMS45bDIuOS0xLjNjMC44LTAuMywxLjctMC4zLDIuNCwwbDIuOSwxLjMKCQkJYzAuMywwLjEsMC42LDAuMSwwLjksMGwzLjEtMS41bC0wLjktMS44bC0xLjQsMC43Yy0wLjgsMC40LTEuNywwLjQtMi42LDAuMWwtMi44LTEuMkMxMi4zLDE4LDEyLjIsMTgsMTIuMSwxOGwwLDAKCQkJYy0wLjEsMC0wLjMsMC0wLjQsMC4xbC0yLjgsMS4yYy0wLjgsMC40LTEuOCwwLjMtMi42LTAuMUw0LDE4LjFDMy45LDE4LDMuNywxOCwzLjYsMThsMCwwYy0wLjIsMC0wLjMsMC0wLjQsMC4xTDEsMTkuMgoJCQljLTAuOCwwLjQtMS44LDAuNC0yLjcsMEwtNCwxOC4xQy00LjEsMTgtNC4zLDE4LTQuNCwxOGwwLDBjLTAuMiwwLTAuMywwLTAuNCwwLjFMLTcsMTkuMmMtMC44LDAuNC0xLjgsMC40LTIuNywwbC0yLjItMS4xCgkJCUMtMTIuMSwxOC0xMi4zLDE4LTEyLjQsMThMLTEyLjQsMThMLTEyLjQsMTh6IE0tMTIuNCwxNmgtNC45Qy0xMy41LDUuMS0xLjUtMC43LDkuNSwzLjJjNiwyLjEsMTAuNyw2LjgsMTIuOCwxMi44aC0yLjFsLTAuMS0wLjEKCQkJTDE5LjksMTZILTEyLjRMLTEyLjQsMTZ6IE0xNy45LDIzLjdsMS40LTAuN2gxLjN2MmgtMzZ2LTEuMWwwLjMtMC4ybDEuNC0wLjdoMi42bDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwbDEuNC0wLjdILTMKCQkJbDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwTDIuMywyM2gyLjZsMS40LDAuN2MwLjcsMC40LDEuNywwLjQsMi41LDBsMS43LTAuN2gzLjJsMS43LDAuN0MxNi4yLDI0LjEsMTcuMSwyNC4xLDE3LjksMjMuN3oKCQkJIE0tMTMuOCwyN2wxNi40LDQuOUwxOC45LDI3SC0xMy44eiBNLTE0LjQsMjloMC4zbDE2LjcsNWwxNi43LTVoMC4zYzEuNywwLDMsMS4zLDMsM3MtMS4zLDMtMywzaC0zNGMtMS43LDAtMy0xLjMtMy0zCgkJCUMtMTcuNCwzMC4zLTE2LjEsMjktMTQuNCwyOXogTS0xMy4xLDM3YzAuOCwyLjQsMy4xLDQsNS43LDRoMjBjMi41LDAsNC44LTEuNiw1LjctNEMxOC4yLDM3LTEzLjEsMzctMTMuMSwzN3oiLz4KCQk8cGF0aCBpZD0icGF0aDZfZmlsbC1jb3B5IiBjbGFzcz0ic3QwIiBkPSJNMjg0LjQsMTZjMC4yLDAuNiwwLjQsMS4zLDAuNSwyaC0zLjdsMS4yLDIuM2wwLjUsMC45bC0wLjIsMC4xVjI4YzIuMiwxLjcsMi43LDQuOCwxLDcKCQkJYy0wLjgsMS0xLjksMS43LTMuMiwxLjlWMzdjLTAuOSwzLjUtNC4xLDYtNy44LDZoLTIwYy0zLjYsMC02LjgtMi41LTcuNy02di0wLjFjLTIuNy0wLjQtNC42LTMtNC4yLTUuN2MwLjItMS4zLDAuOS0yLjUsMS45LTMuMgoJCQl2LTYuOGwtMC44LTEuNmwtMC40LTAuOWwwLjktMC40TDI0MywxOGgtM2MyLjgtMTIuNCwxNS4xLTIwLjIsMjcuNS0xNy40QzI3NS40LDIuMywyODEuOSw4LjIsMjg0LjQsMTZ6IE0yNDcuNSwxOAoJCQljLTAuMiwwLTAuMywwLTAuNCwwLjFsLTMuMSwxLjZsMC45LDEuOGwxLjMtMC43YzAuOC0wLjQsMS44LTAuNCwyLjcsMGwyLjIsMS4xYzAuMywwLjEsMC42LDAuMSwwLjksMGwyLjItMS4xCgkJCWMwLjgtMC40LDEuOC0wLjQsMi43LDBsMi4yLDEuMWMwLjMsMC4xLDAuNiwwLjEsMC45LDBsMi4yLTEuMWMwLjgtMC40LDEuOC0wLjQsMi43LDBsMi4yLDEuMWMwLjMsMC4xLDAuNiwwLjEsMC45LDBsMi45LTEuMwoJCQljMC44LTAuMywxLjctMC4zLDIuNCwwbDIuOSwxLjNjMC4zLDAuMSwwLjYsMC4xLDAuOSwwbDMuMS0xLjVsLTAuOS0xLjhsLTEuNCwwLjdjLTAuOCwwLjQtMS43LDAuNC0yLjYsMC4xbC0yLjgtMS4yCgkJCWMtMC4xLTAuMS0wLjMtMC4xLTAuNC0wLjFsMCwwYy0wLjEsMC0wLjMsMC0wLjQsMC4xbC0yLjgsMS4yYy0wLjgsMC40LTEuOCwwLjMtMi42LTAuMWwtMi4zLTEuMWMtMC4xLTAuMS0wLjMtMC4xLTAuNS0wLjFsMCwwCgkJCWMtMC4yLDAtMC4zLDAtMC40LDAuMWwtMi4yLDEuMWMtMC44LDAuNC0xLjgsMC40LTIuNywwbC0yLjItMS4xYy0wLjEtMC4xLTAuMy0wLjEtMC40LTAuMWwwLDBjLTAuMiwwLTAuMywwLTAuNCwwLjFsLTIuMiwxLjEKCQkJYy0wLjgsMC40LTEuOCwwLjQtMi43LDBsLTIuMi0xLjFDMjQ3LjksMTgsMjQ3LjcsMTgsMjQ3LjUsMThMMjQ3LjUsMThMMjQ3LjUsMTh6IE0yNDcuNSwxNmgtNC45YzMuOS0xMC45LDE1LjktMTYuNywyNi44LTEyLjgKCQkJYzYsMi4xLDEwLjcsNi44LDEyLjgsMTIuOGgtMi4xbC0wLjEtMC4xbC0wLjMsMC4xSDI0Ny41TDI0Ny41LDE2eiBNMjc3LjksMjMuN2wxLjQtMC43aDEuM3YyaC0zNnYtMS4xbDAuMy0wLjJsMS40LTAuN2gyLjYKCQkJbDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwbDEuNC0wLjdoMi42bDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwbDEuNC0wLjdoMi42bDEuNCwwLjdjMC44LDAuNCwxLjcsMC40LDIuNiwwLjFsMS43LTAuNwoJCQloMy4ybDEuNywwLjdDMjc2LjIsMjQuMSwyNzcuMSwyNC4xLDI3Ny45LDIzLjdMMjc3LjksMjMuN3ogTTI0Ni4yLDI3bDE2LjQsNC45TDI3OSwyN0gyNDYuMnogTTI0NS41LDI5aDAuM2wxNi43LDVsMTYuNy01aDAuMwoJCQljMS43LDAsMywxLjMsMywzcy0xLjMsMy0zLDNoLTM0Yy0xLjcsMC0zLTEuMy0zLTNTMjQzLjksMjksMjQ1LjUsMjl6IE0yNDYuOSwzN2MwLjgsMi40LDMuMSw0LDUuNiw0aDIwYzIuNSwwLDQuOC0xLjYsNS43LTQKCQkJSDI0Ni45eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNTkuNSwyMWMtMS4zLTMuNi00LjctNi04LjUtNmgtNDJjLTMuOCwwLTcuMiwyLjQtOC41LDZjLTMuMywwLjMtNS44LDMuMi01LjUsNi41YzAuMiwyLjksMi42LDUuMiw1LjUsNS41CgkJCWMtMS43LDQuNywwLjgsOS44LDUuNCwxMS41YzEsMC4zLDIsMC41LDMsMC41aDQyYzUsMCw5LTQsOS05YzAtMS0wLjItMi4xLTAuNS0zYzMuMy0wLjMsNS44LTMuMiw1LjUtNi41CgkJCUMxNjQuNywyMy42LDE2Mi40LDIxLjMsMTU5LjUsMjF6IE0xNTEsMTdoLTQyYy0yLjcsMC01LjIsMS42LTYuMyw0aDU0LjdDMTU2LjIsMTguNiwxNTMuNywxNywxNTEsMTd6IE0xNDEuNyw0MwoJCQljMi4xLTEuNywzLjMtNC4zLDMuMy03aC0yYzAsMy45LTMuMSw3LTcsN2gtNC4zYzIuMS0xLjcsMy4zLTQuMywzLjMtN2gtMmMwLDMuOS0zLjEsNy03LDdoLTQuM2MyLjEtMS43LDMuMy00LjMsMy4zLTdoLTIKCQkJYzAsMy45LTMuMSw3LTcsN2gtN2MtMy45LDAtNy0zLjEtNy03czMuMS03LDctN2g0MmMzLjksMCw3LDMuMSw3LDdzLTMuMSw3LTcsN0gxNDEuN3ogTTEwOSwyN2MtMywwLTUuOCwxLjUtNy41LDRIMTAxCgkJCWMtMi4yLDAtNC0xLjgtNC00czEuOC00LDQtNGg1OGMyLjIsMCw0LDEuOCw0LDRzLTEuOCw0LTQsNGgtMC41Yy0xLjctMi41LTQuNS00LTcuNS00SDEwOXoiLz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzksMTE1YzQuNCwwLDgtMy42LDgtOHMtMy42LTgtOC04cy04LDMuNi04LDhTMzQuNiwxMTUsMzksMTE1eiBNNDUsMTA3YzAsMy4zLTIuNyw2LTYsNnMtNi0yLjctNi02CgkJCXMyLjctNiw2LTZTNDUsMTAzLjcsNDUsMTA3eiBNNDIsNzh2LTJoOHYtNkg0MGMtMi4yLDAtNCwxLjgtNCw0djEwSDIybC0xLjMsNEwyMCw5MGgyLjJsMy44LDQwaDI2bDMuOC00MEg1OGwtMC43LTJMNTYsODRINDJWNzh6CgkJCSBNMzgsNzR2MTBoMlY3NGg4di0yaC04QzM4LjksNzIsMzgsNzIuOSwzOCw3NHogTTQwLDg2aDE0LjZsMC43LDJIMjIuOGwwLjctMkg0MHogTTUzLjgsOTBIMjQuMmwzLjYsMzhoMjIuNEw1My44LDkweiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMjksOTJoLTZ2NGgtNnY0aC02djE0aC0zbDAuMiwybDMuOCwzMmgzNmwzLjgtMzJsMC4yLTJoLTN2LTE0aC02di00aC02di00SDEyOXogTTE0NywxMTR2LTEyaC00djRoM3Y4SDE0NwoJCQl6IE0xNDQsMTE0di02aC00djZIMTQ0eiBNMTM4LDEyMHYtMTZoLTR2MTkuMkMxMzUuNiwxMjIuNSwxMzcsMTIxLjQsMTM4LDEyMHogTTEzMiwxMjMuOFYxMDBoLTR2MjMuOAoJCQlDMTI5LjMsMTI0LjEsMTMwLjcsMTI0LjEsMTMyLDEyMy44eiBNMTI2LDEyMy4yVjEwNGgtNHYxNkMxMjMsMTIxLjQsMTI0LjQsMTIyLjUsMTI2LDEyMy4yeiBNMTIwLDExNHYtNmgtNHY2SDEyMHogTTExNCwxMTR2LThoMwoJCQl2LTRoLTR2MTJIMTE0eiBNMTQxLDEwMnYtNGgtNHY0aDN2NGgxVjEwMnogTTEzNSwxMDJ2LThoLTR2NGgzdjRIMTM1eiBNMTI5LDk4di00aC00djhoMXYtNEgxMjl6IE0xMjMsMTAydi00aC00djhoMXYtNEgxMjN6CgkJCSBNMTMwLDEyNmM1LjksMCwxMC45LTQuMiwxMS44LTEwaDcuOWwtMy41LDMwaC0zMi40bC0zLjUtMzBoNy45QzExOS4xLDEyMS44LDEyNC4xLDEyNiwxMzAsMTI2eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMTIsODZ2MmgtNHYtMkgyMTJ6IE0yMTYsODZoLTJ2MmgyVjg2eiBNMTk2LDg2TDE5Niw4NmMtMi43LDAuNy00LjUsMy4zLTMuOSw2YzAuNCwxLjgsMS42LDMuMiwzLjMsMy44CgkJCWwwLjEsMC4ybDEuMSw0LjVjMC4yLDAuOSwxLDEuNSwxLjksMS41bDAsMGw3LDI0LjZjMC4yLDAuOSwxLDEuNCwxLjksMS40aDVjMC45LDAsMS43LTAuNiwxLjktMS40bDctMjQuNmMwLjksMCwxLjctMC42LDEuOS0xLjUKCQkJbDEuMS00LjVsMC4xLTAuMmMyLjYtMC45LDQuMS0zLjcsMy4yLTYuM2MtMC42LTEuNy0yLTMtMy44LTMuM1Y4NmMwLTcuNy02LjMtMTQtMTQtMTRTMTk2LDc4LjMsMTk2LDg2eiBNMjAwLDg2aDZ2MmgtOQoJCQljLTEuNywwLTMsMS4zLTMsM3MxLjMsMywzLDNoMjZjMS43LDAsMy0xLjMsMy0zcy0xLjMtMy0zLTNoLTN2LTJoMmMwLTYuNi01LjQtMTItMTItMTJzLTEyLDUuNC0xMiwxMkgyMDB6IE0xOTguNiwxMDBsLTEtNGgyNC45CgkJCWwtMSw0SDE5OC42eiBNMjA3LjUsMTI2bC02LjktMjRoMTguN2wtNi45LDI0SDIwNy41eiBNMTUwLDI0MmMxMi4yLDAsMjItOS44LDIyLTIycy05LjgtMjItMjItMjJzLTIyLDkuOC0yMiwyMgoJCQlTMTM3LjgsMjQyLDE1MCwyNDJ6IE0xNzQsMjIwYzAsMTMuMy0xMC43LDI0LTI0LDI0cy0yNC0xMC43LTI0LTI0bDAsMGMwLTEzLjMsMTAuNy0yNCwyNC0yNFMxNzQsMjA2LjcsMTc0LDIyMHogTTE0NS42LDIzNy43CgkJCWwyLTAuOWMxLjUtMC42LDMuMi0wLjYsNC43LDBsMiwwLjljMC45LDAuNCwyLDAsMi41LTAuOGwxLjEtMS45YzAuOC0xLjQsMi4yLTIuNCwzLjgtMi44bDIuMS0wLjVjMS0wLjIsMS42LTEuMSwxLjUtMi4xbC0wLjItMi4yCgkJCWMtMC4xLTEuNiwwLjQtMy4yLDEuNC00LjVsMS40LTEuN2MwLjctMC44LDAuNy0xLjksMC0yLjZsLTEuNC0xLjdjLTEuMS0xLjItMS42LTIuOC0xLjQtNC41bDAuMi0yLjJjMC4xLTEtMC42LTEuOS0xLjYtMi4xCgkJCWwtMi4xLTAuNWMtMS42LTAuNC0zLTEuNC0zLjgtMi44bC0xLjEtMS45Yy0wLjUtMC45LTEuNi0xLjItMi41LTAuOGwtMiwwLjljLTEuNSwwLjYtMy4yLDAuNi00LjcsMGwtMi0wLjljLTAuOS0wLjQtMiwwLTIuNSwwLjgKCQkJbC0xLDIuMWMtMC44LDEuNC0yLjIsMi40LTMuOCwyLjhsLTIuMSwwLjVjLTEsMC4yLTEuNiwxLjEtMS41LDIuMWwwLjIsMi4yYzAuMSwxLjYtMC40LDMuMi0xLjQsNC41bC0xLjQsMS43CgkJCWMtMC43LDAuOC0wLjcsMS45LDAsMi42bDEuNCwxLjdjMS4xLDEuMiwxLjYsMi44LDEuNCw0LjVsLTAuMiwyLjJjLTAuMSwxLDAuNiwxLjksMS42LDIuMWwyLjEsMC41YzEuNiwwLjQsMywxLjQsMy44LDIuOGwxLjEsMS45CgkJCUMxNDMuNiwyMzcuOCwxNDQuNywyMzguMSwxNDUuNiwyMzcuN0wxNDUuNiwyMzcuN3ogTTE0OC40LDIzOC43YzEtMC40LDIuMS0wLjQsMy4xLDBsMiwwLjljMS44LDAuOCw0LDAuMSw1LTEuNmwxLjEtMS45CgkJCWMwLjYtMC45LDEuNS0xLjYsMi41LTEuOGwyLjEtMC41YzEuOS0wLjQsMy4zLTIuMywzLjEtNC4ybC0wLjItMi4yYy0wLjEtMS4xLDAuMy0yLjIsMS0zbDEuNC0xLjdjMS4zLTEuNSwxLjMtMy43LDAtNS4ybC0xLjQtMS43CgkJCWMtMC43LTAuOC0xLjEtMS45LTEtM2wwLjItMi4yYzAuMi0yLTEuMS0zLjgtMy4xLTQuMmwtMi4xLTAuNWMtMS4xLTAuMi0yLTAuOS0yLjUtMS44bC0xLjEtMS45Yy0xLTEuNy0zLjItMi40LTUtMS42bC0yLDAuOQoJCQljLTEsMC40LTIuMSwwLjQtMy4xLDBsLTItMC45Yy0xLjgtMC44LTQtMC4xLTUsMS42bC0xLjEsMS45Yy0wLjYsMC45LTEuNSwxLjYtMi41LDEuOGwtMi4xLDAuNWMtMS45LDAuNC0zLjMsMi4zLTMuMSw0LjJsMC4yLDIuMgoJCQljMC4xLDEuMS0wLjMsMi4yLTEsM2wtMS40LDEuN2MtMS4zLDEuNS0xLjMsMy43LDAsNS4ybDEuNCwxLjdjMC43LDAuOCwxLjEsMS45LDEsM2wtMC4yLDIuMmMtMC4yLDIsMS4xLDMuOCwzLjEsNC4ybDIuMSwwLjUKCQkJYzEuMSwwLjIsMiwwLjksMi41LDEuOGwxLjEsMS45YzEsMS43LDMuMiwyLjQsNSwxLjZMMTQ4LjQsMjM4Ljd6IE0xNTIsMjA3YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMQoJCQlTMTUyLDIwNy42LDE1MiwyMDd6IE0xNTgsMjA5YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNTgsMjA5LjYsMTU4LDIwOXogTTE0NywyMTBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMQoJCQlzLTAuNCwxLTEsMVMxNDcsMjEwLjYsMTQ3LDIxMHogTTE0MSwyMTBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxUzE0MSwyMTAuNiwxNDEsMjEweiBNMTQ0LDIwNWMwLTAuNiwwLjQtMSwxLTEKCQkJczEsMC40LDEsMXMtMC40LDEtMSwxUzE0NCwyMDUuNiwxNDQsMjA1eiBNMTM2LDIxM2MwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTM2LDIxMy42LDEzNiwyMTN6IE0xMzksMjE5CgkJCWMwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTM5LDIxOS42LDEzOSwyMTl6IE0xMzksMjI1YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxMzksMjI1LjYsMTM5LDIyNXoKCQkJIE0xNDMsMjMyYzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNDMsMjMyLjYsMTQzLDIzMnogTTE0OCwyMzBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxCgkJCVMxNDgsMjMwLjYsMTQ4LDIzMHogTTE1MywyMzRjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxUzE1MywyMzQuNiwxNTMsMjM0eiBNMTU3LDIyOGMwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxCgkJCXMtMC40LDEtMSwxUzE1NywyMjguNiwxNTcsMjI4eiBNMTYzLDIyNGMwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTYzLDIyNC42LDE2MywyMjR6IE0xNTksMjIxYzAtMC42LDAuNC0xLDEtMQoJCQlzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTU5LDIyMS42LDE1OSwyMjF6IE0xNjMsMjE4YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNjMsMjE4LjYsMTYzLDIxOHogTTE1OCwyMTQKCQkJYzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNTgsMjE0LjYsMTU4LDIxNHogTTEzNCwyMjBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxUzEzNCwyMjAuNiwxMzQsMjIwegoJCQkgTTE1MCwyMjVjMi44LDAsNS0yLjIsNS01cy0yLjItNS01LTVzLTUsMi4yLTUsNVMxNDcuMiwyMjUsMTUwLDIyNXogTTE1NywyMjBjMCwzLjktMy4xLDctNyw3cy03LTMuMS03LTdzMy4xLTcsNy03CgkJCVMxNTcsMjE2LjEsMTU3LDIyMHogTTI0MywxOTFjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgyNDN6IE0yNjIsMjAwYzAtMC42LDAuNC0xLDEtMWgyCgkJCWMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMWgtMkMyNjIuNCwyMDEsMjYyLDIwMC42LDI2MiwyMDB6IE0yNDgsMjA1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTEKCQkJSDI0OHogTTIyMywyMDZjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgyMjN6IE0yMjgsMjEwYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDIKCQkJYzAuNiwwLDEtMC40LDEtMXMtMC40LTEtMS0xSDIyOHogTTIzNywyMTBjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDMjM3LjQsMjExLDIzNywyMTAuNiwyMzcsMjEwegoJCQkgTTI1MiwyMTFjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDMjUyLjQsMjEyLDI1MiwyMTEuNiwyNTIsMjExeiBNMjY0LDIwOWMtMC42LDAtMSwwLjQtMSwxczAuNCwxLDEsMWgyCgkJCWMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgyNjR6IE0yNTMsMTk1YzAtMC42LDAuNC0xLDEtMWgyYzAuNiwwLDEsMC40LDEsMXMtMC40LDEtMSwxaC0yQzI1My40LDE5NiwyNTMsMTk1LjYsMjUzLDE5NXoKCQkJIE0yMzQsMTk1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFIMjM0eiBNMjQwLDIwMGMwLTAuNiwwLjQtMSwxLTFoMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMQoJCQloLTJDMjQwLjQsMjAxLDI0MCwyMDAuNiwyNDAsMjAweiBNMjE1LDIxNWMwLTAuNSwwLTAuOSwwLTEuNGMtMi41LTEuMS0zLjctNC0yLjYtNi42YzAuMi0wLjUsMC41LTEsMC45LTEuNGMtMC45LTIsMC00LjIsMS45LTUuMgoJCQljLTAuOC0yLjYsMC43LTUuNCwzLjQtNi4ybDAsMGMwLjQtMC41LDAuOS0wLjksMS41LTEuMWMwLjUtMi43LDMuMS00LjUsNS44LTQuMWMwLjcsMC4xLDEuNCwwLjQsMiwwLjhjNS4zLTMuOCwxMS42LTUuOSwxOC4yLTUuOQoJCQljNi44LDAsMTMuMSwyLjIsMTguMiw1LjljMi4zLTEuNiw1LjQtMSw3LDEuM2MwLjQsMC42LDAuNywxLjMsMC44LDJjMC42LDAuMiwxLjEsMC42LDEuNSwxLjFjMi43LDAuOCw0LjIsMy41LDMuNCw2LjJsMCwwCgkJCWMxLjksMSwyLjcsMy4yLDEuOSw1LjJjMS45LDIsMS44LDUuMi0wLjIsN2MtMC40LDAuNC0wLjksMC43LTEuNSwxYzAsMC41LDAsMC45LDAsMS40djFoLTYydi0xSDIxNXogTTIxNS44LDIwNy44CgkJCWMtMC4zLDEuMi0wLjUsMi40LTAuNiwzLjZjLTEuMy0xLTEuNi0yLjktMC42LTQuMmwwLDBDMjE1LDIwNy41LDIxNS40LDIwNy43LDIxNS44LDIwNy44TDIxNS44LDIwNy44eiBNMjE3LjMsMjAzLjIKCQkJYy0wLjQsMC45LTAuNywxLjgtMSwyLjdjLTEtMC40LTEuNi0xLjUtMS4zLTIuNWMwLjItMC41LDAuNi0wLjksMS4xLTEuMkMyMTYuNSwyMDIuNiwyMTYuOSwyMDIuOSwyMTcuMywyMDMuMkwyMTcuMywyMDMuMnoKCQkJIE0yMTkuNiwxOTguN2MtMC41LDAuOS0xLDEuOC0xLjUsMi43Yy0xLjMtMS0xLjUtMi45LTAuNS00LjJjMC4xLTAuMiwwLjMtMC4zLDAuNC0wLjVDMjE4LjMsMTk3LjYsMjE4LjksMTk4LjMsMjE5LjYsMTk4LjcKCQkJTDIxOS42LDE5OC43eiBNMjIwLjgsMTk3YzAuNC0wLjUsMC43LTEsMS4xLTEuNWMtMC4zLTAuNS0wLjktMC43LTEuNC0wLjRzLTAuNywwLjktMC40LDEuNEMyMjAuMywxOTYuNywyMjAuNSwxOTYuOSwyMjAuOCwxOTcKCQkJTDIyMC44LDE5N3ogTTIyNi4xLDE5MS4yYy0xLDAuOS0yLDEuOC0yLjksMi44Yy0wLjMtMC4zLTAuNy0wLjYtMS4xLTAuOGMwLjQtMS42LDIuMS0yLjUsMy43LTIuMQoJCQlDMjI1LjksMTkxLjEsMjI2LDE5MS4yLDIyNi4xLDE5MS4yTDIyNi4xLDE5MS4yeiBNMjY4LjgsMTk0Yy0wLjktMS0xLjktMS45LTIuOS0yLjhjMS41LTAuNiwzLjMsMC4xLDMuOSwxLjcKCQkJYzAsMC4xLDAuMSwwLjIsMC4xLDAuM0MyNjkuNSwxOTMuNCwyNjkuMSwxOTMuNiwyNjguOCwxOTRMMjY4LjgsMTk0eiBNMjcwLjEsMTk1LjVjMC40LDAuNSwwLjgsMSwxLjEsMS40CgkJCWMwLjUtMC4xLDAuOS0wLjcsMC44LTEuMnMtMC43LTAuOS0xLjItMC44QzI3MC41LDE5NS4xLDI3MC4zLDE5NS4zLDI3MC4xLDE5NS41eiBNMjczLjksMjAxLjRjLTAuNS0wLjktMS0xLjgtMS41LTIuNwoJCQljMC44LTAuNCwxLjQtMS4xLDEuNi0yYzEuMywxLjEsMS40LDMsMC40LDQuMkMyNzQuMiwyMDEuMSwyNzQsMjAxLjIsMjczLjksMjAxLjR6IE0yNzUuNiwyMDUuOWMtMC4zLTAuOS0wLjYtMS44LTEtMi43CgkJCWMwLjQtMC4zLDAuOC0wLjYsMS4yLTFjMSwwLjUsMS40LDEuNywxLDIuN0MyNzYuNiwyMDUuMywyNzYuMiwyMDUuNywyNzUuNiwyMDUuOXogTTI3Ni44LDIxMS40Yy0wLjEtMS4yLTAuNC0yLjQtMC42LTMuNgoJCQljMC41LTAuMSwwLjktMC40LDEuMi0wLjZDMjc4LjQsMjA4LjUsMjc4LjEsMjEwLjQsMjc2LjgsMjExLjRMMjc2LjgsMjExLjRMMjc2LjgsMjExLjR6IE0yNzUsMjE0Yy0wLjUtMTYtMTMuOS0yOC42LTI5LjktMjguMQoJCQljLTE1LjMsMC41LTI3LjYsMTIuOC0yOC4xLDI4LjFIMjc1TDI3NSwyMTR6IE03Mi4zLDE5OC4xYy0wLjItMC4zLTAuMy0wLjctMC4zLTEuMXYtMTJoLTJ2MTJjMCwyLjIsMS44LDQsNCw0CgkJCWMxLjIsMCwyLjMtMC41LDMuMS0xLjRjMC42LTAuNywwLjktMS42LDAuOS0yLjV2LTEyaC0ydjEyYzAsMS4xLTAuOSwyLTIsMmwwLDBDNzMuMywxOTksNzIuNywxOTguNyw3Mi4zLDE5OC4xeiBNNzUsMTc2CgkJCWMwLjQsMCwwLjcsMCwxLjEtMC4xYzAuNSwyLjIsMi42LDMuNSw0LjgsM2MwLjUtMC4xLDEtMC4zLDEuNC0wLjZjMS4xLDIuMSwxLjcsNC40LDEuNyw2Ljd2MjRjMCwzLjMtMi43LDYtNiw2aC0zdjkKCQkJYzAsMi44LTIuMiw1LTUsNXMtNS0yLjItNS01di05aC0zYy0zLjMsMC02LTIuNy02LTZ2LTI0YzAtNy43LDYuMy0xNCwxNC0xNEM3MCwxNzMuOCw3Mi4yLDE3Niw3NSwxNzZ6IE01OCwxOTF2MTIKCQkJYzAsMC44LDAuNSwxLjUsMS4yLDEuOGMwLjksMC40LDEuOSwwLjEsMi40LTAuN2MwLjItMC4zLDAuMy0wLjcsMC4zLTEuMXYtMTJoMnYxMmMwLDIuMi0xLjcsNC0zLjksNGMtMC41LDAtMS0wLjEtMS40LTAuMgoJCQljLTAuMi0wLjEtMC40LTAuMi0wLjctMC4zdjIuNWMwLDIuMiwxLjgsNCw0LDRoMTZjMi4yLDAsNC0xLjgsNC00di0yNGMwLTEuNS0wLjItMi45LTAuNy00LjJjLTAuNCwwLjEtMC45LDAuMi0xLjMsMC4yCgkJCWMtMi4xLDAtNC4xLTEuMS01LjItM2MtMy0wLjEtNS42LTItNi41LTQuOUM2Mi40LDE3NCw1OCwxNzksNTgsMTg1VjE5MXogTTY3LDIxNXY5YzAsMS43LDEuMywzLDMsM3MzLTEuMywzLTN2LTlINjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTS0xNywxOTFjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgtMTd6IE0yLDIwMGMwLTAuNiwwLjQtMSwxLTFoMgoJCQljMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIM0MyLjQsMjAxLDIsMjAwLjYsMiwyMDB6IE0tMTIsMjA1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFILTEyegoJCQkgTS0zNywyMDZjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgtMzd6IE0tMzIsMjEwYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xCgkJCXMtMC40LTEtMS0xSC0zMnogTS0yMywyMTBjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDLTIyLjYsMjExLTIzLDIxMC42LTIzLDIxMHogTS04LDIxMWMwLTAuNiwwLjQtMSwxLTEKCQkJaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDLTcuNiwyMTItOCwyMTEuNi04LDIxMXogTTQsMjA5Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFINHoKCQkJIE0tNywxOTVjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDLTYuNiwxOTYtNywxOTUuNi03LDE5NXogTS0yNiwxOTVjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMgoJCQljMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFILTI2eiBNLTIwLDIwMGMwLTAuNiwwLjQtMSwxLTFoMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMWgtMkMtMTkuNiwyMDEtMjAsMjAwLjYtMjAsMjAweiBNLTQ1LDIxNQoJCQljMC0wLjUsMC0wLjksMC0xLjRjLTIuNS0xLjEtMy43LTQtMi42LTYuNmMwLjItMC41LDAuNS0xLDAuOS0xLjRjLTAuOS0yLDAtNC4yLDEuOS01LjJjLTAuOC0yLjYsMC43LTUuNCwzLjQtNi4ybDAsMAoJCQljMC40LTAuNSwwLjktMC45LDEuNS0xLjFjMC41LTIuNywzLjEtNC41LDUuOC00LjFjMC43LDAuMSwxLjQsMC40LDIsMC44YzUuMy0zLjgsMTEuNi01LjksMTguMi01LjljNi44LDAsMTMuMSwyLjIsMTguMiw1LjkKCQkJYzIuMy0xLjYsNS40LTEsNywxLjNjMC40LDAuNiwwLjcsMS4zLDAuOCwyYzAuNiwwLjIsMS4xLDAuNiwxLjUsMS4xYzIuNywwLjgsNC4yLDMuNSwzLjQsNi4ybDAsMGMxLjksMSwyLjcsMy4yLDEuOSw1LjIKCQkJYzEuOSwyLDEuOCw1LjItMC4yLDdjLTAuNCwwLjQtMC45LDAuNy0xLjUsMWMwLDAuNSwwLDAuOSwwLDEuNHYxaC02MnYtMUgtNDV6IE0tNDQuMiwyMDcuOGMtMC4zLDEuMi0wLjUsMi40LTAuNiwzLjYKCQkJYy0xLjMtMS0xLjYtMi45LTAuNi00LjJsMCwwQy00NSwyMDcuNS00NC42LDIwNy43LTQ0LjIsMjA3LjhMLTQ0LjIsMjA3Ljh6IE0tNDIuNywyMDMuMmMtMC40LDAuOS0wLjcsMS44LTEsMi43CgkJCWMtMS0wLjQtMS42LTEuNS0xLjMtMi41YzAuMi0wLjUsMC42LTAuOSwxLjEtMS4yQy00My41LDIwMi42LTQzLjEsMjAyLjktNDIuNywyMDMuMkwtNDIuNywyMDMuMnogTS00MC40LDE5OC43CgkJCWMtMC41LDAuOS0xLDEuOC0xLjUsMi43Yy0xLjMtMS0xLjUtMi45LTAuNS00LjJjMC4xLTAuMiwwLjMtMC4zLDAuNC0wLjVDLTQxLjcsMTk3LjYtNDEuMSwxOTguMy00MC40LDE5OC43eiBNLTM5LjIsMTk3CgkJCWMwLjMtMC41LDAuNy0xLDEuMS0xLjVjLTAuMy0wLjUtMC45LTAuNy0xLjQtMC40cy0wLjcsMC45LTAuNCwxLjRDLTM5LjcsMTk2LjctMzkuNSwxOTYuOS0zOS4yLDE5N0wtMzkuMiwxOTd6IE0tMzMuOSwxOTEuMgoJCQljLTEsMC45LTIsMS44LTIuOSwyLjhjLTAuMy0wLjMtMC43LTAuNi0xLjEtMC44YzAuNC0xLjYsMi4xLTIuNSwzLjctMi4xQy0zNC4xLDE5MS4xLTM0LDE5MS4yLTMzLjksMTkxLjJMLTMzLjksMTkxLjJ6IE04LjgsMTk0CgkJCWMtMC45LTEtMS45LTEuOS0yLjktMi44YzEuNS0wLjYsMy4zLDAuMSwzLjksMS43YzAsMC4xLDAuMSwwLjIsMC4xLDAuM0M5LjUsMTkzLjQsOS4xLDE5My42LDguOCwxOTRMOC44LDE5NHogTTEwLjEsMTk1LjUKCQkJYzAuNCwwLjUsMC44LDEsMS4xLDEuNGMwLjUtMC4xLDAuOS0wLjcsMC44LTEuMmMtMC4xLTAuNS0wLjctMC45LTEuMi0wLjhDMTAuNSwxOTUuMSwxMC4zLDE5NS4zLDEwLjEsMTk1LjV6IE0xMy45LDIwMS40CgkJCWMtMC41LTAuOS0wLjktMS44LTEuNS0yLjdjMC44LTAuNCwxLjQtMS4xLDEuNi0yYzEuMywxLjEsMS40LDMsMC40LDQuMkMxNC4yLDIwMS4xLDE0LDIwMS4yLDEzLjksMjAxLjR6IE0xNS43LDIwNS45CgkJCWMtMC4zLTAuOS0wLjYtMS44LTEtMi43YzAuNC0wLjMsMC44LTAuNiwxLjItMWMxLDAuNSwxLjQsMS43LDEsMi43QzE2LjYsMjA1LjMsMTYuMiwyMDUuNywxNS43LDIwNS45eiBNMTYuOCwyMTEuNAoJCQljLTAuMS0xLjItMC40LTIuNC0wLjYtMy42YzAuNS0wLjEsMC45LTAuNCwxLjItMC42QzE4LjQsMjA4LjUsMTguMSwyMTAuNCwxNi44LDIxMS40TDE2LjgsMjExLjRMMTYuOCwyMTEuNHogTTE1LDIxNAoJCQljLTAuNS0xNi0xMy45LTI4LjYtMjkuOS0yOC4xYy0xNS4zLDAuNS0yNy42LDEyLjgtMjguMSwyOC4xSDE1TDE1LDIxNHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K"; +$chat-bg-dark: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyNjAgMjYwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNjAgMjYwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzE3MUEyNDt9Cjwvc3R5bGU+CjxnPgoJPGcgaWQ9ImktbGlrZS1mb29kIj4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjQuNCwxNmMwLjIsMC42LDAuNCwxLjMsMC41LDJoLTMuN2wxLjIsMi4zbDAuNSwwLjlsLTAuMiwwLjFWMjhjMi4yLDEuNywyLjcsNC44LDEsNwoJCQljLTAuOCwxLTEuOSwxLjctMy4yLDEuOVYzN2MtMC45LDMuNS00LjEsNi03LjgsNmgtMjBjLTMuNiwwLTYuOC0yLjUtNy43LTZ2LTAuMWMtMi43LTAuNC00LjYtMy00LjItNS43YzAuMi0xLjMsMC45LTIuNSwxLjktMy4yCgkJCXYtNi44bC0wLjgtMS42bC0wLjQtMC45bDAuOS0wLjRMLTE3LDE4aC0zQy0xNy4yLDUuNi00LjktMi4yLDcuNSwwLjZDMTUuNCwyLjMsMjEuOSw4LjIsMjQuNCwxNnogTS0xMi40LDE4Yy0wLjIsMC0wLjMsMC0wLjQsMC4xCgkJCWwtMy4xLDEuNmwwLjksMS44bDEuMy0wLjdjMC44LTAuNCwxLjgtMC40LDIuNywwbDIuMiwxLjFjMC4zLDAuMSwwLjYsMC4xLDAuOSwwbDIuMi0xLjFjMC44LTAuNCwxLjgtMC40LDIuNywwbDIuMiwxLjEKCQkJYzAuMywwLjEsMC42LDAuMSwwLjksMGwyLjItMS4xYzAuOC0wLjQsMS44LTAuNCwyLjcsMGwyLjIsMS4xQzcuNCwyMiw3LjcsMjIsOCwyMS45bDIuOS0xLjNjMC44LTAuMywxLjctMC4zLDIuNCwwbDIuOSwxLjMKCQkJYzAuMywwLjEsMC42LDAuMSwwLjksMGwzLjEtMS41bC0wLjktMS44bC0xLjQsMC43Yy0wLjgsMC40LTEuNywwLjQtMi42LDAuMWwtMi44LTEuMkMxMi4zLDE4LDEyLjIsMTgsMTIuMSwxOGwwLDAKCQkJYy0wLjEsMC0wLjMsMC0wLjQsMC4xbC0yLjgsMS4yYy0wLjgsMC40LTEuOCwwLjMtMi42LTAuMUw0LDE4LjFDMy45LDE4LDMuNywxOCwzLjYsMThsMCwwYy0wLjIsMC0wLjMsMC0wLjQsMC4xTDEsMTkuMgoJCQljLTAuOCwwLjQtMS44LDAuNC0yLjcsMEwtNCwxOC4xQy00LjEsMTgtNC4zLDE4LTQuNCwxOGwwLDBjLTAuMiwwLTAuMywwLTAuNCwwLjFMLTcsMTkuMmMtMC44LDAuNC0xLjgsMC40LTIuNywwbC0yLjItMS4xCgkJCUMtMTIuMSwxOC0xMi4zLDE4LTEyLjQsMThMLTEyLjQsMThMLTEyLjQsMTh6IE0tMTIuNCwxNmgtNC45Qy0xMy41LDUuMS0xLjUtMC43LDkuNSwzLjJjNiwyLjEsMTAuNyw2LjgsMTIuOCwxMi44aC0yLjFsLTAuMS0wLjEKCQkJTDE5LjksMTZILTEyLjRMLTEyLjQsMTZ6IE0xNy45LDIzLjdsMS40LTAuN2gxLjN2MmgtMzZ2LTEuMWwwLjMtMC4ybDEuNC0wLjdoMi42bDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwbDEuNC0wLjdILTMKCQkJbDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwTDIuMywyM2gyLjZsMS40LDAuN2MwLjcsMC40LDEuNywwLjQsMi41LDBsMS43LTAuN2gzLjJsMS43LDAuN0MxNi4yLDI0LjEsMTcuMSwyNC4xLDE3LjksMjMuN3oKCQkJIE0tMTMuOCwyN2wxNi40LDQuOUwxOC45LDI3SC0xMy44eiBNLTE0LjQsMjloMC4zbDE2LjcsNWwxNi43LTVoMC4zYzEuNywwLDMsMS4zLDMsM3MtMS4zLDMtMywzaC0zNGMtMS43LDAtMy0xLjMtMy0zCgkJCUMtMTcuNCwzMC4zLTE2LjEsMjktMTQuNCwyOXogTS0xMy4xLDM3YzAuOCwyLjQsMy4xLDQsNS43LDRoMjBjMi41LDAsNC44LTEuNiw1LjctNEMxOC4yLDM3LTEzLjEsMzctMTMuMSwzN3oiLz4KCQk8cGF0aCBpZD0icGF0aDZfZmlsbC1jb3B5IiBjbGFzcz0ic3QwIiBkPSJNMjg0LjQsMTZjMC4yLDAuNiwwLjQsMS4zLDAuNSwyaC0zLjdsMS4yLDIuM2wwLjUsMC45bC0wLjIsMC4xVjI4YzIuMiwxLjcsMi43LDQuOCwxLDcKCQkJYy0wLjgsMS0xLjksMS43LTMuMiwxLjlWMzdjLTAuOSwzLjUtNC4xLDYtNy44LDZoLTIwYy0zLjYsMC02LjgtMi41LTcuNy02di0wLjFjLTIuNy0wLjQtNC42LTMtNC4yLTUuN2MwLjItMS4zLDAuOS0yLjUsMS45LTMuMgoJCQl2LTYuOGwtMC44LTEuNmwtMC40LTAuOWwwLjktMC40TDI0MywxOGgtM2MyLjgtMTIuNCwxNS4xLTIwLjIsMjcuNS0xNy40QzI3NS40LDIuMywyODEuOSw4LjIsMjg0LjQsMTZ6IE0yNDcuNSwxOAoJCQljLTAuMiwwLTAuMywwLTAuNCwwLjFsLTMuMSwxLjZsMC45LDEuOGwxLjMtMC43YzAuOC0wLjQsMS44LTAuNCwyLjcsMGwyLjIsMS4xYzAuMywwLjEsMC42LDAuMSwwLjksMGwyLjItMS4xCgkJCWMwLjgtMC40LDEuOC0wLjQsMi43LDBsMi4yLDEuMWMwLjMsMC4xLDAuNiwwLjEsMC45LDBsMi4yLTEuMWMwLjgtMC40LDEuOC0wLjQsMi43LDBsMi4yLDEuMWMwLjMsMC4xLDAuNiwwLjEsMC45LDBsMi45LTEuMwoJCQljMC44LTAuMywxLjctMC4zLDIuNCwwbDIuOSwxLjNjMC4zLDAuMSwwLjYsMC4xLDAuOSwwbDMuMS0xLjVsLTAuOS0xLjhsLTEuNCwwLjdjLTAuOCwwLjQtMS43LDAuNC0yLjYsMC4xbC0yLjgtMS4yCgkJCWMtMC4xLTAuMS0wLjMtMC4xLTAuNC0wLjFsMCwwYy0wLjEsMC0wLjMsMC0wLjQsMC4xbC0yLjgsMS4yYy0wLjgsMC40LTEuOCwwLjMtMi42LTAuMWwtMi4zLTEuMWMtMC4xLTAuMS0wLjMtMC4xLTAuNS0wLjFsMCwwCgkJCWMtMC4yLDAtMC4zLDAtMC40LDAuMWwtMi4yLDEuMWMtMC44LDAuNC0xLjgsMC40LTIuNywwbC0yLjItMS4xYy0wLjEtMC4xLTAuMy0wLjEtMC40LTAuMWwwLDBjLTAuMiwwLTAuMywwLTAuNCwwLjFsLTIuMiwxLjEKCQkJYy0wLjgsMC40LTEuOCwwLjQtMi43LDBsLTIuMi0xLjFDMjQ3LjksMTgsMjQ3LjcsMTgsMjQ3LjUsMThMMjQ3LjUsMThMMjQ3LjUsMTh6IE0yNDcuNSwxNmgtNC45YzMuOS0xMC45LDE1LjktMTYuNywyNi44LTEyLjgKCQkJYzYsMi4xLDEwLjcsNi44LDEyLjgsMTIuOGgtMi4xbC0wLjEtMC4xbC0wLjMsMC4xSDI0Ny41TDI0Ny41LDE2eiBNMjc3LjksMjMuN2wxLjQtMC43aDEuM3YyaC0zNnYtMS4xbDAuMy0wLjJsMS40LTAuN2gyLjYKCQkJbDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwbDEuNC0wLjdoMi42bDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwbDEuNC0wLjdoMi42bDEuNCwwLjdjMC44LDAuNCwxLjcsMC40LDIuNiwwLjFsMS43LTAuNwoJCQloMy4ybDEuNywwLjdDMjc2LjIsMjQuMSwyNzcuMSwyNC4xLDI3Ny45LDIzLjdMMjc3LjksMjMuN3ogTTI0Ni4yLDI3bDE2LjQsNC45TDI3OSwyN0gyNDYuMnogTTI0NS41LDI5aDAuM2wxNi43LDVsMTYuNy01aDAuMwoJCQljMS43LDAsMywxLjMsMywzcy0xLjMsMy0zLDNoLTM0Yy0xLjcsMC0zLTEuMy0zLTNTMjQzLjksMjksMjQ1LjUsMjl6IE0yNDYuOSwzN2MwLjgsMi40LDMuMSw0LDUuNiw0aDIwYzIuNSwwLDQuOC0xLjYsNS43LTQKCQkJSDI0Ni45eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNTkuNSwyMWMtMS4zLTMuNi00LjctNi04LjUtNmgtNDJjLTMuOCwwLTcuMiwyLjQtOC41LDZjLTMuMywwLjMtNS44LDMuMi01LjUsNi41YzAuMiwyLjksMi42LDUuMiw1LjUsNS41CgkJCWMtMS43LDQuNywwLjgsOS44LDUuNCwxMS41YzEsMC4zLDIsMC41LDMsMC41aDQyYzUsMCw5LTQsOS05YzAtMS0wLjItMi4xLTAuNS0zYzMuMy0wLjMsNS44LTMuMiw1LjUtNi41CgkJCUMxNjQuNywyMy42LDE2Mi40LDIxLjMsMTU5LjUsMjF6IE0xNTEsMTdoLTQyYy0yLjcsMC01LjIsMS42LTYuMyw0aDU0LjdDMTU2LjIsMTguNiwxNTMuNywxNywxNTEsMTd6IE0xNDEuNyw0MwoJCQljMi4xLTEuNywzLjMtNC4zLDMuMy03aC0yYzAsMy45LTMuMSw3LTcsN2gtNC4zYzIuMS0xLjcsMy4zLTQuMywzLjMtN2gtMmMwLDMuOS0zLjEsNy03LDdoLTQuM2MyLjEtMS43LDMuMy00LjMsMy4zLTdoLTIKCQkJYzAsMy45LTMuMSw3LTcsN2gtN2MtMy45LDAtNy0zLjEtNy03czMuMS03LDctN2g0MmMzLjksMCw3LDMuMSw3LDdzLTMuMSw3LTcsN0gxNDEuN3ogTTEwOSwyN2MtMywwLTUuOCwxLjUtNy41LDRIMTAxCgkJCWMtMi4yLDAtNC0xLjgtNC00czEuOC00LDQtNGg1OGMyLjIsMCw0LDEuOCw0LDRzLTEuOCw0LTQsNGgtMC41Yy0xLjctMi41LTQuNS00LTcuNS00SDEwOXoiLz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzksMTE1YzQuNCwwLDgtMy42LDgtOHMtMy42LTgtOC04cy04LDMuNi04LDhTMzQuNiwxMTUsMzksMTE1eiBNNDUsMTA3YzAsMy4zLTIuNyw2LTYsNnMtNi0yLjctNi02CgkJCXMyLjctNiw2LTZTNDUsMTAzLjcsNDUsMTA3eiBNNDIsNzh2LTJoOHYtNkg0MGMtMi4yLDAtNCwxLjgtNCw0djEwSDIybC0xLjMsNEwyMCw5MGgyLjJsMy44LDQwaDI2bDMuOC00MEg1OGwtMC43LTJMNTYsODRINDJWNzh6CgkJCSBNMzgsNzR2MTBoMlY3NGg4di0yaC04QzM4LjksNzIsMzgsNzIuOSwzOCw3NHogTTQwLDg2aDE0LjZsMC43LDJIMjIuOGwwLjctMkg0MHogTTUzLjgsOTBIMjQuMmwzLjYsMzhoMjIuNEw1My44LDkweiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMjksOTJoLTZ2NGgtNnY0aC02djE0aC0zbDAuMiwybDMuOCwzMmgzNmwzLjgtMzJsMC4yLTJoLTN2LTE0aC02di00aC02di00SDEyOXogTTE0NywxMTR2LTEyaC00djRoM3Y4SDE0NwoJCQl6IE0xNDQsMTE0di02aC00djZIMTQ0eiBNMTM4LDEyMHYtMTZoLTR2MTkuMkMxMzUuNiwxMjIuNSwxMzcsMTIxLjQsMTM4LDEyMHogTTEzMiwxMjMuOFYxMDBoLTR2MjMuOAoJCQlDMTI5LjMsMTI0LjEsMTMwLjcsMTI0LjEsMTMyLDEyMy44eiBNMTI2LDEyMy4yVjEwNGgtNHYxNkMxMjMsMTIxLjQsMTI0LjQsMTIyLjUsMTI2LDEyMy4yeiBNMTIwLDExNHYtNmgtNHY2SDEyMHogTTExNCwxMTR2LThoMwoJCQl2LTRoLTR2MTJIMTE0eiBNMTQxLDEwMnYtNGgtNHY0aDN2NGgxVjEwMnogTTEzNSwxMDJ2LThoLTR2NGgzdjRIMTM1eiBNMTI5LDk4di00aC00djhoMXYtNEgxMjl6IE0xMjMsMTAydi00aC00djhoMXYtNEgxMjN6CgkJCSBNMTMwLDEyNmM1LjksMCwxMC45LTQuMiwxMS44LTEwaDcuOWwtMy41LDMwaC0zMi40bC0zLjUtMzBoNy45QzExOS4xLDEyMS44LDEyNC4xLDEyNiwxMzAsMTI2eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMTIsODZ2MmgtNHYtMkgyMTJ6IE0yMTYsODZoLTJ2MmgyVjg2eiBNMTk2LDg2TDE5Niw4NmMtMi43LDAuNy00LjUsMy4zLTMuOSw2YzAuNCwxLjgsMS42LDMuMiwzLjMsMy44CgkJCWwwLjEsMC4ybDEuMSw0LjVjMC4yLDAuOSwxLDEuNSwxLjksMS41bDAsMGw3LDI0LjZjMC4yLDAuOSwxLDEuNCwxLjksMS40aDVjMC45LDAsMS43LTAuNiwxLjktMS40bDctMjQuNmMwLjksMCwxLjctMC42LDEuOS0xLjUKCQkJbDEuMS00LjVsMC4xLTAuMmMyLjYtMC45LDQuMS0zLjcsMy4yLTYuM2MtMC42LTEuNy0yLTMtMy44LTMuM1Y4NmMwLTcuNy02LjMtMTQtMTQtMTRTMTk2LDc4LjMsMTk2LDg2eiBNMjAwLDg2aDZ2MmgtOQoJCQljLTEuNywwLTMsMS4zLTMsM3MxLjMsMywzLDNoMjZjMS43LDAsMy0xLjMsMy0zcy0xLjMtMy0zLTNoLTN2LTJoMmMwLTYuNi01LjQtMTItMTItMTJzLTEyLDUuNC0xMiwxMkgyMDB6IE0xOTguNiwxMDBsLTEtNGgyNC45CgkJCWwtMSw0SDE5OC42eiBNMjA3LjUsMTI2bC02LjktMjRoMTguN2wtNi45LDI0SDIwNy41eiBNMTUwLDI0MmMxMi4yLDAsMjItOS44LDIyLTIycy05LjgtMjItMjItMjJzLTIyLDkuOC0yMiwyMgoJCQlTMTM3LjgsMjQyLDE1MCwyNDJ6IE0xNzQsMjIwYzAsMTMuMy0xMC43LDI0LTI0LDI0cy0yNC0xMC43LTI0LTI0bDAsMGMwLTEzLjMsMTAuNy0yNCwyNC0yNFMxNzQsMjA2LjcsMTc0LDIyMHogTTE0NS42LDIzNy43CgkJCWwyLTAuOWMxLjUtMC42LDMuMi0wLjYsNC43LDBsMiwwLjljMC45LDAuNCwyLDAsMi41LTAuOGwxLjEtMS45YzAuOC0xLjQsMi4yLTIuNCwzLjgtMi44bDIuMS0wLjVjMS0wLjIsMS42LTEuMSwxLjUtMi4xbC0wLjItMi4yCgkJCWMtMC4xLTEuNiwwLjQtMy4yLDEuNC00LjVsMS40LTEuN2MwLjctMC44LDAuNy0xLjksMC0yLjZsLTEuNC0xLjdjLTEuMS0xLjItMS42LTIuOC0xLjQtNC41bDAuMi0yLjJjMC4xLTEtMC42LTEuOS0xLjYtMi4xCgkJCWwtMi4xLTAuNWMtMS42LTAuNC0zLTEuNC0zLjgtMi44bC0xLjEtMS45Yy0wLjUtMC45LTEuNi0xLjItMi41LTAuOGwtMiwwLjljLTEuNSwwLjYtMy4yLDAuNi00LjcsMGwtMi0wLjljLTAuOS0wLjQtMiwwLTIuNSwwLjgKCQkJbC0xLDIuMWMtMC44LDEuNC0yLjIsMi40LTMuOCwyLjhsLTIuMSwwLjVjLTEsMC4yLTEuNiwxLjEtMS41LDIuMWwwLjIsMi4yYzAuMSwxLjYtMC40LDMuMi0xLjQsNC41bC0xLjQsMS43CgkJCWMtMC43LDAuOC0wLjcsMS45LDAsMi42bDEuNCwxLjdjMS4xLDEuMiwxLjYsMi44LDEuNCw0LjVsLTAuMiwyLjJjLTAuMSwxLDAuNiwxLjksMS42LDIuMWwyLjEsMC41YzEuNiwwLjQsMywxLjQsMy44LDIuOGwxLjEsMS45CgkJCUMxNDMuNiwyMzcuOCwxNDQuNywyMzguMSwxNDUuNiwyMzcuN0wxNDUuNiwyMzcuN3ogTTE0OC40LDIzOC43YzEtMC40LDIuMS0wLjQsMy4xLDBsMiwwLjljMS44LDAuOCw0LDAuMSw1LTEuNmwxLjEtMS45CgkJCWMwLjYtMC45LDEuNS0xLjYsMi41LTEuOGwyLjEtMC41YzEuOS0wLjQsMy4zLTIuMywzLjEtNC4ybC0wLjItMi4yYy0wLjEtMS4xLDAuMy0yLjIsMS0zbDEuNC0xLjdjMS4zLTEuNSwxLjMtMy43LDAtNS4ybC0xLjQtMS43CgkJCWMtMC43LTAuOC0xLjEtMS45LTEtM2wwLjItMi4yYzAuMi0yLTEuMS0zLjgtMy4xLTQuMmwtMi4xLTAuNWMtMS4xLTAuMi0yLTAuOS0yLjUtMS44bC0xLjEtMS45Yy0xLTEuNy0zLjItMi40LTUtMS42bC0yLDAuOQoJCQljLTEsMC40LTIuMSwwLjQtMy4xLDBsLTItMC45Yy0xLjgtMC44LTQtMC4xLTUsMS42bC0xLjEsMS45Yy0wLjYsMC45LTEuNSwxLjYtMi41LDEuOGwtMi4xLDAuNWMtMS45LDAuNC0zLjMsMi4zLTMuMSw0LjJsMC4yLDIuMgoJCQljMC4xLDEuMS0wLjMsMi4yLTEsM2wtMS40LDEuN2MtMS4zLDEuNS0xLjMsMy43LDAsNS4ybDEuNCwxLjdjMC43LDAuOCwxLjEsMS45LDEsM2wtMC4yLDIuMmMtMC4yLDIsMS4xLDMuOCwzLjEsNC4ybDIuMSwwLjUKCQkJYzEuMSwwLjIsMiwwLjksMi41LDEuOGwxLjEsMS45YzEsMS43LDMuMiwyLjQsNSwxLjZMMTQ4LjQsMjM4Ljd6IE0xNTIsMjA3YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMQoJCQlTMTUyLDIwNy42LDE1MiwyMDd6IE0xNTgsMjA5YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNTgsMjA5LjYsMTU4LDIwOXogTTE0NywyMTBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMQoJCQlzLTAuNCwxLTEsMVMxNDcsMjEwLjYsMTQ3LDIxMHogTTE0MSwyMTBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxUzE0MSwyMTAuNiwxNDEsMjEweiBNMTQ0LDIwNWMwLTAuNiwwLjQtMSwxLTEKCQkJczEsMC40LDEsMXMtMC40LDEtMSwxUzE0NCwyMDUuNiwxNDQsMjA1eiBNMTM2LDIxM2MwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTM2LDIxMy42LDEzNiwyMTN6IE0xMzksMjE5CgkJCWMwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTM5LDIxOS42LDEzOSwyMTl6IE0xMzksMjI1YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxMzksMjI1LjYsMTM5LDIyNXoKCQkJIE0xNDMsMjMyYzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNDMsMjMyLjYsMTQzLDIzMnogTTE0OCwyMzBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxCgkJCVMxNDgsMjMwLjYsMTQ4LDIzMHogTTE1MywyMzRjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxUzE1MywyMzQuNiwxNTMsMjM0eiBNMTU3LDIyOGMwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxCgkJCXMtMC40LDEtMSwxUzE1NywyMjguNiwxNTcsMjI4eiBNMTYzLDIyNGMwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTYzLDIyNC42LDE2MywyMjR6IE0xNTksMjIxYzAtMC42LDAuNC0xLDEtMQoJCQlzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTU5LDIyMS42LDE1OSwyMjF6IE0xNjMsMjE4YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNjMsMjE4LjYsMTYzLDIxOHogTTE1OCwyMTQKCQkJYzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNTgsMjE0LjYsMTU4LDIxNHogTTEzNCwyMjBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxUzEzNCwyMjAuNiwxMzQsMjIwegoJCQkgTTE1MCwyMjVjMi44LDAsNS0yLjIsNS01cy0yLjItNS01LTVzLTUsMi4yLTUsNVMxNDcuMiwyMjUsMTUwLDIyNXogTTE1NywyMjBjMCwzLjktMy4xLDctNyw3cy03LTMuMS03LTdzMy4xLTcsNy03CgkJCVMxNTcsMjE2LjEsMTU3LDIyMHogTTI0MywxOTFjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgyNDN6IE0yNjIsMjAwYzAtMC42LDAuNC0xLDEtMWgyCgkJCWMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMWgtMkMyNjIuNCwyMDEsMjYyLDIwMC42LDI2MiwyMDB6IE0yNDgsMjA1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTEKCQkJSDI0OHogTTIyMywyMDZjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgyMjN6IE0yMjgsMjEwYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDIKCQkJYzAuNiwwLDEtMC40LDEtMXMtMC40LTEtMS0xSDIyOHogTTIzNywyMTBjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDMjM3LjQsMjExLDIzNywyMTAuNiwyMzcsMjEwegoJCQkgTTI1MiwyMTFjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDMjUyLjQsMjEyLDI1MiwyMTEuNiwyNTIsMjExeiBNMjY0LDIwOWMtMC42LDAtMSwwLjQtMSwxczAuNCwxLDEsMWgyCgkJCWMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgyNjR6IE0yNTMsMTk1YzAtMC42LDAuNC0xLDEtMWgyYzAuNiwwLDEsMC40LDEsMXMtMC40LDEtMSwxaC0yQzI1My40LDE5NiwyNTMsMTk1LjYsMjUzLDE5NXoKCQkJIE0yMzQsMTk1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFIMjM0eiBNMjQwLDIwMGMwLTAuNiwwLjQtMSwxLTFoMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMQoJCQloLTJDMjQwLjQsMjAxLDI0MCwyMDAuNiwyNDAsMjAweiBNMjE1LDIxNWMwLTAuNSwwLTAuOSwwLTEuNGMtMi41LTEuMS0zLjctNC0yLjYtNi42YzAuMi0wLjUsMC41LTEsMC45LTEuNGMtMC45LTIsMC00LjIsMS45LTUuMgoJCQljLTAuOC0yLjYsMC43LTUuNCwzLjQtNi4ybDAsMGMwLjQtMC41LDAuOS0wLjksMS41LTEuMWMwLjUtMi43LDMuMS00LjUsNS44LTQuMWMwLjcsMC4xLDEuNCwwLjQsMiwwLjhjNS4zLTMuOCwxMS42LTUuOSwxOC4yLTUuOQoJCQljNi44LDAsMTMuMSwyLjIsMTguMiw1LjljMi4zLTEuNiw1LjQtMSw3LDEuM2MwLjQsMC42LDAuNywxLjMsMC44LDJjMC42LDAuMiwxLjEsMC42LDEuNSwxLjFjMi43LDAuOCw0LjIsMy41LDMuNCw2LjJsMCwwCgkJCWMxLjksMSwyLjcsMy4yLDEuOSw1LjJjMS45LDIsMS44LDUuMi0wLjIsN2MtMC40LDAuNC0wLjksMC43LTEuNSwxYzAsMC41LDAsMC45LDAsMS40djFoLTYydi0xSDIxNXogTTIxNS44LDIwNy44CgkJCWMtMC4zLDEuMi0wLjUsMi40LTAuNiwzLjZjLTEuMy0xLTEuNi0yLjktMC42LTQuMmwwLDBDMjE1LDIwNy41LDIxNS40LDIwNy43LDIxNS44LDIwNy44TDIxNS44LDIwNy44eiBNMjE3LjMsMjAzLjIKCQkJYy0wLjQsMC45LTAuNywxLjgtMSwyLjdjLTEtMC40LTEuNi0xLjUtMS4zLTIuNWMwLjItMC41LDAuNi0wLjksMS4xLTEuMkMyMTYuNSwyMDIuNiwyMTYuOSwyMDIuOSwyMTcuMywyMDMuMkwyMTcuMywyMDMuMnoKCQkJIE0yMTkuNiwxOTguN2MtMC41LDAuOS0xLDEuOC0xLjUsMi43Yy0xLjMtMS0xLjUtMi45LTAuNS00LjJjMC4xLTAuMiwwLjMtMC4zLDAuNC0wLjVDMjE4LjMsMTk3LjYsMjE4LjksMTk4LjMsMjE5LjYsMTk4LjcKCQkJTDIxOS42LDE5OC43eiBNMjIwLjgsMTk3YzAuNC0wLjUsMC43LTEsMS4xLTEuNWMtMC4zLTAuNS0wLjktMC43LTEuNC0wLjRzLTAuNywwLjktMC40LDEuNEMyMjAuMywxOTYuNywyMjAuNSwxOTYuOSwyMjAuOCwxOTcKCQkJTDIyMC44LDE5N3ogTTIyNi4xLDE5MS4yYy0xLDAuOS0yLDEuOC0yLjksMi44Yy0wLjMtMC4zLTAuNy0wLjYtMS4xLTAuOGMwLjQtMS42LDIuMS0yLjUsMy43LTIuMQoJCQlDMjI1LjksMTkxLjEsMjI2LDE5MS4yLDIyNi4xLDE5MS4yTDIyNi4xLDE5MS4yeiBNMjY4LjgsMTk0Yy0wLjktMS0xLjktMS45LTIuOS0yLjhjMS41LTAuNiwzLjMsMC4xLDMuOSwxLjcKCQkJYzAsMC4xLDAuMSwwLjIsMC4xLDAuM0MyNjkuNSwxOTMuNCwyNjkuMSwxOTMuNiwyNjguOCwxOTRMMjY4LjgsMTk0eiBNMjcwLjEsMTk1LjVjMC40LDAuNSwwLjgsMSwxLjEsMS40CgkJCWMwLjUtMC4xLDAuOS0wLjcsMC44LTEuMnMtMC43LTAuOS0xLjItMC44QzI3MC41LDE5NS4xLDI3MC4zLDE5NS4zLDI3MC4xLDE5NS41eiBNMjczLjksMjAxLjRjLTAuNS0wLjktMS0xLjgtMS41LTIuNwoJCQljMC44LTAuNCwxLjQtMS4xLDEuNi0yYzEuMywxLjEsMS40LDMsMC40LDQuMkMyNzQuMiwyMDEuMSwyNzQsMjAxLjIsMjczLjksMjAxLjR6IE0yNzUuNiwyMDUuOWMtMC4zLTAuOS0wLjYtMS44LTEtMi43CgkJCWMwLjQtMC4zLDAuOC0wLjYsMS4yLTFjMSwwLjUsMS40LDEuNywxLDIuN0MyNzYuNiwyMDUuMywyNzYuMiwyMDUuNywyNzUuNiwyMDUuOXogTTI3Ni44LDIxMS40Yy0wLjEtMS4yLTAuNC0yLjQtMC42LTMuNgoJCQljMC41LTAuMSwwLjktMC40LDEuMi0wLjZDMjc4LjQsMjA4LjUsMjc4LjEsMjEwLjQsMjc2LjgsMjExLjRMMjc2LjgsMjExLjRMMjc2LjgsMjExLjR6IE0yNzUsMjE0Yy0wLjUtMTYtMTMuOS0yOC42LTI5LjktMjguMQoJCQljLTE1LjMsMC41LTI3LjYsMTIuOC0yOC4xLDI4LjFIMjc1TDI3NSwyMTR6IE03Mi4zLDE5OC4xYy0wLjItMC4zLTAuMy0wLjctMC4zLTEuMXYtMTJoLTJ2MTJjMCwyLjIsMS44LDQsNCw0CgkJCWMxLjIsMCwyLjMtMC41LDMuMS0xLjRjMC42LTAuNywwLjktMS42LDAuOS0yLjV2LTEyaC0ydjEyYzAsMS4xLTAuOSwyLTIsMmwwLDBDNzMuMywxOTksNzIuNywxOTguNyw3Mi4zLDE5OC4xeiBNNzUsMTc2CgkJCWMwLjQsMCwwLjcsMCwxLjEtMC4xYzAuNSwyLjIsMi42LDMuNSw0LjgsM2MwLjUtMC4xLDEtMC4zLDEuNC0wLjZjMS4xLDIuMSwxLjcsNC40LDEuNyw2Ljd2MjRjMCwzLjMtMi43LDYtNiw2aC0zdjkKCQkJYzAsMi44LTIuMiw1LTUsNXMtNS0yLjItNS01di05aC0zYy0zLjMsMC02LTIuNy02LTZ2LTI0YzAtNy43LDYuMy0xNCwxNC0xNEM3MCwxNzMuOCw3Mi4yLDE3Niw3NSwxNzZ6IE01OCwxOTF2MTIKCQkJYzAsMC44LDAuNSwxLjUsMS4yLDEuOGMwLjksMC40LDEuOSwwLjEsMi40LTAuN2MwLjItMC4zLDAuMy0wLjcsMC4zLTEuMXYtMTJoMnYxMmMwLDIuMi0xLjcsNC0zLjksNGMtMC41LDAtMS0wLjEtMS40LTAuMgoJCQljLTAuMi0wLjEtMC40LTAuMi0wLjctMC4zdjIuNWMwLDIuMiwxLjgsNCw0LDRoMTZjMi4yLDAsNC0xLjgsNC00di0yNGMwLTEuNS0wLjItMi45LTAuNy00LjJjLTAuNCwwLjEtMC45LDAuMi0xLjMsMC4yCgkJCWMtMi4xLDAtNC4xLTEuMS01LjItM2MtMy0wLjEtNS42LTItNi41LTQuOUM2Mi40LDE3NCw1OCwxNzksNTgsMTg1VjE5MXogTTY3LDIxNXY5YzAsMS43LDEuMywzLDMsM3MzLTEuMywzLTN2LTlINjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTS0xNywxOTFjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgtMTd6IE0yLDIwMGMwLTAuNiwwLjQtMSwxLTFoMgoJCQljMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIM0MyLjQsMjAxLDIsMjAwLjYsMiwyMDB6IE0tMTIsMjA1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFILTEyegoJCQkgTS0zNywyMDZjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgtMzd6IE0tMzIsMjEwYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xCgkJCXMtMC40LTEtMS0xSC0zMnogTS0yMywyMTBjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDLTIyLjYsMjExLTIzLDIxMC42LTIzLDIxMHogTS04LDIxMWMwLTAuNiwwLjQtMSwxLTEKCQkJaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDLTcuNiwyMTItOCwyMTEuNi04LDIxMXogTTQsMjA5Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFINHoKCQkJIE0tNywxOTVjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDLTYuNiwxOTYtNywxOTUuNi03LDE5NXogTS0yNiwxOTVjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMgoJCQljMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFILTI2eiBNLTIwLDIwMGMwLTAuNiwwLjQtMSwxLTFoMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMWgtMkMtMTkuNiwyMDEtMjAsMjAwLjYtMjAsMjAweiBNLTQ1LDIxNQoJCQljMC0wLjUsMC0wLjksMC0xLjRjLTIuNS0xLjEtMy43LTQtMi42LTYuNmMwLjItMC41LDAuNS0xLDAuOS0xLjRjLTAuOS0yLDAtNC4yLDEuOS01LjJjLTAuOC0yLjYsMC43LTUuNCwzLjQtNi4ybDAsMAoJCQljMC40LTAuNSwwLjktMC45LDEuNS0xLjFjMC41LTIuNywzLjEtNC41LDUuOC00LjFjMC43LDAuMSwxLjQsMC40LDIsMC44YzUuMy0zLjgsMTEuNi01LjksMTguMi01LjljNi44LDAsMTMuMSwyLjIsMTguMiw1LjkKCQkJYzIuMy0xLjYsNS40LTEsNywxLjNjMC40LDAuNiwwLjcsMS4zLDAuOCwyYzAuNiwwLjIsMS4xLDAuNiwxLjUsMS4xYzIuNywwLjgsNC4yLDMuNSwzLjQsNi4ybDAsMGMxLjksMSwyLjcsMy4yLDEuOSw1LjIKCQkJYzEuOSwyLDEuOCw1LjItMC4yLDdjLTAuNCwwLjQtMC45LDAuNy0xLjUsMWMwLDAuNSwwLDAuOSwwLDEuNHYxaC02MnYtMUgtNDV6IE0tNDQuMiwyMDcuOGMtMC4zLDEuMi0wLjUsMi40LTAuNiwzLjYKCQkJYy0xLjMtMS0xLjYtMi45LTAuNi00LjJsMCwwQy00NSwyMDcuNS00NC42LDIwNy43LTQ0LjIsMjA3LjhMLTQ0LjIsMjA3Ljh6IE0tNDIuNywyMDMuMmMtMC40LDAuOS0wLjcsMS44LTEsMi43CgkJCWMtMS0wLjQtMS42LTEuNS0xLjMtMi41YzAuMi0wLjUsMC42LTAuOSwxLjEtMS4yQy00My41LDIwMi42LTQzLjEsMjAyLjktNDIuNywyMDMuMkwtNDIuNywyMDMuMnogTS00MC40LDE5OC43CgkJCWMtMC41LDAuOS0xLDEuOC0xLjUsMi43Yy0xLjMtMS0xLjUtMi45LTAuNS00LjJjMC4xLTAuMiwwLjMtMC4zLDAuNC0wLjVDLTQxLjcsMTk3LjYtNDEuMSwxOTguMy00MC40LDE5OC43eiBNLTM5LjIsMTk3CgkJCWMwLjMtMC41LDAuNy0xLDEuMS0xLjVjLTAuMy0wLjUtMC45LTAuNy0xLjQtMC40cy0wLjcsMC45LTAuNCwxLjRDLTM5LjcsMTk2LjctMzkuNSwxOTYuOS0zOS4yLDE5N0wtMzkuMiwxOTd6IE0tMzMuOSwxOTEuMgoJCQljLTEsMC45LTIsMS44LTIuOSwyLjhjLTAuMy0wLjMtMC43LTAuNi0xLjEtMC44YzAuNC0xLjYsMi4xLTIuNSwzLjctMi4xQy0zNC4xLDE5MS4xLTM0LDE5MS4yLTMzLjksMTkxLjJMLTMzLjksMTkxLjJ6IE04LjgsMTk0CgkJCWMtMC45LTEtMS45LTEuOS0yLjktMi44YzEuNS0wLjYsMy4zLDAuMSwzLjksMS43YzAsMC4xLDAuMSwwLjIsMC4xLDAuM0M5LjUsMTkzLjQsOS4xLDE5My42LDguOCwxOTRMOC44LDE5NHogTTEwLjEsMTk1LjUKCQkJYzAuNCwwLjUsMC44LDEsMS4xLDEuNGMwLjUtMC4xLDAuOS0wLjcsMC44LTEuMmMtMC4xLTAuNS0wLjctMC45LTEuMi0wLjhDMTAuNSwxOTUuMSwxMC4zLDE5NS4zLDEwLjEsMTk1LjV6IE0xMy45LDIwMS40CgkJCWMtMC41LTAuOS0wLjktMS44LTEuNS0yLjdjMC44LTAuNCwxLjQtMS4xLDEuNi0yYzEuMywxLjEsMS40LDMsMC40LDQuMkMxNC4yLDIwMS4xLDE0LDIwMS4yLDEzLjksMjAxLjR6IE0xNS43LDIwNS45CgkJCWMtMC4zLTAuOS0wLjYtMS44LTEtMi43YzAuNC0wLjMsMC44LTAuNiwxLjItMWMxLDAuNSwxLjQsMS43LDEsMi43QzE2LjYsMjA1LjMsMTYuMiwyMDUuNywxNS43LDIwNS45eiBNMTYuOCwyMTEuNAoJCQljLTAuMS0xLjItMC40LTIuNC0wLjYtMy42YzAuNS0wLjEsMC45LTAuNCwxLjItMC42QzE4LjQsMjA4LjUsMTguMSwyMTAuNCwxNi44LDIxMS40TDE2LjgsMjExLjRMMTYuOCwyMTEuNHogTTE1LDIxNAoJCQljLTAuNS0xNi0xMy45LTI4LjYtMjkuOS0yOC4xYy0xNS4zLDAuNS0yNy42LDEyLjgtMjguMSwyOC4xSDE1TDE1LDIxNHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K"; diff --git a/src/@core/scss/base/bootstrap-extended/mixins/_navs.scss b/src/@core/scss/base/bootstrap-extended/mixins/_navs.scss new file mode 100644 index 0000000..6a58e05 --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/mixins/_navs.scss @@ -0,0 +1,49 @@ +// Justified nav links +// ------------------------- + +@mixin nav-justified { + width: 100%; + + .nav-item { + float: none; + } + + .nav-link { + text-align: center; + margin-bottom: 5px; + } + + > .dropdown .dropdown-menu { + top: auto; + left: auto; + } + + @include media-breakpoint-up(sm) { + .nav-item { + display: block; + width: 1%; + } + .nav-link { + margin-bottom: 0; + } + } +} + +// Move borders to anchors instead of bottom of list +// +// Mixin for adding on top the shared `.nav-justified` styles for our tabs +@mixin nav-tabs-justified { + .nav-link { + // Override margin from .nav-tabs + margin-right: 0; + border-radius: $border-radius; + } + + @include media-breakpoint-up(sm) { + .nav-link.active, + .nav-link.active:hover, + .nav-link.active:focus { + border-bottom-color: transparent; //$nav-tabs-justified-active-link-border-color; + } + } +} diff --git a/src/@core/scss/base/bootstrap-extended/mixins/_type.scss b/src/@core/scss/base/bootstrap-extended/mixins/_type.scss new file mode 100644 index 0000000..2af366c --- /dev/null +++ b/src/@core/scss/base/bootstrap-extended/mixins/_type.scss @@ -0,0 +1,31 @@ +// Font weight mixins +// ------------------ +@mixin font-weight($weight) { + $weights: ( + thin: 100, + extra-light: 200, + ultra-light: 200, + light: 300, + normal: 400, + book: 400, + regular: 400, + medium: 500, + semi-bold: 600, + demi-bold: 600, + bold: 700, + extra-bold: 800, + ultra-bold: 900, + heavy: 900, + black: 900, + ultra: 900, + ultra-black: 900, + extra-ultra: 900 + ); + + $output: $weight; + @if map-has-key($weights, $weight) { + $output: map-get($weights, $weight); + } + + font-weight: $output; +} diff --git a/src/@core/scss/base/bootstrap.scss b/src/@core/scss/base/bootstrap.scss new file mode 100644 index 0000000..b76cb2c --- /dev/null +++ b/src/@core/scss/base/bootstrap.scss @@ -0,0 +1,11 @@ +// ================================================================================================ +// File Name: bootstrap.scss +// Description: Include bootstrap core from node_modules +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import 'bootstrap-extended/include'; // Bootstrap includes +@import 'bootstrap/scss/bootstrap'; // Bootstrap core diff --git a/src/@core/scss/base/colors.scss b/src/@core/scss/base/colors.scss new file mode 100644 index 0000000..a49b694 --- /dev/null +++ b/src/@core/scss/base/colors.scss @@ -0,0 +1,24 @@ +// ================================================================================================ +// File Name: colors.scss +// Description: Common color file to include color paletter and colors file, its qiore good to +// have all color classes in a separate file as it's quite heavy. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// Core +// ------------------------------ + +// Import variables and mixins +@import 'bootstrap/scss/mixins/gradients'; +@import 'core/mixins/hex2rgb'; + +//box shadow for alert's heading +@import 'core/mixins/alert'; + +// Color system, always load last +// ------------------------------ +@import 'core/colors/palette'; +@import 'core/colors/palette-gradient.scss'; diff --git a/src/@core/scss/base/components.scss b/src/@core/scss/base/components.scss new file mode 100644 index 0000000..c512862 --- /dev/null +++ b/src/@core/scss/base/components.scss @@ -0,0 +1,40 @@ +// ================================================================================================ +// File Name: components.scss +// Description: Common components file to includ all theme specific custom components. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import 'bootstrap-extended/include'; // Bootstrap includes +@import 'components/include'; // Components includes + +@import 'core/mixins/transitions'; // Template custom mixins + +// Core +// ------------------------------ +// layouts +@import 'core/layouts/content'; +@import 'core/layouts/sidebar'; +@import 'core/layouts/footer'; +// menu +@import 'core/menu/navigation'; + +// Components +// ------------------------------ +@import 'components/avatar'; +@import 'components/search'; +// @import 'components/chart'; +@import 'components/bootstrap-social'; +@import 'components/demo'; //! Plugins demo styles, remove in real project +@import 'components/customizer'; //! Customizer demo, remove in real project +@import 'components/divider'; +@import 'components/timeline'; + +// Plugins +// ------------------------------ +@import 'plugins/ui/breakpoints'; +@import 'plugins/forms/select2/select2'; +@import 'plugins/tables/datatables'; +@import 'plugins/forms/form-number-input'; // ? globally required for cart dropdown diff --git a/src/@core/scss/base/components/_include.scss b/src/@core/scss/base/components/_include.scss new file mode 100644 index 0000000..f59db10 --- /dev/null +++ b/src/@core/scss/base/components/_include.scss @@ -0,0 +1,13 @@ +// ================================================================================================ +// File Name: include.scss +// Description: Common components file to includ all theme specific custom components. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// Overrides user variable +@import 'scss/variables/_variables-components'; // Component custom variable override (for user purpose) +@import 'variables'; // Component variable +@import 'variables-dark'; // Dark variable diff --git a/src/@core/scss/base/components/_variables-dark.scss b/src/@core/scss/base/components/_variables-dark.scss new file mode 100644 index 0000000..c997f39 --- /dev/null +++ b/src/@core/scss/base/components/_variables-dark.scss @@ -0,0 +1,53 @@ +// ================================================================================================ +// File Name: variables-dark.scss +// Description: Custom dark theme variables +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// ================================================================================================ +// WARNING: PLEASE DO NOT CHANGE THIS VARIABLE FILE. +// THIS FILE WILL GET OVERWRITTEN WITH EACH VUEXY HTML TEMPLATE RELEASE. +// TIP: +// We suggest you to use this (assets/scss/variables/_variables-components.scss) file for overriding components variables. +// ================================================================================================ + +//Body +$theme-dark-body-bg: #161d31 !default; +$theme-dark-body-color: #b4b7bd !default; +$theme-dark-border-color: #3b4253 !default; +$theme-dark-custom-control-border-color: #44405e !default; + +//Typography +$theme-dark-headings-color: #d0d2d6 !default; +$theme-dark-label-color: #d0d2d6 !default; +$theme-dark-text-muted-color: #676d7d !default; + +//Card +$theme-dark-card-bg: #283046 !default; +$theme-dark-box-shadow: 0 4px 24px 0 rgba($black, 0.24); + +//Input +$theme-dark-input-bg: #283046 !default; +$theme-dark-input-placeholder-color: #676d7d !default; +$theme-dark-input-border-color: #404656 !default; +$theme-dark-input-disabled-bg: #24233a !default; +$theme-dark-input-disabled-border-color: #444b60 !default; + +// Switch +$theme-dark-switch-bg: #545a6a; +$theme-dark-switch-bg-disabled: #1b2337; + +//Table +$theme-dark-table-bg: #283046 !default; +$theme-dark-table-header-bg: #343d55 !default; +$theme-dark-table-row-bg: #283046 !default; +$theme-dark-table-hover-bg: #242b3d !default; +$theme-dark-table-striped-bg: #242b3d !default; + +$theme-dark-modal-header-bg: #161d31 !default; +$theme-dark-pagination-bg: #242b3d !default; +$theme-dark-chart-bg: #384056 !default; +$theme-dark-widget-bg: #384056 !default; diff --git a/src/@core/scss/base/components/_variables.scss b/src/@core/scss/base/components/_variables.scss new file mode 100644 index 0000000..6f89eea --- /dev/null +++ b/src/@core/scss/base/components/_variables.scss @@ -0,0 +1,137 @@ +// ================================================================================================ +// File Name: variables.scss +// Description: Custom component variable +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// ================================================================================================ +// WARNING: PLEASE DO NOT CHANGE THIS VARIABLE FILE. +// THIS FILE WILL GET OVERWRITTEN WITH EACH VUEXY HTML TEMPLATE RELEASE. +// TIP: +// We suggest you to use this (assets/scss/variables/_variables-components.scss) file for overriding components variables. +// ================================================================================================ + +$base-font-size: 14px !default; +$body-direction: ltr !default; // Default ltr, change it to rtl for Right To Left support. +$content-padding: 2rem !default; + +// ------------------------------ +// Colors +// ------------------------------ +$nav-component-border-color: #ddd !default; + +$swiper-bg: #f2f4f4 !default; + +// ------------------------------ +// Navbar +// ------------------------------ +$navbar-height: 4.45rem !default; +$horizontal-menu-height: 4.45rem !default; +$footer-height: 3.35rem !default; + +// ------------------------------ +// Main Menu +// ------------------------------ + +//main menu dark +$menu-dark-color: #dcdcdc !default; +$menu-dark-bg-color: #10163a !default; + +$menu-padding: 10px 15px 10px 15px !default; +$menu-second-level-padding: 10px 15px 10px 20px !default; +$menu-third-level-padding: 10px 15px 10px 53px !default; +$menu-forth-level-padding: 10px 15px 10px 53px !default; + +// vertical menu +$menu-expanded-width: 260px !default; +$menu-collapsed-width: 80px !default; + +// ------------------------------ +// Sidebar +// ------------------------------- +$sidebar-width: 260px !default; +$chat-sidebar-width: 360px !default; + +// ------------------------------- +// Avatar +// ------------------------------- + +$avatar-size: 32px !default; +$avatar-status-size: 11px !default; +$avatar-status-size-lg: 17px !default; + +$avatar-size-xl: 70px !default; +$avatar-size-lg: 50px !default; +$avatar-size-sm: 24px !default; + +$avatar-bg: #c3c3c3; +$avatar-group-border: $white; + +// ------------------------------- +// Progress +// ------------------------------- +$progress-size-xl: 1.14rem !default; +$progress-size-lg: 0.857rem !default; +$progress-size-md: 0.57rem !default; +$progress-size-sm: 0.143rem !default; + +// ------------------------------- +// Form +// ------------------------------- + +// $input-height, $input-height-lg, $input-height-sm are in variables +$font-size-xs: 0.75rem !default; +$font-size-xl: ($font-size-base + 0.5) !default; +$line-height-xl: 1.7 !default; +$line-height-xs: 1.5 !default; +$input-padding-y-xl: 0.5rem !default; +$input-padding-x-xl: 0.5rem !default; + +$input-padding-y-xs: 0.2rem !default; +$input-padding-x-xs: 0.275rem !default; + +$border-radius-xl: 0.35rem !default; +$border-radius-xs: 0.12rem !default; +$input-border-radius-xl: $border-radius-xl !default; +$input-border-radius-xs: $border-radius-xs !default; + +$input-height-xl: (($font-size-xl * $line-height-xl) + ($input-padding-y-xl * 2)) !default; +$input-height-xs: (($font-size-xs * $line-height-xs) + ($input-padding-y-xs * 2)) !default; +$input-height-sm: (($font-size-sm * $line-height-sm) + ($input-padding-y-sm * 2)) !default; + +// ------------------------------- +// Blank Page Bg Color +// ------------------------------- + +$blank-bg-color: #eff2f7 !default; + +// ------------------------------- +// Data Tables Bg Color +// ------------------------------- + +$datatable-bg-color: #f8f8f8 !default; + +// ------------------------------- +// Switch +// ------------------------------- +$switch-bg-color: #e2e2e2 !default; +$switch-indicator-color: $white !default; + +// ------------------------------- +// Timeline +// ------------------------------- +$timeline-border-color: $border-color !default; + +$timeline-point-size: 1.75rem !default; +$timeline-point-indicator-size: 12px !default; +$timeline-point-indicator-color: $primary !default; +$timeline-point-indicator-wrapper-size: 20px !default; + +$timeline-item-min-height: 4rem !default; +$timeline-item-icon-font-size: 0.85rem !default; + +$timeline-event-time-size: 0.85rem !default; +$timeline-event-time-color: $text-muted !default; diff --git a/src/@core/scss/base/components/avatar.scss b/src/@core/scss/base/components/avatar.scss new file mode 100644 index 0000000..2015636 --- /dev/null +++ b/src/@core/scss/base/components/avatar.scss @@ -0,0 +1,192 @@ +// ========================================================================================= +// File Name: avatar.scss +// Description: Avatar style. +// ---------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ========================================================================================== + +// Component: Avatar +// ======================================================================== + +// avatar + +.avatar { + white-space: nowrap; + background-color: $avatar-bg; + border-radius: 50%; + position: relative; + cursor: pointer; + color: $white; + display: inline-flex; + font-size: 1rem; + text-align: center; + vertical-align: middle; + font-weight: 600; + + // avatar content + .avatar-content { + width: $avatar-size; + height: $avatar-size; + display: flex; + justify-content: center; + align-items: center; + border-radius: 50%; + font-size: 0.857rem; + .avatar-icon { + height: 1rem; + width: 1rem; + } + } + [class*='avatar-status-'] { + border-radius: 50%; + width: $avatar-status-size; + height: $avatar-status-size; + position: absolute; + right: 0; + bottom: 0; + border: 1px solid $white; + &.avatar-status-lg, + &.avatar-status-xl { + width: $avatar-status-size-lg; + height: $avatar-status-size-lg; + border-width: 2px; + } + } + .avatar-status-online { + background-color: $success; + } + .avatar-status-busy { + background-color: $danger; + } + .avatar-status-away { + background-color: $warning; + } + .avatar-status-offline { + background-color: $secondary; + } + + // avatar label with basic size + // using in FAQ & other pages + &.avatar-tag { + display: flex; + align-items: center; + justify-content: center; + height: 42px; + width: 42px; + border-radius: $border-radius; + } + + // avatar img + img { + border-radius: 50%; + } + + // Size Modifier + // ======================================================================== + + &.avatar-xl { + font-size: 1.5rem; + img { + width: $avatar-size-xl; + height: $avatar-size-xl; + } + .avatar-content { + height: $avatar-size-xl; + width: $avatar-size-xl; + font-size: 2.57rem; + .avatar-icon, + i, + svg { + height: 3rem; + width: 3rem; + font-size: 3rem; + } + } + [class*='avatar-status-'] { + right: 3px; + bottom: 0; + } + } + &.avatar-lg { + font-size: 1.2rem; + img { + width: $avatar-size-lg; + height: $avatar-size-lg; + } + .avatar-content { + width: $avatar-size-lg; + height: $avatar-size-lg; + font-size: 1.714rem; + .avatar-icon, + i, + svg { + height: 2rem; + width: 2rem; + font-size: 2rem; + } + } + [class*='avatar-status-'] { + right: 3px; + bottom: 1px; + } + } + + &.avatar-sm { + .avatar-content { + width: $avatar-size-sm; + height: $avatar-size-sm; + .avatar-icon, + i, + svg { + height: 1rem; + width: 1rem; + font-size: 1rem; + } + } + img { + width: $avatar-size-sm; + height: $avatar-size-sm; + } + [class*='avatar-status-'] { + right: -3px; + bottom: -2px; + } + } +} + +// Avatar Group SCSS +.avatar-group { + display: flex; + justify-content: flex-start; + .avatar { + transition: all 0.25s ease; + img, + .avatar-content { + box-shadow: 0 0 0 2px $avatar-group-border, inset 0 0 0 1px rgba($black, 0.07); + } + .avatar-content { + background-color: lighten(theme-color('secondary'), 20%) !important; + } + &:hover { + transition: all 0.25s ease; + } + &.pull-up:hover { + transform: translateY(-4px) scale(1.07); + } + } + // Avatar Group Sizings + .avatar:not(:first-child) { + margin-left: -0.55rem; + } + .avatar-sm:not(:first-child) { + margin-left: -0.4rem; + } + .avatar-lg:not(:first-child) { + margin-left: -1rem; + } + .avatar-xl:not(:first-child) { + margin-left: -1.5rem; + } +} diff --git a/src/@core/scss/base/components/bootstrap-social.scss b/src/@core/scss/base/components/bootstrap-social.scss new file mode 100644 index 0000000..185034b --- /dev/null +++ b/src/@core/scss/base/components/bootstrap-social.scss @@ -0,0 +1,316 @@ +$bs-height-base: ($line-height-base + $input-btn-padding-y * 2) !default; +$bs-height-lg: (floor($font-size-lg * $line-height-base) + $input-btn-padding-y-lg * 2) !default; +$bs-height-sm: (floor($font-size-sm * 1.5) + $input-btn-padding-y-lg * 2) !default; +$bs-height-xs: (floor($font-size-sm * 0.2) + $input-btn-padding-y-lg) !default; + +.btn-social { + position: relative; + padding-left: ($bs-height-base + $input-btn-padding-x); + text-align: left; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + > :first-child { + position: absolute; + left: 0; + top: 2px; + bottom: 0; + width: $bs-height-base; + line-height: ($bs-height-base - 0.25); + font-size: $font-size-base; + text-align: center; + border-right: 1px solid rgba($black, 0.2); + } +} + +.btn-social-icon { + @extend .btn-social; + height: ($bs-height-base); + width: ($bs-height-base); + padding: 0; + > :first-child { + border: none; + text-align: center; + width: 100% !important; + } +} + +// Social button Mixin +@mixin btn-social($color-bg, $color: #fff, $hover: $color-bg, $border-hover: $color-bg) { + background-color: $color-bg; + @include button-variant($color-bg, $color, $hover, $border-hover); + color: $white !important; + border: none; +} + +// Social Outline Button Mixin +@mixin btn-social-outline($color-bg) { + border: 1px solid $color-bg !important; + color: $color-bg; +} + +// Social Outline Button Hover Mixin +@mixin btn-hover-outline($color-bg) { + color: darken($color-bg, 20%); + border: 1px solid darken($color-bg, 20%) !important; +} + +// Social button +.btn-adn { + @include btn-social(#d87a68); +} +.btn-bitbucket { + @include btn-social(#205081); +} +.btn-dropbox { + @include btn-social(#1087dd); +} +.btn-facebook { + @include btn-social(#3b5998); +} +.btn-flickr { + @include btn-social(#ff0084); +} +.btn-foursquare { + @include btn-social(#f94877); +} +.btn-github { + @include btn-social(#444444); +} +.btn-google { + @include btn-social(#dd4b39); +} +.btn-instagram { + @include btn-social(#3f729b); +} +.btn-linkedin { + @include btn-social(#007bb6); +} +.btn-microsoft { + @include btn-social(#2672ec); +} +.btn-odnoklassniki { + @include btn-social(#f4731c); +} +.btn-openid { + @include btn-social(#f7931e); +} +.btn-pinterest { + @include btn-social(#cb2027); +} +.btn-reddit { + @include btn-social(#eff7ff, #000, #000, #000); +} +.btn-soundcloud { + @include btn-social(#ff5500); +} +.btn-tumblr { + @include btn-social(#2c4762); +} +.btn-twitter { + @include btn-social(#55acee, #fff); +} +.btn-vimeo { + @include btn-social(#1ab7ea); +} +.btn-vk { + @include btn-social(#587ea3); +} +.btn-yahoo { + @include btn-social(#720e9e); +} + +// Social Outline button +.btn-outline-adn { + @include btn-social-outline(#d87a68); +} +.btn-outline-bitbucket { + @include btn-social-outline(#205081); +} +.btn-outline-dropbox { + @include btn-social-outline(#1087dd); +} +.btn-outline-facebook { + @include btn-social-outline(#3b5998); +} +.btn-outline-flickr { + @include btn-social-outline(#ff0084); +} +.btn-outline-foursquare { + @include btn-social-outline(#f94877); +} +.btn-outline-github { + @include btn-social-outline(#444444); +} +.btn-outline-google { + @include btn-social-outline(#dd4b39); +} +.btn-outline-instagram { + @include btn-social-outline(#3f729b); +} +.btn-outline-linkedin { + @include btn-social-outline(#007bb6); +} +.btn-outline-microsoft { + @include btn-social-outline(#2672ec); +} +.btn-outline-odnoklassniki { + @include btn-social-outline(#f4731c); +} +.btn-outline-openid { + @include btn-social-outline(#f7931e); +} +.btn-outline-pinterest { + @include btn-social-outline(#cb2027); +} +.btn-outline-reddit { + @include btn-social-outline(#ff4500); +} +.btn-outline-soundcloud { + @include btn-social-outline(#ff5500); +} +.btn-outline-tumblr { + @include btn-social-outline(#2c4762); +} +.btn-outline-twitter { + @include btn-social-outline(#55acee); +} +.btn-outline-vimeo { + @include btn-social-outline(#1ab7ea); +} +.btn-outline-vk { + @include btn-social-outline(#587ea3); +} +.btn-outline-yahoo { + @include btn-social-outline(#720e9e); +} + +// Social Outline hover button +.btn-outline-adn:hover { + @include btn-hover-outline(#d87a68); +} +.btn-outline-bitbucket:hover { + @include btn-hover-outline(#205081); +} +.btn-outline-dropbox:hover { + @include btn-hover-outline(#1087dd); +} +.btn-outline-facebook:hover { + @include btn-hover-outline(#3b5998); +} +.btn-outline-flickr:hover { + @include btn-hover-outline(#ff0084); +} +.btn-outline-foursquare:hover { + @include btn-hover-outline(#f94877); +} +.btn-outline-github:hover { + @include btn-hover-outline(#444444); +} +.btn-outline-google:hover { + @include btn-hover-outline(#dd4b39); +} +.btn-outline-instagram:hover { + @include btn-hover-outline(#3f729b); +} +.btn-outline-linkedin:hover { + @include btn-hover-outline(#007bb6); +} +.btn-outline-microsoft:hover { + @include btn-hover-outline(#2672ec); +} +.btn-outline-odnoklassniki:hover { + @include btn-hover-outline(#f4731c); +} +.btn-outline-openid:hover { + @include btn-hover-outline(#f7931e); +} +.btn-outline-pinterest:hover { + @include btn-hover-outline(#cb2027); +} +.btn-outline-reddit:hover { + @include btn-hover-outline(#ff4500); +} +.btn-outline-soundcloud:hover { + @include btn-hover-outline(#ff5500); +} +.btn-outline-tumblr:hover { + @include btn-hover-outline(#2c4762); +} +.btn-outline-twitter:hover { + @include btn-hover-outline(#55acee); +} +.btn-outline-vimeo:hover { + @include btn-hover-outline(#1ab7ea); +} +.btn-outline-vk:hover { + @include btn-hover-outline(#587ea3); +} +.btn-outline-yahoo:hover { + @include btn-hover-outline(#720e9e); +} + +// Social Background colors +.bg-adn { + background-color: #d87a68; +} +.bg-bitbucket { + background-color: #205081; +} +.bg-dropbox { + background-color: #1087dd; +} +.bg-facebook { + background-color: #3b5998; +} +.bg-flickr { + background-color: #ff0084; +} +.bg-foursquare { + background-color: #f94877; +} +.bg-github { + background-color: #444444; +} +.bg-google { + background-color: #dd4b39; +} +.bg-instagram { + background-color: #3f729b; +} +.bg-linkedin { + background-color: #007bb6; +} +.bg-microsoft { + background-color: #2672ec; +} +.bg-odnoklassniki { + background-color: #f4731c; +} +.bg-openid { + background-color: #f7931e; +} +.bg-pinterest { + background-color: #cb2027; +} +.bg-reddit { + background-color: #ff4500; +} +.bg-soundcloud { + background-color: #ff5500; +} +.bg-tumblr { + background-color: #2c4762; +} +.bg-twitter { + background-color: #55acee; +} +.bg-vimeo { + background-color: #1ab7ea; +} +.bg-vk { + background-color: #587ea3; +} +.bg-yahoo { + background-color: #720e9e; +} diff --git a/src/@core/scss/base/components/chart.scss b/src/@core/scss/base/components/chart.scss new file mode 100644 index 0000000..e345c50 --- /dev/null +++ b/src/@core/scss/base/components/chart.scss @@ -0,0 +1,35 @@ +// Apex chart Scss + +.apexcharts-canvas { + // Tooltip Color + .apexcharts-tooltip { + color: $body-color !important; + &.apexcharts-theme-dark { + color: $white !important; + } + } + // Toolbar Download Option Color + .apexcharts-toolbar { + .apexcharts-menu { + .apexcharts-menu-item { + color: $body-color; + } + } + } + + // Text font family + .apexcharts-text, + .apexcharts-datalabel { + font-family: $font-family-base !important; + } +} + +// apex charts tooltip +.apexcharts-xaxistooltip { + color: $body-color !important; +} + +// Toolbar Z-index +.apexcharts-toolbar { + z-index: 10; +} diff --git a/src/@core/scss/base/components/customizer.scss b/src/@core/scss/base/components/customizer.scss new file mode 100644 index 0000000..f6c5984 --- /dev/null +++ b/src/@core/scss/base/components/customizer.scss @@ -0,0 +1,98 @@ +/*========================================================================================= + File Name: customizer.scss + Description: CSS used for demo purpose only. Remove this css from your project. + ---------------------------------------------------------------------------------------- + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent +==========================================================================================*/ + +.customizer { + width: 400px; + right: -400px; + padding: 0; + background-color: $white; + z-index: 1051; + position: fixed; + top: 0; + bottom: 0; + height: 100vh; + height: calc(var(--vh, 1vh) * 100); + transition: right 0.4s cubic-bezier(0.05, 0.74, 0.2, 0.99); + backface-visibility: hidden; + border-left: 1px solid rgba($black, 0.05); + + &.open { + box-shadow: 0 15px 30px 0 rgba($black, 0.11), 0 5px 15px 0 rgba($black, 0.08); + right: 0; + } + + // customizer content height + .customizer-content { + position: relative; + height: 100%; + } + + //customizer close button + .customizer-close { + position: absolute; + right: 0.6rem; + top: 0.6rem; + padding: 7px; + width: auto; + z-index: 10; + color: $headings-color; + i, + svg { + font-size: 1.5rem; + height: 1.5rem; + width: 1.5rem; + } + } + + // customizer toggle icon + .customizer-toggle { + background: $primary; + color: $white !important; + display: block; + box-shadow: -3px 0px 8px rgba($black, 0.1); + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; + position: absolute; + top: 50%; + width: 38px; + height: 38px; + left: -39px; + text-align: center; + line-height: 40px; + cursor: pointer; + } + + // theme color box styles + .color-box { + height: 24px; + width: 24px; + margin: 0.5rem; + border-radius: 0.5rem; + cursor: pointer; + position: relative; + &.selected { + &:after { + content: ''; + border: 1px solid $primary; + height: 30px; + width: 30px; + top: -3px; + left: -3px; + position: absolute; + border-radius: 0.5rem; + } + &.border { + &:after { + top: -4px; + left: -4px; + } + } + } + } +} diff --git a/src/@core/scss/base/components/demo.scss b/src/@core/scss/base/components/demo.scss new file mode 100644 index 0000000..cf6f086 --- /dev/null +++ b/src/@core/scss/base/components/demo.scss @@ -0,0 +1,121 @@ +/*========================================================================================= + File Name: demo.scss + Description: CSS used for demo purpose only. Remove this css from your project. + ---------------------------------------------------------------------------------------- + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent +==========================================================================================*/ + +// Demo content spacing +.demo-inline-spacing { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + align-items: center; + & > * { + margin-right: 1.5rem; + margin-top: 1.5rem; + } +} + +// Demo content spacing +.demo-vertical-spacing > * { + margin: 0; + margin-bottom: 1.5rem; + &:last-child { + margin: 0; + } +} + +.demo-spacing-0 > *:last-child { + margin: 0; +} + +// using in icon pages +.icon-wrapper { + .feather { + height: 24px; + width: 24px; + } +} + +.scroll-example { + padding: 0.5rem; + position: relative; + border: 2px solid darken($body-bg, 10%); + overflow: auto; + + .horz-scroll-content { + width: 1200px; + } +} + +.browser { + background: #e0e0e0; + border: 4px solid #e0e0e0; + width: 100%; + height: 12rem; + padding-top: 20px; + margin: 0 0 10px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.browser iframe { + border: 0; + background: #fff; + height: 100%; + width: 100%; +} + +.loader-wrapper { + height: 8em; +} + +.maintenance-icon { + font-size: 4rem; +} + +.animationIcon { + right: 30px; + bottom: 10px; +} + +// Breadcrumb page alignment demo +#component-breadcrumbs .breadcrumb:not(last-child){ + margin-bottom: .5rem; +} +#breadcrumb-alignment { + .breadcrumb-wrapper { + box-shadow: 1px 1px 10px rgba($black, 0.1); + padding: 1px; + border-radius: $border-radius; + .breadcrumb { + margin-top: 0.8rem; + margin-bottom: 0.8rem; + } + } +} +.dark-layout { + #breadcrumb-alignment { + .breadcrumb-wrapper { + box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.24); + } + } +} + +// Buy now +.buy-now { + position: fixed; + bottom: 5%; + right: 79px; + z-index: 1031; + .btn { + box-shadow: 0 1px 20px 1px $danger !important; + &:hover { + box-shadow: none !important; + } + } +} diff --git a/src/@core/scss/base/components/divider.scss b/src/@core/scss/base/components/divider.scss new file mode 100644 index 0000000..e678974 --- /dev/null +++ b/src/@core/scss/base/components/divider.scss @@ -0,0 +1,104 @@ +// Divider + +.divider { + display: block; + text-align: center; + overflow: hidden; + white-space: nowrap; + margin: 1rem 0; + + // divider text display prop + + .divider-text { + position: relative; + display: inline-block; + font-size: 0.9375rem; + padding: 0 1rem; + + // divider icon font size + + i, + svg { + height: 1rem; + width: 1rem; + font-size: 1rem; + } + + // divider border + + &:before, + &:after { + content: ''; + position: absolute; + top: 50%; + width: 9999px; + border-top: 1px solid $border-color; + } + + // divider spacing + &:before { + right: 100%; + } + + &:after { + left: 100%; + } + } + + // divider positions config + + &.divider-left { + .divider-text { + float: left; + padding-left: 0; + &:before { + display: none; + } + } + } + &.divider-left-center { + .divider-text { + left: -25%; + } + } + + &.divider-right { + .divider-text { + float: right; + padding-right: 0; + &:after { + display: none; + } + } + } + &.divider-right-center { + .divider-text { + right: -25%; + } + } + + // divider styles + + &.divider-dotted { + .divider-text { + &:before, + &:after { + border-style: dotted; + border-width: 1px; + border-top-width: 0; + border-color: $border-color; + } + } + } + &.divider-dashed { + .divider-text { + &:before, + &:after { + border-style: dashed; + border-width: 1px; + border-top-width: 0; + border-color: $border-color; + } + } + } +} diff --git a/src/@core/scss/base/components/search.scss b/src/@core/scss/base/components/search.scss new file mode 100644 index 0000000..f18008a --- /dev/null +++ b/src/@core/scss/base/components/search.scss @@ -0,0 +1,237 @@ +/*========================================================================================= + File Name: search.scss + Description: Search functionality. + ---------------------------------------------------------------------------------------- + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent +==========================================================================================*/ + +.navbar-container { + a.nav-link-search { + float: left; + } + + .search-input { + width: 0; + float: left; + display: none; + + // select + input { + width: 0; + border: none; + background: none; + transition: all 0.2s ease-out; + line-height: 16px; + padding: 1.6rem 3.6rem; + } + + &.open { + position: absolute; + top: 0; + left: 0; + z-index: 1000; + width: 100%; + display: block; + background: $white; + border-radius: 0.5rem; + + .search-input-close, + .search-input-icon { + display: block; + } + + // select + + input { + width: 100%; + outline: none; + background: none; + height: auto; + box-shadow: none; + transition: all 0.3s ease-out; + } + } + + .search-list { + max-height: 450px; + height: auto; + position: absolute; + top: 100%; + left: 0; + background: $white; + width: 100%; + margin-top: 0.5rem; + padding-left: 0; + border-radius: $border-radius; + display: none; + @media only screen and (min-device-width: 320px) and (max-device-width: 875px) and (orientation: landscape) { + max-height: 250px; + } + + &.search-list-bookmark { + height: auto !important; + i, + svg { + font-size: 1.2rem; + height: 1.2rem; + width: 1.2rem; + } + } + + &.show { + display: block; + min-height: 3rem; + } + + li { + a { + padding: 0.9rem 1rem; + color: $body-color; + + i, + svg[class*='feather feather-'] { + height: 1.25rem; + width: 1.25rem; + font-size: 1.25rem; + } + } + + &:first-child { + border-top-left-radius: $border-radius; + border-top-right-radius: $border-radius; + } + + &:last-child { + border-bottom-left-radius: $border-radius; + border-bottom-right-radius: $border-radius; + } + + &.auto-suggestion { + display: flex; + align-items: center; + cursor: pointer; + &:hover, + &.current_item { + background-color: $body-bg; + } + } + } + } + + .search-input-icon { + z-index: 2; + display: none; + position: absolute; + left: 1.5rem; + top: 32%; + cursor: pointer; + + i, + svg { + height: 1.25rem; + width: 1.25rem; + font-size: 1.25rem; + } + } + + .search-input-close { + z-index: 1; + display: none; + position: absolute; + right: 2rem; + top: 32%; + cursor: pointer; + + i, + svg { + height: 1.25rem; + width: 1.25rem; + font-size: 1.25rem; + } + } + } + + .bookmark-input { + position: absolute; + top: 102%; + width: 25%; + display: none; + background: $white; + border-radius: $border-radius; + box-shadow: 0 15px 30px 0 rgba($black, 0.11), 0 5px 15px 0 rgba($black, 0.08); + + &.show { + display: block; + } + + .bookmark-input-icon { + position: absolute; + z-index: 1; + top: 20px; + left: 24px; + } + + input { + padding: 0.7rem 0.7rem 0.7rem 2.5rem; + margin: 12px; + width: calc(100% - 24px); // Reduce width by 10*2 + background: $white; + border: 1px solid rgba($black, 0.2); + + &:focus { + border: 1px solid $primary; + } + } + + .search-list { + position: relative; // To consider outer div width + } + } + + .bookmark-icon { + cursor: pointer; + } + + .dropdown.bookmark-dropdown { + padding: 1.4rem 0.5rem 1.35rem; + + .dropdown-toggle:after { + display: none; + } + } + + .search-data-title { + line-height: 1.25rem; + } +} + +.navbar-dark +// .navbar-semi-light +{ + .search-input { + .input { + color: #f5f7fa; + border-radius: 0.5rem; + } + + &.open { + .input { + color: #f5f7fa; + border: 1px solid #f5f7fa; + } + } + } +} + +// navbar-sticky +.navbar-static { + .navbar-container { + .search-input { + &.open { + border-radius: 0; + } + } + } +} diff --git a/src/@core/scss/base/components/timeline.scss b/src/@core/scss/base/components/timeline.scss new file mode 100644 index 0000000..fbf7367 --- /dev/null +++ b/src/@core/scss/base/components/timeline.scss @@ -0,0 +1,101 @@ +// ========================================================================================= +// File Name: timeline.scss +// Description: Timeline style. +// ---------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ========================================================================================== + +// Component: Timeline +// ======================================================================== + +.timeline { + padding: 0; + margin-bottom: 0; + margin-left: 1rem; + list-style: none; + + // Timeline Item + .timeline-item { + position: relative; + padding-left: 2.5rem; + border-left: 1px solid $timeline-border-color; + + &:not(:last-child) { + padding-bottom: 1.8rem; + } + + // Timeline Point + .timeline-point { + position: absolute; + left: -0.85rem; + top: 0; + z-index: 2; + display: flex; + justify-content: center; + align-items: center; + height: $timeline-point-size; + width: $timeline-point-size; + text-align: center; + border-radius: 50%; + border: 1px solid $timeline-point-indicator-color; + background-color: $white; + + // Timeline Point Indicator + &.timeline-point-indicator { + left: -0.412rem; + top: 0.07rem; + height: $timeline-point-indicator-size; + width: $timeline-point-indicator-size; + border: 0; + background-color: $timeline-point-indicator-color; + + &:before { + content: ''; + background: rgba($color: $timeline-point-indicator-color, $alpha: 0.12); + height: $timeline-point-indicator-wrapper-size; + width: $timeline-point-indicator-wrapper-size; + display: block; + position: absolute; + top: -0.285rem; + left: -0.285rem; + border-radius: 50%; + } + } + + // Icons + i, + svg { + color: $timeline-point-indicator-color; + font-size: $timeline-item-icon-font-size; + vertical-align: baseline; + } + } + + .timeline-event { + position: relative; + width: 100%; + min-height: $timeline-item-min-height; + // background-color: transparent; + + .timeline-event-time { + font-size: $timeline-event-time-size; + color: $timeline-event-time-color; + } + } + + &:last-of-type { + border-left-color: transparent !important; + &:after { + content: ''; + position: absolute; + left: -1px; + bottom: 0; + width: 1px; + height: 100%; + background: linear-gradient($border-color, transparent); + } + } + } +} diff --git a/src/@core/scss/base/core/colors/_palette.scss b/src/@core/scss/base/core/colors/_palette.scss new file mode 100644 index 0000000..494eb92 --- /dev/null +++ b/src/@core/scss/base/core/colors/_palette.scss @@ -0,0 +1,534 @@ +// ================================================================================================ +// File Name: pallette.scss +// Description: Custom color system styles, includes background, border and text colors +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// ================================================================================================ +// WARNING: PLEASE DO NOT CHANGE THIS VARIABLE FILE. +// THIS FILE WILL GET OVERWRITTEN WITH EACH Vuexy HTML TEMPLATE RELEASE. +// TIP: +// We suggest you to use this (assets/scss/colors/palette.scss) file for overriding color variables. +// ================================================================================================ + +// usage: theme-color("name_of_color", "type_of_color") +// to avoid to repeating map-get($colors, ...) + +@function color-function($color, $type) { + @if map-has-key($colors, $color) { + $curr_color: map-get($colors, $color); + @if map-has-key($curr_color, $type) { + @return map-get($curr_color, $type); + } + } + + // @warn "Unknown `#{name}` in $colors."; + @return null; +} + +// Color palettes +@import 'palette-variables'; + +// Color Classes +// Text color: .color .lighten-* / .darken-* / .accent-* +// Background: .bg-color .bg-lighten-* / .bg-darken-* / .bg-accent-* +// border: .border-color .border-lighten-* / .border-darken-* / .border-accent-* +// border-top: .border-top-color .border-top-lighten-* / .border-top-darken-* / .border-top-accent-* +// border-bottom: .border-bottom-color .border-bottom-lighten-* / .border-bottom-darken-* / .border-bottom-accent-* +// border-left: .border-left-color .border-left-lighten-* / .border-left-darken-* / .border-left-accent-* +// border-right: .border-right-color .border-right-lighten-* / .border-right-darken-* / .border-right-accent-* + +@each $color_name, $color in $colors { + @each $color_type, $color_value in $color { + @if $color_type== 'base' { + // background color + .bg-#{$color_name} { + background-color: $color_value !important; + + .card-header, + .card-footer { + background-color: transparent; + } + } + + // Alert + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .alert-#{$color_name} { + background: rgba($color_value, 0.12) !important; + color: $color_value !important; + + .alert-heading { + @include alert-heading-bs($color_value); + } + + .alert-link { + color: darken($color_value, 5%) !important; + } + + // closable alert + .close { + color: $color_value !important; + } + } + } + + // bg color lighten for rgba - opacity set + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white' and $color_name != 'dark') { + .bg-light-#{$color_name} { + background: rgba($color_value, 0.12) !important; + color: $color_value !important; + + // Calendar background, color and border color + &.fc-h-event, + &.fc-v-event { + border-color: rgba($color_value, 0.1); + } + + .fc-list-event-dot { + border-color: $color_value !important; + } + + &.fc-list-event { + &:hover td { + background: rgba($color_value, 0.1) !important; + } + + .fc-list-event-title { + color: $body-color; + } + } + } + } + + // avatar with light bg + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white' and $color_name != 'dark') { + .avatar.bg-light-#{$color_name} { + color: $color_value !important; + } + } + + // Border colors + .border-#{$color_name} { + border: 1px solid $color_value !important; + } + + .border-top-#{$color_name} { + border-top: 1px solid $color_value; + } + + .border-bottom-#{$color_name} { + border-bottom: 1px solid $color_value; + } + + .border-left-#{$color_name} { + border-left: 1px solid $color_value; + } + + .border-right-#{$color_name} { + border-right: 1px solid $color_value; + } + + // badge glow colors + .bg-#{$color_name}, + .border-#{$color_name}, + .badge-#{$color-name} { + &.badge-glow { + box-shadow: 0px 0px 10px $color_value; + } + } + + // Badge Background Color + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .badge { + // Badge Light Background + &.badge-light-#{$color_name} { + background-color: rgba($color: $color_value, $alpha: 0.12); + color: $color_value !important; + } + } + } + + // Overlay colors + .overlay-#{$color_name} { + @include bg-opacity($color_value, 0.6); + } + + // Basic buttons + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .btn-#{$color_name} { + border-color: $color_value !important; + background-color: $color_value !important; + color: $white !important; + + &:focus, + &:active, + &.active { + color: $white; + background-color: color-function($color_name, 'darken-1') !important; + } + + &:hover:not(.disabled):not(:disabled) { + box-shadow: 0 8px 25px -8px rgba($color-value, 1); + } + + &:not(:disabled):not(.disabled):active:focus { + box-shadow: none; + } + } + } + + // For Btn Flat + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .btn-flat-#{$color-name} { + background-color: transparent; + color: $color-value; + + &:hover { + color: $color-value; + } + + &:hover:not(.disabled):not(:disabled) { + background-color: rgba($color-value, 0.12); + } + + &:active, + &.active, + &:focus { + background-color: rgba($color: $color_value, $alpha: 0.2); + color: $color_value; + } + + &.dropdown-toggle::after { + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $color_value), '#', '%23')); + } + } + } + + // For Btn Relief + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .btn-relief-#{$color-name} { + background-color: $color-value; + box-shadow: inset 0 -3px 0 0 rgba($black, 0.2); + color: $white; + transition: all 0.2s ease; + @if $color_name == 'dark' { + &:hover:not(.disabled):not(:disabled) { + background-color: color-function($color_name, 'darken-3'); + } + } @else { + &:hover:not(.disabled):not(:disabled) { + background-color: color-function($color_name, 'lighten-1'); + } + } + &:active, + &.active, + &:focus { + background-color: color-function($color_name, 'darken-1'); + } + + &:hover { + color: $white; + } + &:active, + &.active { + outline: none; + box-shadow: none; + transform: translateY(3px); + } + } + } + + // Outline buttons + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .btn-outline-#{$color_name} { + border: 1px solid $color_value !important; + background-color: transparent; + color: $color_value; + + &:hover:not(.disabled):not(:disabled) { + background-color: rgba($color: $color_value, $alpha: 0.04); + color: $color_value; + } + &:not(:disabled):not(.disabled):active:focus { + box-shadow: none; + } + &:not(:disabled):not(.disabled):active, + &:not(:disabled):not(.disabled).active, + &:not(:disabled):not(.disabled):focus { + background-color: rgba($color: $color_value, $alpha: 0.2); + color: $color_value; + } + + &.dropdown-toggle::after { + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $color_value), '#', '%23')); + } + // split toggle have show class + .show > &.dropdown-toggle { + background-color: rgba($color: $color_value, $alpha: 0.2); + color: $color_value; + } + } + } + + // Wave effect + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .btn-outline-#{$color_name}, + .btn-flat-#{$color-name} { + &.waves-effect { + .waves-ripple { + background: radial-gradient( + rgba($color_value, 0.2) 0, + rgba($color_value, 0.3) 40%, + rgba($color_value, 0.4) 50%, + rgba($color_value, 0.5) 60%, + rgba($white, 0) 70% + ); + } + } + } + } + + // Bullet colors for email app + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .bullet { + &.bullet-#{$color_name} { + background-color: $color_value; + } + } + } + + // Modal + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .modal { + &.modal-#{$color_name} { + .modal-header { + .modal-title { + color: $color_value; + } + .close { + color: $color_value !important; + } + } + } + } + } + + // For Pagination + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white' and $color_name != 'dark') { + .pagination-#{$color-name} { + .page-item { + &.active { + .page-link { + background: $color-value !important; + color: $white; + + &:hover { + color: $white; + } + } + } + + .page-link { + &:hover { + color: $color_value; + } + } + + &.prev-item, + &.next-item { + .page-link:hover { + background: $color_value; + color: $white; + } + } + &.next-item, + &.next { + .page-link { + &:active, + &:hover { + &:after { + background-image: url(str-replace( + str-replace($chevron-right, 'currentColor', $color_value), + '#', + '%23' + )) !important; + } + } + } + } + &.prev-item, + &.prev { + .page-link { + &:active, + &:hover { + &:before { + background-image: url(str-replace( + str-replace($chevron-left, 'currentColor', $color_value), + '#', + '%23' + )) !important; + } + } + } + } + } + } + } + + // For Nav Pills + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white' and $color_name != 'dark') { + .nav-pill-#{$color-name} { + .nav-item { + .nav-link { + &.active { + color: $white; + background-color: $color_value !important; + border-color: $color_value; + box-shadow: 0 4px 18px -4px rgba($color_value, 0.65); + } + } + } + } + } + + // Progress Bars + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .progress-bar-#{$color_name} { + background-color: rgba($color_value, 0.12); + + .progress-bar { + background-color: $color-value; + } + } + } + + // Timeline + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .timeline { + .timeline-point-#{$color_name} { + border-color: $color_value !important; + + i, + svg { + stroke: $color_value !important; + } + + &.timeline-point-indicator { + background-color: $color_value !important; + &:before { + background: rgba($color: $color_value, $alpha: 0.12) !important; + } + } + } + } + } + + // Divider + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .divider.divider-#{$color-name} { + .divider-text { + &:before, + &:after { + border-color: $color-value !important; + } + } + } + } + + // Form Input Elements + // Checkbox & Radio + + // todo: remove it once confirm + input:focus ~ .bg-#{$color_name} { + box-shadow: 0 0 0 0.075rem $white, 0 0 0 0.21rem $color_value !important; + } + + // Custom Checkbox & Radio + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .custom-control-#{$color_name} { + .custom-control-input:checked ~ .custom-control-label::before, + .custom-control-input:active ~ .custom-control-label::before { + border-color: $color_value; + background-color: $color_value; + } + &.custom-checkbox, + &.custom-radio { + .custom-control-input:checked ~ .custom-control-label::before, + .custom-control-input:active ~ .custom-control-label::before, + .custom-control-input:focus ~ .custom-control-label::before { + box-shadow: 0 2px 4px 0 rgba($color_value, 0.4) !important; + } + } + .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba($color_value, 0.65) !important; + border: none; + box-shadow: none !important; + } + .custom-control-input:focus ~ .custom-control-label::before { + border-color: $color_value; + } + } + } + + // Bootstrap Custom Switches + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .custom-switch-#{$color-name} { + .custom-control-input:checked ~ .custom-control-label::before { + background-color: $color_value !important; + color: $white; + transition: all 0.2s ease-out; + } + } + } + + // Select2 + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .select2-#{$color-name} { + .select2-container--default { + .select2-selection--multiple { + .select2-selection__choice { + background: $color_value !important; + border-color: $color_value !important; + } + } + } + } + } + } @else { + .text-#{$color_name}.text-#{$color_type} { + color: $color_value !important; + } + + .bg-#{$color_name}.bg-#{$color_type} { + background-color: $color_value !important; + } + + .border-#{$color_name}.border-#{$color_type} { + border: 1px solid $color_value !important; + } + + .border-top-#{$color_name}.border-top-#{$color_type} { + border-top: 1px solid $color_value !important; + } + + .border-bottom-#{$color_name}.border-bottom-#{$color_type} { + border-bottom: 1px solid $color_value !important; + } + + .border-left-#{$color_name}.border-left-#{$color_type} { + border-left: 1px solid $color_value !important; + } + + .border-right-#{$color_name}.border-right-#{$color_type} { + border-right: 1px solid $color_value !important; + } + + .overlay-#{$color_name}.overlay-#{$color_type} { + @include bg-opacity($color_value, 0.6); + } + } + } +} diff --git a/src/@core/scss/base/core/colors/palette-gradient.scss b/src/@core/scss/base/core/colors/palette-gradient.scss new file mode 100644 index 0000000..4762b36 --- /dev/null +++ b/src/@core/scss/base/core/colors/palette-gradient.scss @@ -0,0 +1,72 @@ +// ================================================================================================ +// File Name: pallette-gradient.scss +// Description: gradient color system styles +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@function color-function($color, $type) { + @if map-has-key($colors, $color) { + $curr_color: map-get($colors, $color); + @if map-has-key($curr_color, $type) { + @return map-get($curr_color, $type); + } + } + // @warn "Unknown `#{name}` in $colors."; + @return null; +} + +// Color palettes +@import 'palette-variables'; + +@import 'bootstrap/scss/mixins/_gradients'; +@import 'bootstrap/scss/mixins/gradients'; + +@each $color_name, $color in $colors { + @each $color_type, $color_value in $color { + @if $color_type == 'base' { + @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') { + .bg-gradient-#{$color_name}, + .btn-gradient-#{$color_name} { + color: $white; + transition: all 0.2s ease; + @if $color_name == 'dark' { + @if (color-function($color_name, 'base') != null) { + @include gradient-directional(map-get(($color), 'base'), map-get(($color), 'darken-2'), 47deg); + } + // for dark layout + .dark-layout & { + @include gradient-directional(map-get(($color), 'darken-2'), map-get(($color), 'base'), 47deg); + background-repeat: repeat; + } + background-repeat: repeat; + } @else { + @if (color-function($color_name, 'base') != null) { + @include gradient-directional(map-get(($color), 'base'), map-get(($color), 'lighten-2'), 47deg); + } + background-repeat: repeat; + } + &:hover, + &:active { + color: $white; + } + &:hover:not(.disabled):not(:disabled) { + transform: translateY(-2px); + } + &:active { + transform: translateY(0); + } + &:active, + &:focus { + @if (color-function($color_name, 'darken-2') != null) { + @include gradient-directional(map-get(($color), 'darken-2'), map-get(($color), 'base'), 47deg); + } + background-repeat: repeat; + } + } + } + } + } +} diff --git a/src/@core/scss/base/core/colors/palette-noui.scss b/src/@core/scss/base/core/colors/palette-noui.scss new file mode 100644 index 0000000..ff352e7 --- /dev/null +++ b/src/@core/scss/base/core/colors/palette-noui.scss @@ -0,0 +1,30 @@ +// ================================================================================================ +// File Name: pallette-noui.scss +// Description: noui color system styles +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// Color palettes +@import 'palette-variables'; + +@each $color_name, $color in $colors { + @each $color_type, $color_value in $color { + @if $color_type == 'base' { + .slider-#{$color_name} { + background-color: rgba($color_value, 0.12); + .noUi-connect { + background: $color_value !important; + } + &.noUi-connect { + background: $color_value !important; + } + .noUi-handle { + border-color: $color_value !important; + } + } + } + } +} diff --git a/src/@core/scss/base/core/colors/palette-variables.scss b/src/@core/scss/base/core/colors/palette-variables.scss new file mode 100644 index 0000000..3542e34 --- /dev/null +++ b/src/@core/scss/base/core/colors/palette-variables.scss @@ -0,0 +1,126 @@ +// Overrides user _variables-components +@import '../../bootstrap-extended/include'; + +// Google Color Palette defined: http://www.google.com/design/spec/style/color.html + +$white-color: ( + 'base': #ffffff +); +$black-color: ( + 'base': #000000 +); +$dark-color: ( + 'base': theme-color('dark'), + 'darken-1': #343434, + 'darken-2': #1e1e1e, + 'darken-3': #626262 +); +$light-color: ( + 'base': theme-color('light') +); + +$primary-color: ( + 'lighten-5': lighten(theme-color('primary'), 25%), + 'lighten-4': lighten(theme-color('primary'), 20%), + 'lighten-3': lighten(theme-color('primary'), 15%), + 'lighten-2': lighten(theme-color('primary'), 10%), + 'lighten-1': lighten(theme-color('primary'), 5%), + 'base': theme-color('primary'), + 'darken-1': darken(theme-color('primary'), 5%), + 'darken-2': darken(theme-color('primary'), 10%), + 'darken-3': darken(theme-color('primary'), 15%), + 'darken-4': darken(theme-color('primary'), 20%), + 'accent-1': #bdfdff, + 'accent-2': #8afbff, + 'accent-3': #57faff, + 'accent-4': #3df9ff +); +$secondary-color: ( + 'lighten-5': lighten(theme-color('secondary'), 25%), + 'lighten-4': lighten(theme-color('secondary'), 20%), + 'lighten-3': lighten(theme-color('secondary'), 15%), + 'lighten-2': lighten(theme-color('secondary'), 10%), + 'lighten-1': lighten(theme-color('secondary'), 5%), + 'base': theme-color('secondary'), + 'darken-1': darken(theme-color('secondary'), 5%), + 'darken-2': darken(theme-color('secondary'), 10%), + 'darken-3': darken(theme-color('secondary'), 15%), + 'darken-4': darken(theme-color('secondary'), 20%) +); +$success-color: ( + 'lighten-5': lighten(theme-color('success'), 25%), + 'lighten-4': lighten(theme-color('success'), 20%), + 'lighten-3': lighten(theme-color('success'), 15%), + 'lighten-2': lighten(theme-color('success'), 10%), + 'lighten-1': lighten(theme-color('success'), 5%), + 'base': theme-color('success'), + 'darken-1': darken(theme-color('success'), 5%), + 'darken-2': darken(theme-color('success'), 10%), + 'darken-3': darken(theme-color('success'), 15%), + 'darken-4': darken(theme-color('success'), 20%), + 'accent-1': #e1fff1, + 'accent-2': #aeffd9, + 'accent-3': #7bffc1, + 'accent-4': #62ffb5 +); +$info-color: ( + 'lighten-5': lighten(theme-color('info'), 25%), + 'lighten-4': lighten(theme-color('info'), 20%), + 'lighten-3': lighten(theme-color('info'), 15%), + 'lighten-2': lighten(theme-color('info'), 10%), + 'lighten-1': lighten(theme-color('info'), 5%), + 'base': theme-color('info'), + 'darken-1': darken(theme-color('info'), 5%), + 'darken-2': darken(theme-color('info'), 10%), + 'darken-3': darken(theme-color('info'), 15%), + 'darken-4': darken(theme-color('info'), 20%), + 'accent-1': #feffff, + 'accent-2': #cbf5ff, + 'accent-3': #98ecff, + 'accent-4': #7fe7ff +); +$warning-color: ( + 'lighten-5': lighten(theme-color('warning'), 25%), + 'lighten-4': lighten(theme-color('warning'), 20%), + 'lighten-3': lighten(theme-color('warning'), 15%), + 'lighten-2': lighten(theme-color('warning'), 10%), + 'lighten-1': lighten(theme-color('warning'), 5%), + 'base': theme-color('warning'), + 'darken-1': darken(theme-color('warning'), 5%), + 'darken-2': darken(theme-color('warning'), 10%), + 'darken-3': darken(theme-color('warning'), 15%), + 'darken-4': darken(theme-color('warning'), 20%), + 'accent-1': #fff5ef, + 'accent-2': #ffe5d8, + 'accent-3': #fff6f3, + 'accent-4': #ffe3da +); +$danger-color: ( + 'lighten-5': lighten(theme-color('danger'), 25%), + 'lighten-4': lighten(theme-color('danger'), 20%), + 'lighten-3': lighten(theme-color('danger'), 15%), + 'lighten-2': lighten(theme-color('danger'), 10%), + 'lighten-1': lighten(theme-color('danger'), 5%), + 'base': theme-color('danger'), + 'darken-1': darken(theme-color('danger'), 5%), + 'darken-2': darken(theme-color('danger'), 10%), + 'darken-3': darken(theme-color('danger'), 15%), + 'darken-4': darken(theme-color('danger'), 20%), + 'accent-1': #ffeef1, + 'accent-2': #ffd6db, + 'accent-3': #ffecee, + 'accent-4': #ffd3d7 +); + +$colors: ( + 'white': $white-color, + 'black': $black-color, + 'dark': $dark-color, + 'light': $light-color, + 'primary': $primary-color, + 'secondary': $secondary-color, + 'success': $success-color, + 'info': $info-color, + 'warning': $warning-color, + 'danger': $danger-color +); diff --git a/src/@core/scss/base/core/layouts/_content.scss b/src/@core/scss/base/core/layouts/_content.scss new file mode 100644 index 0000000..6e1bdde --- /dev/null +++ b/src/@core/scss/base/core/layouts/_content.scss @@ -0,0 +1,474 @@ +// ================================================================================================ +// File Name: content.scss +// Description: Page content level SCSS for different screen size, layout and device. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Authuseror URL: http://www.themeforest.net//pixinvent +// ================================================================================================ + +// Contest margin left for expanded & collapsed stats width & margin left +// ================================================================================================ + +@import '../mixins/main-menu-mixin'; + +html { + font-size: $base-font-size; + height: 100%; + letter-spacing: 0.01rem; + body { + height: 100%; + background-color: $body-bg; + direction: $body-direction; + // paragraph line-height + p { + line-height: 1.5rem; + } + } + .content { + padding: 0; + position: relative; + transition: 300ms ease all; + backface-visibility: hidden; + min-height: calc(100% - #{$footer-height}); + margin-left: $menu-expanded-width; + &.app-content { + padding: calc(#{$content-padding} + #{$navbar-height} + #{$floating-nav-margin}) #{$content-padding} 0; + &.show-overlay { + .content-overlay { + z-index: 10; + opacity: 1; + ~ .header-navbar-shadow { + display: none; + } + } + } + .content-overlay { + position: fixed; + opacity: 0; + width: 100%; + height: 100%; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba($black, 0.5); + cursor: pointer; + transition: all 0.7s, z-index 0s; + z-index: -1; + } + .content-area-wrapper { + display: flex; + position: relative; + overflow: hidden; // Required in apps + .content-wrapper, + .content-body { + height: 100%; + } + } + } + .body-content-overlay { + top: 0; + left: 0; + right: 0; + bottom: 0; + position: absolute; + display: block; + z-index: 4; + visibility: hidden; + opacity: 0; + transition: all 0.3s ease; + &.show { + visibility: visible; + transition: all 0.3s ease; + opacity: 1; + background-color: rgba($black, 0.2); + border-radius: $border-radius/2; + } + } + .content-wrapper { + .content-header-title { + font-weight: 500; + color: $gray-400; + padding-right: $spacer; + border-right: 1px solid lighten($gray-600, 10%); + } + .content-header-right { + .dropdown-toggle { + &::after { + display: none; + } + i, + svg { + margin-right: 0; + } + } + .btn-icon { + padding: 0.8rem; + i, + svg { + height: $font-size-base; + width: $font-size-base; + } + } + } + } + } + + // kanban app uses kanban-wrapper class as not having content-layout so added this class with all the options + // For floating navbar + .navbar-floating { + &.footer-static { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + #{$footer-height}, + #{$floating-nav-margin} + ); + } + } + } + &.footer-hidden { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + 0rem, + #{$floating-nav-margin}, + 0rem, + 2 + ); + } + } + } + &.footer-fixed { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + #{$footer-height}, + #{$floating-nav-margin}, + 0rem, + 2 + ); + } + } + } + } + + //for navbar hidden + .navbar-hidden { + .app-content { + padding: #{$content-padding} #{$content-padding} 0 #{$content-padding} !important; + } + &.footer-static { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height(#{$content-padding}, 0rem, #{$footer-height}); + } + } + } + &.footer-hidden { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height(#{$content-padding}, 0rem, 0rem, 0rem, 0rem, 2); + } + } + } + &.footer-fixed { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height(#{$content-padding}, 0rem, #{$footer-height}, 0rem, 0rem, 2); + } + } + } + } + + // for static navbar + .navbar-static { + .main-menu { + top: 0; + } + .content { + min-height: calc(100% - calc(#{$navbar-height} + #{$footer-height})); + } + .app-content { + padding: #{$content-padding} #{$content-padding} 0 #{$content-padding}; + } + &.footer-static { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height(#{$content-padding}, #{$navbar-height}, #{$footer-height}); + } + } + } + &.footer-hidden { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height(#{$content-padding}, #{$navbar-height}, 0rem, 0rem, 0rem, 2); + } + } + } + &.footer-fixed { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + #{$footer-height}, + 0rem, + 0rem, + 2 + ); + } + } + } + } + + // for sticky navbar + .navbar-sticky { + .app-content { + padding: calc(#{$content-padding} + #{$navbar-height}) #{$content-padding} 0 #{$content-padding}; + } + &.footer-static { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height(#{$content-padding}, #{$navbar-height}, #{$footer-height}); + } + } + } + &.footer-hidden { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height(#{$content-padding}, #{$navbar-height}, 0rem, 0rem, 0rem, 2); + } + } + } + &.footer-fixed { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + #{$footer-height}, + 0rem, + 0rem, + 2 + ); + } + } + } + } + + // navbar search width for sticky and static navbar + .navbar-static, + .navbar-sticky { + .nav.header-navbar { + .navbar-container { + padding-left: 1.6rem; + padding-right: 1.6rem; + .search-input { + .search-list { + &.show { + width: 98%; + left: 1%; + } + } + } + } + } + } + + // Fixed layout + .footer-fixed { + .content { + &.app-content { + padding-bottom: $footer-height !important; // ? Added extra padding bottom due to fixed footer height + } + } + } + + //Remove left margin for 1 column layout + [data-col='1-column'] { + .header-navbar { + // Custom width for floating nav + &.floating-nav { + width: calc( + 100vw - (100vw - 100%) - calc(#{$content-padding} * 2) + ) !important; // ? override all navbar type width + } + width: 100%; // Full width for other nav options + left: 0 !important; + } + .content, + .footer { + margin-left: 0px !important; + } + + // horizontal layout + &.horizontal-layout { + .header-navbar { + width: 100% !important; + } + .app-content { + padding: calc(#{$content-padding} + #{$navbar-height} + #{$floating-nav-margin}) #{$content-padding} 0 #{$content-padding} !important; // ? need to check all navbar types case + } + &.footer-fixed { + .app-content { + padding: calc(#{$content-padding} + #{$navbar-height} + #{$floating-nav-margin}) #{$content-padding} #{$footer-height} + #{$content-padding} !important; // ? need to check all navbar types case + } + } + } + } + + /* + * Blank page + */ + + .blank-page { + .content { + margin-left: 0; // not using in both cases + // overflow-x hidden, overflow for y in sm screen issue resolved default + &.app-content { + overflow: overlay; + overflow-x: hidden; + padding: 0 !important; + transition: none; + // remove white space on top by header-navbar-shadow class + .header-navbar-shadow { + display: none; + } + } + } + // blank page content-wrapper + .content-wrapper { + padding: 0 !important; + // content to be in center horizontally and vertically + .flexbox-container { + display: flex; + align-items: center; + height: 100vh; + height: calc(var(--vh, 1vh) * 100); + justify-content: center; + } + } + } + + .pace { + .pace-progress { + background: $primary; + } + } +} + +.app-content.center-layout { + overflow: hidden; +} + +/* +* Col 3 layout for detached and general type +*/ + +@include media-breakpoint-up(lg) { + body { + // Normal sidebar + .content-right { + width: calc(100vw - (100vw - 100%) - #{$sidebar-width}); + float: right; + } + .content-left { + width: calc(100vw - (100vw - 100%) - #{$sidebar-width}); + float: left; + } + // Detached sidebar + .content-detached { + width: 100%; + &.content-right { + float: right; + margin-left: -$sidebar-width; + .content-body { + margin-left: calc(#{$sidebar-width} + #{$content-padding}); + } + } + &.content-left { + float: left; + margin-right: -$sidebar-width; + .content-body { + margin-right: calc(#{$sidebar-width} + #{$content-padding}); + } + } + } + } + .sidebar-right.sidebar-sticky { + float: right !important; + margin-left: -$sidebar-width; + width: $sidebar-width !important; + margin-top: $navbar-height + 1.25; + } +} + +@include media-breakpoint-down(xs) { + html body .app-content { + padding: calc(#{$content-padding} - 0.8rem + #{$navbar-height} + #{$floating-nav-margin}) + calc(#{$content-padding} - 0.8rem) 0 calc(#{$content-padding} - 0.8rem) !important; // - 0.8rem to reduce padding in small screen + } + + // For static navbar + html body.navbar-static .app-content { + padding: calc(#{$content-padding} - 0.8rem) calc(#{$content-padding} - 0.8rem) 0 calc(#{$content-padding} - 0.8rem) !important; // - 0.8rem to reduce padding in small screen + } + + // For sticky navbar + html body.navbar-sticky .app-content { + padding: calc(#{$content-padding} - 0.8rem + #{$navbar-height}) calc(#{$content-padding} - 0.8rem) 0 + calc(#{$content-padding} - 0.8rem) !important; // - 0.8rem to reduce padding in small screen + } + + // For Hidden navbar + html body.navbar-hidden .app-content { + padding: calc(#{$content-padding} - 0.8rem) calc(#{$content-padding} - 0.8rem) 0 calc(#{$content-padding} - 0.8rem) !important; // - 0.8rem to reduce padding in small screen + } +} + +@include media-breakpoint-down(xs) { + .navbar-static, + .navbar-sticky { + .app-content { + .header-navbar { + .navbar-container { + padding-left: 1rem; + padding-right: 0.5rem; + } + } + } + } +} + +// For Fullscreen IE +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + html.full-screen { + width: 100%; + .content.app-content { + height: 100%; + overflow: scroll; + overflow-x: hidden; + } + } +} diff --git a/src/@core/scss/base/core/layouts/_footer.scss b/src/@core/scss/base/core/layouts/_footer.scss new file mode 100644 index 0000000..68d77a7 --- /dev/null +++ b/src/@core/scss/base/core/layouts/_footer.scss @@ -0,0 +1,78 @@ +// ================================================================================================ +// File Name: Footer.scss +// Description: * Main footer styles. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// Stick footer to the bottom of the page +footer { + &.footer { + padding: 0.8rem $content-padding; + min-height: $footer-height; + transition: 300ms ease all; + + // heart icon scss + span { + i, + svg { + height: 1.51rem; + width: 1.51rem; + font-size: 1.51rem; + margin-left: 0.5rem; + color: $danger; + } + } + .scroll-top { + padding: 0.81rem 0.83rem; + } + } + + //shadow & border options + &.footer-shadow { + box-shadow: $box-shadow; + } + &.footer-border { + border-top: 1px solid $border-color; + } +} + +// Fixed Footer +.footer-fixed { + footer { + position: fixed !important; + z-index: 1030; + right: 0; + left: 0; + bottom: 0; + + // Footer Light + &.footer-light { + background: $white; + box-shadow: $box-shadow; + } + // Footer Dark + &.footer-dark { + background: $gray-600; + color: $white; + } + } +} + +//! Fix: If footer is hidden add padding fix to avail card margin bottom +.footer-hidden { + .app-content { + padding-bottom: 0.1px !important; + } +} + +// scroll to Top Footer Button +.scroll-top { + position: fixed; + bottom: 5%; + right: 30px; + display: none; + z-index: 99; +} diff --git a/src/@core/scss/base/core/layouts/_sidebar.scss b/src/@core/scss/base/core/layouts/_sidebar.scss new file mode 100644 index 0000000..d29384b --- /dev/null +++ b/src/@core/scss/base/core/layouts/_sidebar.scss @@ -0,0 +1,79 @@ +/*========================================================================================= + File Name: sidebar.scss + Description: content sidebar specific scss. + ---------------------------------------------------------------------------------------- + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent +==========================================================================================*/ + +// Sidebar base +// ------------------------------ + +// Base +.sidebar { + position: relative; + width: 100%; + height: 100%; + + // For desktop only + @include media-breakpoint-up(lg) { + vertical-align: top; + } +} +.sidebar-fixed { + position: fixed; + height: 100%; + overflow: scroll; +} + +.sidenav-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + height: 120vh; + background-color: rgba($black, 0.5); + z-index: 997; + display: block; + visibility: hidden; + opacity: 0; + transition: all 0.5s ease; + &.show { + opacity: 1; + visibility: visible; + transition: all 0.5s ease; + } +} + +.drag-target { + height: 100%; + width: 40px; + position: fixed; + top: 0; + left: -10px; + z-index: 1036; +} + +.sidebar-detached{ + .sidebar{ + width: $sidebar-width; + } +} + +@include media-breakpoint-up(lg) { + .sidebar-left { + float: left; + } + .sidebar-right { + float: right; + } +} + +@include media-breakpoint-down(md) { + .sidebar-detached{ + .sidebar{ + width: 100%; + } + } +} diff --git a/src/@core/scss/base/core/menu/_navigation.scss b/src/@core/scss/base/core/menu/_navigation.scss new file mode 100644 index 0000000..0ea30c3 --- /dev/null +++ b/src/@core/scss/base/core/menu/_navigation.scss @@ -0,0 +1,206 @@ +/*========================================================================================= + File Name: navigation.scss + Description: Common mixin for menus, contain dark and light version scss. + ---------------------------------------------------------------------------------------- + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent +==========================================================================================*/ + +// Import first main menu mixin +@import '../mixins/main-menu-mixin'; + +// Main menu base +//============== +.main-menu { + z-index: 1031; + position: absolute; + display: table-cell; + height: 100%; + overflow: hidden; + + &.menu-light { + @include menu-theme($body-color, $white); + } + + &.menu-dark { + @include menu-theme($menu-dark-color, $menu-dark-bg-color); + } + + &.menu-fixed { + position: fixed; + } + &.menu-static { + height: 100%; + padding-bottom: calc(100% - 20rem); + .main-menu-content { + height: unset !important; + } + } + + &.menu-shadow { + box-shadow: 0 0 15px 0 rgba($black, 0.05); + } + + &.menu-border { + border-right: 1px solid $border-color; + } + + // menu scroll shadow + .shadow-bottom { + display: none; + position: absolute; + z-index: 2; + height: 50px; + width: 100%; + pointer-events: none; + margin-top: -0.7rem; + filter: blur(5px); + background: linear-gradient(#fff 41%, hsla(0, 0%, 100%, 0.11) 95%, hsla(0, 0%, 100%, 0)); + .bordered-layout & { + background: linear-gradient($body-bg 41%, hsla(0, 0%, 100%, 0.11) 95%, hsla(0, 0%, 100%, 0)); + } + } + + // Native Scrollbar (.menu-native-scroll) + &.menu-native-scroll { + .main-menu-content { + overflow-y: scroll !important; + } + } + + .navbar-header { + height: 100%; + width: $menu-expanded-width; + height: $navbar-height; + position: relative; + padding: 0.35rem 1rem 0.3rem 1.64rem; + transition: 300ms ease all, background 0s; + .navbar-brand { + display: flex; + align-items: center; + margin-top: 1.35rem; + font-size: inherit; + .brand-logo img { + max-width: 36px; + } + .brand-text { + color: $primary; + padding-left: 1rem; + margin-bottom: 0; + font-weight: 600; + letter-spacing: 0.01rem; + font-size: 1.45rem; + animation: 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) 0s normal forwards 1 fadein; + } + } + .modern-nav-toggle { + animation: 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) 0s normal forwards 1 fadein; + } + } + + .main-menu-content { + height: calc(100% - #{$navbar-height}) !important; + position: relative; + .ps__rail-y { + z-index: 3; + } + } + + ul { + list-style: none; + margin: 0; + padding: 0; + + &.navigation-main { + overflow-x: hidden; + padding-bottom: .75rem; + > li:first-child { + margin-top: 0.5rem; + } + } + } + + a { + outline: none; + + &:hover, + &:focus { + text-decoration: none; + } + } +} + +// Main Navigation +.navigation { + font-size: 1.1rem; + font-family: $font-family-monospace; + font-weight: 400; + overflow-y: hidden; + padding-bottom: 20px; + + .navigation-header { + font-family: $font-family-monospace; + font-weight: $headings-font-weight; + line-height: $headings-line-height; + padding: 12px 22px; + font-size: 0.9rem; + text-transform: uppercase; + } + + li { + position: relative; + white-space: nowrap; + + a { + display: block; + text-overflow: ellipsis; + overflow: hidden; + i, + svg { + height: 11px; + width: 11px; + font-size: 11px; + margin-right: 1.38rem; + } + } + + &.menu-item-animating { + transition: height 0.25s ease-in-out; + } + + &.disabled { + a { + cursor: not-allowed; + opacity: 0.65; + pointer-events: none; + } + } + } +} + +// Media queries for small screen devices +// ========================================= +@include media-breakpoint-down(sm) { + // menu hide/open animation + .menu-hide .main-menu, + .menu-open .main-menu { + transition: transform 0.25s, top 0.35s, height 0.35s; + } + + .main-menu { + transform: translate3d(-240px, 0, 0); + backface-visibility: hidden; + perspective: 1000; + } + + .menu-open .main-menu { + transform: translate3d(0, 0, 0); + } +} + +@include media-breakpoint-up(md) { + .drag-target { + z-index: 0; + } +} diff --git a/src/@core/scss/base/core/menu/menu-types/horizontal-menu.scss b/src/@core/scss/base/core/menu/menu-types/horizontal-menu.scss new file mode 100644 index 0000000..a52a7fd --- /dev/null +++ b/src/@core/scss/base/core/menu/menu-types/horizontal-menu.scss @@ -0,0 +1,589 @@ +/*========================================================================================= + File Name: horizontal-menu.scss + Description: A classic horizontal menu for easy navigation & support all devices. + It support light & dark version, flipped layout, right side icons, borders menu for + item separation. + ---------------------------------------------------------------------------------------- + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard TemplateTheme + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent +==========================================================================================*/ + +@import '../../../bootstrap-extended/include'; // Bootstrap includes +@import '../../../components/include'; // Components includes + +// Import first main menu mixin +@import '../../mixins/main-menu-mixin'; + +// Horizontal Menu +//========================= +.horizontal-menu { + // Content Area margin + .content { + margin-left: 0; + &.show-overlay { + .content-overlay { + z-index: 998 !important; + } + } + } + + // Navbar container spacing for all + .navbar.header-navbar { + .navbar-container { + padding: 0.8rem #{$content-padding}; + } + } + + .horizontal-menu-wrapper { + .header-navbar { + min-height: $horizontal-menu-height; + } + } + + footer { + position: static; + } + + //---------------// + // Navbar Header // + //---------------// + .horizontal-menu-wrapper { + position: fixed; + top: 62px; + z-index: 990; + width: 100%; + + .header-navbar { + .navbar-container { + padding: 0 1rem; + width: 100%; + } + .navbar-header { + display: none; + } + } + } + .header-navbar { + background: $white; + z-index: 999 !important; + line-height: 1; + min-height: auto; + // Navbar- Brand Center - Logo + &.navbar-horizontal.floating-nav { + width: calc(100vw - (100vw - 100%) - calc(#{$content-padding} * 2)); + background: $white; + } + .navbar-container { + border-radius: $border-radius; + } + &.navbar-fixed { + position: fixed; + width: 100%; + } + &.navbar-brand-center { + .navbar-header { + position: absolute; + left: calc(50% - 56px); // left 50% - branding width + padding: 0; + z-index: 1000; + .navbar-brand { + display: flex; + align-items: center; + margin-right: 0; + font-size: inherit; + .brand-logo img { + max-width: 170px; + } + + // Brand Text Scss + .brand-text { + color: $primary; + padding-left: 1rem; + margin-bottom: 0; + font-weight: 600; + letter-spacing: 0.01rem; + font-size: 1.45rem; + } + } + } + } + + &.navbar-horizontal { + .nav-link { + &.dropdown-toggle { + &::after { + left: 0.4rem; + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $body-color), '#', '%23')); + } + } + } + .sidebar-group-active { + .dropdown-toggle { + &::after { + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $white), '#', '%23')); + } + } + } + .dropdown-menu::before { + display: none; + } + .dropdown-menu { + min-width: 215px; + border: none; + margin-top: 0; + min-height: 52px; + .disabled { + pointer-events: none !important; + a { + color: $gray-600; + } + } + .dropdown-toggle::after { + left: auto; + position: absolute; + top: 50%; + margin-top: -7px; + right: 1rem; + // content: '\e844' !important; + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $body-color), '#', '%23')); + } + .dropdown-item { + font-size: 1rem; + padding-top: 0.68rem; + padding-bottom: 0.68rem; + display: flex; + align-items: center; + } + .dropdown-submenu { + position: relative; + + &.openLeft { + .dropdown-menu { + left: auto !important; + right: 100% !important; + } + } + + &.sidebar-group-active { + background: $body-bg; + } + + & > .dropdown-menu { + position: absolute; + top: 0 !important; + left: 100% !important; + i, + svg { + height: 11px !important; + width: 11px !important; + font-size: 11px !important; + } + } + } + } + ul#main-menu-navigation > li { + padding-top: 0.857rem; + padding-bottom: 0.857rem; + + > .dropdown-menu { + a { + & > * { + transition: all 0.2s ease; + } + &:hover { + background-color: transparent; + color: $body-color; + & > * { + transform: translateX(5px); + transition: transform 0.2s ease; + } + } + } + .active > a { + background: $body-bg; + color: $primary; + font-weight: 500; + } + .open { + &.active { + > a { + color: $body-color; + font-weight: normal; + } + } + } + } + i, + svg { + margin-right: 0.5rem; + height: 17px; + width: 17px; + font-size: 1.2rem; + } + > a { + padding: 0.715rem 1.25rem; + display: flex; + margin-right: 0.715rem; + } + &:hover { + > a { + background: $body-bg; + border-radius: 4px; + } + } + &.active { + > a { + background: linear-gradient(118deg, rgba($primary, 1), rgba($primary, 0.7)); + box-shadow: 0px 0px 6px 1px rgba($primary, 0.6); + color: $white; + border-radius: 4px; + } + } + } + } + } + + .navigation-header { + font-family: inherit; + color: #929292; + padding: 8px 20px; + font-size: 1rem; + text-transform: uppercase; + } + + .navbar-dark { + .nav-item { + &.active > a { + border-bottom: 2px solid $primary; + background-color: #313c50; + } + } + } +} + +.horizontal-layout { + // navbar floating + &.navbar-floating { + // Horizontal layout navbar shadow position and height fix + .header-navbar-shadow { + height: 80px; + } + @include media-breakpoint-up(xl) { + .header-navbar-shadow { + top: 45px; + } + } + &:not(.blank-page) { + .app-content { + // padding-top: 9.75rem; + padding: calc(#{$content-padding} + #{$navbar-height}* 2 + #{$floating-nav-margin}) #{$content-padding} 0 #{$content-padding}; // * 2 as we have 2 navbar (menu + navbar) in horizontal layout. + } + } + .horizontal-menu-wrapper { + background: linear-gradient( + to bottom, + rgba(248, 248, 248, 0.95) 44%, + rgba(248, 248, 248, 0.46) 73%, + rgba($white, 0) 100% + ); + background-repeat: repeat-x; + .navbar-horizontal.floating-nav { + margin: $floating-nav-margin $content-padding 0; + } + } + + // App content area wrapper height + &.footer-static { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + #{$footer-height}, + #{$floating-nav-margin}, + #{$horizontal-menu-height}, + 1, + $horizontalLayout: true + ); + } + } + } + &.footer-hidden { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + 0rem, + #{$floating-nav-margin}, + #{$horizontal-menu-height}, + 2, + $horizontalLayout: true + ); + } + } + } + &.footer-fixed { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + #{$footer-height}, + #{$floating-nav-margin}, + #{$horizontal-menu-height}, + 2, + $horizontalLayout: true + ); + } + } + } + } + + // navbar sticky + &.navbar-sticky { + .app-content { + padding: calc(#{$content-padding} + #{$navbar-height}* 2) #{$content-padding} 0 #{$content-padding}; + } + .header-navbar { + background-color: $body-bg; + box-shadow: none; + } + .horizontal-menu-wrapper { + .navbar-horizontal.header-navbar.fixed-top { + left: 0; + top: 62px; + background-color: $white; + box-shadow: 0 4px 24px 0 rgba($black, 0.1); + } + } + + // App content area wrapper height + &.footer-static { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + #{$footer-height}, + 0rem, + #{$horizontal-menu-height}, + 1, + $horizontalLayout: true + ); + } + } + } + &.footer-hidden { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + 0rem, + 0rem, + #{$horizontal-menu-height}, + 2, + $horizontalLayout: true + ); + } + } + } + &.footer-fixed { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + #{$footer-height}, + 0rem, + #{$horizontal-menu-height}, + 2, + $horizontalLayout: true + ); + } + } + } + } + // navbar static + &.navbar-static { + .app-content { + padding: calc(#{$content-padding} + #{$horizontal-menu-height}) #{$content-padding} 0 #{$content-padding}; + } + .content { + min-height: calc(100% - calc(#{$horizontal-menu-height} + calc(#{$footer-height} + 0.2rem))); + } + .header-navbar { + background-color: $body-bg; + box-shadow: none; + } + .horizontal-menu-wrapper { + position: relative; + .navbar-horizontal.header-navbar { + background: $white; + // ? Added for angular fix as it adds this class to navbar in hz layout + &.navbar-static-top { + left: 0; + width: 100%; + } + } + } + // App content area wrapper height + &.footer-static { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + calc(#{$footer-height} + 0.2rem), + 0rem, + #{$horizontal-menu-height}, + 1, + $horizontalLayout: true + ); + } + } + } + &.footer-hidden { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + 0rem, + 0rem, + #{$horizontal-menu-height}, + 2, + $horizontalLayout: true + ); + } + } + } + &.footer-fixed { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + #{$navbar-height}, + #{$footer-height}, + 0rem, + #{$horizontal-menu-height}, + 2, + $horizontalLayout: true + ); + } + } + } + } + + // navbar Hidden + &.navbar-hidden { + &.footer-static { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + 0rem, + #{$footer-height}, + 0rem, + #{$horizontal-menu-height}, + 1, + $horizontalLayout: true + ); + } + } + } + &.footer-hidden { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + 0rem, + 0rem, + 0rem, + #{$horizontal-menu-height}, + 2, + $horizontalLayout: true + ); + } + } + } + &.footer-fixed { + .app-content { + .content-area-wrapper, + .kanban-wrapper { + @include content-area-wrapper-height( + #{$content-padding}, + 0rem, + #{$footer-height}, + 0rem, + #{$horizontal-menu-height}, + 2, + $horizontalLayout: true + ); + } + } + } + } + + &.vertical-overlay-menu { + #main-menu-navigation { + > li { + > ul { + > li { + > a { + i, + svg { + height: 1rem; + width: 1rem; + font-size: 1rem; + } + } + } + } + } + } + } +} + +// Initially menu & content width for md and down screen +@include media-breakpoint-down(lg) { + .horizontal-layout { + &.horizontal-menu { + .horizontal-menu-wrapper { + .header-navbar { + display: none; + } + } + } + .header-navbar { + background: $white; + } + .app-content { + padding: calc(#{$navbar-height} + calc(#{$content-padding} - 0.8rem)) calc(#{$content-padding} - 0.8rem) 0 + calc(#{$content-padding} - 0.8rem) !important; + } + } +} + +@include media-breakpoint-down(xs) { + // For static navbar + html body.horizontal-layout.navbar-static .app-content { + padding: calc(#{$content-padding} - 0.8rem + #{$navbar-height}) calc(#{$content-padding} - 0.8rem) 0 + calc(#{$content-padding} - 0.8rem) !important; // - 0.8rem to reduce padding in small screen + } +} +// Import vertical-overlay-menu.scss for small screen support +@import 'vertical-overlay-menu.scss'; diff --git a/src/@core/scss/base/core/menu/menu-types/vertical-menu.scss b/src/@core/scss/base/core/menu/menu-types/vertical-menu.scss new file mode 100644 index 0000000..92374a2 --- /dev/null +++ b/src/@core/scss/base/core/menu/menu-types/vertical-menu.scss @@ -0,0 +1,295 @@ +/*========================================================================================= + File Name: vertical-menu.scss + Description: A classic vertical modern style menu with expand and collops support. It support + light & dark version, flipped layout, right side icons, native scroll and borders menu + item separation. + ---------------------------------------------------------------------------------------- + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent +==========================================================================================*/ + +@import '../../../bootstrap-extended/include'; // Bootstrap includes +@import '../../../components/include'; // Components includes + +// Import first main menu mixin +@import '../../mixins/main-menu-mixin'; + +// Vertical menu +//========================= +.vertical-layout { + &.vertical-menu-modern { + .main-menu { + transition: 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), background 0s; + transform: translate3d(0, 0, 0); + backface-visibility: hidden; + .navigation { + li a { + align-items: center; + } + > li > a svg, + > li > a i { + height: 20px; + width: 20px; + font-size: 1.45rem; + margin-right: 1.1rem; + flex-shrink: 0; + } + // Sub-menu icon size + .menu-content { + > li > a svg, + > li > a i { + margin-right: 1.45rem; + font-size: 11px; + height: 11px; + width: 11px; + } + } + } + } + + //Vertical menu [Expanded] + &.menu-expanded { + // Main menu expanded + .main-menu { + width: $menu-expanded-width; + .navigation { + .navigation-header { + .feather-more-horizontal { + display: none; + } + } + > li { + > a { + > i, + > svg { + &:before { + height: 20px; + width: 20px; + font-size: 1.45rem; + } + } + } + } + li { + @include vertical-menu-has-sub-arrow($font-size-base + 0.1); + } + } + } + //Content expanded + .footer { + @include main-menu-width($menu-expanded-width); + } + } + //Vertical menu [Collapsed] + &.menu-collapsed { + //Navbar collapsed + .navbar { + .navbar-header { + @include menu-navbar-width($menu-collapsed-width); + .modern-nav-toggle { + display: none; + } + &.expanded { + width: $menu-expanded-width; + z-index: 1000; + .modern-nav-toggle { + display: block; + } + } + } + // fixed-top navbar when menu-collapsed + &.fixed-top { + left: $menu-collapsed-width; + } + } + // Main menu collapsed + .main-menu { + width: $menu-collapsed-width; + + .navbar-header .brand-text, + .modern-nav-toggle { + display: none; + } + + // When menu is collapsed and mouse is not hovered over menu + &:not(.expanded) { + .navigation-header { + margin-left: 2.2rem; + span { + display: none; + } + .feather-more-horizontal { + display: block; + font-size: 1.285rem; + width: 18px; + height: 18px; + } + } + .navigation li { + &:last-child { + margin-bottom: 1.25rem !important; + } + &.active { + a { + background: whitesmoke; + box-shadow: none; + color: #565656; + } + } + } + } + + // When menu is collapsed but mouse is hovered over menu + &.expanded { + width: $menu-expanded-width; + .navigation { + > li.navigation-header { + span { + display: block; + } + .feather-more-horizontal { + display: none; + } + } + li { + @include vertical-menu-has-sub-arrow(1rem); + } + } + .navbar-header .brand-text { + display: inline; + } + .modern-nav-toggle { + display: block; + } + } + + //Navigation collapsed + .navigation { + overflow: visible; + > li.navigation-header { + span { + display: none; + } + } + > li { + > a { + text-overflow: inherit; + } + } + } + } + //Brand center content collapsed + .app-content, + .footer { + @include main-menu-width($menu-collapsed-width); + } + .header-navbar { + // Floating-navbar + &.floating-nav { + width: calc(100vw - (100vw - 100%) - 4.4rem - 74px); + } + // Navbar-static-top + &.navbar-static-top { + width: calc(100vw - (100vw - 100%) - 74px); + left: 74px; + } + } + } + + .toggle-icon, + .collapse-toggle-icon { + margin-right: 0.425rem; + &:focus { + outline: none; + } + } + } +} + +// Initially menu & content width for lg and up screen +@include media-breakpoint-up(lg) { + .vertical-layout { + &.vertical-menu-modern { + .main-menu { + width: $menu-expanded-width; + } + } + } +} + +// Initially menu & content width for md and down screen +@include media-breakpoint-down(lg) { + .vertical-layout { + &.vertical-menu-modern { + // not using this class in below < 992 + .main-menu { + width: 0; + } + .navbar { + .navbar-header { + width: 0; + } + } + .content, + .footer { + @include main-menu-width(0); + } + &.menu-collapsed { + .app-content, + .footer { + margin-left: 0; + } + .main-menu { + width: 0; + } + } + } + } +} + +// Initially menu & content width for sm and down screen +@include media-breakpoint-down(sm) { + .vertical-layout { + &.vertical-menu-modern { + // not using this class <992 + .main-menu { + width: 0; + } + .navbar { + .navbar-header { + width: 0; + } + } + .content, + .footer { + @include main-menu-width(0); + } + } + } +} + +@keyframes fadein { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fadeout { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +// IE Specific CSS +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .vertical-menu-modern.vertical-layout .main-menu .navigation > li > a > span { + animation: none; + } +} +// Import vertical-overlay-menu.scss for small screen support +@import 'vertical-overlay-menu.scss'; diff --git a/src/@core/scss/base/core/menu/menu-types/vertical-overlay-menu.scss b/src/@core/scss/base/core/menu/menu-types/vertical-overlay-menu.scss new file mode 100644 index 0000000..bd0134c --- /dev/null +++ b/src/@core/scss/base/core/menu/menu-types/vertical-overlay-menu.scss @@ -0,0 +1,79 @@ +/*========================================================================================= + File Name: vertical-overlay-menu.scss + Description: A overlay style vertical menu with show and hide support. It support + light & dark version, filpped layout, right side icons, native scroll and borders menu + item seperation. + ---------------------------------------------------------------------------------------- + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent +==========================================================================================*/ + +@import '../../../bootstrap-extended/include'; // Bootstrap includes +@import '../../../components/include'; // Components includes + +// Import first main menu mixin +@import '../../mixins/main-menu-mixin'; + +// Vertical Overlay Menu +//========================= +.vertical-overlay-menu { + //Content expanded + .content { + @include main-menu-width(0); + } + //Navbar expanded + .navbar { + .navbar-header { + @include menu-navbar-width($menu-expanded-width); + } + } + // Main menu expanded + .main-menu { + opacity: 0; + transform: translate3d(0, 0, 0); + transition: width 0.25s, opacity 0.25s, transform 0.25s; + width: $menu-expanded-width; + left: -($menu-expanded-width); + + .navigation { + > li { + > a { + > svg, + > i { + margin-right: 14px; + float: left; + transition: 200ms ease all; + height: 20px; + width: 20px; + &:before { + transition: 200ms ease all; + font-size: 1.429rem; + } + } + } + } + li { + @include vertical-menu-has-sub-arrow(1rem); + } + + .navigation-header { + .feather-more-horizontal { + display: none; + } + } + } + } + &.menu-open { + .main-menu { + opacity: 1; + transform: translate3d($menu-expanded-width, 0, 0); + transition: width 0.25s, opacity 0.25s, transform 0.25s; + } + } + &.menu-hide { + .main-menu { + @extend .main-menu; + } + } +} diff --git a/src/@core/scss/base/core/mixins/alert.scss b/src/@core/scss/base/core/mixins/alert.scss new file mode 100644 index 0000000..6e2332e --- /dev/null +++ b/src/@core/scss/base/core/mixins/alert.scss @@ -0,0 +1,5 @@ +// For alert's heading box-shadow + +@mixin alert-heading-bs($color) { + box-shadow: rgba($color, 0.4) 0px 6px 15px -7px; +} diff --git a/src/@core/scss/base/core/mixins/hex2rgb.scss b/src/@core/scss/base/core/mixins/hex2rgb.scss new file mode 100644 index 0000000..9fdddf0 --- /dev/null +++ b/src/@core/scss/base/core/mixins/hex2rgb.scss @@ -0,0 +1,4 @@ +@mixin bg-opacity($color, $opacity: 1) { + background: $color; /* The Fallback */ + background: rgba($color, $opacity); +} diff --git a/src/@core/scss/base/core/mixins/main-menu-mixin.scss b/src/@core/scss/base/core/mixins/main-menu-mixin.scss new file mode 100644 index 0000000..6e1df8c --- /dev/null +++ b/src/@core/scss/base/core/mixins/main-menu-mixin.scss @@ -0,0 +1,359 @@ +// ========================================================================================= +// File Name: main-menu-mixin.scss +// Description: Common mixin for menus, contain dark and light version scss. +// ---------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +//========================================================================================== + +// Header navbar content and brand expanded & collapsed stats +// spacing and sizing. +// ================================================ + +// Mixins for the menu and navbar position, margin and width change +@mixin main-menu-width($menu-width) { + margin-left: $menu-width; +} +@mixin menu-navbar-width($menu-width) { + float: left; + width: $menu-width; +} +// Mixins for the menu show hide based on width +@mixin vertical-menu-transform-show($transform-width) { + transform: translate3d($transform-width, 0, 0); + backface-visibility: hidden; + perspective: 1000; +} +@mixin vertical-menu-transform-hide() { + transform: translate3d(0, 0, 0); +} + +// Mixins for the sub menu arrow +@mixin vertical-menu-has-sub-arrow($arrow-font-size) { + &.has-sub { + > a:after { + content: ''; + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $body-color), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: $arrow-font-size; + height: $arrow-font-size; + width: $arrow-font-size; + display: inline-block; + position: absolute; + right: 20px; + top: 14px; + transform: rotate(0deg); + transition: all 0.2s ease-out; + } + &.open:not(.menu-item-closing) { + > a:after { + transform: rotate(90deg); + } + } + } +} +// Used for apps +@mixin content-area-wrapper-height( + $contentPadding: 0rem, + $navbarHeight: 0rem, + $footerHeight: 0rem, + $floatingNavMargin: 0rem, + $horizontalMenuHeight: 0rem, + $spacingSides: 1, + $horizontalLayout: false +) { + height: calc( + 100vh - + calc( + calc(#{$contentPadding} * #{$spacingSides}) + #{$navbarHeight} + #{$footerHeight} + #{$floatingNavMargin} + #{$horizontalMenuHeight} + ) + ); + height: calc( + var(--vh, 1vh) * 100 - + calc( + calc(#{$contentPadding} * #{$spacingSides}) + #{$navbarHeight} + #{$footerHeight} + #{$floatingNavMargin} + #{$horizontalMenuHeight} + ) + ); + // responsive size height + @if $horizontalLayout { + @include media-breakpoint-down(lg) { + height: calc( + 100vh - calc(calc(calc(#{$contentPadding} - 0.8rem) * #{$spacingSides}) + #{$navbarHeight} + #{$footerHeight}) + ); + height: calc( + var(--vh, 1vh) * 100 - + calc(calc(calc(#{$contentPadding} - 0.8rem) * #{$spacingSides}) + #{$navbarHeight} + #{$footerHeight}) + ); + } + } @else { + @include media-breakpoint-down(xs) { + height: calc( + 100vh - + calc( + calc(calc(#{$contentPadding} * #{$spacingSides}) - calc(0.8rem * #{$spacingSides})) + #{$navbarHeight} + #{$footerHeight} + + #{$floatingNavMargin} + #{$horizontalMenuHeight} + ) + ); + height: calc( + var(--vh, 1vh) * 100 - + calc( + calc(calc(#{$contentPadding} * #{$spacingSides}) - calc(0.8rem * #{$spacingSides})) + #{$navbarHeight} + #{$footerHeight} + + #{$floatingNavMargin} + #{$horizontalMenuHeight} + ) + ); + } + } +} + +// Light & Dark menu mixin +// $theme-color : Menu text color +// $theme-bg : Menu background color +// ================================================ +@mixin menu-theme($theme-color, $theme-bg) { + $main-menu-top-open-color: darken($theme-color, 10%); + $main-menu-top-open-hover-bg: darken($theme-bg, 6%); + $main-menu-top-open-head-bg: darken($theme-bg, 4%); + + $main-menu-top-active-head-bg: darken($theme-bg, 4%); //$primary + + $main-menu-sub-color: $theme-color; + $main-menu-sub-hover-color: lighten($theme-color, 4%); + + $main-menu-sub-open-color: $theme-color; + + color: $theme-color; + background: $theme-bg; + + .navigation { + background: $theme-bg; + .navigation-header { + color: lighten($theme-color, 21.5%); + margin: calc(#{$content-padding} + 0.286rem) 0 0.8rem ($content-padding + 0.2rem); + padding: 0; + line-height: 1.5; + letter-spacing: 0.01rem; + span { + font-weight: 500; + } + } + li { + &.has-sub { + > a { + transition: all 0.5s ease, background 0s, color 0s; + } + } + a { + color: darken($theme-color, 4.9%); + padding: $menu-padding; + line-height: 1.45; + + span.menu-sub-title { + color: lighten($theme-color, 30%); + } + + & > * { + transition: transform 0.25s ease; + } + } + } + + // Menu Item Hover Animation + li.nav-item { + a:hover > * { + transition: transform 0.25s ease; + transform: translateX(5px); + } + ul.menu-content { + li { + a:hover > * { + transition: transform 0.25s ease; + transform: translateX(5px); + } + } + } + } + + > li { + > a { + margin: 0 15px; + .label { + margin-top: 4px; + margin-right: 5px; + } + i, + svg { + position: relative; + top: 1px; + } + } + > ul li { + &:first-of-type { + margin-top: 7px !important; + } + + &:not(.has-sub) { + margin: 0 15px; + } + &.has-sub { + > a { + margin: 0 15px; + } + + > ul > li { + margin: 0 15px; + } + } + } + &.open:not(.menu-item-closing), + &.sidebar-group-active { + > a { + color: $main-menu-top-open-color; + background: $main-menu-top-open-head-bg; + border-radius: 6px; + } + } + + &:not(.open) { + > ul { + display: none; + .active { + background: transparent; + box-shadow: none; + } + } + } + &.active { + z-index: 1; + > a { + background: linear-gradient(118deg, rgba($primary, 1), rgba($primary, 0.7)); + box-shadow: 0 0 10px 1px rgba($primary, 0.7); + color: $white; + font-weight: 400; + border-radius: 4px; + } + } + + .active { + background: $main-menu-top-open-hover-bg; + + > a { + color: $primary; + margin-bottom: 0; + } + + .hover, + :hover { + > a { + background: $main-menu-top-active-head-bg; + } + } + } + + ul { + padding: 0; + margin: 0; + + li { + color: $main-menu-sub-color; + background: transparent; + > a { + padding: $menu-second-level-padding; + } + ul { + a { + padding: $menu-third-level-padding; + } + } + } + .has-sub { + &:not(.open) { + > ul { + display: none; + .active { + background: transparent; + box-shadow: none; + } + } + } + } + .open, + .sidebar-group-active { + > a { + color: $main-menu-sub-open-color; + background: $main-menu-top-active-head-bg; + border-radius: 6px; + } + //for 2rd level menu + > ul { + display: block; + //for 3rd level menu + .open { + > ul { + display: block; + } + } + } + } + + .hover, + &:hover { + > a { + color: $main-menu-sub-hover-color; + } + } + + .active { + background: linear-gradient(118deg, rgba($primary, 1), rgba($primary, 0.7)); + box-shadow: 0 0 10px 1px rgba($primary, 0.7); + border-radius: 4px; + z-index: 1; + > a { + color: $white; + } + } + } + } + } +} +// Menu content display mixin +// $menu-expanded-width : Expanded menu width +// $menu-collapsed-width: Collapsed menu width +// ================================================ +@mixin menu-content($menu-expanded-width, $menu-collapsed-width, $theme-color, $theme-bg) { + .main-menu-content { + > span.menu-title, + a.menu-title { + right: -($menu-expanded-width); + width: $menu-expanded-width; + font-weight: 600; + color: #fff; + text-transform: uppercase; + text-align: left; + background-color: $primary; + border-color: $primary; + padding: 13px 20px; + } + > ul.menu-content { + left: $menu-collapsed-width; + width: $menu-expanded-width; + transition: visibility 0.25s, opacity 0.25s; + box-shadow: 1px 0px 2px rgba($black, 0.1); + border-bottom: 2px solid rgba($black, 0.2); + border-left: 1px solid rgba($black, 0.02); + + li { + white-space: nowrap; + position: relative; + + a { + display: block; + padding: 8px 20px 8px 20px; + } + + @include vertical-menu-has-sub-arrow(1rem); + } + } + } +} diff --git a/src/@core/scss/base/core/mixins/transitions.scss b/src/@core/scss/base/core/mixins/transitions.scss new file mode 100644 index 0000000..66c31e1 --- /dev/null +++ b/src/@core/scss/base/core/mixins/transitions.scss @@ -0,0 +1,30 @@ +@mixin transition($transition) { + -moz-transition: $transition; + -o-transition: $transition; + -webkit-transition: $transition; + transition: $transition; +} +@mixin transition-property($property) { + -moz-transition-property: $property; + -o-transition-property: $property; + -webkit-transition-property: $property; + transition-property: $property; +} +@mixin transition-duration($duration) { + -moz-transition-property: $duration; + -o-transition-property: $duration; + -webkit-transition-property: $duration; + transition-property: $duration; +} +@mixin transition-timing-function($timing) { + -moz-transition-timing-function: $timing; + -o-transition-timing-function: $timing; + -webkit-transition-timing-function: $timing; + transition-timing-function: $timing; +} +@mixin transition-delay($delay) { + -moz-transition-delay: $delay; + -o-transition-delay: $delay; + -webkit-transition-delay: $delay; + transition-delay: $delay; +} diff --git a/src/@core/scss/base/custom-rtl.scss b/src/@core/scss/base/custom-rtl.scss new file mode 100644 index 0000000..bb49108 --- /dev/null +++ b/src/@core/scss/base/custom-rtl.scss @@ -0,0 +1,355 @@ +// ================================================================================================ +// File Name: custom-rtl.scss +// Description: RTL support SCSS file. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// Variables +// ------------------------------ + +@import 'bootstrap-extended/include'; // Bootstrap includes +@import 'components/include'; // Components includes + +// Align icons position +.main-menu { + .navigation li > a > svg, + .navigation li > a > i, + .dropdown-menu svg, + .dropdown-menu i, + .dropdown-user > a > svg, + .dropdown-user > a > i, + .navigation > li > a > svg, + .navigation > li > a > i { + float: right; + } + + .navigation > li ul li > a { + display: flex; + align-items: center; + } +} + +// Transformed menu icons +.vertical-layout.vertical-menu-modern.menu-expanded .main-menu .navigation li.has-sub > a:after, +.vertical-layout.vertical-overlay-menu.menu-open .main-menu .navigation li.has-sub > a:after { + transform: rotate(180deg); +} +.vertical-layout.vertical-menu-modern.menu-expanded + .main-menu + .navigation + li.has-sub.open:not(.menu-item-closing) + > a:after { + transform: rotate(90deg); +} + +// Horizontal menu +.horizontal-menu .header-navbar.navbar-horizontal .dropdown-menu .dropdown-toggle::after { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $body-color), '#', '%23')); +} + +// Dropdown RTL Changes +.header-navbar .navbar-container ul.nav li.dropdown { + .dropdown-menu { + top: 41px !important; + + &::before { + top: 1px; + } + } +} + +.header-navbar { + .dropdown, + .dropup { + .dropdown-menu.dropdown-menu-right::before { + right: auto; + left: 0.5rem; + } + } +} + +.dropdown, +.dropup, +.btn-group { + .dropdown-menu { + right: auto !important; + top: 0 !important; + left: auto !important; + + &.dropdown-menu-right { + left: 0 !important; + + &::before { + right: 0.6rem; + left: auto; + } + } + } +} + +.dropleft { + .dropdown-toggle { + &::before { + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $white), '#', '%23')) !important; + } + } + .dropdown-menu { + left: 0 !important; + margin-left: 0; + margin-right: 0.5rem; + } +} + +.dropright { + .dropdown-toggle { + &::after { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $white), '#', '%23')) !important; + } + } + .dropdown-menu { + left: 0 !important; + margin-right: 0; + margin-left: 0.5rem; + } +} + +// Input Group dropdown +.input-group { + .dropdown-menu.show { + top: 0 !important; + right: auto !important; + left: 0px !important; + } +} + +// BS Toast +.toast { + right: 1rem; +} + +// Select2 +.select2-container--default .select2-selection--single .select2-selection__arrow { + left: 1px; +} +.select2-container--default .select2-selection--multiple .select2-selection__choice { + float: right; +} +.select2-search__field { + direction: rtl; +} + +// Chartist +.chartjs-render-monitor { + margin-right: 1rem; +} + +// Datatable +div.dataTables_wrapper div.dataTables_filter { + text-align: left !important; +} +table.dataTable thead .sorting:before, +table.dataTable thead .sorting_asc:before, +table.dataTable thead .sorting_desc:before { + right: 0.45rem; +} + +// Avatar group +.avatar-group { + // Avatar Group Sizings + .avatar { + margin-right: -0.785rem; + margin-left: 0; + } + .avatar-sm { + margin-right: -0.65rem; + } + .avatar-lg { + margin-right: -1.5rem; + } + .avatar-xl { + margin-right: -1.85rem; + } +} + +// Breadcrumb +.breadcrumb:not([class*='breadcrumb-']), +.breadcrumb.breadcrumb-chevron { + .breadcrumb-item + .breadcrumb-item { + &:before { + transform: rotate(180deg); + } + } +} + +// Pagination +.pagination .page-item { + &.prev-item, + &.prev, + &.previous { + .page-link { + &:before { + transform: rotate(180deg); + } + &:hover, + &:active { + &:before { + transform: rotate(180deg); + } + } + } + &.disabled { + .page-link { + &:before { + transform: rotate(180deg); + } + } + } + } + + &.next-item, + &.next { + .page-link { + &:after { + transform: rotate(180deg); + } + &:hover, + &:active { + &:after { + transform: rotate(180deg); + } + } + } + &.disabled { + .page-link { + &:before { + transform: rotate(180deg); + } + } + } + } +} + +code[class*='language-'], +pre[class*='language-'] { + direction: ltr; +} + +@media print { + code[class*='language-'], + pre[class*='language-'] { + text-shadow: none; + } +} + +// Calendar +.fc .fc-header-toolbar .fc-right .fc-button.fc-prev-button .fc-icon { + right: 4px !important; +} + +.fc .fc-header-toolbar .fc-right .fc-button.fc-next-button .fc-icon { + left: -3px !important; +} + +// carousel changes +.carousel-control-next { + left: auto; + right: 0; +} + +.carousel-control-prev { + left: 0; + right: auto; +} + +// Tooltip +.bs-tooltip-left .arrow::before, +.bs-tooltip-auto[x-placement^='left'] .arrow::before { + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: $tooltip-bg; +} + +.bs-tooltip-left .arrow, +.bs-tooltip-auto[x-placement^='left'] .arrow { + right: 0; + left: auto; +} + +.bs-tooltip-right .arrow::before, +.bs-tooltip-auto[x-placement^='right'] .arrow::before { + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: $tooltip-bg; +} + +.bs-tooltip-right .arrow, +.bs-tooltip-auto[x-placement^='right'] .arrow { + left: 0; + right: auto; +} + +// Popover Style +.popover { + right: auto !important; +} + +// Progress +.progress-bar-animated { + animation: progress-bar-stripes 40s linear infinite; +} + +// Perfect scrollbar RTL fix +body .ps__rail-y { + right: auto !important; + left: 1px !important; +} + +// FAQ and Pricing page +.faq-navigation img, +.pricing-free-trial .pricing-trial-img { + transform: scaleX(-1); +} + +.feather-chevron-left, +.feather-chevron-right { + transform: rotate(-180deg) !important; +} + +// Kanban +.kanban-application { + .kanban-container { + .kanban-item { + i, + svg { + margin-right: 0 !important; + margin-left: 0.25rem; + } + } + } +} + +// Invoice List +.invoice-list-wrapper { + .dataTables_filter { + input { + margin-left: 0 !important; + margin-right: 0.5rem; + } + } + + .dropdown .dropdown-menu.dropdown-menu-right { + left: 2rem !important; + } +} + +// File Manager +.file-manager-application { + .sidebar-file-manager { + .sidebar-inner { + .my-drive .jstree-node.jstree-closed > .jstree-icon { + transform: rotate(180deg); + } + } + } +} diff --git a/src/@core/scss/base/pages/app-calendar.scss b/src/@core/scss/base/pages/app-calendar.scss new file mode 100644 index 0000000..958c4d9 --- /dev/null +++ b/src/@core/scss/base/pages/app-calendar.scss @@ -0,0 +1,413 @@ +// Core variables and mixins + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +$fc-calendar-height: 650px; +$fc-sidebar-width: 18rem; +$fc-event-font-weight: 600; +$fc-event-font-size: 0.8rem; +$fc-event-padding-x: 0.5rem; +$fc-event-padding-y: 0.25rem; +$fc-toolbar-btn-padding: 0.438rem 0.5rem; +$fc-day-toggle-btn-padding: 0.55rem 1.5rem; + +// Full calendar styles +.fc { + // Toolbar + .fc-toolbar { + flex-wrap: wrap; + flex-direction: row !important; + .fc-prev-button, + .fc-next-button { + display: inline-block; + background-color: transparent; + border-color: transparent; + .fc-icon { + color: $body-color; + } + &:hover, + &:active, + &:focus { + background-color: transparent !important; + border-color: transparent !important; + box-shadow: none !important; + } + } + .fc-prev-button { + padding-left: 0 !important; + } + .fc-toolbar-chunk:first-child { + display: flex; + align-items: center; + flex-wrap: wrap; + } + .fc-button { + padding: $fc-toolbar-btn-padding; + &:active, + &:focus { + box-shadow: none; + } + } + .fc-button-group { + .fc-button { + text-transform: capitalize; + &:focus { + box-shadow: none; + } + } + .fc-button-primary { + &:not(.fc-prev-button):not(.fc-next-button) { + // background-color: rgba($primary, 0.1); + background-color: transparent; + border-color: $primary; + color: $primary; + &.fc-button-active, + &:hover { + background-color: rgba($color: $primary, $alpha: 0.2) !important; + border-color: $primary !important; + color: $primary; + } + } + &.fc-sidebarToggle-button { + border: 0; + + i, + svg { + height: 21px; + width: 21px; + font-size: 21px; + } + } + } + .fc-sidebarToggle-button { + padding-left: 0; + background-color: transparent !important; + color: $body-color !important; + + &:not(.fc-prev-button):not(.fc-next-button):hover { + background-color: transparent !important; + } + + & + div { + margin-left: 0; + } + } + .fc-dayGridMonth-button, + .fc-timeGridWeek-button, + .fc-timeGridDay-button, + .fc-listMonth-button { + padding: $fc-day-toggle-btn-padding; + + &:last-child, + &:first-child { + border-radius: $btn-border-radius; + } + &:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + &:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + } + } + & > * > :not(:first-child) { + margin-left: 0rem; + } + .fc-toolbar-title { + margin-left: 0.25rem; + } + .fc--button:empty, + .fc-toolbar-chunk:empty { + display: none; + } + } + + // Calendar head & body common + tbody td, + thead th { + border-color: $border-color; + &.fc-col-header-cell { + border-right: 0; + border-left: 0; + } + } + + .fc-view-harness { + min-height: $fc-calendar-height; + } + + // Daygrid + .fc-scrollgrid-section-liquid > td { + border-bottom: 0; + } + .fc-daygrid-event-harness { + .fc-event { + font-size: $fc-event-font-size; + font-weight: $fc-event-font-weight; + padding: $fc-event-padding-y $fc-event-padding-x; + } + & + .fc-daygrid-event-harness { + margin-top: 0.3rem; + } + } + .fc-daygrid-day-bottom { + margin-top: 0.3rem; + } + .fc-daygrid-day { + padding: 5px; + .fc-daygrid-day-top { + flex-direction: row; + } + } + + // All Views Event + .fc-daygrid-day-number, + .fc-timegrid-slot-label-cushion, + .fc-list-event-time { + color: $body-color; + } + .fc-day-today { + background: $body-bg !important; + background-color: $body-bg !important; + } + + // Timegrid + .fc-timegrid { + .fc-scrollgrid-section { + .fc-col-header-cell, + .fc-timegrid-axis { + border-color: $border-color; + border-left: 0; + border-right: 0; + } + .fc-timegrid-axis { + border-color: $border-color; + } + } + .fc-timegrid-axis { + &.fc-scrollgrid-shrink { + .fc-timegrid-axis-cushion { + text-transform: capitalize; + color: $text-muted; + } + } + } + .fc-timegrid-slots { + .fc-timegrid-slot { + height: 3rem; + .fc-timegrid-slot-label-frame { + text-align: center; + .fc-timegrid-slot-label-cushion { + text-transform: uppercase; + } + } + } + } + .fc-timegrid-divider { + display: none; + } + } + + // List View + .fc-list { + border-color: $border-color; + .fc-list-day-cushion { + background: $body-bg; + } + .fc-list-event { + &:hover { + td { + background-color: $body-bg; + } + } + td { + border-color: $border-color; + } + } + } +} + +// App Calendar specific +.app-calendar { + position: relative; + border-radius: $card-border-radius; + margin-bottom: 2rem; + .app-calendar-sidebar { + position: absolute; + left: calc(-#{$fc-sidebar-width} - 1.2rem); + width: $fc-sidebar-width; + height: 100%; + z-index: 5; + background-color: $card-bg; + border-right: 1px solid $border-color; + flex-basis: $fc-sidebar-width; + transition: all 0.2s, background 0s, border 0s; + &.show { + left: 0; + } + .sidebar-content-title { + font-size: 0.85rem; + color: $text-muted; + text-transform: uppercase; + letter-spacing: 0.6px; + } + .select-all, + .input-filter { + & ~ label { + color: $headings-color; + font-weight: 500; + letter-spacing: 0.4px; + } + } + } + + // right sidebar area styles + .event-sidebar { + position: absolute; + top: 0; + right: 0; + width: 400px; + z-index: 15; + transform: translateX(120%); + transition: all 0.3s ease-in-out; + + .card { + height: calc(100vh - 12.96rem); + height: calc(var(--vh, 1vh) * 100 - 12.96rem); + border-radius: 0 $border-radius-sm $border-radius-sm 0; + + .close-bar { + cursor: pointer; + } + + .todo-item-action { + width: 6rem; + + .todo-item-info, + .todo-item-favorite, + .dropdown { + cursor: pointer; + line-height: 1.5; + } + .dropdown .dropdown-menu .dropdown-item { + padding: 0.14rem 1.428rem; + } + .dropdown-toggle::after { + display: none; + } + } + } + + &.show { + transform: translateX(0); + } + } + + .fc-toolbar { + h2 { + font-size: 1.45rem; + } + } + .fc-header-toolbar { + margin-bottom: 1.75rem !important; + } + .fc-view-harness { + margin: 0 -1.6rem; + } + .fc-scrollgrid { + border-color: $border-color; + } + .fc-day-past, + .fc-day-future { + .fc-daygrid-day-number { + color: $text-muted; + } + } + .fc-popover { + box-shadow: $box-shadow; + .fc-popover-header { + background: transparent; + padding: 0.5rem; + .fc-popover-title, + .fc-popover-close { + color: $headings-color; + } + } + .fc-popover-body { + *:not(:last-of-type) { + margin-bottom: 0.3rem; + } + } + } + + .fc { + .fc-event { + .fc-event-main { + color: inherit; + } + } + } + .fc-list-event { + background: transparent !important; + } + + @media (min-width: 992px) { + .app-calendar-sidebar { + position: static; + height: auto; + box-shadow: none !important; + + .flatpickr-days { + background-color: transparent; + } + } + } +} + +// Event Sidebar +.event-sidebar { + .select2-selection__choice__remove { + &:before { + top: 40% !important; + } + } +} + +// Horizontal Menu +.horizontal-layout { + .app-calendar { + margin-bottom: 1rem; + } +} + +// Media Queries +@media (max-width: 992px) { + .fc { + .fc-sidebarToggle-button { + font-size: 0; + } + } +} + +@media (min-width: 992px) { + .fc { + .fc-sidebarToggle-button { + display: none; + } + } +} + +@media (max-width: 700px) { + .app-calendar { + .fc { + .fc-header-toolbar { + .fc-toolbar-chunk:last-of-type { + margin-top: 1rem; + } + } + } + } +} diff --git a/src/@core/scss/base/pages/app-chat-list.scss b/src/@core/scss/base/pages/app-chat-list.scss new file mode 100644 index 0000000..a9ea431 --- /dev/null +++ b/src/@core/scss/base/pages/app-chat-list.scss @@ -0,0 +1,128 @@ +// ================================================================================================ +// File Name: app-chat-area.scss +// Description: SCC file for chat area application page. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +@import '../core/colors/palette-variables'; + +@import 'bootstrap/scss/mixins/_gradients'; +@import 'bootstrap/scss/mixins/gradients'; + +//Variables +$chat-image-back-color: #f2f0f7; +$chat-head-footer-height: 65px; +$chat-widget-head-footer-height: 56px; +$chat-widget-height: 390px; + +// User chat window css +.chat-app-window { + // User chats + .user-chats { + background-color: $chat-image-back-color; + padding: 1rem; + position: relative; + height: calc(100% - #{$chat-head-footer-height} - #{$chat-head-footer-height}); + .avatar { + img { + border: 2px solid $white; + } + } + } + .active-chat { + height: inherit; + .chat-header { + display: flex; + justify-content: space-between; + height: $chat-head-footer-height; + background-color: $white; + padding: 0 1rem; + border-bottom: 1px solid $border-color; + } + } + + // Chat area css + .chats { + .chat-avatar { + float: right; + } + .chat-body { + display: block; + margin: 10px 0 0 0; + overflow: hidden; + .chat-content { + float: right; + padding: 0.7rem 1rem; + margin: 0 0 10px 0; + clear: both; + color: $white; + @include gradient-directional(map-get($primary-color, 'base'), map-get($primary-color, 'lighten-2'), 80deg); + border-radius: $border-radius; + box-shadow: 0 4px 8px 0 rgba($black, 0.12); + max-width: 100%; + p { + margin: 0; + } + } + } + // Chat area left css + .chat-left { + .chat-avatar { + float: left; + } + .chat-body { + .chat-content { + float: left; + margin: 0 0 10px 1rem; + color: $body-color; + background: none; + background-color: lighten($white, 18%); + } + } + } + } + // Chat form of user area + .chat-app-form { + height: $chat-head-footer-height; + padding: 0 1rem; + background-color: $white; + display: flex; + align-items: center; + border-top: 1px solid $border-color; + } +} + +// Chat Widget +.chat-widget { + .card-header { + padding-top: 0.8rem; + padding-bottom: 0.8rem; + } + .chat-app-window { + // User chats + .user-chats { + background-color: $body-bg; + height: $chat-widget-height; + } + .chat-app-form { + border-top: 0; + border-bottom-left-radius: $border-radius; + border-bottom-right-radius: $border-radius; + height: $chat-widget-head-footer-height; + .input-group-text, + .message { + border: 0; + padding-left: 0; + } + .input-group:not(.bootstrap-touchspin):focus-within { + box-shadow: none; + } + } + } +} diff --git a/src/@core/scss/base/pages/app-chat.scss b/src/@core/scss/base/pages/app-chat.scss new file mode 100644 index 0000000..9fb6ab1 --- /dev/null +++ b/src/@core/scss/base/pages/app-chat.scss @@ -0,0 +1,340 @@ +// ================================================================================================ +// File Name: app-chat.scss +// Description: SCC file for chat application page. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +@import '../core/colors/palette-variables'; + +@import 'bootstrap/scss/mixins/_gradients'; +@import 'bootstrap/scss/mixins/gradients'; + +//Variables +$chat-image-back-color: #f2f0f7; +$chat-head-footer-height: 65px; +$chat-profile-sidebar-head-height: 200px; + +.chat-application { + .content-area-wrapper { + border: 1px solid $border-color; + border-radius: $card-border-radius; + } + + // chat admin profile sidebar + .chat-profile-sidebar { + border-right: 1px solid $border-color; + height: inherit; + width: $chat-sidebar-width; + border-radius: $border-radius-sm; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + position: absolute; + background-color: $white; + transform: translateX(-110%); + transition: all 0.3s ease, background 0s, border 0s, color 0s; + z-index: 6; + &.show { + transform: translateX(0); + transition: all 0.3s ease, background 0s, border 0s, color 0s; + } + + // admin profile header section + .chat-profile-header { + display: flex; + align-items: center; + justify-content: center; + height: $chat-profile-sidebar-head-height; + text-align: center; + .avatar { + margin-bottom: 1.25rem; + } + } + + // Admin profile scroll area + .profile-sidebar-area { + height: calc(100% - #{$chat-profile-sidebar-head-height}); + position: relative; + padding: 0 2rem 1.5rem; + } + } + + // close icon style for all chat sidebars + .close-icon { + position: absolute; + top: 0.85rem; + right: 1rem; + cursor: pointer; + } + .sidebar-close-icon, + .close-icon { + svg, + i { + font-size: 1.143rem; + height: 1.143rem; + width: 1.143rem; + } + } + + // for avatar border + .avatar-border { + img { + border: 2px solid $white; + } + } + + // Main Sidebar Content + .sidebar-content { + background-color: $white; + border-right: 1px solid $border-color; + height: inherit; + width: $chat-sidebar-width; + border-radius: $border-radius-sm; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + margin: 0; + box-shadow: none; + // Close Icon + .sidebar-close-icon { + position: absolute; + right: 0.25rem; + top: 0.25rem; + font-size: 1.25rem; + z-index: 1; + cursor: pointer; + visibility: hidden; + } + // Chat search area + .chat-fixed-search { + width: $chat-sidebar-width; + border-bottom: 1px solid $border-color; + padding: 0 1.286rem; + height: $chat-head-footer-height; + display: flex; + .sidebar-profile-toggle { + .avatar { + display: inline-table; + } + } + .input-group { + &:focus-within { + background-color: transparent; + box-shadow: none; + } + } + } + .chat-list-title { + color: $primary; + margin: 2rem 1.286rem 0.5rem; + } + // Sidebar chat list + .chat-user-list-wrapper { + position: relative; + height: calc(100% - #{$chat-head-footer-height}); + width: $chat-sidebar-width; + border-radius: 0; + // Specific alignment for avatar status + .avatar { + height: 42px; + [class*='avatar-status-'] { + right: 1px; + bottom: 1px; + } + } + .contact-list { + .chat-info { + width: calc(100% - 46px); // ? avatar size with 2px border = 42+2+2 =46px + padding-right: 0; + } + } + .no-results { + padding: 0.786rem 1.286rem; + display: none !important; + &.show { + display: block !important; + } + } + ul { + padding-left: 0; + margin-bottom: 0; + } + li { + display: flex; + padding: 0.786rem 1.286rem; + .chat-info { + margin-top: 0.3rem; + width: calc(100% - 46px - 46px); // ? avatar size with 2px border = 42+2+2 =46px & date area width = 46px + padding: 0 0.75rem; + .card-text, + p { + color: $text-muted; + } + } + + .chat-time { + color: $text-muted; + } + &:hover { + cursor: pointer; + background: $body-bg; + } + &.active { + @include gradient-directional(map-get($primary-color, 'base'), map-get($primary-color, 'lighten-2'), 80deg); + h1, + h2, + h3, + h4, + h5, + h6, + .card-text, + .chat-time { + color: $white; + } + } + img { + border: 2px solid $white; + } + } + } + } + + // User chat window css + .chat-app-window { + height: 100%; + + // Before starting chat + .start-chat-area, + .user-chats { + background-image: url($chat-bg-light); + background-color: $chat-image-back-color; + background-repeat: repeat; + background-size: 210px; + } + .start-chat-area { + height: inherit; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + .start-chat-icon, + .start-chat-text { + background: $white; + box-shadow: 0 4px 8px 0 rgba($black, 0.12) !important; + color: $body-color; + } + .start-chat-text { + padding: 0.5rem 1rem; + border-radius: calc(#{$border-radius} * 4); + cursor: pointer; + } + .start-chat-icon { + border-radius: 50%; + padding: 2rem; + svg, + i { + height: 4rem; + width: 4rem; + font-size: 4rem; + } + } + } + } + + // User Profile right sidebar + .user-profile-sidebar { + width: $chat-sidebar-width; + border-radius: $border-radius-sm; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + background-color: $white; + position: absolute; + transform: translateX(110%); + transition: all 0.3s ease, background 0s, border 0s, color 0s; + z-index: 6; + right: 0; + bottom: 0; + top: 0; + &.show { + transform: translateX(0%); + transition: all 0.3s ease, background 0s, border 0s, color 0s; + } + .user-profile-header { + .header-profile-sidebar { + height: $chat-profile-sidebar-head-height; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + flex-direction: column; + width: 100%; + } + .avatar { + margin-bottom: 1.25rem; + } + } + .user-profile-sidebar-area { + position: relative; + height: calc(100% - #{$chat-profile-sidebar-head-height}); + padding: 0 2rem 1.5rem; + } + } +} + +@include media-breakpoint-down(md) { + .content-right { + width: 100%; + } + .chat-application { + .sidebar-content { + transform: translateX(-110%); + transition: all 0.3s ease-in-out; + position: absolute; + z-index: 5; + &.show { + transform: translateX(0); + transition: all 0.3s ease; + } + } + } +} +@include media-breakpoint-down(sm) { + .chat-application { + .sidebar-content { + .sidebar-close-icon { + visibility: visible; + top: 15px; + right: 0; + padding: 0.65rem; + line-height: 1; + } + .chat-fixed-search { + padding-right: 2.5rem; + } + } + } +} +@include media-breakpoint-down(xs) { + .chat-application { + .sidebar { + position: unset !important; + } + .sidebar-content { + width: 100%; + .chat-fixed-search, + .chat-user-list-wrapper { + width: 100%; + } + } + .chat-profile-sidebar { + width: 100%; + } + .user-profile-sidebar { + width: 100%; + } + } +} diff --git a/src/@core/scss/base/pages/app-ecommerce-details.scss b/src/@core/scss/base/pages/app-ecommerce-details.scss new file mode 100644 index 0000000..1a19452 --- /dev/null +++ b/src/@core/scss/base/pages/app-ecommerce-details.scss @@ -0,0 +1,288 @@ +// ================================================================================================ +// File Name: app-ecommerce-details.scss +// Description: App Ecommerce Details SCSS. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +// App e-commerce detail style +.ecommerce-application { + .app-ecommerce-details { + .product-img { + width: 600px; + } + // ratings style + .ratings-list-item { + svg, + i { + font-size: 1.286rem; + height: 1.286rem; + width: 1.286rem; + } + } + .filled-star { + fill: $warning; + stroke: $warning; + color: $warning; + } + .unfilled-star { + stroke: $gray-100; + color: $gray-100; + } + + // Item Price + .item-price { + color: $primary; + } + // Common for list-view, checkout and wishlist + .item-company { + display: inline-flex; + font-weight: $font-weight-normal; + font-size: 0.875rem; + + .company-name { + font-weight: $font-weight-bolder; + margin-left: 0.25rem; + } + } + + // Product feature list + .product-features { + margin-top: 1.5rem; + margin-bottom: 1.5rem; + li { + svg, + i { + height: 1.4rem; + width: 1.4rem; + font-size: 1.4rem; + margin-right: 0.75rem; + } + display: flex; + align-items: center; + margin-bottom: 1rem; + span { + font-weight: $font-weight-bolder; + } + } + } + + .product-color-options { + margin-top: 1.5rem; + margin-bottom: 1.2rem; + } + .btn-wishlist { + .text-danger { + color: $danger; + fill: $danger; + } + } + .btn-share { + .btn-icon { + ~ .dropdown-menu { + min-width: 3rem; + } + } + } + .item-features { + background-color: $body-bg; + padding-top: 5.357rem; + padding-bottom: 5.357rem; + i, + svg { + font-size: 2.5rem; + height: 2.5rem; + width: 2.5rem; + color: $primary; + } + } + } + + // centered slides option-1 + .swiper-responsive-breakpoints { + &.swiper-container { + .swiper-slide { + text-align: center; + background-color: $body-bg; + padding: 1.5rem 3rem; + border-radius: $card-border-radius; + .img-container { + display: flex; + align-items: center; + justify-content: center; + height: 250px; + } + } + } + } + + //navigation button custom icons + .swiper-button-prev, + .swiper-button-next, + .swiper-container-rtl .swiper-button-prev, + .swiper-container-rtl .swiper-button-next { + background-image: none; + width: 35px; + font-size: $h1-font-size; + + &:focus { + outline: none; + } + } + + .swiper-button-prev { + left: 0; + + &:after { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $primary), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 44px; + color: $body-color; + width: 44px; + height: 44px; + content: ''; + } + } + + .swiper-button-next { + right: 0; + + &:after { + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $primary), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 44px; + color: $body-color; + width: 44px; + height: 44px; + content: ''; + } + } + + .swiper-container-rtl { + .swiper-button-prev { + &:after { + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $primary), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 44px; + color: $body-color; + width: 44px; + height: 44px; + content: ''; + } + } + + .swiper-button-next { + &:after { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $primary), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 44px; + color: $body-color; + width: 44px; + height: 44px; + content: ''; + } + } + } + + // color options + + .product-color-options { + .color-option { + border: 1px solid transparent; + border-radius: 50%; + position: relative; + cursor: pointer; + padding: 3px; + + .filloption { + height: 18px; + width: 18px; + border-radius: 50%; + } + } + + // selected + .selected { + // these use for border color only page specific + .b-primary { + border-color: $primary; + .filloption { + box-shadow: 0 2px 4px 0 rgba($primary, 0.4); + } + } + + .b-success { + border-color: $success; + .filloption { + box-shadow: 0 2px 4px 0 rgba($success, 0.4); + } + } + + .b-danger { + border-color: $danger; + .filloption { + box-shadow: 0 2px 4px 0 rgba($danger, 0.4); + } + } + + .b-warning { + border-color: $warning; + .filloption { + box-shadow: 0 2px 4px 0 rgba($warning, 0.4); + } + } + + .b-info { + border-color: $info; + .filloption { + box-shadow: 0 2px 4px 0 rgba($info, 0.4); + } + } + } + .b-primary .filloption { + box-shadow: 0 2px 4px 0 rgba($primary, 0.4); + } + .b-success .filloption { + box-shadow: 0 2px 4px 0 rgba($success, 0.4); + } + .b-danger .filloption { + box-shadow: 0 2px 4px 0 rgba($danger, 0.4); + } + .b-warning .filloption { + box-shadow: 0 2px 4px 0 rgba($warning, 0.4); + } + .b-info .filloption { + box-shadow: 0 2px 4px 0 rgba($info, 0.4); + } + } +} + +@include media-breakpoint-down(sm) { + .ecommerce-application .swiper-responsive-breakpoints.swiper-container .swiper-slide { + padding: 1rem; + } +} +@include media-breakpoint-down(sm) { + .ecommerce-application { + .app-ecommerce-details { + // ratings style + .ratings-list-item { + svg, + i { + font-size: 1rem; + height: 1rem; + width: 1rem; + } + } + } + } +} diff --git a/src/@core/scss/base/pages/app-ecommerce.scss b/src/@core/scss/base/pages/app-ecommerce.scss new file mode 100644 index 0000000..ec39a6d --- /dev/null +++ b/src/@core/scss/base/pages/app-ecommerce.scss @@ -0,0 +1,632 @@ +// ================================================================================================ +// File Name: app-ecommerce.scss +// Description: SCSS file for ecommerce shop, wishlist and checkout page. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +$search-bar-height: 48px; + +.ecommerce-application { + .content-body { + position: relative; + } + // To overlay in whole page + .body-content-overlay { + position: fixed !important; + z-index: 12 !important; + } + + // Shop Sidebar + .sidebar-shop { + margin-top: 0.85rem; + width: $sidebar-width; + z-index: 14; + + // for heading + .filter-heading { + margin-bottom: 1.75rem; + } + + // for title + .filter-title { + margin-bottom: 1rem; + margin-top: 2.5rem; + } + + // Sidebar price range and categories list + .price-range, + .categories-list { + li:not(:last-child) { + margin-bottom: 0.75rem; + } + } + + // Sidebar brand list + .brand-list { + li { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 0.75rem; + } + } + + // Sidebar for slider + .range-slider.noUi-horizontal { + .noUi-handle { + .noUi-tooltip { + opacity: 0; + transform: translate(-50%, -15%); + + &:before { + content: '$ '; + } + } + &:active { + .noUi-tooltip { + opacity: 1; + } + } + } + } + + // for stars in rating + .ratings-list { + display: flex; + justify-content: space-between; + margin-bottom: 0.5rem; + &:last-child { + margin-bottom: 2.5rem; + } + ul { + margin-bottom: 0; + .ratings-list-item { + svg, + i { + width: 1.25rem; + height: 1.25rem; + font-size: 1.25rem; + } + } + } + } + } + + // ratings style + .filled-star { + fill: $warning; + stroke: $warning; + color: $warning; + } + .unfilled-star { + stroke: $gray-100; + color: $gray-100; + } + + // E-commerce shop main content area + + //ecommerce header + .ecommerce-header-items { + display: flex; + justify-content: space-between; + + .result-toggler { + display: flex; + align-items: center; + + // Sidebar toggler + .shop-sidebar-toggler { + padding-left: 0; + + &:active, + &:focus { + outline: 0; + } + + .navbar-toggler-icon { + height: auto; + i, + svg { + color: $body-color; + height: 1.5rem; + width: 1.5rem; + font-size: 1.5rem; + } + } + } + // Search result title + .search-results { + font-weight: $font-weight-bold; + color: $headings-color; + } + } + } + + // Product search bar + .ecommerce-searchbar { + .input-group { + box-shadow: 0 2px 8px 0 rgba($black, 0.14); + border-radius: 0.3rem; + } + } + + // Search bar + .search-product, + .input-group-text { + height: $search-bar-height; + border: none; + font-size: 0.95rem; + padding-left: 1.25rem; + + &::placeholder { + font-size: 0.95rem; + } + } + + // main Products + .ecommerce-card { + &:hover { + transform: translateY(-5px); + box-shadow: 0 4px 25px 0 rgba($black, 0.25); + } + + // ratings + .item-rating { + ul { + margin-bottom: 0; + } + svg, + i { + height: 1.143rem; + width: 1.143rem; + font-size: 1.143rem; + } + } + + // Item name + .item-name { + margin-bottom: 0; + a { + font-weight: $font-weight-bolder; + display: -webkit-box; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; + } + } + + .item-description { + font-size: 0.875rem; + } + + // buttons style + .btn-wishlist, + .btn-cart { + span { + vertical-align: text-top; + } + i, + svg { + margin-right: 0.25rem; + vertical-align: text-top; + &.text-danger { + fill: $danger; + } + } + } + } + + // margin for both views + .grid-view, + .list-view { + &:not(.wishlist-items) { + margin-top: 2rem; + } + } + + // Grid View Specific style + .grid-view { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + column-gap: 2rem; + &.wishlist-items { + grid-template-columns: 1fr 1fr 1fr 1fr; + } + + .ecommerce-card { + overflow: hidden; + + // Item Image + .item-img { + padding-top: 0.5rem; + min-height: 15.85rem; + display: flex; + align-items: center; + } + + // Item content wrapper + .item-wrapper { + display: flex; + justify-content: space-between; + align-items: baseline; + } + + // Hiding list view items + .shipping, + .item-company, + .item-options .item-price { + display: none; + } + + .item-options { + display: flex; + flex-wrap: wrap; + + .btn-cart, + .btn-wishlist { + flex-grow: 1; + border-radius: 0; + } + } + + .item-name { + margin-top: 0.75rem; + } + + // Item Description + .item-description { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + margin-top: 0.2rem; + } + + .item-price { + font-weight: $font-weight-bolder; + } + + .card-body { + padding: 1rem; + } + } + } + + // List View Specific style + .list-view { + display: grid; + grid-template-columns: 1fr; + + .ecommerce-card { + overflow: hidden; + display: grid; + grid-template-columns: 1fr 2fr 1fr; + + // list view image + .item-img { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + } + + .card-body { + padding: 1.5rem 1rem; + border-right: 1px solid $border-color; + display: flex; + flex-direction: column; + + // item name and ratings order + .item-wrapper { + order: 2; + } + .item-name { + order: 1; + } + // List view description + .item-description { + order: 3; + display: -webkit-box; + -webkit-line-clamp: 5; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; + } + + // .item-rating, + .item-price { + display: none; + } + // ratings + .item-rating { + margin-bottom: 0.3rem; + } + } + // Common for list-view, checkout and wishlist + .item-company { + display: inline-flex; + font-weight: $font-weight-normal; + margin: 0.3rem 0 0.5rem; + font-size: 0.875rem; + + .company-name { + font-weight: $font-weight-bolder; + margin-left: 0.25rem; + } + } + + // price and btn area of list view + .item-options { + padding: 1rem; + display: flex; + flex-direction: column; + justify-content: center; + + .item-wrapper { + position: relative; + + .item-cost { + .item-price { + color: $primary; + margin-bottom: 0; + } + } + } + // Shipping free tag + .shipping { + margin-top: 0.75rem; + } + // List view btn spacing + .btn-wishlist, + .btn-cart { + margin-top: 1rem; + } + } + } + } + + // for checkout-items and options + // Remove padding from stepper header & content area + .checkout-tab-steps { + .bs-stepper-header, + .bs-stepper-content { + padding: 0; + margin: 0; + } + } + // Checkout items list + .checkout-items { + .ecommerce-card { + .item-img { + img { + width: 200px; + } + } + // adding order as we have updated order for shop list view + .item-name { + order: 0 !important; + } + .item-company, + .item-rating { + margin-bottom: 0.4rem !important; + } + .item-quantity { + display: flex; + align-items: center; + } + + .delivery-date { + margin-top: 1.2rem; + margin-bottom: 0.25rem; + } + // Item options button + .item-options { + .btn { + display: flex; + align-items: center; + justify-content: center; + } + } + } + } + + .checkout-options { + .coupons { + &:focus-within { + box-shadow: none; + } + input { + border: none; + padding-left: 0; + color: $body-color; + font-weight: $font-weight-bolder; + &::placeholder { + color: $body-color; + font-weight: $font-weight-bolder; + } + } + .input-group-append { + margin: 0; + } + .input-group-text { + height: auto; + font-weight: $font-weight-bolder; + padding: inherit; + } + } + .price-details { + .price-title { + font-weight: $font-weight-bolder; + margin-bottom: 0.75rem; + margin-top: 1.5rem; + } + .price-detail { + display: flex; + justify-content: space-between; + margin-bottom: 0.75rem; + + .detail-title { + &.detail-total { + font-weight: $font-weight-bolder; + } + } + } + } + } + .payment-type { + .gift-card { + cursor: pointer; + } + } + + // checkout wizard + + .checkout-tab-steps { + background-color: transparent !important; + box-shadow: none !important; + + .bs-stepper-header { + border: none; + } + } + + // To hide toggler on lg and up and grid view for btn-wishlist and list view for checkout + @include media-breakpoint-up(lg) { + .ecommerce-header-items { + // Hide toggler in > lg screen + .shop-sidebar-toggler { + display: none; + } + } + + // Checkout list view + .product-checkout { + &.list-view { + grid-template-columns: 2fr 1fr; + column-gap: 2rem; + } + } + } +} +// Media queries to change grid columns in different Screens and to hide search results below 768px +@include media-breakpoint-down(lg) { + .ecommerce-application { + // Header item area + .ecommerce-header-items { + .btn-group { + align-items: center; + .btn-icon { + padding: 0.6rem 0.736rem; + } + } + } + .grid-view.wishlist-items { + grid-template-columns: 1fr 1fr 1fr; + } + // overlay style for e-commerce page + .body-content-overlay { + position: fixed; + opacity: 0; + width: 100%; + height: 100%; + top: 0; + left: 0; + right: 0; + bottom: 0; + &.show { + opacity: 1; + } + } + + // Horizontal Menu scss + &.horizontal-layout { + .body-content-overlay { + z-index: 998 !important; + } + .sidebar-shop { + z-index: 999 !important; + } + } + } +} + +@include media-breakpoint-down(md) { + .ecommerce-application { + .sidebar-left { + .sidebar { + // removed radius and margin as showing sidebar in full height + .card { + border-radius: 0; + margin: 0; + } + // Sidebar style + .sidebar-shop { + transform: translateX(-112%); + transition: all 0.25s ease; + position: fixed; + top: 0; + left: 0; + height: 100%; + overflow-y: scroll; + margin: 0; + + &.show { + transition: all 0.25s ease; + transform: translateX(0); + } + } + } + } + // Grid view for responsive + .grid-view { + grid-template-columns: 1fr 1fr; + } + + // to hide search results + .ecommerce-header-items { + .result-toggler { + .search-results { + display: none; + } + } + } + } +} +@include media-breakpoint-down(sm) { + .ecommerce-application { + .grid-view.wishlist-items { + grid-template-columns: 1fr 1fr; + } + // List View + .list-view { + .ecommerce-card { + grid-template-columns: 1fr; + + .item-img { + padding-top: 2rem; + padding-bottom: 2rem; + } + + // to remove card-body border + .card-body { + border: none; + } + } + } + } +} +@include media-breakpoint-down(xs) { + .ecommerce-application { + // Grid View + .grid-view, + .grid-view.wishlist-items { + grid-template-columns: 1fr; + } + } +} diff --git a/src/@core/scss/base/pages/app-email.scss b/src/@core/scss/base/pages/app-email.scss new file mode 100644 index 0000000..fc53084 --- /dev/null +++ b/src/@core/scss/base/pages/app-email.scss @@ -0,0 +1,492 @@ +// ================================================================================================ +// File Name: app-email.scss +// Description: SCC file for email application page. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +$email_read: $body-bg; +$email_selected_border: #e4e1e8; +$email_details_header_height: 5rem; + +.email-application { + .content-area-wrapper { + border: 1px solid $border-color; + border-radius: $card-border-radius; + // Sidebar area starts + .sidebar { + .email-app-sidebar { + width: $menu-expanded-width; + height: inherit; + background-color: $white; + border-top-left-radius: $card-border-radius; + border-bottom-left-radius: $card-border-radius; + transition: all 0.3s ease, background 0s; + z-index: 210; + .email-app-menu { + width: 100%; + height: 100%; + z-index: 3; + .compose-btn { + padding: 1.5rem; + } + .sidebar-menu-list { + position: relative; + height: calc(100% - 80px); // search section height 80px + } + } + } + .list-group .list-group-item { + padding: 0.58rem 1.5rem; + border: 0; + font-weight: $font-weight-bold; + letter-spacing: 0.4px; + border-left: 2px solid transparent; + border-radius: 0; + + .list-group-item.active { + margin-top: 0; + } + &:hover, + &:focus, + &.active { + background: transparent; + color: $primary; + } + &.active { + border-color: #7367f0; + } + } + } + // Sidebar area ends + + // Right content area common css starts + .content-right { + width: calc(100% - #{$menu-expanded-width}); + border-left: 1px solid $border-color; + .email-app-list { + height: inherit; + } + .app-fixed-search { + padding: 0.35rem 0.5rem; + border-bottom: 1px solid $border-color; + background-color: $white; + border-top-right-radius: $border-radius; + + .input-group:focus-within { + box-shadow: none; + } + input, + .input-group-text { + border: 0; + background-color: transparent; + } + } + .action-icon { + cursor: pointer; + } + } + // Right content area common css End + // Sidebar toggle icon + .sidebar-toggle { + cursor: pointer; + float: left; + } + .go-back { + cursor: pointer; + } + + // Email user list area + .email-user-list { + position: relative; + height: calc( + 100% - calc(3.49rem + 3.32rem) + ); // ? search box height (3.49rem) + select all section height (3.32rem) + .email-media-list { + padding: 0; + margin: 0; + // Set delay per List Item + @for $i from 1 through 5000 { + li:nth-child(#{$i}) { + animation-delay: 0.1s * $i; + } + } + li { + cursor: pointer; + transition: all 0.2s, background 0s, border-color 0s, color 0s; + animation: fadeIn 0.5s linear; + animation-fill-mode: both; + position: relative; + background: $white; + &.media { + padding: ($spacer + 0.5); + &:hover { + transform: translateY(-2px); + box-shadow: 0 3px 10px 0 $border-color; + transition: all 0.2s; + z-index: 1; + } + .media-left { + display: flex; + flex-direction: column; + } + .media-body { + overflow: hidden; + } + } + // Email avatar style + .avatar { + margin-bottom: 0.65rem; + } + .avatar, + .avatar img { + height: $avatar-size + 8; + width: $avatar-size + 8; + } + + // read email + &.mail-read { + background-color: $email_read; + } + // selected email + &.selected-row-bg { + background-color: rgba($primary, 0.06); + &:not(:first-child) { + border-color: $email_selected_border; + } + } + &:not(:first-child) { + border-top: 1px solid $border-color; + } + .mail-details { + display: flex; + justify-content: space-between; + margin-bottom: 0.55rem; + } + .mail-date { + color: $text-muted; + font-size: 0.857rem; + } + .mail-message { + p { + color: $text-muted; + } + } + } + .user-action { + display: flex; + .email-favorite { + i, + svg { + height: 1.25rem; + width: 1.25rem; + font-size: 1.25rem; + vertical-align: text-top; + color: $text-muted; + &.favorite { + fill: $warning; + stroke: $warning; + } + } + } + } + } + .no-results { + display: none; + padding: 1.5rem; + text-align: center; + &.show { + display: block; + } + } + .ps__rail-y { + z-index: 2; + } + } + } + // Action area of email list section + .app-action { + padding: 0.9rem ($spacer + 0.5); + display: flex; + justify-content: space-between; + border-bottom: 1px solid $border-color; + background-color: $white; + .action-right { + ul { + li:not(:last-child) { + margin-right: 1rem; + } + } + .dropdown-toggle { + color: $headings-color; + white-space: normal; + &::after { + display: none; + } + } + } + } + // On click of mail Details section slide in from right + // Email details section starts + .email-app-details { + position: absolute; + display: block; + z-index: 2; + visibility: hidden; + top: 0; + width: calc(100% - #{$menu-expanded-width}); + background-color: $body-bg; + transform: translateX(100%); + transition: all 0.25s ease, color 0s; + height: 100%; + &.show { + visibility: visible; + transition: all 0.25s ease, color 0s; + transform: translateX(0%); + } + .email-detail-header { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + box-shadow: 0 4px 6px rgba($black, 0.04); + border-bottom: 1px solid $kbd-bg; + position: relative; + padding: 0.5rem 2rem; + background-color: $white; + height: $email_details_header_height; + } + .email-header-left { + .email-subject { + display: -webkit-box; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + overflow: hidden; + } + } + .email-header-right { + .dropdown-toggle, + .action-icon { + color: $body-color; + } + } + // Email detail scroll area + .email-scroll-area { + padding: 0 2rem; + position: relative; + height: calc(100% - #{$email_details_header_height}); + + .email-detail-head { + border-bottom: 1px solid $border-color; + .mail-meta-item { + .dropdown { + line-height: 0; + } + } + } + .email-label { + margin: 2rem 0; + } + .email-info-dropup { + .dropdown-toggle::after { + left: -2px; + margin: 0; + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $text-muted), '#', '%23')); + background-size: 0.857rem; + } + .dropdown-menu { + padding: 0.5rem; + } + } + } + } + + #compose-mail { + .compose-mail-form-field { + display: flex; + justify-content: center; + align-items: center; + padding: 0.12rem $modal-header-padding-x; + border-bottom: 1px solid $modal-footer-border-color; + .select2-container--open { + box-shadow: none; + } + .select2-selection--multiple, + .form-control { + border: 0; + background-color: transparent; + &:focus { + box-shadow: none !important; + background-color: transparent; + } + } + .select2-selection--multiple { + min-height: 42px !important; + .select2-selection__rendered li .select2-search__field { + margin-top: 10px; + } + } + .select2-selection__choice__remove:before { + top: 40%; + } + label { + margin-bottom: 0; + font-size: $font-size-base; + } + } + .ql-editor { + min-height: 250px; + } + .ql-container, + .ql-toolbar { + border: none; + border-radius: 0; + border-bottom: 1px solid $border-color; + .ql-picker.ql-expanded .ql-picker-options { + bottom: 100%; + top: auto; + } + } + .compose-footer-wrapper { + padding: $modal-inner-padding; + display: flex; + align-items: center; + justify-content: space-between; + } + } +} +@include media-breakpoint-down(md) { + .email-application { + .content-area-wrapper { + .sidebar-left { + position: relative; + .email-app-sidebar { + transform: translateX(-110%); + transition: all 0.3s ease-in-out; + position: absolute; + left: 0; + border-top-left-radius: $border-radius-sm; + border-bottom-left-radius: $border-radius-sm; + } + &.show { + .email-app-sidebar { + transform: translateX(0%); + transition: all 0.3s ease; + } + } + } + .content-right { + width: 100%; + border-left: 0; + .app-fixed-search { + border-top-left-radius: $border-radius; + } + .email-app-details { + width: 100%; + border-radius: $border-radius; + } + } + } + } +} + +@include media-breakpoint-down(sm) { + .email-application #compose-mail .ql-editor { + min-height: 150px; + } +} + +// Extra small devices (portrait phones, less than 576px) +@include media-breakpoint-down(xs) { + .email-application { + .email-detail-head .mail-meta-item { + display: flex; + justify-content: space-between; + margin-left: 4rem; // Spacing from left according to avatar image + .mail-date, + .mail-time { + margin: 1rem 0.75rem 0 0; + } + } + .content-area-wrapper { + .content-right .email-app-details { + .email-scroll-area { + padding: 0 1rem; + } + + .email-detail-header { + padding: 0.5rem 1rem; + } + } + .email-user-list { + .email-media-list li .mail-details { + display: block; + .mail-items { + width: 70%; + display: inline-grid; + } + .mail-meta-item { + width: 15%; + position: absolute; + right: 1rem; + top: 1.5rem; + i, + svg, + .bullet { + display: none; + } + } + } + } + } + } +} + +@media (max-width: 359.98px) { + .email-application .content-area-wrapper .sidebar .email-app-sidebar { + width: 230px; + } + .email-application .email-app-details .email-detail-header { + padding: 0 0.5rem; + } +} + +// Keyframe animation +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + top: 100px; + } + 75% { + opacity: 0.5; + top: 0px; + } + 100% { + opacity: 1; + } +} + +// RTL Style +html[data-textdirection='rtl'] { + .email-application { + .email-app-details { + .email-prev, + .email-next { + .action-icon i, + .action-icon svg { + transform: rotate(180deg); + } + } + .go-back { + i, + svg { + transform: rotate(180deg); + } + } + } + } +} diff --git a/src/@core/scss/base/pages/app-file-manager.scss b/src/@core/scss/base/pages/app-file-manager.scss new file mode 100644 index 0000000..52e3ef2 --- /dev/null +++ b/src/@core/scss/base/pages/app-file-manager.scss @@ -0,0 +1,441 @@ +// ================================================================================================ +// File Name: app-file-manager.scss +// Description: SCC file for email application page. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +$file-manager-logo-height: 7.5rem; + +// file manager app container +.file-manager-application { + // file manager sidebar styles + .sidebar-file-manager { + width: $sidebar-width; + height: 100%; + background-color: $white; + border-top-left-radius: $border-radius-sm; + border-bottom-left-radius: $border-radius-sm; + transition: all 0.3s ease, background 0s; + + // styles for card-inner + .sidebar-inner { + height: inherit; + + .dropdown-actions { + width: 100%; + padding: 1.5rem 1.5rem 1.8rem; + } + + .sidebar-close-icon { + position: absolute; + top: 0.25rem; + right: 0.25rem; + font-size: $font-size-xl; + z-index: 5; + cursor: pointer; + } + + .add-file-btn { + & ~ .dropdown-menu { + width: 85%; + &:before { + display: none; + } + } + } + + // styles for card inner list + .sidebar-list { + position: relative; + height: calc(100% - 85px); // search section height 85px + .my-drive { + padding: 0.58rem 0; + .jstree-node { + .jstree-icon { + background-position: 0.5rem; + background-size: 1.3rem; + } + .jstree-anchor > .jstree-themeicon { + margin-right: 0.5rem; + } + &.jstree-closed { + > .jstree-icon { + background-image: url(str-replace( + str-replace($chevron-right, 'currentColor', $headings-color), + '#', + '%23' + )); + } + } + &.jstree-open { + > .jstree-icon { + background-image: url(str-replace( + str-replace($chevron-down, 'currentColor', $headings-color), + '#', + '%23' + )); + } + } + } + } + + .list-group-labels, + .storage-status { + margin-top: 2.2rem; + } + + .list-group-item { + padding: 0.58rem 1.9rem; + font-weight: 500; + border: 0; + border-radius: 0; + border-left: 2px solid transparent; + &:hover { + z-index: 0 !important; + } + + .list-group-item.active { + margin-top: 0; + } + } + .active { + background-color: transparent; + border-color: $primary; + color: $primary; + } + } + } + + // show sidebar on click + &.show { + transition: all 0.25s ease, background 0s !important; + transform: translateX(0) !important; + z-index: 10; + } + } + + // styles for content area wrapper + .content-area-wrapper { + border: 1px solid $border-color; + border-radius: $border-radius-sm; + + .content-right { + .content-wrapper { + padding: 0; + } + } + + // styles for file manger app area + .file-manager-main-content { + border-left: 1px solid $border-color; + height: inherit; + + // styles for searchbar + .file-manager-content-header { + padding: 0.4rem 1rem; + border-bottom: 1px solid $border-color; + background-color: $white; + border-top-right-radius: $border-radius; + + .file-manager-toggler { + cursor: pointer; + } + + input { + border-color: transparent; + box-shadow: none; + } + + .file-actions:not(.show) { + display: none; + } + } + + // styles for main content + .file-manager-content-body { + position: relative; + padding: 1.5rem 1.5rem 0; + height: calc(100% - 50px); // search area height + background-color: $white; + .view-container { + display: flex; + flex-wrap: wrap; + .file-manager-item { + border: 1px solid $border-color; + margin-bottom: 1.6rem; + box-shadow: none; + margin-right: 1rem; + transition: none; + cursor: pointer; + + .card-body { + padding: 1rem; + padding-bottom: 0.5rem; + } + + .custom-control-input:not(:checked) ~ .custom-control-label:before { + background-color: transparent; + } + + .file-logo-wrapper { + padding: 1rem; + height: $file-manager-logo-height; + background-color: $body-bg; + .feather-folder { + stroke: $gray-100; + } + } + + .dropdown-menu { + transform: none; + &:before { + display: none; + } + } + + .content-wrapper { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + height: auto; + } + + .file-date { + flex-grow: 1; + margin-bottom: 0; + } + + &.selected { + border-color: $primary; + } + } + + .file-name { + width: calc(100% - 26rem); + min-height: 1rem; + font-weight: 600; + flex-grow: 1; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .files-section-title { + width: 100%; + } + + &.list-view { + flex-direction: column; + + .files-section-title { + display: none; + } + .files-header { + display: flex; + justify-content: space-between; + margin-left: 7.2rem; + margin-bottom: 1rem; + + p { + font-weight: 600; + } + + .file-last-modified, + .file-item-size { + margin-right: 3rem; + } + } + + .file-manager-item { + flex-direction: row; + flex: 0 0 100%; + align-items: center; + max-width: 100%; + margin-bottom: 0.75rem; + margin-right: 0; + .file-logo-wrapper { + padding-right: 0; + width: auto; + height: auto; + background-color: transparent !important; + + img { + height: 1.5rem; + } + + .feather-folder, + .feather-arrow-up { + width: 19px; + height: 18px; + } + + .dropdown { + position: absolute; + right: 1rem; + } + } + .custom-checkbox { + margin: 0 0.4rem 0 1.75rem; + } + + .file-accessed { + display: none; + } + + .file-size { + width: 5.71rem; + flex-grow: 1; + margin-bottom: 0; + } + } + .folder { + &.level-up { + .file-logo-wrapper { + margin-left: 3.5rem; + } + } + } + } + + &:not(.list-view) { + .files-header { + display: none; + } + + .file-manager-item { + .content-wrapper { + margin-bottom: 0rem; + } + + .file-date { + display: none; + } + .file-size { + color: $text-muted; + font-size: 85%; + } + &:not(.selected):not(:hover) { + .custom-checkbox, + .toggle-dropdown { + opacity: 0; + } + } + .feather-folder { + height: 32px; + width: 35px; + } + &.folder.level-up { + display: none !important; + } + .custom-checkbox { + position: absolute; + top: 1rem; + left: 1rem; + } + } + } + } + } + } + } +} + +// media query for max-width of 1200px +@media screen and (max-width: 1200px) { + .file-manager-application { + .content-right { + width: 100%; + } + .content-body { + margin-left: 0 !important; + } + .content-area-wrapper { + .file-manager-main-content { + border-left: 0; + } + } + + .sidebar-left { + .sidebar { + z-index: 10; + + .sidebar-file-manager { + transform: translateX(-112%); + transition: all 0.25s ease; + position: absolute; + } + } + } + } +} + +@include media-breakpoint-down(sm) { + .file-manager-application { + .view-container { + .file-manager-item { + flex: 47%; + } + } + } +} + +@include media-breakpoint-down(xs) { + .file-manager-application { + .content-area-wrapper { + .file-manager-main-content { + .file-manager-content-header { + padding-left: 0.5rem; + + .file-actions { + .dropdown { + padding-left: 0.5rem; + padding-right: 0.5rem; + } + } + } + } + .view-container { + .file-manager-item { + flex: 0 0 100%; + max-width: 100%; + } + &.list-view { + .file-date, + .file-last-modified, + .file-size, + .file-item-size { + display: none !important; + } + } + } + } + } +} + +@include media-breakpoint-up(xs) { + .file-manager-application { + .view-container { + .file-manager-item { + flex: 0 0 47%; + max-width: 50%; + } + } + } +} + +@include media-breakpoint-up(sm) { + .file-manager-application { + .view-container { + .file-manager-item { + flex: 0 0 23%; + max-width: 25%; + } + } + } +} diff --git a/src/@core/scss/base/pages/app-invoice-list.scss b/src/@core/scss/base/pages/app-invoice-list.scss new file mode 100644 index 0000000..f7876b5 --- /dev/null +++ b/src/@core/scss/base/pages/app-invoice-list.scss @@ -0,0 +1,96 @@ +// ================================================================================================ +// File Name: app-invoice-list.scss +// Description: Invoice Layout page layouts SCSS. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy HTML Admin Template +// Version: 1.0 +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +.invoice-list-wrapper { + .dataTables_wrapper { + .dataTables_length, + .dataTables_filter { + label { + margin-top: 0.55rem; + } + } + .dataTables_length { + select { + margin-left: 0.5rem; + } + } + .invoice-list-table { + thead { + th { + &:before, + &:after { + left: auto; + } + + &:last-child { + &:before, + &:after { + display: none; + } + } + } + } + tbody { + .control:before { + background-color: $primary; + line-height: 1rem; + font-family: $font-family-base; + } + .col-actions { + a:not(.dropdown-item) { + color: $body-color; + } + .dropdown { + .dropdown-item { + display: flex; + align-items: center; + } + } + } + } + } + } + + @media (max-width: 470px) { + .invoice_status { + margin-top: 1rem; + width: 100%; + select { + margin-left: 0 !important; + } + } + } +} + +// Datatables Responsive Modal +.dtr-bs-modal { + .modal-header { + flex-direction: row-reverse; + } + .modal-body { + padding-left: 0; + padding-right: 0; + .table { + tr { + td { + border-color: $border-color; + .col-actions { + a:not(.dropdown-item) { + color: $body-color; + } + } + } + } + } + } +} diff --git a/src/@core/scss/base/pages/app-invoice-print.scss b/src/@core/scss/base/pages/app-invoice-print.scss new file mode 100644 index 0000000..3f586fc --- /dev/null +++ b/src/@core/scss/base/pages/app-invoice-print.scss @@ -0,0 +1,58 @@ +// ================================================================================================ +// File Name: app-invoice-print.scss +// Description: Invoice Layout page layouts SCSS. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy HTML Admin Template +// Version: 1.0 +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes + +html, +body { + background: $white !important; +} + +.invoice-print { + min-width: 768px !important; + font-size: 15px !important; + + .invoice-date-wrapper { + display: flex; + align-items: center; + + .invoice-date-title { + width: 8rem; + } + } + + i, + svg { + fill: $body-color !important; + } + + .invoice-total-wrapper { + width: 100%; + max-width: 12rem; + .invoice-total-item { + display: flex; + align-items: center; + justify-content: space-between; + .invoice-total-title { + // width: 92px; + margin-bottom: 0.35rem; + } + .invoice-total-amount { + margin-bottom: 0.35rem; + font-weight: 600; + } + } + } +} + +.invoice-print * { + border-color: rgba($color: $black, $alpha: 0.5) !important; + color: $body-color !important; +} diff --git a/src/@core/scss/base/pages/app-invoice.scss b/src/@core/scss/base/pages/app-invoice.scss new file mode 100644 index 0000000..91d13f7 --- /dev/null +++ b/src/@core/scss/base/pages/app-invoice.scss @@ -0,0 +1,166 @@ +// ================================================================================================ +// File Name: app-invoice.scss +// Description: Invoice Layout page layouts SCSS. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy HTML Admin Template +// Version: 1.0 +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +$product-details-bg: #fcfcfc; +$invoice-spacing: 1.45rem 0; +$invoice-card-body-padding: 2.5rem; + +// Invoice Preview, Edit & Add +.invoice-preview, +.invoice-edit, +.invoice-add { + .invoice-padding { + padding-left: $invoice-card-body-padding; + padding-right: $invoice-card-body-padding; + } + .table { + th:first-child, + td:first-child { + padding-left: 2.5rem; + } + } + .logo-wrapper { + display: flex; + align-items: center; + margin-bottom: 1.9rem; + .invoice-logo { + font-size: 2.142rem; + font-weight: bold; + letter-spacing: -0.54px; + margin-left: 1rem; + margin-bottom: 0; + } + } + .invoice-title { + font-size: 1.285rem; + margin-bottom: 1rem; + .invoice-number { + font-weight: 600; + } + } + .invoice-date-wrapper { + display: flex; + align-items: center; + + &:not(:last-of-type) { + margin-bottom: 0.5rem; + } + + .invoice-date-title { + width: 7rem; + margin-bottom: 0; + } + .invoice-date { + margin-left: 0.5rem; + font-weight: 600; + margin-bottom: 0; + } + } + .invoice-spacing { + margin: $invoice-spacing; + } + .invoice-number-date { + .title { + width: 115px; + } + } + .invoice-total-wrapper { + width: 100%; + max-width: 12rem; + .invoice-total-item { + display: flex; + align-items: center; + justify-content: space-between; + .invoice-total-title { + margin-bottom: 0.35rem; + } + .invoice-total-amount { + margin-bottom: 0.35rem; + font-weight: 600; + } + } + } + + @media (min-width: 768px) { + .invoice-title { + text-align: right; + margin-bottom: 3rem; + } + } +} + +// Invoice Edit & Add +.invoice-edit, +.invoice-add { + .invoice-preview-card { + .invoice-title { + text-align: left; + margin-right: 3.5rem; + margin-bottom: 0; + } + .invoice-edit-input, + .invoice-edit-input-group { + max-width: 11.21rem; + } + .invoice-product-details { + background-color: $product-details-bg; + padding: 3.75rem 3.45rem 2.3rem 3.45rem; + .product-details-border { + border: 1px solid $border-color; + border-radius: $border-radius; + } + } + .invoice-to-title { + margin-bottom: 1.9rem; + } + .col-title { + position: absolute; + top: -3.2rem; + } + .item-options-menu { + min-width: 20rem; + } + .repeater-wrapper { + &:not(:last-child) { + margin-bottom: 3rem; + } + } + .invoice-calculations { + .total-amt-title { + width: 100px; + } + } + } + @media (max-width: 769px) { + .invoice-preview-card { + .invoice-title { + margin-right: 0; + width: 115px; + } + .invoice-edit-input { + max-width: 100%; + } + } + } + @media (max-width: 992px) { + .col-title { + top: -1.5rem !important; + } + } + @media print { + hr { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + } +} diff --git a/src/@core/scss/base/pages/app-kanban.scss b/src/@core/scss/base/pages/app-kanban.scss new file mode 100644 index 0000000..d5e46df --- /dev/null +++ b/src/@core/scss/base/pages/app-kanban.scss @@ -0,0 +1,156 @@ +// Core variables and mixins + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +$avatar-add-new-color: rgba(108, 117, 125, 0.12); + +.kanban-application { + .kanban-wrapper { + width: 100%; + position: relative; + .kanban-container { + display: flex; + width: max-content !important; + + // Padding to prevent add-item btn from touching scrollbar + padding-bottom: 1.5rem; + + .kanban-board { + width: auto !important; + height: 100%; + background: transparent; + &:focus { + outline: 0; + } + + .kanban-board-header { + display: flex; + justify-content: space-between; + align-items: center; + padding-left: 0; + padding-right: 0; + .kanban-title-board { + color: $headings-color; + font-size: 1.1rem; + padding: 0.5rem; + font-weight: 500; + width: 100%; + max-width: 13rem; + white-space: nowrap; + overflow: hidden; + border-radius: $card-border-radius; + &:hover, + &:focus { + background-color: $white; + } + &:focus { + outline: 0; + } + } + .dropdown { + .dropdown-toggle:after { + display: none; + } + } + } + .kanban-drag { + min-height: 1rem; + min-width: 18.55rem; + padding: 0; + } + .kanban-title-button { + position: absolute; + left: -8px; + bottom: 0; + margin: -1rem 0; + &:focus { + box-shadow: none; + } + } + .kanban-item { + position: relative; + display: flex; + flex-direction: column; + background: $white; + width: 18.55rem; + padding: 1rem 1.2rem; + margin-bottom: 1.5rem; + box-shadow: $box-shadow; + cursor: pointer; + @include border-radius($card-border-radius); + transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1), background 0s, color 0s, border 0s; + + i, + svg { + stroke: $headings-color; + } + + .kanban-text { + font-weight: 500; + } + .item-dropdown { + display: none; + position: absolute; + right: 0rem; + cursor: pointer; + .dropdown-toggle:after { + display: none; + } + } + &:hover { + .item-dropdown { + display: block; + } + } + } + } + } + } + + // Add new board styles + .add-new-board { + margin-top: 22px; + float: left; + padding: 0 15px; + label { + font-size: 1rem; + font-weight: 700; + margin-bottom: 0; + cursor: pointer; + } + } + + // Update sidebar styles + .update-item-sidebar { + text-align: left; + + .avatar-add-member { + background-color: $avatar-add-new-color; + i, + svg { + stroke: $headings-color; + } + } + + .comment-editor { + .ql-editor { + min-height: 5.5rem; + } + } + .comment-toolbar.ql-toolbar { + width: 100%; + text-align: right; + border-top: 0; + } + } +} + +// For when item is being dragged +.kanban-item.gu-mirror { + .item-dropdown { + .dropdown-toggle:after { + display: none; + } + } +} diff --git a/src/@core/scss/base/pages/app-todo.scss b/src/@core/scss/base/pages/app-todo.scss new file mode 100644 index 0000000..ade2e5e --- /dev/null +++ b/src/@core/scss/base/pages/app-todo.scss @@ -0,0 +1,300 @@ +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +// Todo Application css starts +.todo-application { + // Content area wrapper border + .content-area-wrapper { + border: 1px solid $border-color; + border-radius: $card-border-radius; + + // Sidebar area starts + .sidebar { + .todo-sidebar { + width: $menu-expanded-width; + height: inherit; + display: flex; + background-color: $white; + border-top-left-radius: $card-border-radius; + border-bottom-left-radius: $card-border-radius; + transition: all 0.3s ease, background 0s; + + // Sidebar Menu + .todo-app-menu { + width: 100%; + z-index: 3; + .add-task { + padding: 1.5rem; + } + + // Sidebar menu list items + .sidebar-menu-list { + position: relative; + height: calc(100% - 80px); + } + .list-group .list-group-item { + padding: 0.58rem 1.5rem; + border: 0; + font-weight: $font-weight-bold; + letter-spacing: 0.4px; + border-left: 2px solid transparent; + border-radius: 0; + + .list-group-item.active { + margin-top: 0; + } + &:hover, + &:focus, + &.active { + background: transparent; + color: $primary; + } + &.active { + border-color: #7367f0; + } + } + } + } + } + // Sidebar area ends + + // Modal editor height + .ql-editor { + padding-bottom: 0; + } + + // Right content area common css starts + .content-right { + width: calc(100% - #{$menu-expanded-width}); + border-left: 1px solid $border-color; + .todo-app-list { + height: inherit; + } + // Todo Fixed search + .app-fixed-search { + padding: 0.35rem 0.5rem; + border-bottom: 1px solid $border-color; + background-color: $white; + border-top-right-radius: $border-radius; + .input-group:focus-within { + box-shadow: none; + } + input, + .input-group-text { + border: 0; + background-color: transparent; + } + } + + .todo-title { + margin-left: 0.5rem; + margin-right: 0.5rem; + } + .completed { + .todo-title { + color: $text-muted; + } + } + // ToDo task list area + .todo-task-list-wrapper { + position: relative; + height: calc(100% - 3.56rem); // ? search box height (3.49rem) + 1px bottom border till 2 decimals + background-color: $white; + border-radius: 0; + .todo-task-list { + padding: 0; + margin: 0; + list-style: none; + li { + cursor: pointer; + transition: all 0.2s, border-color 0s; + position: relative; + padding: 0.893rem 2rem; + &:not(:first-child) { + border-top: 1px solid $border-color; + } + &:hover { + transform: translateY(-4px); + box-shadow: 0 3px 10px 0 $border-color; + transition: all 0.2s; + } + .todo-title-wrapper { + display: flex; + justify-content: space-between; + } + .todo-title-area, + .title-wrapper { + display: flex; + align-items: center; + } + // Todo Item Action + .todo-item-action { + display: flex; + align-items: center; + justify-content: space-between; + a { + cursor: pointer; + font-size: 1.2rem; + line-height: 1.5; + } + } + + .badge-wrapper { + display: flex; + .badge:not(:last-child) { + margin-right: 0.5rem; + } + } + } + } + // When we search, no-results + .no-results { + display: none; + padding: 1.5rem; + text-align: center; + &.show { + display: block; + } + } + } + } + } + // Slide In close btn + .todo-item-action { + .close { + background: transparent !important; + box-shadow: none !important; + position: unset !important; + transform: none !important; + transition: none !important; + } + } + + // Drag & Drop Icon + .todo-item { + .drag-icon { + visibility: hidden; + cursor: move; + position: absolute; + left: 0.2rem; + width: 1.75rem; + height: 4rem; + padding: 0 5px; + } + &:hover { + .drag-icon { + visibility: visible; + } + } + } + + // validation text style + form .error:not(li):not(input) { + color: $danger; + font-size: 85%; + margin-top: 0.25rem; + } +} + +// while dragging task +.gu-mirror { + list-style-type: none; + list-style: none; + padding: 0.893rem 2rem; + background-color: $white; + border-top: 1px solid $border-color; + border-bottom: 1px solid $border-color; + box-shadow: 0 0 10px 0 rgba($black, 0.25); + .todo-title-wrapper { + display: flex; + justify-content: space-between; + } + .todo-title-area, + .title-wrapper { + display: flex; + align-items: center; + } + // Todo Item Action + .todo-item-action { + display: flex; + align-items: center; + justify-content: space-between; + } + .todo-title { + padding-left: 1rem; + } + &.completed { + .todo-title { + color: $text-muted; + } + } +} + +// Keyframe animation +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + top: 100px; + } + 75% { + opacity: 0.5; + top: 0px; + } + 100% { + opacity: 1; + } +} + +@include media-breakpoint-down(md) { + .todo-application { + .content-area-wrapper { + .sidebar-left { + .todo-sidebar { + transform: translateX(-110%); + transition: all 0.3s ease-in-out; + left: 0; + position: absolute; + z-index: 5; + border-top-left-radius: $border-radius-sm; + border-bottom-left-radius: $border-radius-sm; + } + &.show { + .todo-sidebar { + transform: translateX(0%); + transition: all 0.3s ease; + } + } + } + .content-right { + width: 100%; + border-left: 0; + .app-fixed-search { + border-top-left-radius: $border-radius; + } + } + // ? Responsive Todo list in columns + .todo-title-wrapper { + flex-direction: column; + .title-wrapper { + margin-bottom: 0.5rem; + } + .todo-title { + display: -webkit-box; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + overflow: hidden; + } + .badge-wrapper { + margin-right: auto !important; + } + } + } + } +} +@media (max-width: 349.98px) { + .todo-application .content-area-wrapper .sidebar .todo-sidebar { + width: 230px; + } +} +.horizontal-menu .todo-application .content-area-wrapper .content-right .todo-task-list-wrapper { + height: calc(100% - 3.6rem); // ? search box height (48.79px + 1px border = 3.56), horizontal needs 1 decimal point +} diff --git a/src/@core/scss/base/pages/app-user.scss b/src/@core/scss/base/pages/app-user.scss new file mode 100644 index 0000000..1c044db --- /dev/null +++ b/src/@core/scss/base/pages/app-user.scss @@ -0,0 +1,107 @@ +// ================================================================================================ +// File Name: app-users.scss +// Description: Invoice Layout page layouts SCSS. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy HTML Admin Template +// Version: 1.0 +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes + +$color-box-size: 2.714rem; + +// User List +.app-user-list { + .dataTables_wrapper { + .dataTables_length { + select { + margin-left: 0.5rem; + margin-right: 0.5rem; + } + } + } + + @media (max-width: 767px) { + .header-actions { + .dataTables_length { + text-align: left; + } + & > div[class^='col-']:last-child { + padding-left: 0; + } + } + } +} + +// User View +.app-user-view { + .user-info-wrapper { + .user-info-title { + width: 11.785rem; + } + } + .user-total-numbers { + margin-top: 2.428rem; + .color-box { + display: flex; + align-items: center; + justify-content: center; + height: $color-box-size; + width: $color-box-size; + border-radius: $border-radius; + + i, + svg { + height: 1.285rem; + width: 1.285rem; + font-size: 1.285rem; + } + } + } +} + +// User Edit +.app-user-edit { + .nav-pills { + margin-bottom: 2.3rem; + .nav-link { + i, + svg { + font-size: 0.921rem; + margin-right: 0.5rem; + } + } + } + + @media (max-width: 576px) { + .nav-pills { + .nav-link { + i, + svg { + height: 1.2rem; + width: 1.2rem; + font-size: 1.2rem; + margin-right: 0; + } + } + } + } +} + +// RTL +html[data-textdirection='rtl'] { + .app-user-list { + .dataTables_filter { + input { + margin-right: 0; + margin-left: 0.5rem; + } + } + + .dropdown .dropdown-menu.dropdown-menu-right { + right: 3.57rem !important; + } + } +} diff --git a/src/@core/scss/base/pages/dashboard-ecommerce.scss b/src/@core/scss/base/pages/dashboard-ecommerce.scss new file mode 100644 index 0000000..eadade7 --- /dev/null +++ b/src/@core/scss/base/pages/dashboard-ecommerce.scss @@ -0,0 +1,66 @@ +// ================================================================================================ +// File Name: aggrid.scss +// Description: SCC file for Aggrid. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +// Statistics Card +.card-statistics { + .statistics-body { + padding: 2rem 2.4rem !important; + } + + @include media-breakpoint-down(md) { + .card-header, + .statistics-body { + padding: 1.5rem !important; + } + } +} + +// Company Table Card +.card-company-table { + thead th { + border: 0; + } + td { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + + .avatar { + background-color: $body-bg; + margin-right: 2rem; + + img { + border-radius: 0; + } + } + } +} + +// Browser State Card +.card-browser-states { + .browser-states { + &:first-child { + margin-top: 0; + } + &:not(:first-child) { + margin-top: 1.7rem; + } + } +} + +// Transaction Card +.card-transaction { + .transaction-item { + &:not(:last-child) { + margin-bottom: 1.5rem; + } + } +} diff --git a/src/@core/scss/base/pages/page-auth.scss b/src/@core/scss/base/pages/page-auth.scss new file mode 100644 index 0000000..081c443 --- /dev/null +++ b/src/@core/scss/base/pages/page-auth.scss @@ -0,0 +1,106 @@ +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +$auth-1-inner-max-width: 400px !default; + +.auth-wrapper { + display: flex; + flex-basis: 100%; + min-height: 100vh; + min-height: calc(var(--vh, 1vh) * 100); + width: 100%; + + .auth-inner { + width: 100%; + position: relative; + } + + &.auth-v1 { + align-items: center; + justify-content: center; + overflow: hidden; // For v1 scroll for long auth form + .auth-inner { + &:before { + width: 244px; + height: 243px; + content: ' '; + position: absolute; + top: -54px; + left: -46px; + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPQAAADzCAMAAACG9Mt0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA9KADAAQAAAABAAAA8wAAAADhQHfUAAAAyVBMVEUAAAD///+AgP+AgP9mZv+AgNWAgP9tbf9gYP+AgP9xcf9mZv+AZuaAgP9dXf90dOhiYv92dv9mZu5mZv93d+53d/9paf94afCAcfFrXvJra/9mZvJzZvJzc/JoaP96b/Rqav91aupsYvV2bOt2bPVxaPZ7cfZqavZyau1waPd4aO9xafBxafh4afB1bfh4avFuZ/F2afJzZvJzZ/N0aPN0bvN3bPR0ae5yZ/R3be93bfR1au9zafBxbPVzavV0a/F0a/ZyafFwaPKZm3nTAAAAQ3RSTlMAAQIEBQYGBwgICQoKCgsLDQ0PDw8PERESExMUFBQWFxgYGhoaGxsdHSAgIiIiIyQlJygqLCwtLi8vLzAzNDU3Nzg7h9vbHgAAA9RJREFUeNrt3ftS2kAUx/Fc1gSyWsErtuJdRDQiiteolb7/QzUoTm07k4AzObuu3/MCez45yWbzT36eZ6b8erO1e1B97baadd+zocJWmg0HaXe/+uqmg2GWtkLT5Lle1m9LdhG2+1lvzuiUO1knEF81yFc1N+35m15kZOGodz1vyLx+v2Lseq/erxtZd/NuweCTtfiwaWLOD5FnsqI7+VnP3y8afnEs3Es/1+H1qvETwuq18B7e6VlwLup1ZM8kWWQBOsrmHL7GVtxvYRZYgQ4ywae61ffsqH5Lbq20bQm6ncp9P2ehJegwE/u+rl95ttSwLrVSc2ANetAU28dSa9Cp2E623bUG3d2VWmn/wBq0XCugQYMGLdVKoOJaoiuok1NdXSW1WAUfRPtRUllflaJf5ZE/O9pXVbZUPTov5c+IDqvtRwStdTgLutoxy6GnGfYb2o+1I2gd+1OiqzfLocvVE7TSDqG1mgodaqfQZbvZC9rXjqG1X45WzqFVKVpk0LLo4lGP0ZGD6KgMnTiITkrQgXYQrYNitHISrYrRsZPouBhdcxJdK0YnTqKTYrR2Eq1BgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRoh9DH59ag86ACoSYOL61B55EUQk1s3VqDzsNHhJpYe7QGncfMSHUxaliCHgcKSXVxeWQJehwdJdXF4dAS9DgkTKqLxuibFeiXODixNi7OrEC/BP+JtbE0WrYA/RrxKNfH2YUF6NegSbk+Gk87xtErN6EsWm88fzeMXpwE9EruLns/l42io4dJFLPo2/Po1w+D6IW7t9Bt2SPx3vOOMfS7eHVZtN54ulg2go56138Ct4XRunE2Ovsmjg46WeddUoUWr6WL0fCoIYgO2/2s91fstDZQjcPL0ePt5flpdXUwqW46uMrS1j95JNpQrW0dHp9UV/uT2m416/8HVGg3qzhpBjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KC/FDpx0pwUo2tOomvF6NhJdFyMVk6iVTE6cBIdeF9vJyvZx/I/AzuIjsrQvoNovwzt4FamSs0Ojrp80PmvoB0zh940pb7azf1yg7t0LIt978uppzbnalfucDW92ZndLPRmKweGPduYJ+zoM5/Dk+gD5NdvLhXXPp88qcUqmEH5G5JZRs6cuxwIAAAAAElFTkSuQmCC'); + @include media-breakpoint-down(xs) { + display: none; + } + } + &:after { + width: 272px; + height: 272px; + content: ' '; + position: absolute; + bottom: -55px; + right: -75px; + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARAAAAEQCAMAAABP1NsnAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABEKADAAQAAAABAAABEAAAAAAQWxS2AAAAwFBMVEUAAAD///+AgICAgP9VVaqqVf+qqv+AgL+AgP9mZsxmZv+ZZv+AgNWAgP9tbdttbf+Sbf+AYN+AgN+AgP9xceNmZv+AZuaAZv90dOh0dP9qav+AauqAav+AgP92dv9tbf+Abe2Abf93Zu53d+6AcO94afCAcfF5a+R5a/JzZuaAZvKAc/J5bed5bfOAaPN6b/R1auqAavR6ZvV6cPV2bOuAbPV7aPZ2be2AbfZ7au17avZ3Zu53b+57a+97a/d4aO9J6CoeAAAAQHRSTlMAAQICAwMDBAQFBQUGBgcHBwgICAkKCgoLCwwMDAwNDg4ODw8QERITExQUFBUVFhcYGBkZGhobHBwdHR4eHx8gJ5uMWwAAA/FJREFUeNrt2G1XEkEYxvHZNk2xHGzdbKFl0cTwgdSkCKzu7/+t4pw6sAjtjIueE/f8r3fMO35nZnbuy5gVGcvfzJe0rnTfGI+MggGJRUZnbpPIhJKt88nU53JnFULvyISY6KAv8vPj0vr2rYwiE2Z2B9J+uNYcyyQxwWZvaeGH3G4bMjsvI/kcwTC/V+7kLoahlITzQojP3ZFgsJCh7IJQzpX0QFj4uMiY18eDMZ9bZCF9OQahnK6cm/Y7js0sh/LF3Auv1PlQd3MxbdXYIQspV44EEEAAAWTNDAYYkKdJbNMsLzYueZbaZ2iM46RVbHBaiZ9Js+nHEdli42N9XuSen5hGp1CQTuOJQDRsD99N4gMSpYWapNH6IJo83CIeILZQFesEaber79NCWRoukOpNEnW0gXQqD81w6ACxhbrYde7VuFCYeA2QRCNIsgZISyNIqz6IyhPjOjNVIFYniK3dmKU6QdLaJUimEySrDZLrBMlrgxRKU7sxCw/EMe0CAggggADySJCqxixIkKpNEh6IozELD8RxjQACCCCAAPJIkKrGLEgQXqqAAEJjxrQLCCCAAEJjRmNGY8a0CwgggABCYwYIfQgggNCYMe0CAggggNCY0ZjRmDHtAgIIIIAAQmNGHwIIIDRmTLuAAAIIIDRmNGY0Zky7gAACCCCA0JjRhwACCI0Z0y4ggAACCI0ZjRmNGdMuIIAAAgggNGb0IYAAQmPGtAsIIIAAQmNGY0ZjxrQLCCCAAAIIjRl9CCCA0Jgx7QICCCCA0JjRmNGYMe0CAggggABCY0YfAgggNGZMu4AAAgggNGY0ZjRmTLuAAAIIIIDQmNGHAAIIjRnTLiCAAAIIjRmNGY0ZIEy7gAACCCA0ZvQhgABCY8a0CwgggABCY0ZjBgiNGdMuIIAAAgiN2f/Sh+Q6PfLaIJlOkKw2SKoTJK3dmFmdILb2tBvrBIlrg5iWRo+WqQ+SaARJ1gCJAzsxThCN16p1vNurGjNjoo42j07kAHFskoY2kEbl33U0ZgoPjXW+Rl0gkarnahqtDaJKxMPDDWIiNafGenh4gExvVhXfmk7Da6L1AVGxSby2h6MxK79Zk42ea1pJbJ48sU2zDezQ8iy1z6BBwoyjMQsvXp8YQAAhgADilRfyy+wf8WqZZUfGZihvgZiB3FybC+kCUU5XLkAo50C+gbBQdUzkAIVyejIAYfFTI1solHP2HgNCnHn5AYNy4jvpoVB6fVzL91cwzLJ9Lfd7S0jhehxO5H5/yePr1W6gHonI7fJ5ORSR/n6Q2yQanq763zuXU5LJZRKiyD/W9/pjkdPZz0/yJ8fqVyry+qQZDMjJKoDfy8bRVhHhQTwAAAAASUVORK5CYII='); + z-index: -1; + @include media-breakpoint-down(xs) { + display: none; + } + } + } + } + + &.auth-v2 { + align-items: flex-start; + .auth-inner { + height: 100vh; + overflow-y: auto; // For v2 scroll for long auth form + height: calc(var(--vh, 1vh) * 100); + } + .brand-logo { + position: absolute; + top: 2rem; + left: 2rem; + margin: 0; + z-index: 1; + } + } + + &.auth-v1 .auth-inner { + max-width: $auth-1-inner-max-width; + } + + .brand-logo { + display: flex; + justify-content: center; + margin: 1rem 0 2rem 0; + .brand-text { + font-weight: 600; + } + } + + .auth-footer-btn { + .btn { + padding: 0.6rem !important; + &:not(:last-child) { + margin-right: 1rem; + } + } + } +} + +@media (min-width: 1200px) { + .auth-wrapper { + &.auth-v2 .auth-card { + width: $auth-1-inner-max-width; + } + } +} + +.auth-wrapper .auth-bg { + background-color: $white; +} + +.dark-layout { + .auth-wrapper .auth-bg { + background-color: $theme-dark-card-bg; + } +} diff --git a/src/@core/scss/base/pages/page-blog.scss b/src/@core/scss/base/pages/page-blog.scss new file mode 100644 index 0000000..eef2a3d --- /dev/null +++ b/src/@core/scss/base/pages/page-blog.scss @@ -0,0 +1,63 @@ +// ================================================================================================ +// File Name: blog.scss +// Description: blog related pages layouts SCSS. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +// blog list +.blog-list-wrapper { + // Truncate blog titles with 2 lines + .blog-title-truncate { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + } + + // Truncate blog content with 3 lines + .blog-content-truncate { + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + overflow: hidden; + } +} + +// Blog Detail +.blog-detail-wrapper { + .blog-detail-share .dropdown-menu { + min-width: auto; + } +} + +// Blog Sidebar +.blog-sidebar { + .blog-recent-posts { + img { + object-fit: cover; + } + // below scss is written because recent blog posts' titles are links to other pages + .text-body-heading:hover { + color: $link-hover-color !important; + } + } + + .blog-recent-post-title, + .blog-category-title { + line-height: 23px; + letter-spacing: 0; + } +} + +// Blog Edit +.blog-edit-wrapper { + .border { + border-color: $input-border-color !important; + } +} \ No newline at end of file diff --git a/src/@core/scss/base/pages/page-coming-soon.scss b/src/@core/scss/base/pages/page-coming-soon.scss new file mode 100644 index 0000000..850b12e --- /dev/null +++ b/src/@core/scss/base/pages/page-coming-soon.scss @@ -0,0 +1,21 @@ +// ================================================================================================ +// File Name: coming-soon.scss +// Description: Coming Soon pages custom scss +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +/*========== Coming Soon Background Image =========*/ + +.clockCard { + float: left; +} + +.getting-started { + font-size: 3rem; +} +.lead { + font-size: 1rem; +} diff --git a/src/@core/scss/base/pages/page-faq.scss b/src/@core/scss/base/pages/page-faq.scss new file mode 100644 index 0000000..8511837 --- /dev/null +++ b/src/@core/scss/base/pages/page-faq.scss @@ -0,0 +1,66 @@ +// =============================================================================================== +// File Name: page-faq.scss +// Description: FAQ Page Content SCSS +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +// faq search section +.faq-search { + background-size: cover; + background-color: rgba($primary, 0.12) !important; + .faq-search-input { + .input-group { + // remove input group box shadow on inside focus + &:focus-within { + box-shadow: none; + } + } + } +} + +// Contact cards +.faq-contact { + .faq-contact-card { + background-color: rgba($gray-100, 0.12); + } +} + +// make jumbotron card body padding +@include media-breakpoint-up(lg) { + .faq-search { + .card-body { + padding: 8rem !important; + } + } +} + +// make jumbotron card body padding +@include media-breakpoint-only(md) { + .faq-search { + .card-body { + padding: 6rem !important; + } + } +} + +@include media-breakpoint-up(md) { + // faq search input width fixed for medium up screen + .faq-search { + .faq-search-input { + .input-group { + width: 576px; + margin: 0 auto; + } + } + } + // faq navigation fix the navigation section so that vector image not move as per collapse + .faq-navigation { + height: 550px; + } +} diff --git a/src/@core/scss/base/pages/page-knowledge-base.scss b/src/@core/scss/base/pages/page-knowledge-base.scss new file mode 100644 index 0000000..790e76e --- /dev/null +++ b/src/@core/scss/base/pages/page-knowledge-base.scss @@ -0,0 +1,77 @@ +// =============================================================================================== +// File Name: knowledge-base.scss +// Description: Knowledge Base Page Content SCSS +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +$svg-bg: #fcfcfc; + +// Knowledge-base jumbotron scss +.knowledge-base-bg { + background-size: cover; + background-color: rgba($primary, 0.12) !important; + + // knowledge base search + .kb-search-input { + .input-group { + // remove input group box shadow on inside focus + &:focus-within { + box-shadow: none; + } + } + } +} + +// +.kb-search-content-info { + .kb-search-content { + .card-img-top { + background-color: $svg-bg; + } + } + .no-result { + &.no-items { + display: none; + } + } +} +// knowledge base title +.kb-title { + display: flex; + align-items: center; +} + +//search input width fixed for medium up screen +@include media-breakpoint-up(md) { + .knowledge-base-bg { + .kb-search-input { + .input-group { + width: 576px; + margin: 0 auto; + } + } + } +} + +// make jumbotron card body padding +@include media-breakpoint-up(lg) { + .knowledge-base-bg { + .card-body { + padding: 8rem; + } + } +} +// make jumbotron card body padding +@include media-breakpoint-only(md) { + .knowledge-base-bg { + .card-body { + padding: 6rem; + } + } +} diff --git a/src/@core/scss/base/pages/page-misc.scss b/src/@core/scss/base/pages/page-misc.scss new file mode 100644 index 0000000..cdcde35 --- /dev/null +++ b/src/@core/scss/base/pages/page-misc.scss @@ -0,0 +1,36 @@ +// ================================================================================================ +// File Name: page-misc.scss +// Description: Coming Soon pages custom scss +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +$misc-inner-max-width: 750px; + +.misc-wrapper { + display: flex; + flex-basis: 100%; + min-height: 100vh; + width: 100%; + align-items: center; + justify-content: center; + + .misc-inner { + position: relative; + max-width: $misc-inner-max-width; + } + + .brand-logo { + display: flex; + justify-content: center; + position: absolute; + top: 2rem; + left: 2rem; + margin: 0; + .brand-text { + font-weight: 600; + } + } +} diff --git a/src/@core/scss/base/pages/page-pricing.scss b/src/@core/scss/base/pages/page-pricing.scss new file mode 100644 index 0000000..4e1f965 --- /dev/null +++ b/src/@core/scss/base/pages/page-pricing.scss @@ -0,0 +1,100 @@ +// =============================================================================================== +// File Name: pricing.scss +// Description: pricing Page Content SCSS +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +// pricing card +.pricing-card { + // card active border + .card { + &.popular { + border: 1px solid $primary; + } + } + // list group circle + .list-group-circle { + font-weight: $font-weight-bold; + color: $headings-color; + } + // plan price value + .annual-plan { + margin-bottom: 1.7rem; + .plan-price { + sup { + top: -1.5rem; + left: 0.2rem; + } + span { + font-size: 3.5rem; + line-height: 0.8; + } + sub { + bottom: 0; + right: 0.14rem; + } + } + + // annual pricing value + .annual-pricing { + position: absolute; + margin: auto; + left: 0; + right: 0; + } + } +} + +// trial free card +.pricing-free-trial { + height: 16.71rem; + background-color: rgba(186, 191, 199, 0.12); + margin-right: -$content-padding; + margin-left: -$content-padding; + margin-top: 7.5rem; + margin-bottom: 6.3rem; + + // row default margin zero because it cause the horizontal scroll bar + .row { + margin: 0; + } + // content container + .pricing-trial-content { + padding: 0 1rem; + // image + img { + position: relative; + top: -3.1rem; + } + } +} + +// price trial ad card in small screen +@include media-breakpoint-down(sm) { + .pricing-free-trial { + height: auto; + .pricing-trial-content { + flex-direction: column; + align-items: center; + .pricing-trial-img { + top: 0; + margin-top: 2rem; + height: 150px; + } + } + } +} + +// free trial div margin change on below screen +@include media-breakpoint-down(xs) { + .pricing-free-trial { + margin-right: -1.2rem; + margin-left: -1.2rem; + } +} diff --git a/src/@core/scss/base/pages/page-profile.scss b/src/@core/scss/base/pages/page-profile.scss new file mode 100644 index 0000000..7d41c12 --- /dev/null +++ b/src/@core/scss/base/pages/page-profile.scss @@ -0,0 +1,146 @@ +// ================================================================================================ +// File Name: page-profile.scss +// Description: Page content different types of users page layouts SCSS. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +// User profile Scss +#user-profile { + /*-------------profile header section---------*/ + .profile-header { + overflow: hidden; + + // profile picture container + .profile-img-container { + position: absolute; + bottom: -2rem; + left: 2.14rem; + z-index: 2; + + // profile image + .profile-img { + height: 8.92rem; + width: 8.92rem; + border: 0.357rem solid $white; + background-color: $white; + border-radius: $card-border-radius; + box-shadow: $box-shadow; + } + } + + // profile navbar padding + .profile-header-nav { + .navbar { + padding: 0.8rem 1rem; + + // navbar toggle button + .navbar-toggler { + line-height: 0; + } + .profile-tabs { + .nav-item { + i, + svg { + margin-right: 0; + } + } + } + } + } + } + + /*-------- profile info section --------*/ + #profile-info { + // profile star icons + .profile-star { + color: $gray-100; + + i, + svg { + // filled star icons + &.profile-favorite { + fill: $warning; + stroke: $warning; + } + } + } + + // filled heart icons + .profile-likes { + fill: $danger; + stroke: $danger; + } + + // progress-bar height + .profile-polls-info { + .progress { + height: 0.42rem; + } + } + } + + //profile-latest-img - hover effect + .profile-latest-img { + transition: all 0.2s ease-in-out; + &:hover { + transform: translateY(-4px) scale(1.2); + z-index: 10; + } + img { + margin-top: 1.28rem; + } + } + + // Load More Button - Block UI + .block-element { + .spinner-border { + border-width: 0.14rem; + } + } +} + +// Latest Photo Section - Image size +@include media-breakpoint-down(md) { + #user-profile { + .profile-latest-img { + img { + width: 100%; + } + } + } +} + +@include media-breakpoint-up(md) { + // navbar tabs pills + .profile-header-nav { + .profile-tabs { + width: 100%; + margin-left: 13.2rem; + } + } +} + +// profile img and title +@include media-breakpoint-down(xs) { + #user-profile { + .profile-header { + .profile-img-container { + .profile-img { + height: 100px; + width: 100px; + } + .profile-title { + h2 { + font-size: 1.5rem; + } + } + } + } + } +} diff --git a/src/@core/scss/base/pages/ui-colors.scss b/src/@core/scss/base/pages/ui-colors.scss new file mode 100644 index 0000000..6afcbbe --- /dev/null +++ b/src/@core/scss/base/pages/ui-colors.scss @@ -0,0 +1,25 @@ +// =============================================================================================== +// File Name: colors.scss +// Description: Colors Page Content SCSS +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +.colors-list { + li { + padding: 0.4rem; + i, + svg { + height: 1.2rem; + width: 1.2rem; + top: 0; + position: relative; + margin-right: 0.25rem; + } + } +} diff --git a/src/@core/scss/base/pages/ui-feather.scss b/src/@core/scss/base/pages/ui-feather.scss new file mode 100644 index 0000000..7fe836a --- /dev/null +++ b/src/@core/scss/base/pages/ui-feather.scss @@ -0,0 +1,59 @@ +@import '../bootstrap-extended/include'; // Bootstrap includes + +.icon-search-wrapper { + max-width: 300px; + + .feather-search { + height: 1.15rem; + width: 1.15rem; + } +} +#icons-container { + .icon-card { + width: 128px; + } +} + +// Active Card +.icon-card { + border: 1px solid transparent; + &.active { + border-color: $primary; + i, + svg { + color: $primary; + } + } +} + +@media (max-width: 1024px) { + #icons-container { + .icon-card { + width: 126px; + } + } +} + +@media (max-width: 768px) { + #icons-container { + .icon-card { + width: 131px; + } + } +} + +@media (max-width: 414px) { + #icons-container { + .icon-card { + width: 110px; + } + } +} + +@media (max-width: 375px) { + #icons-container { + .icon-card { + width: 150px; + } + } +} diff --git a/src/@core/scss/base/plugins/charts/chart-apex.scss b/src/@core/scss/base/plugins/charts/chart-apex.scss new file mode 100644 index 0000000..616d3aa --- /dev/null +++ b/src/@core/scss/base/plugins/charts/chart-apex.scss @@ -0,0 +1,158 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +.apexcharts-canvas { + line[stroke='transparent'] { + display: none; + } + .apexcharts-tooltip { + background: $white; + border-color: $border-color; + .apexcharts-tooltip-title { + background: $white !important; + border-color: $border-color !important; + font-weight: 600; + } + &.apexcharts-theme-dark { + .apexcharts-tooltip-text-label, + .apexcharts-tooltip-text-value { + color: $white; + } + } + } + .apexcharts-xaxistooltip, + .apexcharts-yaxistooltip { + background: $body-bg; + border-color: $border-color; + &:after, + &:before { + border-bottom-color: $body-bg; + } + } + .apexcharts-text, + .apexcharts-tooltip-text, + .apexcharts-datalabel-label, + .apexcharts-datalabel { + font-family: $font-family-base !important; + fill: $body-color; + font-weight: 400; + filter: none; + } + + .apexcharts-pie-label { + fill: white; + filter: none; + } + + .apexcharts-pie { + .apexcharts-pie-series .apexcharts-pie-area { + stroke-width: 0; + } + .apexcharts-datalabel-label, + .apexcharts-datalabel-value { + font-size: 1.5rem; + } + } + + .apexcharts-marker { + box-shadow: none; + } + .apexcharts-legend-series { + & + .apexcharts-legend-series { + margin-top: 0.625rem; + } + .apexcharts-legend-text { + margin-left: 0.5rem; + color: $body-color !important; + font-size: 1rem !important; + } + } + .apexcharts-xcrosshairs, + .apexcharts-ycrosshairs, + .apexcharts-gridline { + stroke: $border-color; + } +} +.apexcharts-legend.position-bottom { + bottom: 3rem; +} + +.dark-layout { + .apexcharts-canvas { + .apexcharts-xaxis-tick, + line { + stroke: $theme-dark-border-color; + } + .apexcharts-heatmap { + .apexcharts-heatmap-rect { + stroke: $theme-dark-border-color; + } + } + .apexcharts-radialbar { + .apexcharts-radialbar-track .apexcharts-radialbar-area { + stroke: $theme-dark-body-bg; + } + } + .apexcharts-radar-series { + polygon { + fill: $theme-dark-body-bg; + stroke: $theme-dark-border-color; + } + } + .apexcharts-datalabels-group { + .apexcharts-datalabel-value { + fill: $white; + } + } + .apexcharts-tooltip { + background: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + .apexcharts-tooltip-title { + background: $theme-dark-card-bg !important; + border-color: $theme-dark-border-color !important; + color: $white; + } + .apexcharts-tooltip-text-label, + .apexcharts-tooltip-text-value { + color: $white; + } + } + .apexcharts-xaxistooltip, + .apexcharts-yaxistooltip { + background: $theme-dark-body-bg; + border-color: $theme-dark-border-color; + &:after, + &:before { + border-bottom-color: $theme-dark-border-color; + } + .apexcharts-xaxistooltip-text, + .apexcharts-yaxistooltip-text { + color: $white; + } + } + .apexcharts-xaxistooltip { + .apexcharts-xaxistooltip-text { + color: $white; + } + } + .apexcharts-yaxis-label, + .apexcharts-xaxis-label, + .apexcharts-tooltip-text, + .apexcharts-datalabel-label { + fill: $theme-dark-body-color; + } + .apexcharts-marker { + stroke: $theme-dark-border-color; + } + .apexcharts-legend-series { + .apexcharts-legend-text { + color: $theme-dark-body-color !important; + } + } + .apexcharts-xcrosshairs, + .apexcharts-ycrosshairs, + .apexcharts-gridline { + stroke: $theme-dark-border-color; + } + } +} diff --git a/src/@core/scss/base/plugins/extensions/ext-component-context-menu.scss b/src/@core/scss/base/plugins/extensions/ext-component-context-menu.scss new file mode 100644 index 0000000..97dcc2c --- /dev/null +++ b/src/@core/scss/base/plugins/extensions/ext-component-context-menu.scss @@ -0,0 +1,101 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +/********* CONTEXT MENU *********/ + +.context-menu-list { + margin: 0; + padding: $dropdown-padding-y 0; + border-radius: $dropdown-border-radius; + border: $dropdown-border-width solid $dropdown-border-color; + box-shadow: $dropdown-box-shadow; + min-width: $dropdown-min-width; + + .context-menu-item { + padding: $dropdown-item-padding-y $dropdown-item-padding-x; + color: $dropdown-color; + + &.context-menu-submenu:after { + border-color: transparent transparent transparent $dropdown-color; + } + + &.context-menu-hover, + &:hover, + &:focus { + background-color: $dropdown-link-hover-bg !important; + color: $primary; + + &.context-menu-submenu:after { + border-color: transparent transparent transparent $primary !important; + } + } + + &:focus { + outline: 0; + } + } +} + +// Dark Layout +.dark-layout { + .context-menu-list { + background-color: $theme-dark-body-bg; + border-color: $theme-dark-border-color; + + .context-menu-item { + background-color: $theme-dark-body-bg; + + span { + color: $theme-dark-body-color; + } + + &.context-menu-hover { + > span { + color: $primary; + } + } + + &.context-menu-submenu:after { + border-color: transparent transparent transparent $theme-dark-body-color; + } + } + } +} + +// RTL +[data-textdirection='rtl'] { + .context-menu-list { + z-index: 1031 !important; + + .context-menu-item { + &.context-menu-submenu:after { + transform: rotate(180deg); + top: 1.2rem; + right: 1rem; + left: auto; + border-color: transparent $dropdown-color transparent transparent; + } + + &.context-menu-hover { + &.context-menu-submenu:after { + border-color: transparent $primary transparent transparent !important; + } + } + + > .context-menu-list { + left: 100%; + margin-left: 0; + } + } + } + + .dark-layout { + .context-menu-list { + .context-menu-item { + &.context-menu-submenu:after { + border-color: transparent $theme-dark-body-color transparent transparent; + } + } + } + } +} diff --git a/src/@core/scss/base/plugins/extensions/ext-component-drag-drop.scss b/src/@core/scss/base/plugins/extensions/ext-component-drag-drop.scss new file mode 100644 index 0000000..53176d6 --- /dev/null +++ b/src/@core/scss/base/plugins/extensions/ext-component-drag-drop.scss @@ -0,0 +1,51 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +// draggable cursor - grab +.draggable { + cursor: grab; + .gu-unselectable & { + cursor: grabbing; + } +} + +// For Multi List +#multiple-list-group-a, +#multiple-list-group-b { + min-height: 5.714rem; +} + +// For Handle +#dd-with-handle { + .list-group { + min-height: 5.714rem; + .handle { + padding: 0 5px; + margin-right: 5px; + background-color: rgba($black, 0.1); + cursor: move; + font-size: 1.2rem; + } + } +} +.gu-mirror { + .handle { + padding: 0 5px; + margin-right: 5px; + background-color: rgba($black, 0.1); + cursor: move; + font-size: 1.2rem; + } +} + +// Dak Layout +.dark-layout { + // Drag & drop moving element + .gu-mirror { + &:not(.badge):not([class*='col-']) { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + box-shadow: $theme-dark-box-shadow; + } + } +} diff --git a/src/@core/scss/base/plugins/extensions/ext-component-media-player.scss b/src/@core/scss/base/plugins/extensions/ext-component-media-player.scss new file mode 100644 index 0000000..3d29c1e --- /dev/null +++ b/src/@core/scss/base/plugins/extensions/ext-component-media-player.scss @@ -0,0 +1,21 @@ +// ================================================================================================ +// File Name: ext-component-media-player.scss +// Description: Media Player SCSS. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +// to remove outline on focus +.audio-player { + &:focus { + outline: 0; + } +} +.plyr__controls { + justify-content: flex-start; +} +.plyr__progress { + flex-grow: 1; +} diff --git a/src/@core/scss/base/plugins/extensions/ext-component-ratings.scss b/src/@core/scss/base/plugins/extensions/ext-component-ratings.scss new file mode 100644 index 0000000..11afdd8 --- /dev/null +++ b/src/@core/scss/base/plugins/extensions/ext-component-ratings.scss @@ -0,0 +1,57 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +.jq-ry-container:not(.multi-color-ratings) { + .jq-ry-normal-group { + i, + svg { + fill: $gray-100; + } + } + .jq-ry-rated-group { + i, + svg { + fill: $warning; + } + } +} + +// Dark Layout +.dark-layout { + .jq-ry-container:not(.multi-color-ratings) { + .jq-ry-normal-group { + i, + svg { + fill: $theme-dark-text-muted-color; + } + } + } +} + +// RTL +[data-textdirection='rtl'] { + .jq-ry-container:not(.multi-color-ratings) { + .jq-ry-normal-group { + i, + svg { + fill: $warning; + } + } + .jq-ry-rated-group { + i, + svg { + fill: $gray-100; + } + } + } + .dark-layout { + .jq-ry-container:not(.multi-color-ratings) { + .jq-ry-rated-group { + i, + svg { + fill: $theme-dark-text-muted-color; + } + } + } + } +} diff --git a/src/@core/scss/base/plugins/extensions/ext-component-sliders.scss b/src/@core/scss/base/plugins/extensions/ext-component-sliders.scss new file mode 100644 index 0000000..4ef527c --- /dev/null +++ b/src/@core/scss/base/plugins/extensions/ext-component-sliders.scss @@ -0,0 +1,145 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +$slider_width: 6px; +$handle-size: 1rem; + +.noUi-target { + background-color: rgba($primary, 0.12); + border-width: 0; + box-shadow: none; + border-radius: 1rem; + &.noUi-connect { + box-shadow: none; + } +} + +// horizontal slider and it's sizes +.noUi-horizontal { + height: $slider_width; + .noUi-handle { + width: $handle-size; + height: $handle-size; + cursor: pointer; + right: -($handle-size - ($handle-size/7)); + top: -4px; + } + .noUi-tooltip { + bottom: 135% !important; + } +} +// pips, marker and value +.noUi-pips { + color: $text-muted; +} +.noUi-marker { + background: $border-color; +} +.noUi-value { + font-size: 0.857rem; +} +.noUi-marker-horizontal.noUi-marker, +.noUi-marker-horizontal.noUi-marker-large { + height: 8px; +} + +// slider handle styles +.noUi-handle { + box-shadow: none; + border: none; + + &:after, + &:before { + display: none; + } + border-radius: 50%; + background: $white; + border: 2px solid $primary; +} + +// default selected slide area style +.noUi-connect { + background: $primary; + box-shadow: none; +} + +// Tooltip style +.noUi-tooltip { + transform: translate(-10%, -50%); + font-size: 0.857rem; + border: none; + color: $body-color; + background-color: $body-bg; + padding: 0.1718rem 0.35rem; + font-weight: $font-weight-bold; +} + +// noUi Vertical customization +.noUi-vertical { + display: inline-block; + width: $slider_width; + + .noUi-origin { + right: auto; + } + + .noUi-handle { + width: 1rem; + height: 1rem; + top: -0.375rem; + left: -0.3rem; + } + .noUi-tooltip { + right: 135% !important; + } +} + +// for example value of noUI Hover +.hover_val { + font: 400 12px Arial; + color: $body-color; + display: block; + margin: 15px 0; +} + +// to remove outline on focus +.noUi-handle:focus { + outline: 0; +} + +// IE SPECIFIC FOR SLIDER WITH INPUT +_:-ms-lang(x), +.slider-select { + flex: 0 0 10%; + max-width: 10%; +} + +// Dark Layout +// ------------- +.dark-layout { + .noUi-handle { + background-color: $theme-dark-card-bg; + } + .noUi-tooltip { + background-color: $theme-dark-body-bg; + color: $theme-dark-body-color; + } + .noUi-pips, + .noUi-value { + color: $theme-dark-body-color; + } + .noUi-marker { + background: $theme-dark-border-color; + } +} + +// RTL +// ------------- +[data-textdirection='rtl'] { + .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin { + right: auto; + } + .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle { + left: -3px; + } +} diff --git a/src/@core/scss/base/plugins/extensions/ext-component-sweet-alerts.scss b/src/@core/scss/base/plugins/extensions/ext-component-sweet-alerts.scss new file mode 100644 index 0000000..8d08283 --- /dev/null +++ b/src/@core/scss/base/plugins/extensions/ext-component-sweet-alerts.scss @@ -0,0 +1,124 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +.swal2-container { + .swal2-popup { + border-radius: $card-border-radius; + padding: 2rem; + + // close button + .swal2-close:focus { + outline: none; + box-shadow: none; + } + + // content + .swal2-content { + color: $body-color; + } + + // header styling + .swal2-title { + font-size: $h3-font-size; + font-weight: $headings-font-family; + color: $headings-color; + } + + // remove box-shadow on focus of buttons + button.swal2-confirm:focus { + box-shadow: none; + } + + // input + input.swal2-input { + height: $input-height; + font-size: $font-size-base; + padding: $input-padding-y $input-padding-x; + color: $body-color; + border-color: $custom-control-border-color; + border-radius: $border-radius; + line-height: $line-height-base; + &:focus { + border-color: $primary !important; + box-shadow: $input-focus-box-shadow; + } + } + + // steps + .swal2-progress-steps { + .swal2-progress-step { + background-color: $primary; + &.swal2-active-progress-step { + ~ .swal2-progress-step-line, + ~ .swal2-progress-step { + background-color: lighten(theme-color('primary'), 15%); + } + } + } + .swal2-progress-step-line { + background-color: $primary; + } + } + + // pre code + pre { + min-height: 1.35rem; + margin-top: 0.5rem; + } + + // footer + .swal2-footer { + border-color: $border-color; + color: $body-color; + } + } +} + +// Dark Layout +.dark-layout { + .swal2-container { + .swal2-modal { + background-color: $theme-dark-card-bg; + + .swal2-header { + .swal2-title { + color: $theme-dark-headings-color; + } + + .swal2-icon-text { + color: inherit; + } + + .swal2-success-circular-line-left, + .swal2-success-circular-line-right, + .swal2-success-fix, + .swal2-animate-success-icon { + background-color: $theme-dark-card-bg !important; + } + } + + input.swal2-input { + border-color: $theme-dark-border-color; + color: $theme-dark-body-color; + } + + .swal2-content { + color: $theme-dark-body-color; + } + + pre, + code { + color: $theme-dark-body-color; + } + .swal2-input { + background-color: $theme-dark-card-bg; + } + + // footer + .swal2-footer { + border-color: $theme-dark-border-color; + color: $theme-dark-body-color; + } + } + } +} diff --git a/src/@core/scss/base/plugins/extensions/ext-component-swiper.scss b/src/@core/scss/base/plugins/extensions/ext-component-swiper.scss new file mode 100644 index 0000000..61e4324 --- /dev/null +++ b/src/@core/scss/base/plugins/extensions/ext-component-swiper.scss @@ -0,0 +1,367 @@ +/*========================================================================================= + File Name: ext-component-swiper.scss + Description: swiper plugin scss. + ---------------------------------------------------------------------------------------- + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent +==========================================================================================*/ + +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +/* Swiper css */ +/* ---------- */ +/* swiper slide shadow */ +.swiper-container { + .swiper-shadow { + box-shadow: 2px 8px 10px 0 rgba(25, 42, 70, 0.13) !important; + } +} + +// swiper pagination +.swiper-pagination { + // bullet pagination + .swiper-pagination-bullet { + &:focus { + outline: none; + } + &.swiper-pagination-bullet-active { + background-color: $primary; + } + } + + // progress bar pagination + &.swiper-pagination-progressbar { + .swiper-pagination-progressbar-fill { + background-color: $primary; + } + } +} + +// centered slides option-1 +.swiper-centered-slides { + &.swiper-container { + .swiper-slide { + text-align: center; + font-weight: $headings-font-weight; + background-color: $white; + height: auto; + width: auto !important; + padding: 2rem 5.5rem; + cursor: pointer; + + &.swiper-slide-active { + border: 2px solid $primary; + + i, + svg { + color: $primary; + } + } + } + } + .swiper-button-next { + &:after { + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $white), '#', '%23')); + } + } + .swiper-button-prev { + &:after { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $white), '#', '%23')); + } + } + + .swiper-button-next, + .swiper-button-prev { + height: 40px !important; + width: 40px !important; + + &:after { + border-radius: 50%; + background-color: $primary; + box-shadow: 0 2px 4px 0 rgba($black, 0.5) !important; + background-size: 24px !important; + height: 40px !important; + width: 40px !important; + } + } + + // For RTL + &.swiper-container-rtl { + .swiper-button-next { + &:after { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $white), '#', '%23')); + } + } + .swiper-button-prev { + &:after { + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $white), '#', '%23')); + } + } + } +} + +// centered slides option-2 +.swiper-centered-slides-2 { + &.swiper-container { + .swiper-slide { + font-weight: $headings-font-weight; + background-color: $swiper-bg; + height: auto; + width: auto !important; + cursor: pointer; + + &.swiper-slide-active { + color: $white; + background-color: $primary !important; + box-shadow: 0 3px 6px 0 rgba($primary, 0.5) !important; + } + } + } +} + +/* cube effect */ +.swiper-cube-effect { + &.swiper-container { + width: 300px; + left: 50%; + margin-left: -150px; + margin-top: -12px; + } +} + +/* swiper coverflow slide width */ +.swiper-coverflow { + &.swiper-container { + .swiper-slide { + width: 300px; + } + } +} + +.gallery-thumbs { + padding: 10px 0; + background: $black; + + .swiper-slide { + opacity: 0.4; + } + + .swiper-slide-thumb-active { + opacity: 1; + } +} + +// parallax +.swiper-parallax { + .swiper-slide { + padding: 2.67rem 4rem; + + .title { + font-size: $h5-font-size; + padding: 0.5rem 0; + } + + .text { + font-size: $font-size-sm; + } + } + + .parallax-bg { + position: absolute; + width: 130%; + } +} + +.swiper-virtual { + &.swiper-container { + height: 300px; + + .swiper-slide { + /* virtual slides */ + font-size: $h3-font-size; + background-color: $kbd-bg; + display: flex; + justify-content: center; + align-items: center; + } + } +} + +//navigation button custom icons +.swiper-button-prev, +.swiper-button-next, +.swiper-container-rtl .swiper-button-prev, +.swiper-container-rtl .swiper-button-next { + background-image: none; + color: $white; + width: 38px; + font-size: $h1-font-size; + + &:focus { + outline: none; + } +} + +.swiper-button-prev { + &:after { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $primary), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 44px; + color: $body-color; + width: 44px; + height: 44px; + content: ''; + padding-right: 1px; + } +} + +.swiper-button-next { + &:after { + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $primary), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 44px; + color: $body-color; + width: 44px; + height: 44px; + content: ''; + padding-right: 2px; + } +} + +.swiper-container-rtl { + .swiper-button-prev { + &:after { + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $primary), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 44px; + color: $body-color; + width: 44px; + height: 44px; + content: ''; + } + } + + .swiper-button-next { + &:after { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $primary), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 44px; + color: $body-color; + width: 44px; + height: 44px; + content: ''; + } + } +} + +// Media query for medium screen +@media only screen and (max-width: 768px) { + //navigation button custom boxicons + .swiper-button-prev { + font-size: $h4-font-size; + top: 55%; + &:after { + height: 28px; + width: 28px; + background-size: 24px; + } + } + + .swiper-button-next { + font-size: $h4-font-size; + top: 55%; + &:after { + background-size: 24px; + } + } + .swiper-centered-slides { + .swiper-button-next, + .swiper-button-prev { + &:after { + height: 28px; + width: 28px; + background-size: 18px; + } + } + } + // parallax + .swiper-parallax { + .swiper-slide { + padding: 1rem 1.2rem; + } + + img { + height: 100% !important; + } + } +} + +// Media query for small screen +@media only screen and (max-width: 576px) { + // centered slides option-1 + .swiper-centered-slides { + &.swiper-container { + .swiper-slide { + padding: 1.6rem 2.5rem; + + i, + svg { + height: $h5-font-size !important; + width: $h5-font-size !important; + font-size: $h5-font-size !important; + } + } + } + } + + // cube effect + .swiper-cube-effect { + &.swiper-container { + width: 150px; + left: 70%; + } + } + + // parallax + .swiper-parallax { + .swiper-slide { + padding: 1rem 1.3rem; + } + } + + // virtual slides + .swiper-virtual { + &.swiper-container { + .swiper-slide { + font-size: $font-size-base; + } + } + } +} + +// Dark Layout +.dark-layout { + .swiper-container { + &:not(.swiper-parallax) { + .swiper-slide { + background-color: $theme-dark-body-bg; + } + } + &.swiper-centered-slides { + .swiper-slide { + background-color: $theme-dark-card-bg; + } + } + &.swiper-parallax { + .swiper-slide * { + color: $body-color; + } + } + } +} diff --git a/src/@core/scss/base/plugins/extensions/ext-component-toastr.scss b/src/@core/scss/base/plugins/extensions/ext-component-toastr.scss new file mode 100644 index 0000000..75b449a --- /dev/null +++ b/src/@core/scss/base/plugins/extensions/ext-component-toastr.scss @@ -0,0 +1,254 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +// Toast container opacity +#toast-container > div { + opacity: 1; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + filter: alpha(opacity=100); + max-width: none; + border-radius: $toast-border-radius; +} + +// Toast container hover shadow +#toast-container > div, +#toast-container > div:hover { + box-shadow: $toast-box-shadow; +} + +#toast-container > .toast { + background-image: none !important; +} +// Toast colors +.toast { + background-color: $white; + color: $body-color !important; + .toast-close-button { + color: $body-color; + font-size: 1.75rem; + font-weight: $font-weight-normal; + top: 0; + right: 0; + text-shadow: none; + + &:focus { + outline: none; + } + } + .toast-title { + font-size: $font-size-base; + font-weight: $font-weight-bolder; + line-height: 1.75; + } + .toast-progress { + opacity: 1; + } + &:before { + content: ''; + height: 24px; + width: 24px; + border-radius: 50%; + color: $white; + position: absolute; + left: 1rem; + } + &:after { + content: ''; + background-size: $font-size-base; + background-repeat: no-repeat; + position: absolute; + left: 1.38rem; + top: 1.44rem; + width: $font-size-base; + height: $font-size-base; + } +} + +// we are using only few colors in toast so not adding in palette.scss +// plugin class name 'error' is also differ then ours so not useful to add in palette +.toast-success { + .toast-title { + color: $success; + } + .toast-progress { + background-color: $success; + } + &:before { + background-color: $success; + } + &:after { + background-image: url(str-replace(str-replace($check, 'currentColor', $white), '#', '%23')); + } +} +.toast-error { + .toast-title { + color: $danger; + } + .toast-progress { + background-color: $danger; + } + &:before { + background-color: $danger; + } + &:after { + background-image: url(str-replace(str-replace($remove, 'currentColor', $white), '#', '%23')); + } +} +.toast-info { + .toast-title { + color: $info; + } + .toast-progress { + background-color: $info; + } + &:before { + background-color: $info; + } + &:after { + background-image: url(str-replace(str-replace($infoIcon, 'currentColor', $white), '#', '%23')); + } +} +.toast-warning { + .toast-title { + color: $warning; + } + .toast-progress { + background-color: $warning; + } + &:before { + background-color: $warning; + } + &:after { + background-image: url(str-replace(str-replace($warningIcon, 'currentColor', $white), '#', '%23')); + } +} + +// position alignments +.toast-top-left { + top: 1.3rem; + left: $content-padding; +} +.toast-top-right { + top: 1.3rem; + right: $content-padding; +} +.toast-top-center, +.toast-top-full-width { + top: 1.3rem; +} +.toast-bottom-left { + bottom: 1.3rem; + left: $content-padding; +} +.toast-bottom-right { + bottom: 1.3rem; + right: $content-padding; +} +.toast-bottom-center, +.toast-bottom-full-width { + bottom: 1.3rem; +} + +// Media query + +@media (max-width: 480px) and (min-width: 241px) { + #toast-container > .toast { + &:after { + top: 0.95rem; + } + .toast-close-button { + top: 0; + right: -1px; + } + } + #toast-container > div { + width: 20rem; + } + .toast-top-left { + left: 0; + } + #toast-container { + &.toast-top-center, + &.toast-bottom-center { + right: 1rem; + > div { + width: 20rem !important; + } + } + } + .toast-top-full-width, + .toast-bottom-full-width { + right: 0; + left: 0; + width: 93%; + > div { + width: 100%; + } + } + .toast-bottom-left { + left: 0.25rem; + bottom: 0.75rem; + } + .toast-bottom-right { + right: 2.25rem; + bottom: 0.75rem; + } + .toast-bottom-center, + .toast-bottom-full-width { + bottom: 0.75rem; + } + [data-textdirection='rtl'] { + #toast-container > div { + padding-right: 8px; + } + } +} + +// Toastr Dark Layout +.dark-layout { + #toast-container > div, + #toast-container > div:hover { + box-shadow: $theme-dark-box-shadow; + } + #toast-container { + .toast { + background-color: $theme-dark-card-bg; + color: $theme-dark-body-color !important; + .toast-close-button { + color: $theme-dark-body-color; + } + } + } +} + +[data-textdirection='rtl'] { + .toast .toast-close-button { + @include media-breakpoint-down(xs) { + top: 0.55rem !important; + right: 0.5rem !important; + } + } + .toast-top-left { + left: 1rem; + right: auto; + } + .toast-top-right { + right: 3rem; + left: auto; + } + .toast-bottom-left { + left: 1em; + right: auto; + } + .toast-bottom-right { + right: 3rem; + left: auto; + } + .toast-top-full-width, + .toast-bottom-full-width { + &#toast-container > div { + left: 0; + right: 0; + } + } +} diff --git a/src/@core/scss/base/plugins/extensions/ext-component-tour.scss b/src/@core/scss/base/plugins/extensions/ext-component-tour.scss new file mode 100644 index 0000000..f9d797b --- /dev/null +++ b/src/@core/scss/base/plugins/extensions/ext-component-tour.scss @@ -0,0 +1,80 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +.shepherd-element { + border-radius: $border-radius; + width: 350px; + &[data-popper-placement='bottom'] { + margin-top: 1rem !important; + .shepherd-arrow:before { + background-color: $primary !important; + } + } + &[data-popper-placement='top'] { + margin-bottom: 1rem !important; + } + &[data-popper-placement='left'] { + margin-right: 1rem !important; + } + &[data-popper-placement='right'] { + margin-left: 1rem !important; + } + + .shepherd-content { + border-radius: $border-radius; + // header + .shepherd-header { + background-color: $primary; + padding: 0.38rem 1.2rem; + border-radius: $border-radius $border-radius 0 0; + .shepherd-title { + color: $white; + font-weight: 500; + font-size: 1.1rem; + } + .shepherd-cancel-icon { + color: $white; + font-size: 1.7rem; + + &:focus { + outline: none; + } + } + } + + // body or text + .shepherd-text { + color: $body-color; + padding: 0.8rem 1.2rem; + } + + // footer + .shepherd-footer { + padding: 0 1.2rem 1rem; + justify-content: space-between; + .shepherd-button { + padding: 0.5rem 1.3rem; + } + } + } + @include media-breakpoint-down(xs) { + width: 300px; + } +} + +// Dark layout +.dark-layout { + .shepherd-element { + background-color: $theme-dark-card-bg; + &:not([data-popper-placement='bottom']) { + .shepherd-arrow:before { + background-color: $theme-dark-card-bg; + } + } + .shepherd-content { + .shepherd-text { + color: $theme-dark-body-color; + } + } + } +} diff --git a/src/@core/scss/base/plugins/extensions/ext-component-tree.scss b/src/@core/scss/base/plugins/extensions/ext-component-tree.scss new file mode 100644 index 0000000..53289e0 --- /dev/null +++ b/src/@core/scss/base/plugins/extensions/ext-component-tree.scss @@ -0,0 +1,154 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +.jstree > .jstree-container-ul .jstree-loading > .jstree-ocl, +.jstree > .jstree-container-ul .jstree-loading > .jstree-ocl, +.jstree > .jstree-container-ul .jstree-loading > .jstree-ocl { + background-image: url('data:image/gif;base64,R0lGODlhEAAQAPMAAP////Dw8IqKiuDg4EZGRnp6egAAAFhYWCQkJKysrL6+vhQUFJycnAQEBDY2NmhoaCH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAAEcRBIEOg7dWow0AiGMVCbNBhI0IjBqA2jYAgrnEkBMYPNcXymzEDXULhwQFwg4TjiNAKCj1GiBK5RAoFaul6tisItqAkIFgRnyzgpIBhmAWyQoLA5o4FDkWAM5E8TAQcFAAxUA3AlAwUjhxIKYyUKClURACH5BAkKAAAALAAAAAAQABAAAARwEEgQaHm1zjnICIgxDEuySYPhgM0QKtsICAaDLIxBbMGBBwvHxWDIaAYHlQyg+HwmgUDCc9JIEo9CAXaiRAOMw+PBrX69A4ZVEuVNDwNe4CkREBLgxEg2P8YHDwMKeE1sPAUMTCaCa2xqiiiNJ0snEQAh+QQJCgAAACwAAAAAEAAQAAAEchBIECgTtc453ggEEgROsklDc4DiYSjbBzBGEiYGAQxwUJQkgkDgMAwEBuPusTgMBihaEkYJKB4aicIgmCiGDOhpRE4UztQxuTpIZCWjTSDxwMgDMgmjoLD213gaMkdPH3lvAQwwTxR5cm47YnEnMWInEQAh+QQJCgAAACwAAAAAEAAQAAAEcBBIEChjtc45SggH8R3KJg2OFwaPUU4fwCxKqBgPNVDCMwSEwoVgCDAMi0on9TspEAaX5KPwbAa4X0DBSCR2psdi0SBdGOBNK+qgBAYKDWdAzwwEmM2nKeH+6h92GjFbgW+Dego7hHx6TTFuJiaQJhEAIfkECQoAAAAsAAAAABAAEAAABGYQSBBoKbXOOU4IhvEZyiYNhhcGC7l9QEGGjLFQA3UsCuhcK5kI0EkNNANFyMCQfBSeDcpxDAwY2JzJseRdCtpNa0mxHjdK6tmK1UiUIe31OKjCyGXc53OGvup5Vm4TgnmGJoSDExEAIfkECQoAAAAsAAAAABAAEAAABHgQSBCoUrXOGVIIQvEVwyYFhScIIFJy1fAM67AIVBkoyQAyl4JjhyBkFAKMJjA4GByvz8CzCRAYH+nAZwIwDgeCYLvVbBgIxOJBYX42Awej3KZLpgYDIerLfhYGTQYLGRl9HQYHADxVXG8IBgpdWW0AAwYMXVVLGxEAIfkECQoAAAAsAAAAABAAEAAABHMQSBDoGLXOGVQIDPMxwyaBWCIyRMlVgxCoA5FYFjYrF/N0hJ+F9zkNHouD6xPAbAKPBHOq2SQej4NsagIkCA5HgdIsTgYHafFzqQ4UBoPQMi08EAaowZHJYBYGAgZjb086gAN4Lk9MDQYXDTddJwd8FBsRACH5BAkKAAAALAAAAAAQABAAAARxEEgQ6Bi1zhlwUEoQJMMmfRj4PSVXDSE4PAqVdeJ1JUV3CDePplNwFFqi5CYgCCWfJoCiQE08NRvF4/CzeZY0Za6DHCAMvZPHYBAICAimgXADCNAIBKMNgG0GbAMLCwEOBi0bCQYhgx0INVElAVwZGxEAIfkECQoAAAAsAAAAABAAEAAABHMQSBBouHTqe8e4SqVRX+CZjChhpvkJg2VxtJKYQmqV4sU8jNgMMwkEabQRYCBo3pKjQWGasCgQig2MsyQYDMHVgLAQVAINg2NgQDASD4IR8agwsgKDwOFIgJdCEmwIAXwBBw2BEwmJAQgOJgRZSmdTZxoRACH5BAkKAAAALAAAAAAQABAAAARzEEgQaLh06sv5qBr1dYMCSlgwXspgWav3DYwJc2iQCLalnpQW57EoPkKAQWKpcBieBCSNwVPRFq5JgLFKEp69y8PBqAQQhseZsBQcAopDoZJwCQyMA0GxSIg0AwYOAXoBBQ5ZGgoIHwQEKg+JGxQCAmYaEQAh+QQJCgAAACwAAAAAEAAQAAAEbxBIEGi4dOrLe9XU4AWiNgxhV2KBYQijGCil4hqlNdDfVRiJjezyQBgfIMBOQTs0FotCcpkQiRIE1CRQ5SgPrtxF8EhUAg5DIUA4MBmPWYFRoQEYwMJj4AiSTAsEAXoBDFlTWQEPBz5aIGcMdBkTEQAh+QQJCgAAACwAAAAAEAAQAAAEcxBIEGi4dGq1xv2YBigGAgaeNgzAYSRfigWIIQyGEV9eNdQGRkKyq1gYDYXmFBA4CASBiLJaFRBYqQhV/SgOrElA0asECoaO8ZIQKMwuQeBRWCUYKKGPxVEI6g8sIUQOD00FAQmIUwOBhxcMYVsUCTAZExEAOw=='); +} + +.jstree .jstree-node, +.jstree .jstree-icon, +.jstree .jstree-file, +.jstree .jstree-folder, +#jstree-dnd.jstree .jstree-ok, +#jstree-dnd.jstree .jstree-er, +.jstree-small .jstree-node, +.jstree-small .jstree-icon, +.jstree-small .jstree-file, +.jstree-small .jstree-folder, +#jstree-dnd.jstree-small .jstree-ok, +#jstree-dnd.jstree-small .jstree-er, +.jstree-large .jstree-node, +.jstree-large .jstree-icon, +.jstree-large .jstree-file, +.jstree-large .jstree-folder, +#jstree-dnd.jstree-large .jstree-ok, +#jstree-dnd.jstree-large .jstree-er { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAABgCAYAAABsS6soAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMDgtMThUMTg6NTU6MzIrMDU6MzAiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTA4LTE4VDE5OjI4OjQwKzA1OjMwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTA4LTE4VDE5OjI4OjQwKzA1OjMwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc1N2M4OTEyLWRmYzMtNDM5YS1hYjJjLTcwMGRjNWQxMDkwMyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjRlN2RlN2M1LTZlY2MtMDI0Ny1hN2I0LTJmOTU3NDc3MjAzNiIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjNhOWQ5OTMyLWFmNmMtNGFkMy1hNTUzLTFlYjczYjRlMWI2ZCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6M2E5ZDk5MzItYWY2Yy00YWQzLWE1NTMtMWViNzNiNGUxYjZkIiBzdEV2dDp3aGVuPSIyMDIwLTA4LTE4VDE4OjU1OjMyKzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NzU3Yzg5MTItZGZjMy00MzlhLWFiMmMtNzAwZGM1ZDEwOTAzIiBzdEV2dDp3aGVuPSIyMDIwLTA4LTE4VDE5OjI4OjQwKzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6MDZg5AAAIR0lEQVR42u2dX4gVVRzHZ0mktWuQEeSLErgW2CIp3SJy6SkoCBZ6U0oQjArpIUVCH4rATUyjoKcEHwJ9CKLAiKg3jYoL/aOCRYNICIVKQW9CS8v2+7nnuuPZmbnjvXPmzJ7z+cCP2XV29rhn9nz2O3/PyNzcXHIzTE1NJXAd7bwR2gfw8/u3b9++oX7/RhAgACxVRIBDbY8ASWAkQCABIkAAIAEiQBIYCRBIgAgQAEiACJAERgIEEiACBA8sl1oldaf5uCwzUn9LXTQf0/6gKeup/S1ZrJZqWau6UuenTh7okgBJgLTvhruljkhtHWDbE1K7pS7Q/lACHJPFmZzV90tNiwRnSYAA1bNB6mepSalzN7HdGqmPzQD9JYD2BxnocxW030+A60V+Z2NKgC0ThbummoCv/5OPBJb+Wa80JAG67P8HpL6T2iT1fQ3b5X6fTqfzgyyXmcrjP1O3ttvtqxW2X7if5f/WMl97SmpC2j5t9s9Q7ZvD3zEj9FXW6oum8va560NkLwmw99dgwnSsbwmmd/x6qbNJ2MTW/00SoCaxMufT9FzdsroEaMnvGtL2SEUCLEp/ZXCaEH0kwN4OUR6V+tHjILR3/LC/bEshAab7X1npsf/njIhd9n+TBDgty6sltllhJORcgFnyq1iA9u/bzbJJBOhqTHpJgHaH+EoiWTu+bgH6ILb+R4BGgEZ21041yPfu5smv4kPgJgvQewL0NQjzdnyMCTD0/keACwLcYvp8wpxqGMuSn7angiQB1ifAOgdh3uCLNQGG3v8IcEGA6cG6Q+pYgfwSEmC9AlT0ZskLngafzwQ46LJKAV7fpw7b79f/LtpHgNkCTPrILwYBRpUAyww+EmB4/Y8AFx8Cl5EfCbBGAdZx+KV3xJ/v8zUx3AYTW/8jwBsvgth/hPLkRwKsSYB1nnvKeh6xR9cM0G4SNrH1P/cBpm6DsW94LpAfCbAGATblZtyYiK3/eRLEug/Qvh2mKCGRAKsXYNOeRIiN2PqfZ4E9PgtMAlwswCY+CxwTsfW/nns8LLVtgG2PS+1Jhn8bS7TtN/xRON4GA8HD+wA9tl/wLsAyOH9fIO8DBIBYIQECQLyQAAGABIgAAYAEiAABgASIAAGABIgAAYAEiAABgASIACv9K5QwN/AIvwZAAgQAIAGSAGkfgAQIAEACJAHSPgAJEACABEgCpH0AEiBAEbwP0G/7JEAESALz2L6+EfmI1NYBtj0htTsZ/o3MMbdPAkSA4BHmBPE4JwgJsJwA65ynomlzYjQhga302P+uf/4lOSvc+Pj4Q6Ojo18nDmaFy8KeLrPdbp9OKpgVjgTYX4Dpjq9jYnJmpYur/5fkvMAiwM11CTBrwnQR4EgEAvSeALXjN0p9aT6vo7ObNi+uzwSo/X8l9bmP/j8VUQKcluXVEtusEAFurEOAWfKLSIBeE2BWx9c9AJsiQd/JL+T+R4BGgPaE6Hnyi+gQ2FsCzOt4HwPQtwR9JMCY+h8BLghwi9nnE+ZUx1iW/LQ9FSQJ0I0A8wafzwEYUxKMrf8R4IIA04N1h9SxAvklJEA3AtT7ks7nrPY5AIcdhL0kN+iyqiRZZpk46P8q2nchQQSYLcCkj/xiECAJMMIkGFv/I8DFh8Bl5EcCdCRA3+egerdhFLE6Cffu99j6HwHeeBHE3u958iMBOhRg3iCso7NbZoC1ctZ3zSF6jOcCQ+x/7gNM3QZj3/BcID8SoGMBZg3CoDt7CUgwxP7nSRDrPkD7dpiihEQCdCtAexDW8SQCxNX/PAvMs8CNTYDpQdik53NjlGCo/a93HRyW2jbAtsel9iTDv40l5vZJgCUECOAK3gfI+wAbnwABAEiAAAAkQAAAEiAAAAkQAIAECABAAgQAIAECAJAAAQBIgAAAJEAAABIgAAAJEACABAgAJEAECAAkQAQIACRABBgi/SYjsollciggATZDgJ1O5xZZ3C61UuqK1OV2uz1b1U+79+hRfSPubebTfw7t3DljrdM35/5rrwuEMtNR2jBHC5AA6xCgkd9dUvuldkm9KPWR1J9VSNAIbq3Ua1L3Sm3Xwa2ik3UtI4gPpD6TOqDtyrrZgPZ1vwnJs2CWPiABuhZgSn67jAB7qIiOiAAvVSS/l0wbyufm47+k7kvmJ4C5J92uCPBSQDs7LUD9s5c30Y1OojOFAIEEWIMAC+Sn/Cb1iAhwqFmpTMJ7IyW/Hp9KvZfMz5q1zlq3VgR4LqB9TQIE8JUAJycnVXSj5tMZkdpMCfk9J/VNn8mbyybAx6R2Sz1eYpN3NQWKAEOaDhABAvhIgEZ+enHjQamnTeLSK4wt1/KzUqAeBr/VR4Iqvzf1EDGwCyEcAgP4SIAiQJXPw1JfmH/S82+vSz1Rh/ysJLhB6mCOBN8xgrwQ4FVgEiCApwS4Rha/W//8rdTmDPnpDPY/VS2/VArUq71HM9pW9Jzg3sRcHUaACBBIgFUIUA+rPsmRTh3Jr3f+cVzq/WTxBY80mk5fDlCCHAIDeEqAy03yOiT1ZMaX/Cr1ggv5pZLfM0Zs60okUZXgdi6CIEAgAQ4twJQE9SLE25YEVX7PujrsNQK8I5m/uLHVWqXn/D6UeiVDzOtFgCE9BYEAAXwkwAIJOk1+KQH2EujzycK9gL0LHheT+Wdk02LWdQcDToAcAgP4eBIkJUF9KuOk1Fcu5WdJUNt9VUqf8Lh+q0tqnabEM2bdHzwKhwCBBFipAPVJkE6no8LR0osMs1W+8KCEBItehpC5LhB4GQKA7wTI67C8weuwAJqQAAEASIAAACRAAAASIAAACRAAgAQIAEACBABY4gkQACAU/gfEuTGqiiEZXwAAAABJRU5ErkJggg=='); +} + +@media (max-width: 768px) { + #jstree-dnd.jstree-dnd-responsive > .jstree-ok, + #jstree-dnd.jstree-dnd-responsive > .jstree-er, + .jstree-responsive .jstree-icon, + .jstree-responsive .jstree-node, + .jstree-responsive .jstree-icon, + .jstree-responsive .jstree-node > .jstree-ocl, + .jstree-responsive .jstree-themeicon, + .jstree-responsive .jstree-checkbox, + .jstree-responsive .jstree-file, + .jstree-responsive .jstree-folder { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAAHgCAMAAACsKhCPAAAAP1BMVEUAAAAzMzMzMzMzMzMzMzMzMzMzMzPS0tL///8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzPt7e0zMzMzMzM8PDx7bmBmAAAAE3RSTlMADv4GXAL9HwH8CFkdIRQKXQZQ61O9/gAABrVJREFUeNrt3euS3CYQhmFiJ5ZydBL2/q81h8o6Y+uE4EN00y//RlqpeGo0ApqGTWmSklOwAhgwYMCAAQMGDBgw4KnByxILvOS8RAL/7ZWJsxevSpzdeEXi7MerEWdHXok4e/IqxAJwznXnKrwCcRZ4j1Vn56q87eKs8B6pzs5VeoeD3+tx99wobyv4/5rcOzfM2wh+rcudc+O8beCva1N+bqC3CfxtfUrPjfS2gLc1Kjs31KsF54JTg73SR/oLy7BX+dL6ArPsFTZLX2imvbqOx1kx5JV1Lb14VYMHN17R8FDm9QBOSq+DR/pCbKcTrYxpKb3Gm6ULsaWBsDZqqfQa7lpeiG0Fs8TgpPQaHR7eCAcYEgtnHpRemyEeddjOfhDvWKy4m8Uw7ZFYczeLgfh9sepuFqda9sS6uy32wSlL77hYf6TlZbH90uotDpDyEC+pJV7aUrzEtHiph/GSS+OlDys7RoABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMuKksSyzwIl5PZR28SNdhZG3mdQewNrEo9xRrU7mXDl6xOCu9mmRI82BR+me+VQaCNQm+S75ZllFgUQq3G7AqSd8z2HYPxOwKMrs9LWdiu2vmDPelFWI/zZJI7AssEDsDt4u9gZvF7sCtYn/gRrFDcJvYI7hJ7BLcIgbMI81Li2aJjgddSwYPDA8JABDiEQXxHIE1QUvHc0t1lQk31cJkGtOlVl9a00+Ii1IevHY8lhQBrEhb8jl4WFIUcHvqoccAQKjk0njpw24KYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDPjkNtJ/Ia6/nxas3iCow5ZDSnBB7bKGKyHnJ7x36tltXykRuMxbXs+OO2lJwKXe0np23TtMAC73ltWz825pzeA73pJ6dt8fTgUuIgjuNxr8tFciFoBV3pLXm23w3V+ddXDpL+6mN7f+zSjw7beqQ3B1e+QU/PqhotV0B379VNNL8AZ+/VjVK3IGfiXW9QLdgmt7vV4f6epevtOXVv2oxmez1BDUctnxOBoUz9q1bAriuexLHwU95h08NAQtnY6W9n/XMw8Pq4O0bsfDe+/tCAEAwO7B8qCb+6jlrGBZ4Nx8IF4+NWJ9qkU++WV+Mk0+vWl9ulQ/gW19QlyfomA95UGfhGI9qUWfZmQ9bSnpE8mMJ6Yd1tHS/eRgPwUwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDDguuF8SikVw1zQje+DOiWTmwL1TBa2BuyeDGgP3T/e1BX4godsU+ImUfZPg2vPewI8suzEIbvwTn+CjX+5U4BfY4bvK3jMNGDBgwIABAwYMGHAUsDrGwDcMGDBgwIDnAIcL4oUN08YJxIebaok3mRZuujTehHi8lId4SS3x0pZSuMS0dNa1nBbspwAGDBgwYMCAAQMGDBgwYMCAAQMG7K2CgAEDBgwYMGDAgAEDBvzI/bqnOgAGDHgEOIcD51+CgT/k72KBP2WR2BFYI/YElohdgfNP0cD5YzRw/hwN3Pw79tMOv5dfg/S0rPwb+6cGDz+8l4+/MVoC7Bz88/ev5fc/pwdrv3F/4A/RwD8CBgw4NNjOflrPgFO0bxgwYMCAAQMGDBgwYMCAAQMGDNgg+FM08GTbPLorgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgD2C18cu8gxOgGOBV8B2wKuNmwIGDBgw4PDg/KasWzYPzvkf8Vpx2eVhk+B/8w/fbtftIG3x68MWwf9lXL6tVZddHDYIrkwyPbjq28P2wJVptQdXbQ6bA9cu1N+/anvYGrgydfrgqp3DxsCVyeIHV+0dtgWuTY6/3oTNJrh+McDelft3swRuWfxQvFWJIXDbYo/SpSN2wNsarkkpttbx2KnhmoRia13LvRquSScePHjY/Dw1LUjJ0q8h4M0LSdaCXC91GwHeVELWgqTrpX0DwJtq6FqQffHgmNamIsIWpKA1fxy8qYqyBTH4DW+qIm1B7P2GN1URtyDW3tL3FkvP0A7fWhw+RU/rzmL4OfrSNxb/TzJaKt/sYNW+Hob3tC7H+6v2dTgu4lG6mcXacktTMa3CzTvWJq+pqGXZZiUN4OPDgyIeRfG6+kf65PCoEE9JfLL6pXV2eFhMqyAeW9ssnR4eF8S7jj9XdjzODw+MWl7G26fLALiaX5gvx+NiPmXCLJ7z+aMZ87T+SFJwQSH1sB94rSuBvuEuX7l/cPcnhm/YOHgF7Acc7i09pgAGDBgwYMAOwX8BjFtKB7+K+X8AAAAASUVORK5CYII='); + } +} + +.jstree .jstree-last, +.jstree > .jstree-no-dots .jstree-node, +.jstree > .jstree-no-dots .jstree-leaf > .jstree-ocl, +.jstree .jstree-disabled, +.jstree .jstree-themeicon-custom:not(.jstree-file):not(.jstree-folder) { + background: transparent !important; +} + +// Light Layout +.jstree { + .jstree-container-ul { + .jstree-anchor { + color: $body-color; + &.jstree-clicked, + &.jstree-hovered { + background: transparent; + box-shadow: none; + } + } + .jstree-node { + .jstree-wholerow-clicked { + background: rgba($color: $primary, $alpha: 0.1); + } + .jstree-wholerow-hovered:not(.jstree-wholerow-clicked) { + background: transparent; + } + } + } +} + +// Context Menu Styling +.vakata-context.jstree-contextmenu { + background: $white; + border: 0; + box-shadow: 0px 0px 50px 0px rgba($black, 0.1); + li { + a { + color: $body-color; + padding: 0 1.5rem; + text-shadow: none; + i { + display: none; + } + } + &.vakata-context-hover > a { + background-color: $body-bg; + box-shadow: none; + } + &.vakata-context-separator { + a { + margin: 0; + border-color: $border-color; + } + } + &.vakata-contextmenu-disabled { + a { + color: $text-muted; + } + &.vakata-context-hover a { + background-color: transparent !important; + cursor: default; + } + } + ul { + background: $white; + border: 0; + box-shadow: 0px 0px 50px 0px rgba($black, 0.1); + } + } + .vakata-contextmenu-sep { + display: none; + } +} + +// Dark Layout +.dark-layout { + // Folder Icons and text colors + .jstree { + .jstree-container-ul { + .jstree-anchor { + color: $theme-dark-body-color; + } + } + } + + // Context Menu Styling + .vakata-context.jstree-contextmenu { + background: $theme-dark-card-bg; + box-shadow: $theme-dark-box-shadow; + li { + a { + color: $theme-dark-body-color; + } + &.vakata-context-hover > a { + background-color: $theme-dark-body-bg; + } + &.vakata-context-separator a { + border-color: $theme-dark-border-color; + } + &.vakata-contextmenu-disabled a { + color: $theme-dark-text-muted-color; + } + ul { + background: $theme-dark-card-bg; + box-shadow: $theme-dark-box-shadow; + } + } + } +} diff --git a/src/@core/scss/base/plugins/forms/form-file-uploader.scss b/src/@core/scss/base/plugins/forms/form-file-uploader.scss new file mode 100644 index 0000000..9957e6a --- /dev/null +++ b/src/@core/scss/base/plugins/forms/form-file-uploader.scss @@ -0,0 +1,103 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +.dropzone { + min-height: 350px; + border: 2px dashed $primary; + background: $body-bg; + position: relative; + // dropzone message customization + .dz-message { + font-size: 2rem; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + color: #7367f0; + display: flex; + justify-content: center; + align-items: center; + margin: 0; + } + + // dropzone message icon + .dz-message:before { + content: ''; + background-image: url(str-replace(str-replace($download, 'currentColor', $primary), '#', '%23')); + font-size: 80px; + position: absolute; + top: 14rem; + width: 80px; + height: 80px; + display: inline-block; + line-height: 1; + z-index: 2; + color: $primary; + text-indent: 0px; + font-weight: normal; + -webkit-font-smoothing: antialiased; + } + + // for preview of files + .dz-preview { + background: transparent !important; + + .dz-error-mark, + .dz-success-mark { + z-index: 10; + } + + .dz-image { + border-radius: $border-radius; + } + + .dz-error-message { + background: $danger; + &:after { + border-bottom: 6px solid $danger; + } + } + } + + // for dropzone preview and remove icon + .dz-preview .dz-remove { + font-size: 1.1rem; + color: $danger; + line-height: 2rem; + + &:before { + content: ''; + background-image: url(str-replace(str-replace($remove, 'currentColor', $danger), '#', '%23')); + display: inline-block; + line-height: 1; + z-index: 2; + text-indent: 0px; + font-weight: normal; + -webkit-font-smoothing: antialiased; + } + + &:hover { + text-decoration: none; + color: darken($danger, 10%); + } + } +} + +// For Small Screen drop Logo +@media (max-width: 576px) { + .dropzone { + .dz-message { + &:before { + top: 15rem; + } + } + } +} + +// dark layout +.dark-layout { + .dropzone { + background-color: lighten($theme-dark-card-bg, 3%); + } +} diff --git a/src/@core/scss/base/plugins/forms/form-number-input.scss b/src/@core/scss/base/plugins/forms/form-number-input.scss new file mode 100644 index 0000000..07c1b84 --- /dev/null +++ b/src/@core/scss/base/plugins/forms/form-number-input.scss @@ -0,0 +1,157 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +// Number Inputs (Touch spin) +$bootstrap-touchspin-width: 8.4rem; +$bootstrap-touchspin-width-lg: 9.375rem; +$bootstrap-touchspin-width-sm: 6.25rem; + +$bootstrap-touchspin-btn-width: 20px; +$bootstrap-touchspin-btn-height: 20px; +$bootstrap-touchspin-btn-width-lg: 24px; +$bootstrap-touchspin-btn-height-lg: 24px; +$bootstrap-touchspin-btn-width-sm: 16px; +$bootstrap-touchspin-btn-height-sm: 16px; + +/* Bootstrap Touchspin */ + +.bootstrap-touchspin { + &.input-group { + width: $bootstrap-touchspin-width; + align-items: center; + .form-control { + padding: 5px; + height: auto; + border: 0; + background-color: $body-bg; + border-radius: $border-radius !important; + text-align: center; + font-weight: 500; + &:focus { + z-index: 1; + box-shadow: none; + } + } + } + + .bootstrap-touchspin-injected { + margin: 0 !important; + &.input-group-prepend { + left: 12px; + position: relative; + } + &.input-group-append { + right: 12px; + position: relative; + } + .bootstrap-touchspin-down, + .bootstrap-touchspin-up { + padding: 0; + min-width: $bootstrap-touchspin-btn-width; + min-height: $bootstrap-touchspin-btn-width; + border-radius: $border-radius !important; + i, + svg { + height: 0.8rem; + width: 0.8rem; + font-size: 0.8rem; + position: relative; + top: -1px; + } + } + } + + // Disabled Touchspin + &.disabled-touchspin { + .bootstrap-touchspin-down, + .bootstrap-touchspin-up { + background-color: rgba($black, 0.5) !important; + cursor: default; + opacity: 0.5; + } + } + + // Touchspin Large + &.input-group-lg { + width: $bootstrap-touchspin-width-lg; + .touchspin { + &.form-control { + height: auto !important; + } + } + .bootstrap-touchspin-down, + .bootstrap-touchspin-up { + min-width: $bootstrap-touchspin-btn-width-lg; + min-height: $bootstrap-touchspin-btn-width-lg; + i, + svg { + height: 1rem; + width: 1rem; + font-size: 1rem; + top: -3px; + } + } + } + + // Touchspin Small + &.input-group-sm { + width: $bootstrap-touchspin-width-sm; + .touchspin { + &.form-control { + height: auto !important; + } + } + .bootstrap-touchspin-injected { + .bootstrap-touchspin-down, + .bootstrap-touchspin-up { + min-width: $bootstrap-touchspin-btn-width-sm; + min-height: $bootstrap-touchspin-btn-width-sm; + i, + svg { + height: 0.6rem; + width: 0.6rem; + font-size: 0.6rem; + } + } + } + } +} + +/* Number Type Input Box Scss for Touchspin - Remove arrow for firefox */ +.bootstrap-touchspin { + &.input-group { + input[type='number'] { + -moz-appearance: textfield; + } + } +} + +// Dark layout style +.dark-layout { + // number inputs[touchspin] + .bootstrap-touchspin { + &.input-group { + .form-control { + background-color: $theme-dark-body-bg; + } + } + + &.disabled-touchspin { + .bootstrap-touchspin-injected { + .bootstrap-touchspin-down, + .bootstrap-touchspin-up, + .disabled-max-min { + background-color: $gray-600 !important; + opacity: 1; + } + } + } + + .bootstrap-touchspin-injected { + .disabled-max-min { + background-color: $gray-600 !important; + opacity: 1; + } + } + } +} diff --git a/src/@core/scss/base/plugins/forms/form-quill-editor.scss b/src/@core/scss/base/plugins/forms/form-quill-editor.scss new file mode 100644 index 0000000..3a42e01 --- /dev/null +++ b/src/@core/scss/base/plugins/forms/form-quill-editor.scss @@ -0,0 +1,213 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +/* Set dropdown font-families */ +.ql-toolbar .ql-font span[data-label='Sailec Light']::before { + font-family: 'Sailec Light'; +} +.ql-toolbar .ql-font span[data-label='Sofia Pro']::before { + font-family: 'Sofia'; +} +.ql-toolbar .ql-font span[data-label='Slabo 27px']::before { + font-family: 'Slabo 27px'; +} +.ql-toolbar .ql-font span[data-label='Roboto Slab']::before { + font-family: 'Roboto Slab'; +} +.ql-toolbar .ql-font span[data-label='Inconsolata']::before { + font-family: 'Inconsolata'; +} +.ql-toolbar .ql-font span[data-label='Ubuntu Mono']::before { + font-family: 'Ubuntu Mono'; +} + +/* Set content font-families */ +.ql-font-sofia { + font-family: 'Sofia'; +} +.ql-font-slabo { + font-family: 'Slabo 27px'; +} +.ql-font-roboto { + font-family: 'Roboto Slab'; +} +.ql-font-inconsolata { + font-family: 'Inconsolata'; +} +.ql-font-ubuntu { + font-family: 'Ubuntu Mono'; +} + +// Quill Editor +.ql-toolbar { + border-color: $custom-control-border-color !important; + .ql-formats { + &:focus, + *:focus { + outline: 0; + } + // button and label hover + .ql-picker-label, + button { + &:hover, + &:focus { + color: $primary !important; + .ql-stroke { + stroke: $primary !important; + } + .ql-fill { + fill: $primary !important; + } + } + &.ql-active { + color: $primary !important; + } + } + .ql-picker-item.ql-selected { + color: $primary !important; + } + // quill dropdown item hover + .ql-picker-options { + .ql-picker-item:hover { + color: $primary !important; + } + .ql-active { + color: $primary !important; + } + } + } +} +.ql-bubble { + .ql-picker { + color: $white !important; + } + // stroke options color + .ql-stroke { + stroke: $white !important; + } + // fill options color + .ql-fill { + fill: $white !important; + } +} +.ql-container { + border-color: $custom-control-border-color !important; + font-family: $font-family-monospace; +} +.ql-editor { + a { + color: $primary; + } +} +// default picker options +.ql-picker { + color: $headings-color !important; +} +// stroke options color +.ql-stroke { + stroke: $headings-color !important; +} +.ql-active { + .ql-stroke { + stroke: $primary !important; + } + .ql-fill { + fill: $primary !important; + } +} +// fill options color +.ql-fill { + fill: $headings-color !important; +} +// Border rounded for editor +.ql-toolbar, +.ql-container { + border-top-right-radius: $border-radius; + border-top-left-radius: $border-radius; +} +.ql-toolbar { + + .ql-container, + .ql-container + & { + // ? If container/toolbar is below container/toolbar add bottom radius + border-bottom-right-radius: $border-radius; + border-bottom-left-radius: $border-radius; + // ? If container/toolbar is above container/toolbar remove top radius + border-top-right-radius: unset; + border-top-left-radius: unset; + } +} + +// Dark Layout +.dark-layout { + // Quill Editor + .quill-toolbar, + .ql-toolbar { + background-color: $theme-dark-input-bg; + border-color: $theme-dark-border-color !important; + + // toolbar color + .ql-picker { + color: $white !important; + } + + .ql-stroke { + stroke: $white !important; + } + + .ql-fill { + fill: $white !important; + } + + // toolbar options colors + .ql-picker-options, + .ql-picker-label { + background-color: $theme-dark-input-bg; + .ql-active { + color: $primary !important; + } + } + } + .ql-active { + .ql-stroke { + stroke: $primary !important; + } + .ql-fill { + fill: $primary !important; + } + } + .ql-bubble { + .ql-toolbar { + background: $theme-dark-border-color; + border-radius: 2rem; + } + } + + .ql-container { + border-color: $theme-dark-border-color !important; + background-color: $theme-dark-input-bg; + } + + // syntax color + .ql-editor { + .ql-syntax { + background-color: $theme-dark-body-bg; + } + + &.ql-blank { + &:before { + color: $theme-dark-body-color; + } + } + } +} + +// RTL +[data-textdirection='rtl'] { + .ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) { + i, + svg { + left: auto !important; + right: 0; + } + } +} diff --git a/src/@core/scss/base/plugins/forms/form-validation.scss b/src/@core/scss/base/plugins/forms/form-validation.scss new file mode 100644 index 0000000..d45e585 --- /dev/null +++ b/src/@core/scss/base/plugins/forms/form-validation.scss @@ -0,0 +1,27 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +form { + span.error { + width: 100%; + font-size: 0.857rem; + } + .error:not(input) { + color: $danger; + } + input.error, + input.error:focus { + border-color: $danger !important; + } + textarea.error { + border-color: $danger !important; + } + .select2.error { + + .select2-container--classic .select2-selection--single, + + .select2-container--default .select2-selection--single, + + .select2-container--classic .select2-selection--multiple, + + .select2-container--default .select2-selection--multiple { + border-color: $danger !important; + } + } +} diff --git a/src/@core/scss/base/plugins/forms/form-wizard.scss b/src/@core/scss/base/plugins/forms/form-wizard.scss new file mode 100644 index 0000000..8895439 --- /dev/null +++ b/src/@core/scss/base/plugins/forms/form-wizard.scss @@ -0,0 +1,293 @@ +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +$header-padding-y: 1.5rem; +$header-padding-x: 1.5rem; +$content-padding-x: 1.5rem; +$content-padding-y: 1.5rem; +$trigger-padding-vertical: 1rem; +$step-box-height: 38px; +$step-box-width: 38px; + +.bs-stepper { + background-color: $white; + box-shadow: $box-shadow; + border-radius: 0.5rem; + + .bs-stepper-header { + padding: $header-padding-y $header-padding-x; + flex-wrap: wrap; + border-bottom: 1px solid rgba($black, 0.08); + margin: 0; + .line { + flex: 0; + min-width: auto; + min-height: auto; + background-color: transparent; + margin: 0; + color: $body-color; + font-size: 1.5rem; + } + .step { + .step-trigger { + padding: 0 1.75rem; + flex-wrap: nowrap; + font-weight: normal; + .bs-stepper-box { + display: flex; + align-items: center; + justify-content: center; + width: $step-box-width; + height: $step-box-height; + padding: 0.5em 0; + font-weight: 500; + color: $gray-100; + background-color: rgba($gray-100, 0.12); + border-radius: 0.35rem; + } + + .bs-stepper-label { + text-align: left; + margin: 0; + margin-top: 0.5rem; + margin-left: 1rem; + + .bs-stepper-title { + display: inherit; + color: $body-color; + font-weight: 600; + line-height: 1rem; + margin-bottom: 0rem; + } + + .bs-stepper-subtitle { + font-weight: 400; + font-size: 0.85rem; + color: $text-muted; + } + } + + &:hover { + background-color: transparent; + } + } + + &.active { + .step-trigger { + .bs-stepper-box { + background-color: $primary; + color: $white; + box-shadow: 0 3px 6px 0 rgba($primary, 0.4); + } + .bs-stepper-label { + .bs-stepper-title { + color: $primary; + } + } + } + } + + &.crossed { + .step-trigger { + .bs-stepper-box { + background-color: rgba($color: $primary, $alpha: 0.12); + color: $primary !important; + } + .bs-stepper-label { + .bs-stepper-title { + color: $text-muted; + } + } + } + & + .line { + color: $primary; + } + } + + &:first-child { + .step-trigger { + padding-left: 0; + } + } + &:last-child { + .step-trigger { + padding-right: 0; + } + } + } + } + .bs-stepper-content { + padding: $content-padding-y $content-padding-x; + .content { + margin-left: 0; + + .content-header { + margin-bottom: 1rem; + } + } + } + + &.vertical { + .bs-stepper-header { + border-right: 1px solid $border-color; + border-bottom: none; + .step { + .step-trigger { + padding: $trigger-padding-vertical 0; + } + } + .line { + display: none; + } + } + .bs-stepper-content { + width: 100%; + padding-top: 2.5rem; + .content { + &:not(.active) { + display: none; + } + } + } + + &.wizard-icons { + .step { + text-align: center; + } + } + } + + &.wizard-modern { + background-color: transparent; + box-shadow: none; + .bs-stepper-header { + border: none; + } + .bs-stepper-content { + background-color: $white; + border-radius: 0.5rem; + box-shadow: $box-shadow; + } + } +} + +.horizontal-wizard, +.vertical-wizard, +.modern-horizontal-wizard, +.modern-vertical-wizard { + margin-bottom: 2.2rem; +} + +// Dark Layout +.dark-layout { + .bs-stepper { + background-color: $theme-dark-card-bg; + box-shadow: $theme-dark-box-shadow; + + .bs-stepper-header { + border-bottom: 1px solid rgba($theme-dark-border-color, 0.08); + .line { + color: $theme-dark-body-color; + } + .step { + .step-trigger { + .bs-stepper-box { + color: $gray-100; + } + + .bs-stepper-label { + .bs-stepper-title { + color: $theme-dark-body-color; + } + + .bs-stepper-subtitle { + color: $theme-dark-text-muted-color; + } + } + } + + &.active { + .step-trigger { + .bs-stepper-box { + background-color: $primary; + color: $white; + box-shadow: 0 3px 6px 0 rgba($primary, 0.4); + } + .bs-stepper-label { + .bs-stepper-title { + color: $primary; + } + } + } + } + + &.crossed { + .step-trigger { + .bs-stepper-label, + .bs-stepper-title { + color: $theme-dark-text-muted-color; + } + } + } + } + } + + &.vertical { + .bs-stepper-header { + border-right-color: $theme-dark-border-color; + } + } + + &.wizard-modern { + background-color: transparent; + box-shadow: none; + .bs-stepper-header { + border: none; + } + .bs-stepper-content { + background-color: $theme-dark-card-bg; + box-shadow: $theme-dark-box-shadow; + } + } + } +} + +// RTl +html[data-textdirection='rtl'] { + .btn-prev, + .btn-next { + display: flex; + i, + svg { + transform: rotate(-180deg); + } + } +} + +// Media Queries +@media (max-width: 768px) { + .bs-stepper { + .bs-stepper-header { + flex-direction: column; + align-items: flex-start; + .step { + .step-trigger { + padding: 0.5rem 0 !important; + flex-direction: row; + } + } + .line { + display: none; + } + } + &.vertical { + flex-direction: column; + .bs-stepper-header { + align-items: flex-start; + } + .bs-stepper-content { + padding-top: 1.5rem; + } + } + } +} diff --git a/src/@core/scss/base/plugins/forms/pickers/form-flat-pickr.scss b/src/@core/scss/base/plugins/forms/pickers/form-flat-pickr.scss new file mode 100644 index 0000000..023b26a --- /dev/null +++ b/src/@core/scss/base/plugins/forms/pickers/form-flat-pickr.scss @@ -0,0 +1,191 @@ +@import '../../../bootstrap-extended/include'; // Bootstrap includes +@import '../../../components/include'; // Components includes + +.flatpickr-calendar { + .flatpickr-day { + color: $body-color; + &.today { + border-color: $primary; + &:hover { + background: transparent; + color: $body-color; + } + } + + &.selected, + &.selected:hover { + background: $primary; + color: $white; + border-color: $primary; + } + + &.inRange, + &.inRange:hover { + background: lighten($color: $primary, $amount: 30%); + border-color: lighten($color: $primary, $amount: 30%); + box-shadow: -5px 0 0 lighten($color: $primary, $amount: 30%), 5px 0 0 lighten($color: $primary, $amount: 30%); + } + &.startRange, + &.endRange, + &.startRange:hover, + &.endRange:hover { + background: $primary; + color: $white; + border-color: $primary; + } + + &.selected.startRange + .endRange:not(:nth-child(7n + 1)), + &.startRange.startRange + .endRange:not(:nth-child(7n + 1)), + &.endRange.startRange + .endRange:not(:nth-child(7n + 1)) { + box-shadow: -10px 0 0 $primary; + } + + &.flatpickr-disabled, + &.prevMonthDay, + &.nextMonthDay { + color: $gray-300; + } + + &:hover { + background: $gray-50; + } + } + &:after, + &:before { + display: none; + } + + .flatpickr-months { + .flatpickr-prev-month, + .flatpickr-next-month { + top: -5px; + &:hover i, + &:hover svg { + fill: $primary; + } + } + } + .flatpickr-current-month span.cur-month { + font-weight: 300; + } +} + +// Time picker hover & focus bg color +.flatpickr-time input:hover, +.flatpickr-time .flatpickr-am-pm:hover, +.flatpickr-time input:focus, +.flatpickr-time .flatpickr-am-pm:focus { + background: $white; +} + +//Dark layout +.dark-layout { + .flatpickr-calendar { + background: $theme-dark-body-bg; + border-color: $theme-dark-body-bg; + box-shadow: none; + .flatpickr-months { + i, + svg { + fill: $theme-dark-body-color; + } + } + .flatpickr-month { + color: $theme-dark-body-color; + } + .flatpickr-weekwrapper .flatpickr-weeks { + box-shadow: 1px 0 0 $theme-dark-border-color; + } + .flatpickr-weekday { + color: $theme-dark-body-color; + } + + .flatpickr-day { + &, + &.today:hover { + color: $theme-dark-body-color; + } + &.selected { + color: $white; + } + + &.prevMonthDay, + &.nextMonthDay, + &.flatpickr-disabled { + color: $gray-700 !important; + } + &.inRange, + &.inRange:hover { + background: $theme-dark-card-bg; + border-color: $theme-dark-card-bg; + box-shadow: -5px 0 0 $theme-dark-card-bg, 5px 0 0 $theme-dark-card-bg; + } + &:hover:not(.selected):not(.today):not(.startRange):not(.endRange) { + color: $theme-dark-body-color; + border-color: $theme-dark-card-bg; + } + } + + .flatpickr-days .flatpickr-day { + &:hover:not(.selected):not(.today):not(.startRange):not(.endRange) { + background: $theme-dark-card-bg; + } + } + + .flatpickr-time { + border-color: $theme-dark-body-bg !important; + + .numInput, + .flatpickr-am-pm { + color: $theme-dark-body-color; + &:hover { + background: $theme-dark-body-bg; + } + } + + .arrowUp:after { + border-bottom-color: $theme-dark-body-color; + } + .arrowDown:after { + border-top-color: $theme-dark-body-color; + } + } + } + // Time picker hover & focus bg color + .flatpickr-time input:hover, + .flatpickr-time .flatpickr-am-pm:hover, + .flatpickr-time input:focus, + .flatpickr-time .flatpickr-am-pm:focus { + background: $theme-dark-body-bg; + } +} + +// ? Added bg color for flatpickr input only as it has default readonly attribute +.flatpickr-input[readonly], +.flatpickr-input ~ .form-control[readonly], +.flatpickr-human-friendly[readonly] { + background-color: inherit; + opacity: 1 !important; +} + +.flatpickr-weekdays { + margin-top: 8px; +} + +.flatpickr-current-month { + .flatpickr-monthDropdown-months { + -webkit-appearance: none; + } + + .flatpickr-monthDropdown-months, + .numInputWrapper { + font-size: 1.1rem; + border-radius: 4px; + padding: 2px; + transition: all 0.15s ease-out; + + span { + display: none; + } + } +} diff --git a/src/@core/scss/base/plugins/forms/pickers/form-pickadate.scss b/src/@core/scss/base/plugins/forms/pickers/form-pickadate.scss new file mode 100644 index 0000000..266e755 --- /dev/null +++ b/src/@core/scss/base/plugins/forms/pickers/form-pickadate.scss @@ -0,0 +1,167 @@ +@import '../../../bootstrap-extended/include'; // Bootstrap includes +@import '../../../components/include'; // Components includes + +// remove picker outline +.picker__holder { + outline: none; +} +// Updated picker color as per theme color +.picker__day--today:before, +.picker__button--today:before { + border-top: 6px solid $primary; +} +.picker__button--clear:before { + border-top: 2px solid $danger; +} +.picker__day--highlighted, +.picker__day--highlighted:hover, +.picker--focused .picker__day--highlighted, +.picker__list-item--selected, +.picker__list-item--selected:hover, +.picker--focused .picker__list-item--selected { + background-color: $primary; +} +// Updated picker svg icons +.picker__nav--prev:before, +.picker__nav--next:before, +.picker__button--close:before { + content: ''; + background-repeat: no-repeat; + background-position: center; + background-size: 18px; + color: $body-color; + width: 8px; + height: 18px; +} +.picker__nav--prev:before { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $body-color), '#', '%23')); +} +.picker__nav--next:before { + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $body-color), '#', '%23')); +} +.picker__button--close:before { + background-image: url(str-replace(str-replace($remove, 'currentColor', $danger), '#', '%23')); + height: 10px !important; +} + +// Dark layout style +.dark-layout { + // date picker + .picker__holder { + background-color: $theme-dark-body-bg; + border-color: $theme-dark-border-color; + + .picker__header { + .picker__month, + .picker__year { + color: $theme-dark-body-color; + } + + .picker__select--year, + .picker__select--month { + color: $theme-dark-body-color; + background-color: $theme-dark-body-bg; + border-color: $theme-dark-border-color; + } + + .picker__nav--next, + .picker__nav--prev { + &:hover { + background-color: $theme-dark-card-bg; + } + } + } + .picker__frame { + border-color: $theme-dark-border-color; + } + + .picker__table { + thead { + tr { + .picker__weekday { + color: $theme-dark-body-color; + } + } + } + + tbody { + tr { + td { + .picker__day { + color: $theme-dark-body-color; + &.picker__day--selected { + color: $white; + // color: $theme-dark-body-color; + } + + &:hover { + background-color: $theme-dark-border-color; + // border: 1px solid #4ec6e8; + color: $white; + } + + &.picker__day--disabled { + color: $theme-dark-body-color; + opacity: 0.5; + background: $theme-dark-card-bg; + } + } + + .picker__day--today { + background-color: $theme-dark-card-bg; + } + } + } + } + } + + .picker__footer { + .picker__button--today, + .picker__button--clear, + .picker__button--close { + background-color: $theme-dark-body-bg; + color: $theme-dark-body-color; + &:hover { + background-color: $theme-dark-border-color; + } + } + } + } + + // time picker + .picker--time { + .picker__holder { + .picker__list { + background-color: $theme-dark-body-bg; + + .picker__list-item { + &.picker__list-item--selected, + &:hover { + background-color: $theme-dark-card-bg; + } + + &.picker__list-item--disabled { + background-color: $theme-dark-card-bg; + color: $secondary; + opacity: 0.5; + } + } + + .picker__button--clear { + background-color: $theme-dark-body-bg; + color: $theme-dark-body-color; + } + } + } + } +} + +//RTL Style +[dir='rtl'] { + .picker__nav--prev:before { + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $body-color), '#', '%23')); + } + .picker__nav--next:before { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $body-color), '#', '%23')); + } +} diff --git a/src/@core/scss/base/plugins/forms/select2/_select2.scss b/src/@core/scss/base/plugins/forms/select2/_select2.scss new file mode 100644 index 0000000..e52161b --- /dev/null +++ b/src/@core/scss/base/plugins/forms/select2/_select2.scss @@ -0,0 +1,319 @@ +// select-2 Theme +.select2-container { + width: 100% !important; + margin: 0; + display: inline-block; + position: relative; + vertical-align: middle; + box-sizing: border-box; +} +.select2-container--classic, +.select2-container--default { + &:focus { + outline: none; + } + + .select2-selection__choice { + font-size: 0.9rem; + margin-top: 6px !important; + } + // single select + .select2-selection--single { + min-height: 2.714rem; + padding: 5px; + border: 1px solid $input-border-color; + // Border color on focus + &:focus { + outline: 0; + border-color: $primary !important; + box-shadow: $input-focus-box-shadow !important; + } + + // Select with icons scss + .select2-selection__rendered { + i, + svg { + font-size: 1.15rem; + height: 1.15rem; + width: 1.15rem; + margin-right: 0.5rem; + } + } + // dropdown arrow height + .select2-selection__arrow { + b { + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $input-border-color), '#', '%23')); + background-size: 18px 14px, 18px 14px; + background-repeat: no-repeat; + height: 1rem; + padding-right: 1.5rem; + margin-left: 0; + margin-top: 0; + left: -8px; + border-style: none; + } + } + } + // when select container open - scss + &.select2-container--open { + box-shadow: $dropdown-box-shadow; + .select2-selection--single { + border-color: $primary !important; + outline: 0; + } + } + + // select container - focus + &.select2-container--focus { + outline: 0; + .select2-selection--multiple { + border-color: $primary !important; + outline: 0; + } + } + + // Select2 Search Dropdown + .select2-dropdown { + border-color: $input-border-color; + } + .select2-search--dropdown { + padding: 0.5rem; + .select2-search__field { + outline: none !important; + border-radius: $input-border-radius; + border-color: $input-border-color; + padding: $input-padding-y $input-padding-x; + } + } + + // multiple select scss + .select2-selection--multiple { + min-height: 38px !important; + border: 1px solid $input-border-color; + &:focus { + outline: 0; + border-color: $primary !important; + box-shadow: $input-focus-box-shadow !important; + } + // selected items bg color for multiple selection + .select2-selection__choice { + background-color: $primary !important; + border-color: $primary !important; + color: $white; + padding: 2px 5px; + } + // font -size for selected options + .select2-selection__rendered { + padding: 0 6px; + li { + // font-size: 0.9rem; + .select2-search__field { + margin-top: 7px; + } + } + } + .select2-selection__choice__remove { + // color: $white !important; + float: right; + margin-left: 0.7rem; + margin-right: 0.5rem; + font-size: 0px; + display: inline-block; + position: relative; + line-height: 1rem; + &:before { + content: ''; + background-image: url(str-replace(str-replace($remove, 'currentColor', $white), '#', '%23')); + background-size: 0.85rem; + height: 0.85rem; + width: 0.85rem; + position: absolute; + top: 22%; + left: -4px; + } + } + // select dropdown menu with icons + i, + svg { + position: relative; + top: 1px; + margin-right: 0.5rem; + height: 1.15rem; + width: 1.15rem; + font-size: 1.15rem; + padding-left: 1px; + } + } + + // Select2 group alignment + .select2-results__group { + padding: 6px 9px; + font-weight: 600; + } + + .select2-results__option { + padding: 0.428rem 1rem; + &[role='group'] { + padding: 0; + } + &[aria-selected='true'] { + background-color: $primary !important; + color: white !important; + } + i, + svg { + height: 1.15rem; + width: 1.15rem; + font-size: 1.15rem; + margin-right: 0.5rem; + } + } + + .select2-results__option--highlighted { + background-color: rgba($primary, 0.12) !important; + color: $primary !important; + } + + //Loading Remote Data Image Size + .select2-result-repository__avatar { + img { + width: 50px; + } + } + + // Optional sizing + // ------------------------------ + + // Large Single select + .select-lg { + min-height: $input-height !important; + font-size: ($font-size-lg - 0.8); + margin-bottom: 0 !important; + padding: 0.3rem 0.7rem; + &.select2-selection--single { + .select2-selection__rendered { + padding-top: $input-btn-padding-y-lg - 0.9; + // padding-left: 0; + } + + .select2-selection__arrow { + top: $input-btn-padding-y-lg - 0.8 !important; + } + } + + // large Multiple select + &.select2-selection--multiple { + padding: 0 0.2rem; + .select2-selection__rendered { + padding-top: 0 !important; + li { + font-size: ($font-size-lg - 0.8); + .select2-search__field { + margin-top: 10px; + } + } + .select2-selection__choice { + padding: 5px; + + .select2-selection__choice__remove:before { + top: 46%; + } + } + } + } + } + // Small Single select + .select-sm { + min-height: $input-height-sm !important; + padding: 0 $input-padding-y-xs; + font-size: $font-size-xs; + margin-bottom: 0 !important; + line-height: $line-height-xs; + // Single + &.select2-selection--single { + .select2-selection__arrow { + top: -0.3rem !important; + } + } + + // Small Multiple select + &.select2-selection--multiple { + line-height: $line-height-xs - 0.2; + .select2-selection__rendered { + padding: 3px; + li { + font-size: $font-size-xs; + margin-top: 2px; + .select2-search__field { + margin-top: 4px; + } + } + } + .select2-selection__choice { + padding: 0 $input-padding-y-xs; + .select2-selection__choice__remove:before { + top: 5%; + } + } + + .select2-search--inline .select2-search__field { + margin-top: 0; + } + } + } +} + +// Dark Layout +.dark-layout { + .select2-container { + .select2-selection, + .select2-search__field, + .select2-selection__placeholder { + background: $theme-dark-input-bg; + border-color: $theme-dark-border-color; + color: $theme-dark-body-color; + } + + .select2-selection__rendered { + color: $theme-dark-body-color; + } + + .select2-dropdown { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + } + + .select2-selection--multiple { + .select2-selection__choice { + background: rgba($primary, 0.12) !important; + color: $primary !important; + border: none; + .select2-selection__choice__remove { + color: $primary !important; + } + } + .select2-selection__choice__remove:before { + background-image: url(str-replace(str-replace($remove, 'currentColor', $primary), '#', '%23')); + } + } + + .select2-results__option[aria-disabled='true'] { + color: $theme-dark-text-muted-color; + } + + .select2-selection__arrow { + b { + background-image: url(str-replace( + str-replace($chevron-down, 'currentColor', $theme-dark-body-color), + '#', + '%23' + )); + } + } + } + .select2-container--disabled { + .select2-selection { + opacity: 0.5; + } + } +} diff --git a/src/@core/scss/base/plugins/maps/map-leaflet.scss b/src/@core/scss/base/plugins/maps/map-leaflet.scss new file mode 100644 index 0000000..66bd3f3 --- /dev/null +++ b/src/@core/scss/base/plugins/maps/map-leaflet.scss @@ -0,0 +1,38 @@ +// ================================================================================================ +// File Name: leaflet.scss +// Description: Leaflet map custom scss +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +.leaflet-map { + height: 400px; + z-index: 1; +} + +html[data-textdirection='rtl'] { + .leaflet-map { + .leaflet-control-container { + .leaflet-left { + left: 0; + right: unset; + .leaflet-control-zoom, + .leaflet-control-layers { + margin-right: 0; + margin-left: 10px; + } + } + .leaflet-right { + right: 0; + left: unset; + .leaflet-control-zoom, + .leaflet-control-layers { + margin-right: 10px; + margin-left: 0px; + } + } + } + } +} diff --git a/src/@core/scss/base/plugins/tables/_datatables.scss b/src/@core/scss/base/plugins/tables/_datatables.scss new file mode 100644 index 0000000..95605ed --- /dev/null +++ b/src/@core/scss/base/plugins/tables/_datatables.scss @@ -0,0 +1,163 @@ +// ================================================================================================ +// File Name: datatables.scss +// Description: Datatables pages custom scss +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ +table.dataTable { + // table width & collapse border + width: 100% !important; + border-collapse: collapse !important; + td, + th { + padding: $table-cell-padding 1.5rem; + vertical-align: middle; + } + thead { + // Sorting Icons Change + .sorting, + .sorting_asc, + .sorting_desc { + padding-right: inherit; + &:before { + background-image: url(str-replace(str-replace($chevron-up, 'currentColor', $table-head-color), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 12px; + color: $body-color; + width: 14px; + height: 14px; + content: ''; + right: 0.3rem; + top: 0.5rem; + } + &:after { + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $table-head-color), '#', '%23')); + background-repeat: no-repeat; + background-position: center; + background-size: 12px; + color: $body-color; + width: 14px; + height: 14px; + content: ''; + right: 0.3rem; + top: 1.3rem; + } + } + } + + // datatables with checkbox styling + .dt-checkboxes-cell { + .custom-control { + padding-left: 0; + padding-right: 1.25rem; + } + } +} + +div.dataTables_wrapper .dt-button-collection { + background-color: $dropdown-bg; + > div[role='menu'] { + text-align: left; + box-shadow: 0px 5px 16px -8px; + min-width: 8rem; + } + [class*='buttons-']:focus { + outline: 0; + } +} + +// responsive '+' icon line height +table.dataTable.dtr-column > tbody > tr > td.control:before, +table.dataTable.dtr-column > tbody > tr > th.control:before { + line-height: 16px; +} + +// data table search, labels and +div.dataTables_wrapper { + // data table search, labels + div.dataTables_filter, + div.dataTables_length { + label { + margin-top: 1rem; + margin-bottom: 0.5rem; + } + // for datatable length select + select { + background-position: calc(100% - 3px) 11px, calc(100% - 20px) 13px, 100% 0; + padding: 0 0.8rem; + width: 5rem; + margin: 0 0.5rem; + } + } + div.dataTables_filter input { + margin-left: 0.75rem; + } + + // pagination + div.dataTables_paginate { + ul.pagination { + margin-top: 1rem; + margin-bottom: 1.5rem; + } + } + + // info text color + .dataTables_info { + padding-top: 1.25rem !important; + color: $text-muted; + } +} + +// row grouping +tr.group { + // row grouping color + background-color: $table-accent-bg; +} + +// pagination in center +@media only screen and (max-width: 768px) { + div.dataTables_wrapper { + div.dataTables_paginate { + ul.pagination { + justify-content: center; + } + } + } + + div.dataTables_wrapper div.dataTables_info { + white-space: inherit; + } + // small screen button spacing in bottom + div.dt-buttons { + justify-content: center; + margin-top: 1rem; + button { + margin-bottom: 0.5rem; + } + } +} +@include media-breakpoint-down(xs) { + .dtr-bs-modal { + .modal-body { + padding-left: 0; + padding-right: 0; + overflow-x: scroll; + } + .table.dtr-details { + margin: 0 auto 1rem; + td { + padding-left: 0; + padding-right: 0; + } + tr td:first-child { + padding-left: 0.75rem; + } + } + } + div.dataTables_wrapper { + overflow: scroll; + } +} diff --git a/src/@core/scss/base/plugins/tables/table-ag-grid.scss b/src/@core/scss/base/plugins/tables/table-ag-grid.scss new file mode 100644 index 0000000..4667054 --- /dev/null +++ b/src/@core/scss/base/plugins/tables/table-ag-grid.scss @@ -0,0 +1,135 @@ +// ================================================================================================ +// File Name: aggrid.scss +// Description: SCC file for Aggrid. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../../bootstrap-extended/include'; // Bootstrap includes +@import '../../components/include'; // Components includes + +.aggrid { + height: 600px; + font-size: 1rem; + color: $body-color; + + // Checkbox Color + .ag-icon-checkbox-checked, + .ag-icon-checkbox-indeterminate { + color: $primary !important; + } + + /*** TABLE BODY HEIGHT - FOOTER HEIGHT ***/ + .ag-root-wrapper-body { + min-height: calc(100% - 56px); + } + + /*** HEADER TEXT ***/ + .ag-header-cell-text { + font-size: 1rem; + font-family: $font-family-sans-serif; + } + + /*** PAGINATION STYLING ***/ + .ag-paging-panel { + display: block !important; + align-items: center; + height: 98px; + + .ag-paging-row-summary-panel { + display: none; + } + + .ag-paging-page-summary-panel { + justify-content: center; + margin-left: 0; + margin-top: 18px; + + [ref='lbCurrent'], + [ref='lbTotal'] { + color: $white; + padding: 0.7rem 0.95rem; + border-radius: 0.5rem; + + @include media-breakpoint-down(xs) { + margin: 0 0.4rem; + } + } + } + + .ag-paging-button { + background-color: $gray-300; + border-radius: 50%; + padding: 0.5rem 0rem; + margin: 0 0.5rem; + color: $body-color !important; + min-width: 34px; + + @include media-breakpoint-down(xs) { + margin-left: 0; + margin-right: 0.4rem; + } + + .ag-icon { + color: $body-color !important; + opacity: 1 !important; + } + + &.ag-disabled { + opacity: 0.5 !important; + } + + &:last-child { + @include media-breakpoint-down(xs) { + margin-right: 0; + } + } + } + + span[ref='lbCurrent'] { + background-color: $primary; + } + + span[ref='lbTotal'] { + background-color: $gray-300; + color: $body-color !important; + } + } + + /*** TABLE SCROLLBAR ***/ + ::-webkit-scrollbar { + width: 10px; + height: 10px; + } + + ::-webkit-scrollbar-thumb { + background: $gray-300; + border-radius: 20px; + } + + ::-webkit-scrollbar-track { + background: $body-bg; + border-radius: 20px; + } +} + +/*** PAGE FILTER DROPDOWN ***/ +.filter-btn { + padding: 1.2rem !important; + border-radius: 5rem; + font-size: 0.95rem; + + &:after { + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $body-color), '#', '%23')); + left: 5px; + } +} + +/*** SORTING DROPDOWN WIDTH ***/ +.sort-dropdown { + .dropdown-menu { + min-width: 4rem; + } +} diff --git a/src/@core/scss/base/plugins/ui/_breakpoints.scss b/src/@core/scss/base/plugins/ui/_breakpoints.scss new file mode 100644 index 0000000..46e6c1a --- /dev/null +++ b/src/@core/scss/base/plugins/ui/_breakpoints.scss @@ -0,0 +1,64 @@ +// config +$debug: false; + +// declare breakpoints +$usn-x-small: 0px; +$usn-small: 544px; +$usn-medium: 768px; +$usn-large: 992px; +$usn-x-large: 1200px; + +// create sass list to pass media query data +// if a breakpoint name changes, remember to +// update it in the list below as well +$mq-sync: xs $usn-x-small, sm $usn-small, md $usn-medium, lg $usn-large, xl $usn-x-large; + +// build each media query for js ingestion +@each $mq in $mq-sync { + @media screen and (min-width: nth($mq, 2)) { + head { + font-family: '#{nth($mq, 1)} #{nth($mq, 2)}'; + } + body:after { + content: '#{nth($mq, 1)} - min-width: #{nth($mq, 2)}'; + } + } +} + +head { + // set clear on head to show Unison is set up correctly + clear: both; + // store hash of all breakpoints + title { + font-family: '#{$mq-sync}'; + } +} + +// debug styles to see breakpoint info +body:after { + display: none; +} + +@if $debug == true { + body:after { + display: block; + position: fixed; + top: 0; + left: 0; + width: 100%; + background-color: #000; + background-color: rgba($black, 0.8); + text-align: center; + color: #fff; + padding: 10px; + z-index: 1000; + font-size: 12px; + font-family: sans-serif; + } +} + +// hide elements for conditional loading +// only used for responsive comments plugin +*[data-usn-if] { + display: none; +} diff --git a/src/@core/scss/base/plugins/ui/coming-soon.scss b/src/@core/scss/base/plugins/ui/coming-soon.scss new file mode 100644 index 0000000..46e6c1a --- /dev/null +++ b/src/@core/scss/base/plugins/ui/coming-soon.scss @@ -0,0 +1,64 @@ +// config +$debug: false; + +// declare breakpoints +$usn-x-small: 0px; +$usn-small: 544px; +$usn-medium: 768px; +$usn-large: 992px; +$usn-x-large: 1200px; + +// create sass list to pass media query data +// if a breakpoint name changes, remember to +// update it in the list below as well +$mq-sync: xs $usn-x-small, sm $usn-small, md $usn-medium, lg $usn-large, xl $usn-x-large; + +// build each media query for js ingestion +@each $mq in $mq-sync { + @media screen and (min-width: nth($mq, 2)) { + head { + font-family: '#{nth($mq, 1)} #{nth($mq, 2)}'; + } + body:after { + content: '#{nth($mq, 1)} - min-width: #{nth($mq, 2)}'; + } + } +} + +head { + // set clear on head to show Unison is set up correctly + clear: both; + // store hash of all breakpoints + title { + font-family: '#{$mq-sync}'; + } +} + +// debug styles to see breakpoint info +body:after { + display: none; +} + +@if $debug == true { + body:after { + display: block; + position: fixed; + top: 0; + left: 0; + width: 100%; + background-color: #000; + background-color: rgba($black, 0.8); + text-align: center; + color: #fff; + padding: 10px; + z-index: 1000; + font-size: 12px; + font-family: sans-serif; + } +} + +// hide elements for conditional loading +// only used for responsive comments plugin +*[data-usn-if] { + display: none; +} diff --git a/src/@core/scss/base/themes/bordered-layout.scss b/src/@core/scss/base/themes/bordered-layout.scss new file mode 100644 index 0000000..bb7c189 --- /dev/null +++ b/src/@core/scss/base/themes/bordered-layout.scss @@ -0,0 +1,59 @@ +// ================================================================================================ +// File Name: bordered-layout.scss +// Description: SCSS file for Bordered layout. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +.bordered-layout { + .header-navbar { + box-shadow: none; + &.floating-nav { + border: 1px solid $border-color; + } + &.fixed-top { + border-bottom: 1px solid $border-color; + background: $body-bg; + } + } + .main-menu { + border-right: 1px solid $border-color; + box-shadow: none; + &.menu-light .navigation > li { + &.open:not(.menu-item-closing), + &.sidebar-group-active { + > a { + background: darken($white, 7%); + } + } + } + } + .dropdown-menu { + border: 1px solid $border-color !important; + box-shadow: none; + } + .main-menu .navigation, + .main-menu { + background: $body-bg; + } + .card, + .bs-stepper:not(.wizard-modern):not(.checkout-tab-steps), + .bs-stepper.wizard-modern .bs-stepper-content { + border: 1px solid $border-color; + box-shadow: none; + } + + .footer { + box-shadow: none !important; + } + .footer-fixed { + .footer { + border-top: 1px solid $border-color; + } + } +} diff --git a/src/@core/scss/base/themes/dark-layout.scss b/src/@core/scss/base/themes/dark-layout.scss new file mode 100644 index 0000000..9cc042b --- /dev/null +++ b/src/@core/scss/base/themes/dark-layout.scss @@ -0,0 +1,2386 @@ +// ================================================================================================ +// File Name: dark-layout.scss +// Description: SCSS file for dark layout. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +.dark-layout { + @at-root body#{&} { + color: $theme-dark-body-color; + background-color: $theme-dark-body-bg; + } + body { + color: $theme-dark-body-color; + background-color: $theme-dark-body-bg; + } + // universal elements + //heading tags + h1, + h2, + h3, + h4, + h5, + h6 { + color: $theme-dark-headings-color; + } + + // border color + .border, + .border-top, + .border-right, + .border-bottom, + .border-left { + border-color: $theme-dark-border-color !important; + } + + // other tags + a { + &:hover { + color: $primary; + } + } + + label { + color: $theme-dark-label-color; + } + + .btn span { + color: inherit; + } + + hr { + border-color: $theme-dark-border-color; + } + + pre { + background-color: $theme-dark-body-bg !important; + border: 0; + + code { + background-color: inherit; + text-shadow: none; + + // .operator, + .url { + background-color: $theme-dark-body-bg; + } + } + } + + code { + background-color: $theme-dark-body-bg; + } + + kbd { + background-color: $theme-dark-body-bg; + } + + // for dark text + .text-dark { + color: $gray-600 !important; + } + + .text-muted { + color: $theme-dark-text-muted-color !important; + } + + .text-body { + color: $theme-dark-body-color !important; + } + .text-body-heading { + color: $theme-dark-headings-color; + } + + .section-label { + color: $theme-dark-text-muted-color; + } + + // shadow + .shadow { + box-shadow: $theme-dark-box-shadow !important; + } + + // blockquote footer + .blockquote-footer { + color: $theme-dark-text-muted-color; + } + + // main navbar and header navbar shadow(generic navbar) + .header-navbar-shadow { + background: linear-gradient(180deg, rgba(22, 29, 49, 0.9) 44%, rgba(22, 29, 49, 0.43) 73%, rgba(22, 29, 49, 0)); + } + + // main header navbar dark style + + .horizontal-layout { + .header-navbar { + background-color: $theme-dark-card-bg; + } + &.navbar-sticky, + &.navbar-static { + .header-navbar { + background-color: $theme-dark-body-bg; + } + } + } + .navbar-sticky { + .header-navbar { + &.navbar-shadow { + box-shadow: 0 4px 24px 0 rgba($black, 0.75); + } + } + } + .header-navbar { + background-color: $theme-dark-card-bg; + + .navbar-container { + .nav { + .nav-item { + .nav-link { + color: $theme-dark-headings-color; + background-color: transparent; + + i, + svg { + color: $theme-dark-headings-color; + } + + &.bookmark-star { + i, + svg { + color: $white !important; + } + } + } + + &.nav-search { + .search-input { + &.open { + background-color: $theme-dark-card-bg; + + .input { + border-color: $theme-dark-border-color; + } + + .input, + .input::placeholder, + .search-input-close { + color: $theme-dark-body-color; + } + } + } + } + + .bookmark-input { + background-color: $theme-dark-card-bg; + .form-control { + background-color: $theme-dark-card-bg; + } + } + + .search-list { + background-color: $theme-dark-card-bg; + li { + a { + color: $theme-dark-body-color; + } + } + + .auto-suggestion.current_item { + background-color: $theme-dark-body-bg; + } + } + } + + li i.ficon, + li svg.ficon { + color: $theme-dark-body-color; + } + + .dropdown-cart, + .dropdown-notification { + .dropdown-menu.dropdown-menu-media { + overflow: hidden; + + .media { + border-color: $theme-dark-border-color; + + .media-meta { + color: $theme-dark-body-color; + } + + &:hover { + background-color: $theme-dark-body-bg; + } + } + .dropdown-menu-header { + border-bottom: 1px solid $theme-dark-border-color; + } + .dropdown-menu-footer { + background-color: $theme-dark-card-bg; + border-top: 1px solid $theme-dark-border-color; + .dropdown-item { + border-color: $theme-dark-border-color; + + &:hover { + background-color: $theme-dark-card-bg; + } + } + } + } + } + .dropdown-cart { + &.empty-cart { + &:before { + background-color: $theme-dark-body-bg; + } + } + li { + color: $white; + } + .cart-item { + color: $theme-dark-body-color; + } + .dropdown-header { + span { + color: $white; + } + } + .media { + img { + background-color: $theme-dark-body-bg; + } + } + .media-heading .cart-item-by { + color: $theme-dark-text-muted-color; + } + } + .dropdown-notification { + .media-body .media-heading { + color: $theme-dark-headings-color; + } + .notification-text { + color: $theme-dark-text-muted-color; + } + } + } + } + + &.navbar-static-top { + background-color: transparent !important; + } + + &[class*='bg-'] { + .navbar-nav { + .nav-item { + .nav-link { + background-color: inherit; + } + } + } + } + } + + //Text color for Blank page with transparent card + .blank-page { + .card.bg-transparent { + h1, + h2, + h3, + h4, + h5, + h6 { + color: $theme-dark-card-bg; + } + + p { + color: $theme-dark-body-bg; + } + } + } + + // main menu + .main-menu { + background-color: $theme-dark-card-bg; + + .shadow-bottom { + background: linear-gradient( + 180deg, + $theme-dark-card-bg 44%, + rgba($theme-dark-card-bg, 0.51) 73%, + rgba($theme-dark-card-bg, 0) + ); + } + + &:not(.expanded) { + .navigation { + .sidebar-group-active { + > a { + background-color: $theme-dark-body-bg; + } + } + } + } + + &.menu-dark { + .navigation > li.open:not(.menu-item-closing) > a { + background-color: $theme-dark-body-bg; + } + .navigation > li.sidebar-group-active > a { + background-color: $theme-dark-body-bg; + } + } + + .collapse-toggle-icon { + color: $primary !important; + } + } + + // Perfect Scrollbar + .ps__thumb-x, + .ps__thumb-y { + background-color: $theme-dark-body-color; + } + .ps .ps__rail-x.ps--clicking, + .ps .ps__rail-x:focus, + .ps .ps__rail-x:hover, + .ps .ps__rail-y.ps--clicking, + .ps .ps__rail-y:focus, + .ps .ps__rail-y:hover { + background-color: $theme-dark-border-color; + } + + .ps__rail-y.ps--clicking .ps__thumb-y, + .ps__rail-y:focus > .ps__thumb-y, + .ps__rail-y:hover > .ps__thumb-y { + background-color: $theme-dark-body-color; + } + + // main menu content + .main-menu-content { + .navigation-main { + background-color: $theme-dark-card-bg; + + .navigation-header { + color: $theme-dark-text-muted-color; + } + + li { + a { + color: $theme-dark-headings-color !important; + } + ul { + .open, + .sidebar-group-active { + > a { + background-color: $theme-dark-body-bg; + } + } + } + } + + .nav-item { + i, + svg { + color: $theme-dark-headings-color; + } + + &.open { + > a { + background-color: $theme-dark-body-bg !important; + } + } + + a:after { + color: $theme-dark-headings-color; + } + + .menu-content { + background-color: $theme-dark-card-bg; + + .active { + .menu-item { + color: $white; + } + } + } + } + + .active { + .menu-title, + i, + svg { + color: $white; + } + } + + .sidebar-group-active { + .menu-content { + background-color: $theme-dark-card-bg; + + .active { + z-index: 1; + + a { + background-color: transparent; + } + } + } + } + } + } + + // menu collapsed active item color + .menu-collapsed { + .main-menu:not(.expanded) { + .navigation-main { + li.active { + > a { + background: $theme-dark-body-bg !important; + } + } + } + } + } + + /********* COMPONENTS *********/ + // alerts + .alert { + .alert-heading, + p { + color: inherit; + } + .close { + text-shadow: none; + } + &.alert-dark { + .alert-heading, + .alert-body, + p { + color: $gray-600; + } + &.alert-dismissible .close { + color: $gray-600 !important; + } + } + } + + // breadcrumbs + + // Header breadcrumb + .content-header-left { + .breadcrumbs-top { + .content-header-title { + color: $theme-dark-headings-color; + border-color: $theme-dark-border-color; + } + } + } + // Breadcrumb dark style + .breadcrumb { + .breadcrumb-item { + color: $theme-dark-body-color; + + .breadcrumb-item::before { + color: $theme-dark-body-color; + } + } + &:not([class*='breadcrumb-']) { + .breadcrumb-item + .breadcrumb-item { + &:before { + background-image: url(str-replace( + str-replace($chevron-right, 'currentColor', $theme-dark-body-color), + '#', + '%23' + )); + } + } + } + } + + // Breadcrumb with Chevron + .breadcrumb-chevron { + &.breadcrumb { + .breadcrumb-item + .breadcrumb-item:before { + background-image: url(str-replace( + str-replace($chevron-right, 'currentColor', $theme-dark-body-color), + '#', + '%23' + )); + } + } + } + + // collapse + + [class*='collapse-'] .card:not(:last-of-type) { + border-color: $theme-dark-border-color; + } + // for shadow and bordered + .collapse-border { + .card { + border-color: $theme-dark-border-color; + } + } + + // Collapse shadow + .collapse-shadow { + box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.24); + } + + // margin collapse + .collapse-margin { + .card { + box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.24) !important; + } + } + + // if there is an anchor tag inside + .collapse-icon { + .card-header { + a { + color: $theme-dark-body-color; + } + } + [data-toggle='collapse'] { + &:after { + background-image: url(str-replace( + str-replace($chevron-down, 'currentColor', $theme-dark-body-color), + '#', + '%23' + )); + } + &:before { + background-image: url(str-replace( + str-replace($chevron-up, 'currentColor', $theme-dark-body-color), + '#', + '%23' + )); + } + } + } + + // buttons + .btn { + &:not([class*='btn-']) { + color: $theme-dark-body-color; + } + + &.btn-dark, + &.btn-outline-dark, + &.btn-flat-dark { + color: $gray-600; + } + + &.btn-dark { + background-color: $dark !important; + } + + &.btn-outline-dark { + border-color: $dark; + color: $gray-600; + &:hover:not(.disabled):not(:disabled) { + color: $gray-600; + } + } + + &.btn-flat-dark { + &:active, + &:focus { + background: $dark; + } + } + } + + .btn-group-toggle { + label[class*='btn-outline-'] { + color: $primary !important; + } + } + + // dropdown + .dropdown-menu { + background-color: $theme-dark-card-bg; + box-shadow: 0 4px 24px 0 rgba(0, 0, 0, 0.24); + + .dropdown-header { + color: $theme-dark-headings-color; + } + + .dropdown-item { + color: $theme-dark-body-color; + &:hover, + &:focus { + background: $dropdown-link-hover-bg; + color: $dropdown-link-hover-color; + } + &:active, + &.active { + color: $dropdown-link-active-color; + background-color: $dropdown-link-active-bg; + } + &.disabled, + &:disabled { + color: $theme-dark-text-muted-color; + } + } + } + .dropdown-divider { + border-color: $theme-dark-border-color; + } + + // modal + .modal { + .modal-header, + .modal-header[class*='bg-'] { + // why removed !important? Not working if added bg-COLOR class with modal-header + // background-color: $theme-dark-card-bg !important; + background-color: $theme-dark-body-bg; + } + + // close button + .modal-header .close { + text-shadow: none; + background-color: $theme-dark-card-bg !important; + color: $theme-dark-body-color; + box-shadow: 0 3px 8px 0 rgba(11, 10, 25, 0.49) !important; + } + + .modal-content, + .modal-body, + .modal-footer { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + } + } + + //pagination + .pagination { + &:not([class*='pagination-']) { + .page-item { + &.active { + background-color: $theme-dark-pagination-bg; + + .page-link { + background-color: $primary; + + &:hover { + color: $white; + } + } + } + + .page-link { + background-color: $theme-dark-pagination-bg; + color: $theme-dark-body-color; + + &:hover { + color: $primary; + } + } + + &.prev-item, + &.next-item { + .page-link:hover { + color: $white; + } + } + } + } + + &[class*='pagination-'] { + .page-item:not(.active) { + .page-link { + background-color: $theme-dark-pagination-bg; + } + + &:not(:hover) { + .page-link { + color: $white; + } + } + } + + .page-item { + &:not(.active) { + .page-link:hover { + background-color: $theme-dark-pagination-bg; + } + } + + &.active { + background-color: $theme-dark-pagination-bg; + } + } + } + + .page-item { + &.prev-item, + &.prev { + .page-link:before { + background-image: url(str-replace( + str-replace($chevron-left, 'currentColor', $theme-dark-body-color), + '#', + '%23' + )); + } + &.disabled { + .page-link { + &:before { + background-image: url(str-replace( + str-replace($chevron-left, 'currentColor', $theme-dark-text-muted-color), + '#', + '%23' + )); + } + } + } + } + &.next-item, + &.next { + .page-link::after { + background-image: url(str-replace( + str-replace($chevron-right, 'currentColor', $theme-dark-body-color), + '#', + '%23' + )); + } + &.disabled { + .page-link { + &:after { + background-image: url(str-replace( + str-replace($chevron-right, 'currentColor', $theme-dark-text-muted-color), + '#', + '%23' + )); + } + } + } + } + &.disabled { + .page-link { + color: $theme-dark-text-muted-color; + } + } + } + } + + // nav tabs + .nav-tabs, + .nav-pills, + .nav-tabs.nav-justified { + .nav-item { + .nav-link { + color: $theme-dark-headings-color; + &.active { + background-color: $theme-dark-card-bg; + color: $primary; + } + + &.disabled { + color: $theme-dark-text-muted-color; + } + } + } + } + + // bordered nav + .nav.wrap-border { + border-color: $theme-dark-border-color; + } + + // nav pills + .nav-pills { + .nav-item { + .nav-link { + &.active { + color: $white; + background-color: $primary; + } + } + } + } + + // media + .media-bordered { + .media:not(:first-child) { + border-color: $theme-dark-border-color; + } + } + + // popover + .popover { + &[x-placement='top'] { + .arrow { + &:before { + border-top-color: $theme-dark-border-color; + } + &:after { + border-top-color: $theme-dark-card-bg; + } + } + } + + &[x-placement='left'] { + .arrow { + &:before { + border-left-color: $theme-dark-border-color; + } + &:after { + border-left-color: $theme-dark-card-bg; + } + } + } + + &[x-placement='right'] { + .arrow { + &:before { + border-right-color: $theme-dark-border-color; + } + &:after { + border-right-color: $theme-dark-card-bg; + } + } + } + .popover-header { + color: $white; + } + + .popover-body { + background-color: $theme-dark-card-bg; + color: $theme-dark-body-color; + border-color: $theme-dark-border-color !important; + } + } + + // BS toast + .toast { + background-color: rgba($theme-dark-card-bg, 0.85); + box-shadow: $theme-dark-box-shadow; + color: $theme-dark-body-color; + + .toast-header { + background-color: $theme-dark-card-bg; + color: $theme-dark-body-color; + + .close { + background-color: transparent !important; + box-shadow: none !important; + text-shadow: none; + } + } + } + + // list group + .list-group { + .list-group-item { + &:not([class*='list-group-item-']), + &.list-group-item-action { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + color: $theme-dark-body-color; + + &:hover, + &:focus { + background-color: $theme-dark-body-bg; + } + &.active, + &:active { + background-color: $primary; + color: $white; + } + } + + &.active { + p, + small { + color: $white; + } + } + + &.disabled { + color: $theme-dark-text-muted-color; + } + } + + &.list-group-circle .list-group-item:after { + background-image: url(str-replace(str-replace($circle, 'currentColor', $theme-dark-body-color), '#', '%23')); + } + } + + // spinners + .spinner-border { + border-color: currentColor !important; + border-right-color: transparent !important; + } + + // avatar + .avatar { + background-color: $theme-dark-body-bg; + + [class*='avatar-status-'] { + border-color: $theme-dark-card-bg; + } + } + .avatar-group { + .avatar { + img, + .avatar-content { + box-shadow: 0 0 0 2px $theme-dark-card-bg, inset 0 0 0 1px rgba($theme-dark-card-bg, 0.07); + } + } + } + + // divider + .divider { + .divider-text { + color: $theme-dark-body-color; + + &::before, + &::after { + border-color: $theme-dark-border-color; + } + } + + &.divider-dark { + .divider-text { + &::before, + &::after { + border-color: $theme-dark-border-color !important; + } + } + } + } + + // Timeline + .timeline { + .timeline-item { + border-color: $theme-dark-border-color; + + .timeline-point:not(.timeline-point-indicator) { + background-color: $theme-dark-card-bg; + } + .timeline-event { + .timeline-event-time { + color: $theme-dark-text-muted-color; + } + } + &:last-of-type:after { + background: linear-gradient($theme-dark-border-color, transparent); + } + } + } + + // card + .card { + background-color: $theme-dark-card-bg; + box-shadow: $theme-dark-box-shadow; + .card-footer { + border-color: $theme-dark-border-color; + } + + &.overlay-img-card { + .card-img-overlay { + span, + p, + .card-body { + color: $white; + } + } + } + } + + //--------------- Advance Cards --------------- + //--------------------------------------------- + + // Developer Meetup Card + .card-developer-meetup { + .meetup-header .meetup-day { + border-right-color: $theme-dark-input-border-color; + } + } + + // Profile Card + .card-profile { + .profile-image-wrapper .profile-image { + background-color: $theme-dark-body-bg; + } + } + + // Business Card + .business-card { + .business-items .business-item { + border-color: $theme-dark-border-color; + } + } + + // App Design Card + .card-app-design { + .design-planning-wrapper .design-planning { + background-color: $theme-dark-body-bg; + } + } + + //--------------- Statistics Card --------------- + //------------------------------------------------ + + .card-tiny-line-stats { + .apexcharts-series-markers { + .apexcharts-marker { + stroke: $info; + } + + &:last-child { + .apexcharts-marker { + fill: $theme-dark-card-bg; + } + } + } + } + + //-------------- Analytics Cards -------------- + //--------------------------------------------- + + // Revenue Report Card + .card-revenue-budget { + .revenue-report-wrapper { + border-right-color: $theme-dark-border-color; + } + .budget-wrapper { + .apexcharts-series:not(:first-child) { + path { + stroke: $theme-dark-body-color; + } + } + } + } + + // Earnings Card + .earnings-card { + .apexcharts-canvas .apexcharts-pie { + .apexcharts-datalabel-label { + fill: $theme-dark-body-color !important; + } + + .apexcharts-datalabel-value { + fill: $theme-dark-headings-color; + } + } + } + + // Company Table Card + .card-company-table { + .avatar { + background-color: $theme-dark-body-bg; + } + } + + /********** FORMS **********/ + + // input + input.form-control, + .custom-file-label, + textarea.form-control { + background-color: $theme-dark-input-bg; + color: $theme-dark-body-color; + + &:not(:focus) { + border-color: $theme-dark-input-border-color; + } + + &::placeholder { + color: $theme-dark-input-placeholder-color; + } + + &:disabled, + &[readonly='readonly'] { + opacity: 0.5; + } + } + + // text area counter + .char-textarea { + &.active { + color: $theme-dark-body-color !important; + } + + &.max-limit { + color: $danger !important; + } + } + + // file uploader default + .custom-file-label { + &:after { + background-color: $theme-dark-body-bg; + border-left: 1px solid $theme-dark-border-color; + color: $theme-dark-body-color; + } + } + + // custom control like checkbox, radio and switch + .custom-control-input { + &:not(:checked) { + ~ .custom-control-label:before { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-input-border-color; + } + } + &:disabled { + ~ .custom-control-label:before { + background-color: $theme-dark-input-disabled-border-color; + border-color: $theme-dark-input-disabled-border-color; + } + } + } + + .custom-switch { + .custom-control-input:not(:checked) { + ~ .custom-control-label:before { + background-color: $theme-dark-switch-bg; + } + } + .custom-control-input:disabled { + ~ .custom-control-label:before { + background-color: $theme-dark-switch-bg-disabled; + } + } + } + + // select + select.form-control, + .custom-select { + background-color: $theme-dark-input-bg; + color: $theme-dark-body-color; + border-color: $theme-dark-border-color; + + option:checked { + background-color: $theme-dark-card-bg; + } + + &:disabled { + opacity: 0.5; + } + &:focus { + border-color: $primary; + } + } + + select.form-control { + &:not([multiple='multiple']) { + background-image: url(str-replace( + str-replace($chevron-down, 'currentColor', $theme-dark-body-color), + '#', + '%23' + )); + } + } + + // Added for override + .was-validated .form-control:invalid, + .form-control.is-invalid { + border-color: $danger !important; + } + + .was-validated .form-control:valid, + .form-control.is-valid { + border-color: $success !important; + } + + // form wizard + .wizard { + .steps { + ul { + .disabled, + .done { + a { + color: $theme-dark-body-color !important; + + &:hover { + color: $theme-dark-body-color; + } + + .step { + background-color: $theme-dark-body-bg !important; + color: $white !important; + } + } + } + } + } + } + + // input groups + .input-group { + .input-group-text { + background-color: $theme-dark-input-bg; + border-color: $theme-dark-border-color; + color: $theme-dark-body-color; + } + + &:focus-within { + .form-control, + .input-group-text { + border-color: $primary; + box-shadow: none; + } + } + } + + // floating label + .form-label-group { + & > input:not(:focus):not(:placeholder-shown) ~ label, + & > textarea:not(:focus):not(:placeholder-shown) ~ label { + color: $theme-dark-body-color !important; + } + } + + .counter-value { + color: white; + } + + /********** TABLE **********/ + + // table + .table { + background-color: $theme-dark-table-bg; + + td, + th { + color: $theme-dark-body-color; + border-color: $theme-dark-border-color !important; + } + + .thead, + tbody { + tr:not([class*='table-']) { + th, + td { + border-color: $theme-dark-border-color; + color: $theme-dark-body-color; + + code { + background-color: $theme-dark-table-row-bg; + } + } + } + } + + thead, + tfoot { + tr { + th { + border-color: $theme-dark-border-color; + background-color: $theme-dark-table-header-bg; + color: $theme-dark-headings-color; + } + } + &.thead-dark th { + background-color: $white; + color: $dark !important; + } + } + + // if table not light/dark and thead not have dark class + &:not(.table-dark):not(.table-light) thead:not(.thead-dark) th, + &:not(.table-dark):not(.table-light) tfoot:not(.thead-dark) th { + background-color: $theme-dark-table-header-bg; + } + + // table-dark style + &.table-dark { + background-color: $white; + &.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba($dark, 0.05); + td { + background-color: inherit; + } + } + td, + th { + border-color: #f8f9fa !important; + color: $dark !important; + background-color: $white; + .text-white { + color: $dark !important; + } + } + } + tbody { + tr { + // for contextual classes + &[class*='table-'] { + td, + th { + background-color: unset; + } + } + + &.table-dark { + td, + th { + color: $white; + } + } + + &.table-active { + td, + th { + color: $theme-dark-body-color; + } + } + } + } + + // bordered table + &.table-bordered { + border-color: $theme-dark-border-color; + } + + // table hover row color + &.table-hover { + tbody { + tr { + &:hover { + background-color: $theme-dark-table-hover-bg; + } + + th, + td { + background-color: unset; + } + } + } + } + + // hover animation + &.table-hover-animation tbody tr { + background-color: $theme-dark-table-bg; + &:hover { + box-shadow: $theme-dark-box-shadow; + } + } + + // table striped + &.table-striped { + tbody { + tr { + &:nth-of-type(odd) { + background-color: $theme-dark-table-striped-bg; + } + } + } + } + } + + // datatable + .dataTables_wrapper { + .dt-buttons { + .buttons-copy, + .buttons-excel, + .buttons-pdf, + .buttons-print, + .btn-secondary, + [class*='buttons-'] { + background-color: $theme-dark-body-bg !important; + &:active { + background-color: $primary !important; + color: $white; + } + } + } + .dt-button-collection { + > div[role='menu'] { + box-shadow: $theme-dark-box-shadow; + } + } + + .table.dataTable { + tr { + &.group { + td { + background-color: $theme-dark-table-striped-bg; + color: $theme-dark-headings-color; + } + } + } + + // Sorting Icons Change + thead { + .sorting, + .sorting_asc, + .sorting_desc { + &:before { + background-image: url(str-replace( + str-replace($chevron-up, 'currentColor', $theme-dark-body-color), + '#', + '%23' + )); + } + &:after { + background-image: url(str-replace( + str-replace($chevron-down, 'currentColor', $theme-dark-body-color), + '#', + '%23' + )); + } + } + .sorting { + &:before, + &:after { + opacity: 0.5; + } + } + .sorting_asc { + &:before { + opacity: 1; + } + &:after { + opacity: 0.5; + } + } + .sorting_desc { + &:after { + opacity: 1; + } + &:before { + opacity: 0.5; + } + } + } + } + } + + // agGrid Page Btn + .ag-grid-btns { + .filter-btn { + background-color: transparent !important; + } + } + + // agGrid Main + .aggrid { + .ag-input-wrapper input { + color: $theme-dark-body-color; + } + } + .aggrid, + .ag-header { + background-color: $theme-dark-card-bg; + color: $theme-dark-body-color; + border-color: $theme-dark-border-color; + + .ag-row-hover, + .ag-row-selected { + background-color: $theme-dark-table-hover-bg !important; + } + + .ag-icon { + color: $theme-dark-input-border-color; + } + .ag-header-cell.ag-column-hover { + background: transparent !important; + } + + .ag-header-cell, + .ag-cell, + .ag-row, + .ag-pinned-left-header, + .ag-pinned-left-cols-container, + .ag-horizontal-left-spacer, + .ag-paging-panel, + .ag-floating-filter-input { + border-color: $theme-dark-border-color !important; + color: $theme-dark-body-color; + } + .ag-cell.ag-cell-inline-editing { + border-color: $theme-dark-border-color; + background: $theme-dark-body-bg; + height: auto; + padding-top: 0; + } + + .ag-paging-panel { + .ag-paging-button { + background-color: $theme-dark-body-bg; + } + .ag-disabled { + background: $theme-dark-card-bg; + } + + span[ref='lbTotal'] { + background-color: $theme-dark-pagination-bg; + color: $theme-dark-body-color !important; + } + } + + ::-webkit-scrollbar-track { + background: $theme-dark-body-bg; + } + + ::-webkit-scrollbar-thumb { + background: $primary; + } + } + + /********** PAGES **********/ + + // coming soon + .getting-started { + .clockCard { + p { + color: $theme-dark-body-color !important; + } + } + } + + // profile page + #user-profile { + .profile-header { + .navbar { + background-color: $theme-dark-card-bg; + .navbar-toggler { + color: $theme-dark-body-color; + border-color: $theme-dark-border-color; + } + } + } + } + + // Search page + .search-bar { + .form-control { + background-color: $theme-dark-card-bg; + } + } + + // Blog Edit Page + .blog-edit-wrapper { + .border { + border-color: $theme-dark-border-color !important; + } + } + // Knowledge Base + .kb-search-content-info { + .kb-search-content { + .card-img-top { + background-color: #3f4860; + } + } + } + + // list group circle for kb + .list-group-circle { + .list-group-item:not([class*='list-group-item-']), + .list-group-item-action { + &:hover, + &:focus, + &:active { + background-color: transparent !important; + } + } + } + + /********** APPLICATIONS **********/ + + // App common sidebar and content dark style + .content-area-wrapper { + border-color: $theme-dark-border-color !important; + + .sidebar { + .sidebar-content { + background-color: $theme-dark-card-bg !important; + } + } + .app-fixed-search { + background-color: $theme-dark-card-bg !important; + border-color: $theme-dark-border-color !important; + } + .content-right { + border-color: $theme-dark-border-color !important; + } + } + + // email application + .email-application { + .content-area-wrapper { + // Email list + .email-app-list { + .app-action { + border-color: $theme-dark-border-color; + background-color: $theme-dark-card-bg; + .action-right { + .list-inline-item { + .dropdown-toggle { + color: $theme-dark-body-color; + } + } + } + } + + .email-user-list { + .media { + border-color: $theme-dark-border-color; + background-color: $theme-dark-card-bg; + + &:hover { + box-shadow: 0 3px 10px 0 $theme-dark-card-bg; + } + + &.selected-row-bg { + background-color: rgba($primary, 0.06); + border-color: $theme-dark-border-color; + } + } + + .media { + .user-details, + .mail-message { + p, + .mail-date { + color: $theme-dark-text-muted-color; + } + } + } + + .mail-read { + background-color: $theme-dark-table-hover-bg; + } + } + } + + // app email details + .email-app-details { + border-color: $theme-dark-border-color; + .email-scroll-area { + background-color: $theme-dark-body-bg; + } + + .email-detail-header { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + + .email-header-right { + .list-inline-item { + .dropdown-toggle, + .action-icon { + color: $theme-dark-body-color; + } + } + } + } + .email-info-dropup { + .dropdown-toggle::after { + background-image: url(str-replace( + str-replace($chevron-down, 'currentColor', $theme-dark-text-muted-color), + '#', + '%23' + )); + } + } + + .mail-message-wrapper, + .email-detail-head { + border-color: $theme-dark-border-color !important; + } + } + + // Compose mail + #compose-mail { + .compose-mail-form-field, + .ql-toolbar, + .ql-container { + border-color: $theme-dark-border-color; + } + label { + color: $theme-dark-body-color; + } + .modal-body { + border-bottom-left-radius: $modal-content-border-radius; + border-bottom-right-radius: $modal-content-border-radius; + } + } + } + } + + // chat application + .chat-application { + .content-area-wrapper { + border-color: $theme-dark-border-color; + } + // left sidebar + .sidebar { + .chat-profile-sidebar { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + } + + .sidebar-content { + border-color: $theme-dark-border-color; + + .chat-fixed-search { + border-color: $theme-dark-border-color; + } + + .chat-user-list-wrapper { + .chat-users-list { + li { + &:not(.active):hover { + background: $theme-dark-body-bg; + } + .chat-info .card-text, + .chat-time { + color: $theme-dark-text-muted-color; + } + &.active { + .chat-info .card-text, + .chat-time { + color: $white; + } + } + img { + border-color: $theme-dark-border-color; + } + } + } + } + } + } + .avatar-border { + img { + border-color: $theme-dark-border-color; + } + } + + // Right side content area + .content-right { + .chat-app-window { + .start-chat-area { + background-color: $theme-dark-card-bg; + + .start-chat-icon, + .start-chat-text { + background: $theme-dark-card-bg; + color: $theme-dark-body-color; + } + } + .start-chat-area, + .user-chats { + background-image: url($chat-bg-dark); + background-color: #1e232f; + } + .user-chats { + .divider .divider-text { + background: $theme-dark-card-bg; + &:before, + &:after { + border-color: $theme-dark-border-color; + } + } + .avatar img { + border-color: $theme-dark-border-color; + } + } + // Active conversation style + .active-chat { + .chat-left { + .chat-content { + background-color: $theme-dark-card-bg; + p { + color: $theme-dark-body-color; + } + } + } + + .chat-content { + p { + color: $white; + } + } + // Chat form + .chat-header .dropdown-toggle { + color: $theme-dark-body-color; + } + .chat-header, + .chat-app-form { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + } + } + } + + .user-profile-sidebar { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + } + } + } + + // Chat widget dark style + .chat-widget { + .user-chats { + background-color: $theme-dark-widget-bg !important; + } + .card-header, + .chat-app-form { + background-color: $theme-dark-card-bg; + } + .chat-app-window .user-chats .chat-left .chat-content { + background-color: $theme-dark-card-bg !important; + color: $theme-dark-body-color !important; + } + .chat-app-window .user-chats .avatar img { + border-color: $theme-dark-body-bg; + } + } + + // Kanban application + .kanban-application { + .kanban-wrapper { + .kanban-container { + .kanban-board { + .kanban-board-header { + .kanban-title-board { + color: $white; + + &:hover, + &:focus { + background-color: $theme-dark-card-bg; + } + } + } + .kanban-item { + background-color: $theme-dark-card-bg; + .item-dropdown i.dropdown-toggle, + .item-dropdown svg.dropdown-toggle { + stroke: $white; + } + .kanban-title-button { + color: $theme-dark-body-color; + } + i, + svg { + stroke: $theme-dark-body-color; + } + } + } + } + } + .update-item-sidebar { + .nav-tabs .nav-item .nav-link, + .tab-content .tab-pane { + background-color: transparent; + } + } + } + .kanban-item.gu-mirror { + background-color: $theme-dark-card-bg; + } + + // Todo application + .todo-application { + .content-area-wrapper { + .sidebar { + .todo-form { + .todo-item-action { + color: $theme-dark-body-color; + } + } + } + .content-right { + .todo-task-list-wrapper { + background-color: $theme-dark-card-bg !important; + border-color: $theme-dark-border-color; + } + .todo-task-list { + .todo-item { + &:not(:first-child) { + border-color: $theme-dark-border-color; + } + &.completed { + .todo-title { + color: $theme-dark-text-muted-color; + } + } + &:hover { + box-shadow: $theme-dark-box-shadow; + } + + .todo-item-action { + .todo-item-favorite:not(.text-warning) { + i, + svg { + color: $theme-dark-body-color; + } + } + } + } + } + } + } + .todo-item-action { + .close { + background-color: transparent !important; + } + } + } + .todo-item.gu-mirror { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + box-shadow: $theme-dark-box-shadow; + &.completed { + .todo-title { + color: $theme-dark-text-muted-color; + } + } + } + + // E-commerce application + .ecommerce-application { + .ecommerce-card { + .btn-light { + background-color: $theme-dark-body-bg !important; + color: $white; + border-color: transparent; + } + } + + // main content + .content-right, + .content-body { + // header items + .ecommerce-header-items { + .result-toggler { + .search-results { + color: $theme-dark-headings-color; + } + + .shop-sidebar-toggler { + i, + svg { + color: $theme-dark-headings-color; + } + } + } + } + + // list and grid view + .grid-view, + .list-view { + .ecommerce-card { + .card-body { + border-color: $theme-dark-border-color; + } + .item-options { + .wishlist { + span { + color: $headings-color; + } + } + + .cart { + span { + color: $white; + } + } + } + } + } + } + .grid-view { + .item-name a, + .item-price { + color: $theme-dark-body-color; + } + } + + // wishlist-items + .wishlist-items { + .ecommerce-card { + .move-cart { + .move-to-cart { + color: $white; + } + } + } + } + + // checkout + .product-checkout { + .checkout-options { + .coupons { + input { + color: $theme-dark-body-color; + &::placeholder { + color: $theme-dark-body-color; + } + } + } + } + } + // Ecommerce details + .app-ecommerce-details { + .item-features, + .swiper-responsive-breakpoints.swiper-container .swiper-slide { + background-color: $theme-dark-body-bg; + } + } + } + + // file manager app + .file-manager-application { + .sidebar-file-manager { + background-color: $theme-dark-card-bg !important; + .jstree { + .jstree-container-ul { + .jstree-anchor { + color: $theme-dark-body-color; + } + } + } + .storage-status { + i, + svg { + color: $theme-dark-body-color !important; + } + } + + .file-manager-title { + color: $theme-dark-label-color; + } + + &.show { + border: 1px solid $theme-dark-border-color !important; + } + } + + .content-area-wrapper { + border: 1px solid $theme-dark-border-color !important; + } + + // File Manager App + .file-manager-main-content { + border: 1px solid $theme-dark-border-color !important; + + .file-manager-app-searchbar { + background-color: transparent !important; + border-bottom: 1px solid $theme-dark-border-color !important; + + .file-manager-toggler { + color: $theme-dark-body-color !important; + } + } + + .file-manager-content-header, + .file-manager-content-body { + background-color: $theme-dark-card-bg !important; + } + + .file-manager-content-header { + border-color: $theme-dark-border-color !important; + } + + .file-manager-content-body { + .drives { + .card { + background-color: $theme-dark-table-bg; + } + } + + .view-container { + .file-manager-item { + .file-logo-wrapper { + background-color: $theme-dark-body-bg !important; + } + &:not(.selected) { + border-color: $theme-dark-border-color !important; + } + } + &:not(.list-view) { + .file-manager-item { + .file-size, + .file-accessed { + color: $theme-dark-text-muted-color !important; + } + } + } + } + } + } + + #app-file-manager-info-sidebar { + .nav-tabs .nav-link, + .tab-content .tab-pane { + background-color: transparent; + } + + .nav-tabs { + .nav-item:not(.active) { + .nav-link { + color: $theme-dark-body-color; + } + } + } + } + } + + // calendar + .app-calendar { + .app-calendar-sidebar { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + + .sidebar-content-title { + color: $theme-dark-label-color; + } + .select-all, + .input-filter { + ~ label { + color: $theme-dark-label-color; + } + } + } + .fc { + .fc-day-today { + background: $theme-dark-body-bg !important; + background-color: $theme-dark-body-bg !important; + } + + .fc-timegrid { + .fc-scrollgrid-section { + .fc-col-header-cell, + .fc-timegrid-axis, + .fc-daygrid-day { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + } + .fc-day-today { + background-color: rgba($color: $gray-100, $alpha: 0.12) !important; + + &.fc-col-header-cell { + background-color: $theme-dark-card-bg !important; + } + } + } + } + .fc-popover { + background: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + } + .fc-popover-header { + .fc-popover-title, + .fc-popover-close { + color: $theme-dark-body-color; + } + } + tbody td, + thead th { + border-color: $theme-dark-border-color; + } + + .fc-scrollgrid { + border-color: $theme-dark-border-color; + } + + .fc-list, + th { + border-color: $theme-dark-border-color; + .fc-list-day-cushion { + background: $theme-dark-body-bg; + } + .fc-list-event:hover td { + background-color: $theme-dark-body-bg; + } + .fc-list-event-time { + color: $theme-dark-body-color; + } + .fc-list-event { + td { + border-color: $theme-dark-border-color; + } + } + } + } + } + + // Invoice Application + .invoice-list-wrapper { + .dataTables_wrapper { + .invoice-list-dataTable-header { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + } + .invoice-data-table { + background-color: $theme-dark-card-bg; + tbody .selected-row-bg { + background-color: $theme-dark-border-color; + } + td { + background-color: inherit; + } + } + } + } + .invoice-edit, + .invoice-add { + .invoice-preview-card { + .invoice-product-details { + background-color: $theme-dark-body-bg; + .product-details-border { + background-color: $theme-dark-card-bg; + border-color: $theme-dark-border-color; + } + } + } + } + .invoice-print { + .form-control { + background-color: $theme-dark-card-bg; + } + } + + // Users Application + .app-user-view { + .plan-card { + border-color: $primary !important; + } + } + .app-user-edit { + .form-control.error { + border-color: $danger !important; + } + } + + /********** CUSTOMIZER **********/ + + .customizer { + background-color: $theme-dark-card-bg; + + .customizer-close { + i, + svg { + color: $theme-dark-body-color; + } + } + } + + .footer-fixed { + .footer { + background-color: $theme-dark-card-bg; + } + } + + /********** HORIZONTAL LAYOUT **********/ + .horizontal-layout { + &.navbar-sticky .horizontal-menu-wrapper .navbar-horizontal.header-navbar.fixed-top { + box-shadow: 0 4px 24px 0 rgba($black, 0.75) !important; + } + .horizontal-menu-wrapper { + background: linear-gradient( + to bottom, + rgba(37, 43, 71, 0.76) 44%, + rgba(56, 53, 53, 0.46) 73%, + rgba($white, 0) 100% + ) !important; + .header-navbar { + background: $theme-dark-card-bg !important; + &.navbar-shadow { + box-shadow: 0 4px 24px 0 rgba($black, 0.75); + } + &.navbar-horizontal { + ul#main-menu-navigation > li:hover:not(.active) > a { + background: $theme-dark-body-bg; + } + + .active { + .nav-link { + &.dropdown-toggle::after { + background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $white), '#', '%23')); + } + } + } + + .nav-link { + &.dropdown-toggle::after { + background-image: url(str-replace( + str-replace($chevron-down, 'currentColor', $theme-dark-body-color), + '#', + '%23' + )); + } + } + } + } + } + .main-menu-content { + .navbar-nav { + .dropdown-submenu { + &.show { + background-color: $theme-dark-card-bg !important; + color: $theme-dark-body-color; + } + } + .dropdown-menu { + a { + &:hover { + color: $theme-dark-headings-color !important; + } + } + .disabled a { + color: $theme-dark-text-muted-color; + } + .dropdown-item { + color: $theme-dark-headings-color; + } + .dropdown-toggle { + &::after { + background-image: url(str-replace( + str-replace($chevron-right, 'currentColor', $theme-dark-body-color), + '#', + '%23' + )); + } + &:hover, + &:active { + &::after { + background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $white), '#', '%23')); + } + } + } + } + + > li.active { + > a { + > i, + > svg { + color: $white !important; + } + } + + .dropdown-menu { + li.active > a { + background: $theme-dark-body-bg !important; + color: $theme-dark-body-color; + &:hover { + color: $primary !important; + } + } + } + + .dropdown-menu { + li.open.active { + > a { + color: $theme-dark-body-color !important; + } + } + } + } + } + } + } +} diff --git a/src/@core/scss/base/themes/semi-dark-layout.scss b/src/@core/scss/base/themes/semi-dark-layout.scss new file mode 100644 index 0000000..f8b3ad2 --- /dev/null +++ b/src/@core/scss/base/themes/semi-dark-layout.scss @@ -0,0 +1,109 @@ +// ================================================================================================ +// File Name: semi-dark-layout.scss +// Description: SCSS file for semi dark layout. +// ---------------------------------------------------------------------------------------------- +// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template +// Author: PIXINVENT +// Author URL: http://www.themeforest.net/user/pixinvent +// ================================================================================================ + +@import '../bootstrap-extended/include'; // Bootstrap includes +@import '../components/include'; // Components includes + +.semi-dark-layout { + /************ Main Menu **************/ + + // main menu + .main-menu { + background-color: $theme-dark-card-bg; + .shadow-bottom { + background: linear-gradient( + 180deg, + $theme-dark-card-bg 44%, + rgba($theme-dark-card-bg, 0.51) 73%, + rgba($theme-dark-card-bg, 0) + ); + } + &:not(.expanded) { + .navigation { + .sidebar-group-active { + a { + background-color: $theme-dark-body-bg; + } + } + } + } + } + + // main menu content + .main-menu-content { + .navigation-main { + background-color: $theme-dark-card-bg; + .navigation-header { + color: $theme-dark-text-muted-color; + } + .nav-item { + a { + color: $theme-dark-body-color; + } + &.open { + a { + background-color: $theme-dark-body-bg; + } + } + a:after, + a { + color: $theme-dark-body-color; + } + .menu-content { + background-color: $theme-dark-card-bg; + .active { + .menu-item { + color: $white; + } + } + li:not(.active) { + a { + background-color: $theme-dark-card-bg; + } + } + } + } + .active { + .menu-title, + i { + color: $white; + } + } + .sidebar-group-active { + a { + background: $theme-dark-card-bg; + border-radius: 4px; + } + } + .menu-content { + background-color: $theme-dark-card-bg; + .active { + z-index: 1; + a { + background-color: transparent; + } + } + } + } + } + + // menu collapsed active item color + .menu-collapsed { + .main-menu:not(.expanded) { + .navigation-main { + li.active { + > a { + background: $theme-dark-body-bg !important; + color: $white !important; + } + } + } + } + } +} diff --git a/src/@core/scss/core.scss b/src/@core/scss/core.scss new file mode 100644 index 0000000..7329782 --- /dev/null +++ b/src/@core/scss/core.scss @@ -0,0 +1,36 @@ +@import './base/bootstrap.scss'; +@import './base/bootstrap-extended.scss'; +@import './base/colors.scss'; +@import './base/components.scss'; + +// Themes +@import './base/themes/dark-layout.scss'; +@import './base/themes/bordered-layout.scss'; +@import './base/themes/semi-dark-layout.scss'; +// @import './base/custom-rtl.scss'; + +// React Specific +@import 'react/index'; + +.todo-item{ + margin-bottom: 10px !important; +} + +.chat-content.task{ + float: right; + background-image: linear-gradient(80deg,#7367f0,#9e95f5); + border-radius: 5px; + color: #fff; + padding: 6px; + margin-bottom: 15px; +} +.todo-title-wrapper:hover{ + cursor: pointer; + background-color: #67dbf0; + border-radius: 2px; +} +.todo-title-wrapper.tasks{ + display: flex; + justify-content: space-between; +} + diff --git a/src/@core/scss/react/_base-extended.scss b/src/@core/scss/react/_base-extended.scss new file mode 100644 index 0000000..942c370 --- /dev/null +++ b/src/@core/scss/react/_base-extended.scss @@ -0,0 +1,174 @@ +// Layout +// ======================================================================== +body, +#root, +.wrapper { + height: 100%; +} + +// Vertical Menu +// ======================================================================== +.vertical-layout .main-menu { + &.expanded { + .navigation { + li:not(.open) { + & > ul { + display: block !important; + } + } + } + } + .navigation { + li:not(.open) { + a { + &:after { + transform: rotate(0deg) !important; + } + } + } + } +} + +body #root .wrapper .ps__rail-y { + left: auto !important ; + right: 1px !important; +} + +// Horizontal Menu +// ======================================================================== +.horizontal-layout { + &.navbar-static .navbar-scrolled { + background: $white !important; + box-shadow: rgba($black, 0.05) 0px 4px 20px 0px !important; + } + + // Main Navbar + .header-navbar { + .navbar-container { + .dropdown-language, + .dropdown-cart, + .dropdown-notification, + .dropdown-user { + .dropdown-menu { + top: 3rem !important; + } + } + } + } + + // Menu + .horizontal-menu-wrapper { + #main-menu-navigation { + .dropdown { + .dropdown-submenu { + .dropdown-toggle:after { + margin-top: -5px; + } + } + } + } + + .navbar-horizontal { + ul.dropdown-menu { + .nav-item.active > a { + border-bottom: none; + } + + // Scrollbar styles + &::-webkit-scrollbar { + width: 5px; + height: 5px; + } + + &::-webkit-scrollbar-thumb { + background: $gray-500; + border-radius: 20px; + } + + &::-webkit-scrollbar-track { + background: $gray-300; + border-radius: 30px; + } + } + } + } +} + +// Bookmarks search +// ======================================================================== +.header-navbar .navbar-container { + .navbar-nav { + .autocomplete-container .suggestion-item span { + line-height: 1.2; + } + } +} + +// Component Code +// ======================================================================== +.card-snippet { + pre { + margin-top: 0; + border-radius: 0.5rem; + } +} + +// Dashboard Analytics +// ======================================================================= + +.card-congratulations { + .avatar svg { + height: 28px !important; + width: 28px !important; + } +} + +// Card Analytics +// ======================================================================= +.avg-session-progress { + height: 6px; +} + +// Block UI +// ======================================================================== +.block-ui-container { + .block-ui-overlay { + background: rgba($black, 0.6); + } +} + +// React SlideDown +// ======================================================================== +.react-slidedown { + &::-webkit-scrollbar { + width: 0px; + } +} + +// Router Transitions +// ======================================================================== +.animate__animated.animate__zoomIn, +.animate__animated.animate__fadeInLeft { + --animate-duration: 1s; +} + +// App Ecommerce +// ======================================================================== +.ecommerce-application { + .content-wrapper.animate__animated { + animation: none; + } +} + +// Customizer +// ======================================================================== +.customizer { + .react-select { + width: 100%; + max-width: 200px; + + .select__menu { + z-index: 2; + } + } +} diff --git a/src/@core/scss/react/_dark-layout.scss b/src/@core/scss/react/_dark-layout.scss new file mode 100644 index 0000000..58a20e4 --- /dev/null +++ b/src/@core/scss/react/_dark-layout.scss @@ -0,0 +1,72 @@ +@import '../base/bootstrap-extended/include'; +@import '../base/components/include'; + +.dark-layout { + // Autocomplete Navbar + .autocomplete-container { + .suggestions-list { + .suggestion-item { + &.suggestion-title-wrapper h6 { + color: $theme-dark-text-muted-color; + } + } + } + } + + // Ecommerce Application + .ecommerce-application .list-view .ecommerce-card .card-body { + border-right-color: $theme-dark-border-color; + } + + // Pagination Break + .pagination { + .break { + background-color: $theme-dark-pagination-bg; + a { + color: $theme-dark-body-color; + } + } + } + + // Invoice data table + .invoice-list-wrapper header { + background-color: $theme-dark-card-bg; + } + + // BlockUI + .block-ui-container { + .block-ui-overlay { + background: $theme-dark-body-bg; + } + .block-ui-message { + color: $theme-dark-body-color; + } + } + + // Form Control + .form-control { + background-color: transparent; + } + + // Apex Charts + .apexcharts-gridlines-vertical line { + stroke: $theme-dark-border-color; + } + + // Horizontal Menu Scrollbar + .horizontal-menu { + .horizontal-menu-wrapper { + .navbar-horizontal { + ul.dropdown-menu { + &::-webkit-scrollbar-thumb { + background: $theme-dark-body-bg; + } + + &::-webkit-scrollbar-track { + background: $theme-dark-border-color; + } + } + } + } + } +} diff --git a/src/@core/scss/react/_index.scss b/src/@core/scss/react/_index.scss new file mode 100644 index 0000000..35a321e --- /dev/null +++ b/src/@core/scss/react/_index.scss @@ -0,0 +1,10 @@ +// Base Extended (General styles which are not added 'base styles') +@import 'base-extended'; + +@import 'dark-layout'; + +@import 'rtl'; + +@import 'reactstrap/index'; + +@import 'app-loader'; diff --git a/src/@core/scss/react/_rtl.scss b/src/@core/scss/react/_rtl.scss new file mode 100644 index 0000000..155bc8f --- /dev/null +++ b/src/@core/scss/react/_rtl.scss @@ -0,0 +1,247 @@ +html[dir='rtl'] { + body .ps__rail-y { + right: auto !important; + left: 1px !important; + } + + // Scroll To Top + .scroll-to-top { + div:first-of-type { + left: auto !important; + right: 30px; + } + } + + // Vertical Menu Item Arrows + .vertical-layout.vertical-menu-modern { + .main-menu .navigation { + li.has-sub { + > a:after { + transform: rotate(-90deg) !important; + } + &:not(.open) { + > a:after { + transform: rotate(-180deg) !important; + } + } + } + } + } + + // Horizontal menu + .horizontal-menu .header-navbar.navbar-horizontal .dropdown-menu .dropdown-toggle::after { + background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $body-color), '#', '%23')); + } + + // Breadcrumbs + .breadcrumb:not([class*='breadcrumb-']), + .breadcrumb.breadcrumb-chevron { + .breadcrumb-item + .breadcrumb-item { + &:before { + transform: rotate(180deg); + } + } + } + + // Pagination + .pagination .page-item { + &.prev-item, + &.prev, + &.previous { + .page-link { + &:before { + transform: rotate(180deg); + } + &:hover, + &:active { + &:before { + transform: rotate(180deg); + } + } + } + &.disabled { + .page-link { + &:before { + transform: rotate(180deg); + } + } + } + } + + &.next-item, + &.next { + .page-link { + &:after { + transform: rotate(180deg); + } + &:hover, + &:active { + &:after { + transform: rotate(180deg); + } + } + } + &.disabled { + .page-link { + &:before { + transform: rotate(180deg); + } + } + } + } + &:first-of-type, + &:last-of-type { + .page-link svg { + transform: rotate(180deg); + } + } + } + + // Popover + .popover { + left: auto !important; + } + + // Progress + .progress-bar-animated { + animation: progress-bar-stripes 40s linear infinite; + } + + // Tooltip + .bs-tooltip-left .arrow::before, + .bs-tooltip-auto[x-placement^='left'] .arrow::before { + border-width: 0.4rem 0 0.4rem 0.4rem; + border-right-color: $tooltip-bg; + } + + .bs-tooltip-left .arrow, + .bs-tooltip-auto[x-placement^='left'] .arrow { + left: 0; + right: auto; + + transform: rotate(180deg); + } + + .bs-tooltip-right .arrow::before, + .bs-tooltip-auto[x-placement^='right'] .arrow::before { + border-width: 0.4rem 0.4rem 0.4rem 0; + border-left-color: $tooltip-bg; + } + + .bs-tooltip-right .arrow, + .bs-tooltip-auto[x-placement^='right'] .arrow { + right: 0; + left: auto; + + transform: rotate(180deg); + } + + // App Email + .email-application { + .toggle-cc.mr-1 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + } + + // App Calendar + .app-calendar { + .fc-toolbar { + .fc-prev-button, + .fc-next-button { + transform: rotate(180deg); + } + } + } + + // App Ecommerce + .app-ecommerce-details { + .swiper-button-next { + right: 0; + left: auto; + } + } + + // Invoice List + .invoice-list-table-header { + select { + background-position: calc(100% - (100% - 45px)) 13px, calc(100% - (100% - 20px)) 13px, 0% 0 !important; + } + } + + // TinyMCE + .tox-tinymce { + .tox-editor-header { + direction: ltr; + } + } + + // Apex Charts + .apexcharts-canvas { + .apexcharts-tooltip { + .apexcharts-tooltip-marker { + margin-right: 10px; + margin-left: 0 !important; + } + } + } + + // Context Menu + .react-contexify { + z-index: 1031; + } + + // Swiper + .swiper-button-next { + right: 10px !important; + left: auto !important; + } + + .swiper-button-prev { + left: 10px !important; + right: auto !important; + } + + // Flatpickr + .flatpickr-calendar { + .flatpickr-months { + svg { + transform: rotate(180deg); + } + } + } + + // Wizard + .bs-stepper { + &:not(.vertical) { + .bs-stepper-header .line svg { + transform: rotate(180deg); + } + } + .btn-next svg, + .btn-prev svg { + transform: rotate(180deg); + } + } + + // Datatables + .rdt_Table { + [aria-label='Expand Row'] { + svg { + transform: rotate(180deg); + } + } + } + + #profile-info { + .post { + .post-actions { + .share-post { + span.mr-1 { + margin-right: 0 !important; + } + } + } + } + } +} diff --git a/src/@core/scss/react/app-loader.scss b/src/@core/scss/react/app-loader.scss new file mode 100644 index 0000000..7183090 --- /dev/null +++ b/src/@core/scss/react/app-loader.scss @@ -0,0 +1,77 @@ +.loading { + position: absolute; + left: calc(50% - 35px); + top: 50%; + width: 55px; + height: 55px; + border-radius: 50%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 3px solid transparent; + + &.component-loader { + margin-top: -60px; + } + + .effect-1, + .effect-2 { + position: absolute; + width: 100%; + height: 100%; + border: 3px solid transparent; + border-left: 3px solid rgba(121, 97, 249, 1); + border-radius: 50%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + } + + .effect-1 { + animation: rotate 1s ease infinite; + } + .effect-2 { + animation: rotateOpacity 1s ease infinite 0.1s; + } + .effect-3 { + width: 100%; + height: 100%; + border: 3px solid transparent; + border-left: 3px solid rgba(121, 97, 249, 1); + -webkit-animation: rotateOpacity 1s ease infinite 0.2s; + animation: rotateOpacity 1s ease infinite 0.2s; + border-radius: 50%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + } + + .loading .effects { + transition: all 0.3s ease; + } +} +.fallback-logo { + position: absolute; + left: calc(50% - 45px); + top: 40%; +} + +@keyframes rotate { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(1turn); + transform: rotate(1turn); + } +} +@keyframes rotateOpacity { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + opacity: 0.1; + } + 100% { + -webkit-transform: rotate(1turn); + transform: rotate(1turn); + opacity: 1; + } +} diff --git a/src/@core/scss/react/apps/app-calendar.scss b/src/@core/scss/react/apps/app-calendar.scss new file mode 100644 index 0000000..28a4241 --- /dev/null +++ b/src/@core/scss/react/apps/app-calendar.scss @@ -0,0 +1,49 @@ +// App Calendar +// ======================================================================== +@import '../../base/pages/app-calendar.scss'; + +.event-sidebar { + .badge:empty { + display: inline-block; + } + .react-select { + z-index: 2; + } +} + +html[dir='rtl'] { + .fc { + &.fc-direction-rtl .fc-scroller-harness > .fc-scroller { + direction: ltr !important; + } + .fc-header-toolbar { + .fc-prev-button, + .fc-next-button { + transform: rotate(180deg); + } + } + .fc-toolbar .fc-button-group { + .fc-dayGridMonth-button:first-child { + border-top-right-radius: $border-radius !important; + border-bottom-right-radius: $border-radius !important; + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; + } + .fc-listMonth-button:last-child { + border-top-left-radius: $border-radius !important; + border-bottom-left-radius: $border-radius !important; + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; + } + } + .fc-event-main-frame { + flex-direction: row-reverse !important; + } + .fc-popover { + margin-right: 6.2rem; + } + .fc-daygrid-day-bottom { + text-align: left; + } + } +} diff --git a/src/@core/scss/react/apps/app-email.scss b/src/@core/scss/react/apps/app-email.scss new file mode 100644 index 0000000..21acea1 --- /dev/null +++ b/src/@core/scss/react/apps/app-email.scss @@ -0,0 +1,23 @@ +// App Email +// ======================================================================== + +@import '../../base/pages/app-email.scss'; + +// For editor height +.email-application { + #message-editor .rdw-editor-main { + min-height: 17.9rem; + } +} + +html[dir='rtl'] { + .email-application { + .email-app-details .email-detail-header { + .email-header-left .go-back svg, + .email-header-right .email-prev svg, + .email-header-right .email-next svg { + transform: rotate(180deg); + } + } + } +} diff --git a/src/@core/scss/react/apps/app-invoice.scss b/src/@core/scss/react/apps/app-invoice.scss new file mode 100644 index 0000000..dd9ec38 --- /dev/null +++ b/src/@core/scss/react/apps/app-invoice.scss @@ -0,0 +1,20 @@ +// App Invoice +// ======================================================================== + +@import '../../base/pages/app-invoice.scss'; + +.invoice-list-dataTable { + header { + padding-left: 1.5rem; + } +} + +@media (max-width: 482px) { + .invoice-list-dataTable { + header .actions-right { + select { + margin-top: 1rem; + } + } + } +} diff --git a/src/@core/scss/react/apps/app-todo.scss b/src/@core/scss/react/apps/app-todo.scss new file mode 100644 index 0000000..3fe277c --- /dev/null +++ b/src/@core/scss/react/apps/app-todo.scss @@ -0,0 +1,15 @@ +// App Todo +// ======================================================================== + +@import '../../base/pages/app-todo.scss'; + +.todo-application { + .todo-item[draggable='true'] { + box-shadow: 0 0 10px 0 rgba(24, 28, 33, 0.25); + } +} +.sidebar-todo-modal { + .react-select { + z-index: 2; + } +} diff --git a/src/@core/scss/react/apps/app-users.scss b/src/@core/scss/react/apps/app-users.scss new file mode 100644 index 0000000..f89b3fd --- /dev/null +++ b/src/@core/scss/react/apps/app-users.scss @@ -0,0 +1,19 @@ +// Users App +// ======================================================================== + +@import '../../base/pages/app-user.scss'; + +// Users avatar shadow +.users-avatar-shadow { + box-shadow: 2px 4px 14px 0 rgba(34, 41, 47, 0.4); +} + +// User view info +.users-page-view-table .user-info { + div { + padding: 0.5rem; + } + .user-info-title { + min-width: 140px; + } +} diff --git a/src/@core/scss/react/libs/charts/apex-charts.scss b/src/@core/scss/react/libs/charts/apex-charts.scss new file mode 100644 index 0000000..07e9ac6 --- /dev/null +++ b/src/@core/scss/react/libs/charts/apex-charts.scss @@ -0,0 +1,7 @@ +@import '../../../base/plugins/charts/chart-apex.scss'; + +.dark-layout { + .apexcharts-gridlines-vertical line { + stroke: $theme-dark-border-color; + } +} diff --git a/src/@core/scss/react/libs/charts/recharts.scss b/src/@core/scss/react/libs/charts/recharts.scss new file mode 100644 index 0000000..3e7aa93 --- /dev/null +++ b/src/@core/scss/react/libs/charts/recharts.scss @@ -0,0 +1,105 @@ +@import '../../../base/bootstrap-extended/include'; +@import '../../../base/components/include'; + +.recharts-wrapper { + height: 350px; +} + +// Tooltip +.recharts-tooltip-wrapper { + padding: 0.75rem; + background-color: $white; + border-radius: 5px; + border: 1px solid $border-color; + box-shadow: 2px 2px 6px -4px #999; +} + +// Grid Color +.recharts-cartesian-grid, +.recharts-polar-grid-angle, +.recharts-yAxis, +.recharts-xAxis { + line { + stroke: $border-color; + } +} + +.recharts-polar-grid-concentric { + .recharts-polar-grid-concentric-polygon { + stroke: $border-color; + } +} + +.recharts-polar-radius-axis-line { + stroke: $border-color; +} + +.recharts-cartesian-axis-tick-value tspan, +.recharts-polar-angle-axis-tick-value tspan { + font-size: 0.85rem; + color: $body-color; +} + +// Vertical Tooltip Line +.recharts-curve.recharts-tooltip-cursor { + display: none; +} +.recharts-wrapper.bar-chart { + .recharts-tooltip-cursor { + fill: transparent; + } +} + +// Dark Layout +.dark-layout { + // Tooltip + .recharts-tooltip-wrapper { + padding: 0.75rem; + background-color: $theme-dark-card-bg; + border-radius: 5px; + border: 1px solid $theme-dark-border-color; + box-shadow: 2px 2px 6px -4px #999; + } + + // Grid Color + .recharts-cartesian-grid, + .recharts-polar-grid-angle, + .recharts-yAxis, + .recharts-xAxis { + line { + stroke: $theme-dark-border-color; + } + } + + .recharts-polar-grid-concentric { + .recharts-polar-grid-concentric-polygon { + stroke: $theme-dark-border-color; + } + } + + .recharts-polar-radius-axis-line { + stroke: $theme-dark-border-color; + } + + .recharts-cartesian-axis-line, + .recharts-cartesian-axis-tick-line { + display: none; + } + + .recharts-sector.recharts-radial-bar-background-sector { + fill: $theme-dark-body-bg; + } + + text { + fill: $white; + } + .recharts-sector { + stroke: transparent; + } +} + +html[dir='rtl'] { + .recharts-wrapper { + direction: rtl; + } +} diff --git a/src/@core/scss/react/libs/context-menu/context-menu.scss b/src/@core/scss/react/libs/context-menu/context-menu.scss new file mode 100644 index 0000000..aa4a326 --- /dev/null +++ b/src/@core/scss/react/libs/context-menu/context-menu.scss @@ -0,0 +1,36 @@ +@import '../../../base/bootstrap-extended/include'; +@import '../../../base/components/include'; + +.react-contexify { + margin: 0; + padding: $dropdown-padding-y 0; + border-radius: $dropdown-border-radius; + border: $dropdown-border-width solid $dropdown-border-color; + box-shadow: $dropdown-box-shadow; + min-width: $dropdown-min-width; + .react-contexify__item { + .react-contexify__item__content { + padding: $dropdown-item-padding-y $dropdown-item-padding-x; + color: $dropdown-color; + } + &:hover { + > .react-contexify__item__content { + background-color: $dropdown-link-hover-bg !important; + color: $primary; + } + } + } +} + +// Dark Layout +.dark-layout { + .react-contexify { + background-color: $theme-dark-body-bg; + border-color: $theme-dark-border-color; + } + .react-contexify__item { + .react-contexify__item__content { + color: $theme-dark-body-color; + } + } +} diff --git a/src/@core/scss/react/libs/drag-and-drop/drag-and-drop.scss b/src/@core/scss/react/libs/drag-and-drop/drag-and-drop.scss new file mode 100644 index 0000000..6f93b87 --- /dev/null +++ b/src/@core/scss/react/libs/drag-and-drop/drag-and-drop.scss @@ -0,0 +1,21 @@ +@import '../../../base/bootstrap-extended/include'; +@import '../../../base/components/include'; +@import '../../../base/plugins/extensions/ext-component-drag-drop.scss'; + +.sortable-selected { + background-color: $body-bg; +} + +// Dark +.dark-layout { + .sortable-selected { + background-color: $theme-dark-body-bg !important; + } +} + +// RTL +html[dir='rtl'] { + .sortable-row { + flex-direction: row-reverse; + } +} diff --git a/src/@core/scss/react/libs/editor/editor.scss b/src/@core/scss/react/libs/editor/editor.scss new file mode 100644 index 0000000..26f6762 --- /dev/null +++ b/src/@core/scss/react/libs/editor/editor.scss @@ -0,0 +1,71 @@ +@import '../../../base/bootstrap-extended/include'; +@import '../../../base/components/include'; + +@import '~react-draft-wysiwyg/dist/react-draft-wysiwyg.css'; + +.rdw-editor-wrapper { + .rdw-editor-toolbar { + margin-bottom: 0; + padding: 0.5rem; + padding-bottom: 0; + border-color: $border-color; + border-top-left-radius: $border-radius; + border-top-right-radius: $border-radius; + .rdw-option-wrapper { + border: none; + &.rdw-option-active { + box-shadow: none; + background-color: rgba($color: $primary, $alpha: 0.2); + } + &:hover { + box-shadow: none; + } + } + .rdw-dropdown-wrapper { + border: 1px solid $border-color; + .rdw-dropdown-optionwrapper { + &:hover { + box-shadow: none; + } + } + &:hover { + box-shadow: none; + } + } + .rdw-link-modal, + .rdw-embedded-modal { + height: auto; + } + } + .rdw-editor-main { + min-height: 10rem; + padding: 0.5rem 1.2rem; + border: 1px solid $border-color; + border-bottom-left-radius: $border-radius; + border-bottom-right-radius: $border-radius; + } + .rdw-editor-toolbar ~ .rdw-editor-main { + border-top: none; + } + + &.toolbar-bottom { + display: flex; + flex-direction: column; + .rdw-editor-toolbar { + order: 2; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: $border-radius; + border-bottom-right-radius: $border-radius; + } + .rdw-editor-main { + border-top: 1px solid $border-color; + border-bottom: 0; + border-top-left-radius: $border-radius; + border-top-right-radius: $border-radius; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + order: 1; + } + } +} diff --git a/src/@core/scss/react/libs/file-uploader/file-uploader.scss b/src/@core/scss/react/libs/file-uploader/file-uploader.scss new file mode 100644 index 0000000..a5e6bc4 --- /dev/null +++ b/src/@core/scss/react/libs/file-uploader/file-uploader.scss @@ -0,0 +1,29 @@ +@import '../../../base/bootstrap-extended/include'; +@import '../../../base/components/include'; + +.uppy-Root { + border-radius: $border-radius; + border-color: $primary; + + &.uppy-DragDrop-container:focus { + box-shadow: none; + } + + .uppy-DragDrop-arrow { + fill: $primary; + } + + .uppy-DragDrop-label { + color: $body-color; + } + + .uppy-DragDrop-browse { + color: $primary; + } +} + +.dark-layout { + .uppy-Root { + background-color: $theme-dark-body-bg; + } +} diff --git a/src/@core/scss/react/libs/flatpickr/flatpickr.scss b/src/@core/scss/react/libs/flatpickr/flatpickr.scss new file mode 100644 index 0000000..1958b0f --- /dev/null +++ b/src/@core/scss/react/libs/flatpickr/flatpickr.scss @@ -0,0 +1,2 @@ +@import '~flatpickr/dist/flatpickr.css'; +@import '../../../base/plugins/forms/pickers/form-flat-pickr'; diff --git a/src/@core/scss/react/libs/maps/map-leaflet.scss b/src/@core/scss/react/libs/maps/map-leaflet.scss new file mode 100644 index 0000000..016d138 --- /dev/null +++ b/src/@core/scss/react/libs/maps/map-leaflet.scss @@ -0,0 +1,37 @@ +@import '../../../base/bootstrap-extended/include'; +@import '../../../base/components/include'; +@import '../../../base/plugins/maps/map-leaflet.scss'; + +.leaflet-map { + [class*='leaflet-control-zoom-'] { + background-color: $white; + &:hover { + color: $black; + } + } +} + +html[dir='rtl'] { + .leaflet-map { + .leaflet-control-container { + .leaflet-left { + left: 0; + right: unset; + .leaflet-control-zoom, + .leaflet-control-layers { + margin-right: 0; + margin-left: 10px; + } + } + .leaflet-right { + right: 0; + left: unset; + .leaflet-control-zoom, + .leaflet-control-layers { + margin-right: 10px; + margin-left: 0px; + } + } + } + } +} diff --git a/src/@core/scss/react/libs/noui-slider/noui-slider.scss b/src/@core/scss/react/libs/noui-slider/noui-slider.scss new file mode 100644 index 0000000..226490d --- /dev/null +++ b/src/@core/scss/react/libs/noui-slider/noui-slider.scss @@ -0,0 +1,23 @@ +@import '~nouislider/distribute/nouislider.css'; +@import '../../../base/plugins/extensions/ext-component-sliders.scss'; +@import '../../../base/core/colors/palette-noui'; + +html[dir='rtl'] .noUi-horizontal { + .noUi-origin { + left: auto !important; + right: 0 !important; + .noUi-handle { + right: -10px; + left: auto; + } + } + .noUi-connects { + .noUi-connect { + left: 0; + transform-origin: 100% 100%; + } + } + .noUi-value-horizontal { + transform: translate(-50%, 50%); + } +} diff --git a/src/@core/scss/react/libs/react-select/_react-select.scss b/src/@core/scss/react/libs/react-select/_react-select.scss new file mode 100644 index 0000000..8986ae8 --- /dev/null +++ b/src/@core/scss/react/libs/react-select/_react-select.scss @@ -0,0 +1,161 @@ +@import '../../../base/bootstrap-extended/include'; +@import '../../../base/components/include'; + +// InValid Select +.react-select.is-invalid { + .select__control { + border-color: $danger; + } +} + +// Select Control(Input) +.select__control, +.react-select__control { + &.select__control--is-disabled { + border-color: $border-color; + .select__indicator-separator { + background-color: $border-color; + } + } + + &.select__control--is-focused, + &.react-select__control--is-focused { + box-shadow: none; + border-color: $primary; + } + + .select__indicator svg { + cursor: pointer; + } + + .select__indicator-separator { + display: none; + } + .select__single-value { + color: $body-color; + } + + .select__placeholder { + color: $body-color; + } +} + +// Select Menu +.select__menu, +.react-select__menu { + .select__menu-list, + .react-select__menu-list { + .select__option, + .react-select__option { + cursor: pointer; + + &.select__option--is-focused { + background-color: rgba($color: $primary, $alpha: 0.12); + color: $primary; + } + + &.select__option--is-selected { + background-color: $primary; + color: $white; + } + } + } + + .select__menu-list, + .react-select__menu-list { + .select__group { + .select__group-heading { + margin-bottom: 0.5rem; + color: $headings-color; + font-weight: bolder; + font-size: inherit; + } + } + } +} + +// Multi Select +.select__multi-value, +.react-select__multi-value { + color: $white; + border-radius: 3px; + margin: 0 0.7rem 0 0; + + .select__multi-value__label { + color: $white; + font-size: 0.85rem; + border-radius: $border-radius; + padding: 0.26rem 0.6rem; + } + + .select__multi-value__remove { + padding-left: 0; + padding-right: 0.5rem; + + &:hover { + background-color: inherit; + color: inherit; + } + + svg { + height: 0.85rem; + width: 0.85rem; + &:hover { + cursor: pointer; + } + } + } +} + +// Select Borderless +.select-borderless { + .select__control { + border: 0; + .select__indicators { + display: none; + } + } +} + +// Dark Layout +.dark-layout { + .select__control { + background-color: $theme-dark-input-bg; + border-color: $theme-dark-border-color; + + .select__indicator svg { + fill: $theme-dark-body-color; + } + + .select__indicator span, + .select__single-value { + color: $theme-dark-body-color; + } + + .select__multi-value { + background-color: rgba($color: $primary, $alpha: 0.12); + .select__multi-value__label { + color: $primary; + } + } + .select__multi-value__remove { + svg { + fill: $primary; + } + &:hover { + background-color: transparent !important; + } + } + + .select__placeholder { + color: $theme-dark-input-placeholder-color; + } + + &.select__control--is-disabled { + opacity: 0.5; + } + } + .select__menu { + background-color: $theme-dark-card-bg; + } +} diff --git a/src/@core/scss/react/libs/shepherd-tour/shepherd-tour.scss b/src/@core/scss/react/libs/shepherd-tour/shepherd-tour.scss new file mode 100644 index 0000000..0f20efe --- /dev/null +++ b/src/@core/scss/react/libs/shepherd-tour/shepherd-tour.scss @@ -0,0 +1,11 @@ +@import '../../../base/plugins/extensions/ext-component-tour.scss'; + +.shepherd-element { + .shepherd-content { + .shepherd-button { + background: inherit; + color: $primary; + border-radius: $btn-border-radius; + } + } +} diff --git a/src/@core/scss/react/libs/swiper/swiper.scss b/src/@core/scss/react/libs/swiper/swiper.scss new file mode 100644 index 0000000..230392c --- /dev/null +++ b/src/@core/scss/react/libs/swiper/swiper.scss @@ -0,0 +1,11 @@ +@import '~swiper/swiper-bundle.css'; +@import '../../../base/plugins/extensions/ext-component-swiper.scss'; + +html[dir='rtl'] { + .swiper-container-cube .swiper-slide { + transform-origin: 0 100% !important; + } + .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { + transform-origin: left top; + } +} diff --git a/src/@core/scss/react/libs/tables/react-dataTable-component.scss b/src/@core/scss/react/libs/tables/react-dataTable-component.scss new file mode 100644 index 0000000..2d976bd --- /dev/null +++ b/src/@core/scss/react/libs/tables/react-dataTable-component.scss @@ -0,0 +1,174 @@ +@import '../../../base/bootstrap-extended/include'; +@import '../../../base/components/include'; + +.react-dataTable { + border-radius: 0; + .rdt_TableHead { + .rdt_TableHeadRow { + background-color: $table-head-bg; + border-top: 1px solid; + border-color: $border-color; + min-height: 0; + height: 38px; + + .rdt_TableCol { + padding: 0.72rem 1.5rem; + .rdt_TableCol_Sortable { + color: $body-color; + font-weight: bold; + font-style: 0.857rem; + letter-spacing: 0.5px; + text-transform: uppercase; + &:hover { + color: $body-color; + } + } + } + } + } + + .rdt_TableBody { + .rdt_TableRow { + .rdt_TableCell { + height: 53px; + padding: 0.72rem 1.5rem; + + .column-action { + svg { + stroke: $body-color; + } + + .dropdown-item:hover { + svg { + stroke: $primary; + } + } + + .dropdown-item:active { + svg { + stroke: $white; + } + } + } + } + } + } + + .react-paginate { + &.separated-pagination { + .page-item:first-child .page-link, + .page-item:last-child .page-link { + border-radius: 50%; + } + } + } +} + +.rdt_Pagination { + select { + min-width: 30px; + &:focus, + &:active { + outline: 0; + } + } +} + +.dataTable-filter { + max-width: 220px; +} + +.dataTable-select { + width: 5rem; + &:not([multiple='multiple']) { + margin-left: 0.25rem; + margin-right: 0.25rem; + background-position: calc(100% - 12px) 10px, calc(100% - 20px) 12px, 100% 0; + background-size: 10px 10px, 10px 10px; + } +} + +.dark-layout { + .app-user-list { + header { + background-color: $theme-dark-card-bg; + } + } + + .react-dataTable { + .hlidmt { + background-color: $theme-dark-card-bg; + } + .khKjDK { + background-color: $theme-dark-card-bg; + color: $theme-dark-body-color; + } + + .rdt_Table { + background: $theme-dark-table-header-bg; + color: $theme-dark-body-color; + } + .rdt_TableHead { + .rdt_TableHeadRow { + background-color: $theme-dark-table-header-bg; + border-color: $theme-dark-border-color; + .rdt_TableCol { + color: $theme-dark-body-color; + div[role='button'] { + color: $theme-dark-body-color; + } + } + .rdt_TableCol_Sortable, + .rdt_TableCol_Sortable:hover { + color: $theme-dark-headings-color; + svg { + stroke: $theme-dark-headings-color; + } + } + } + } + .rdt_TableBody { + .expandable-content { + background-color: $theme-dark-table-bg; + color: $theme-dark-body-color; + } + .rdt_TableRow { + background-color: $theme-dark-table-bg; + color: $theme-dark-body-color; + border-color: $theme-dark-border-color; + .rdt_TableCell { + color: $theme-dark-body-color; + } + button { + &:hover:not(:disabled) { + background-color: $theme-dark-body-bg; + } + svg { + color: $theme-dark-body-color; + } + } + } + } + .rdt_Pagination { + background-color: $theme-dark-table-bg; + color: $theme-dark-body-color; + + svg { + fill: $theme-dark-body-color; + } + } + } + + .rdt_Pagination { + color: $theme-dark-body-color; + background-color: $theme-dark-card-bg; + button { + svg { + fill: $theme-dark-body-color; + } + &[disabled] svg { + fill: $theme-dark-text-muted-color; + } + } + } +} diff --git a/src/@core/scss/react/libs/toastify/toastify.scss b/src/@core/scss/react/libs/toastify/toastify.scss new file mode 100644 index 0000000..abac116 --- /dev/null +++ b/src/@core/scss/react/libs/toastify/toastify.scss @@ -0,0 +1,135 @@ +@import '~react-toastify/dist/ReactToastify.css'; +@import '../../../base/bootstrap-extended/include'; +@import '../../../base/components/include'; +@import '../../../base/core/colors/palette-variables'; + +.Toastify__toast { + background-color: $white; + border-radius: $toast-border-radius; + box-shadow: $toast-box-shadow; + padding: 1rem; + .Toastify__toast-body, + .Toastify__close-button { + color: $body-color; + } + + .toastify-header { + padding-bottom: 0.5rem; + display: flex; + justify-content: space-between; + align-items: center; + .title-wrapper { + display: flex; + align-items: center; + + .avatar svg { + height: 0.85rem; + width: 0.85rem; + } + } + .toast-title { + color: $headings-color; + font-weight: 600; + margin-left: 0.75rem; + margin-bottom: 0; + } + } + + .toastify-body { + color: $body-color; + padding-left: 2.3rem; + font-size: 0.85rem; + font-family: $font-family-sans-serif; + } + + .Toastify__close-button { + opacity: 1; + margin-top: 1px; + margin-left: 0.5rem; + svg { + height: 0.85rem; + width: 0.85rem; + fill: $headings-color; + } + &:hover svg { + fill: $headings-color; + } + &:focus { + outline: 0; + } + } + + &.Toastify__toast--default { + .toast-title { + color: $primary; + } + } + + &.Toastify__toast--error { + .toast-title { + color: $danger; + } + .Toastify__progress-bar { + background-color: $danger; + } + } + + @each $color_name, $color in $colors { + @each $color_type, $color_value in $color { + @if $color_type== 'base' { + &.Toastify__toast--#{$color_name} { + .toast-title { + color: $color_value; + } + .Toastify__progress-bar { + background-color: $color_value; + } + } + } + } + } +} + +// Progress Bar +.Toastify__progress-bar { + bottom: 0; + border-top-right-radius: $border-radius; + border-bottom-right-radius: $border-radius; + &.Toastify__progress-bar--default { + background: $primary; + } +} + +// Dark Layout +.dark-layout { + .Toastify__toast { + background-color: $theme-dark-card-bg; + box-shadow: 0 2px 20px 0 rgba($black, 0.3); + .Toastify__toast-body, + .Toastify__close-button { + color: $theme-dark-body-color; + } + + .toastify-body { + color: $theme-dark-body-color; + } + + .Toastify__close-button { + svg { + fill: $theme-dark-body-color; + } + &:hover svg { + fill: $headings-color; + } + } + } +} + +// Media Queries +@media (max-width: 480px) { + .Toastify__toast-container { + .Toastify__toast + .Toastify__toast { + margin-top: 1rem; + } + } +} diff --git a/src/@core/scss/react/pages/page-account-settings.scss b/src/@core/scss/react/pages/page-account-settings.scss new file mode 100644 index 0000000..e5d69e6 --- /dev/null +++ b/src/@core/scss/react/pages/page-account-settings.scss @@ -0,0 +1,44 @@ +// Account Settings +// ======================================================================== + +.account-settings-tab { + box-shadow: none; + .nav-item { + .nav-link.active { + background-color: transparent !important; + transform: translateY(0) !important; + &:after { + left: auto !important; + top: 1.2rem !important; + right: -1.5rem !important; + } + } + } +} + +.account-setting-wrapper { + .account-settings-tab { + .nav-item { + .nav-link { + &.active { + &:after { + top: 100% !important; + left: 0 !important; + } + } + } + } + } +} + +@media (max-width: 576px) { + .account-settings-tab { + .nav-item { + .nav-link.active { + &:after { + display: none; + } + } + } + } +} diff --git a/src/@core/scss/react/pages/page-profile.scss b/src/@core/scss/react/pages/page-profile.scss new file mode 100644 index 0000000..bf57ed5 --- /dev/null +++ b/src/@core/scss/react/pages/page-profile.scss @@ -0,0 +1,24 @@ +// Profile +// ======================================================================= +@import '../../base/bootstrap-extended/include'; +@import '../../base/pages/page-profile'; + +#user-profile { + .profile-load-more { + position: relative; + overflow: hidden; + .ui-loader { + position: unset; + .overlay { + left: 0; + } + .loader { + top: 60%; + } + .spinner-border { + width: 20px; + height: 20px; + } + } + } +} diff --git a/src/@core/scss/react/reactstrap/_carousel.scss b/src/@core/scss/react/reactstrap/_carousel.scss new file mode 100644 index 0000000..d51b3be --- /dev/null +++ b/src/@core/scss/react/reactstrap/_carousel.scss @@ -0,0 +1,11 @@ +// Component App Collapse +// ======================================================================== + +html[dir='rtl'] { + .carousel { + .carousel-control-next-icon, + .carousel-control-prev-icon { + transform: rotate(180deg); + } + } +} diff --git a/src/@core/scss/react/reactstrap/_collapse.scss b/src/@core/scss/react/reactstrap/_collapse.scss new file mode 100644 index 0000000..7215ebe --- /dev/null +++ b/src/@core/scss/react/reactstrap/_collapse.scss @@ -0,0 +1,21 @@ +// Component App Collapse +// ======================================================================== +.app-collapse { + &.card { + .card-header { + padding: 1rem; + } + + svg { + transition: all 300ms linear 0s; + } + .card-header:not(.collapsed) { + svg { + transform: rotate(180deg); + } + } + } + .collapse-title { + max-width: calc(100% - 25px); + } +} diff --git a/src/@core/scss/react/reactstrap/_dropdown.scss b/src/@core/scss/react/reactstrap/_dropdown.scss new file mode 100644 index 0000000..6221b60 --- /dev/null +++ b/src/@core/scss/react/reactstrap/_dropdown.scss @@ -0,0 +1,49 @@ +// Component Dropdown +// ======================================================================== + +// Navbar Dropdowns +.dropdown-notification, +.dropdown-cart { + .dropdown-menu { + left: inherit !important; + } +} + +.dropdown-language { + .country-flag { + height: 18px !important; + width: 18px !important; + } + + .dropdown-menu { + left: auto !important; + } +} + +.dropdown-user { + .dropdown-menu { + left: auto !important; + right: 0; + } +} + +// Global +.dropdown-menu { + .dropdown-item:focus { + outline: 0; + } +} + +// Dropdown Icon +.dropdown-icon-wrapper { + .dropdown-toggle:after { + display: none; + } + .dropdown-menu { + min-width: auto; + .dropdown-item { + padding: 0.5rem 1.1rem; + cursor: pointer; + } + } +} diff --git a/src/@core/scss/react/reactstrap/_index.scss b/src/@core/scss/react/reactstrap/_index.scss new file mode 100644 index 0000000..4f8a7f4 --- /dev/null +++ b/src/@core/scss/react/reactstrap/_index.scss @@ -0,0 +1,9 @@ +@import '../../base/bootstrap-extended/include'; + +@import 'input'; +@import 'toast'; +@import 'switch'; +@import 'dropdown'; +@import 'collapse'; +@import 'carousel'; +@import 'pagination'; diff --git a/src/@core/scss/react/reactstrap/_input.scss b/src/@core/scss/react/reactstrap/_input.scss new file mode 100644 index 0000000..b6370f6 --- /dev/null +++ b/src/@core/scss/react/reactstrap/_input.scss @@ -0,0 +1,23 @@ +// Component Input +// ======================================================================== + +.form-control[readonly] { + opacity: 0.5; +} + +select.form-control[multiple] { + background-image: none !important; +} + +.input-group { + .form-control.is-invalid ~ .input-group-append .input-group-text { + border-color: $danger; + } + &.is-invalid { + .form-control, + .input-group-append .input-group-text, + .input-group-prepend .input-group-text { + border-color: $danger !important; + } + } +} diff --git a/src/@core/scss/react/reactstrap/_pagination.scss b/src/@core/scss/react/reactstrap/_pagination.scss new file mode 100644 index 0000000..b1038cd --- /dev/null +++ b/src/@core/scss/react/reactstrap/_pagination.scss @@ -0,0 +1,39 @@ +// Component Pagination +// ======================================================================== +.pagination { + &.react-paginate { + .page-item.prev, + .page-item.next { + a.page-link:before, + a.page-link:after { + height: 16.5px; + margin-top: 1px; + } + } + &.pagination-sm { + .page-item.prev, + .page-item.next { + a.page-link:before, + a.page-link:after { + height: 15px; + } + } + } + &.pagination-lg { + .page-item.prev, + .page-item.next { + a.page-link:before, + a.page-link:after { + height: 19px; + } + } + } + } + + &.no-navigation { + li:first-of-type, + li:last-of-type { + display: none; + } + } +} diff --git a/src/@core/scss/react/reactstrap/_switch.scss b/src/@core/scss/react/reactstrap/_switch.scss new file mode 100644 index 0000000..4b87161 --- /dev/null +++ b/src/@core/scss/react/reactstrap/_switch.scss @@ -0,0 +1,6 @@ +// Switch +// ======================================================================= +[dir] .custom-control-input:checked ~ .custom-control-label::before { + border-color: $primary; + background-color: $primary; +} diff --git a/src/@core/scss/react/reactstrap/_toast.scss b/src/@core/scss/react/reactstrap/_toast.scss new file mode 100644 index 0000000..35046cb --- /dev/null +++ b/src/@core/scss/react/reactstrap/_toast.scss @@ -0,0 +1,17 @@ +// Component Toast +// ======================================================================== + +.dark-layout { + .card { + .toast { + background-color: rgba($color: $theme-dark-body-bg, $alpha: 0.85); + .toast-header { + background-color: $theme-dark-body-bg; + + .close { + color: $theme-dark-body-color; + } + } + } + } +} diff --git a/src/@fake-db/apps/calendar.js b/src/@fake-db/apps/calendar.js new file mode 100644 index 0000000..0de0e47 --- /dev/null +++ b/src/@fake-db/apps/calendar.js @@ -0,0 +1,184 @@ +/*eslint-disable */ +import mock from '../mock' + +const date = new Date() +const nextDay = new Date(new Date().getTime() + 24 * 60 * 60 * 1000) + +// prettier-ignore +const nextMonth = date.getMonth() === 11 ? new Date(date.getFullYear() + 1, 0, 1) : new Date(date.getFullYear(), date.getMonth() + 1, 1) +// prettier-ignore +const prevMonth = date.getMonth() === 11 ? new Date(date.getFullYear() - 1, 0, 1) : new Date(date.getFullYear(), date.getMonth() - 1, 1) + +const data = { + events: [ + { + id: 1, + url: '', + title: 'Design Review', + start: date, + end: nextDay, + allDay: false, + extendedProps: { + calendar: 'Business' + } + }, + { + id: 2, + url: '', + title: 'Meeting With Client', + start: new Date(date.getFullYear(), date.getMonth() + 1, -11), + end: new Date(date.getFullYear(), date.getMonth() + 1, -10), + allDay: true, + extendedProps: { + calendar: 'Business' + } + }, + { + id: 3, + url: '', + title: 'Family Trip', + allDay: true, + start: new Date(date.getFullYear(), date.getMonth() + 1, -9), + end: new Date(date.getFullYear(), date.getMonth() + 1, -7), + extendedProps: { + calendar: 'Holiday' + } + }, + { + id: 4, + url: '', + title: "Doctor's Appointment", + start: new Date(date.getFullYear(), date.getMonth() + 1, -11), + end: new Date(date.getFullYear(), date.getMonth() + 1, -10), + allDay: true, + extendedProps: { + calendar: 'Personal' + } + }, + { + id: 5, + url: '', + title: 'Dart Game?', + start: new Date(date.getFullYear(), date.getMonth() + 1, -13), + end: new Date(date.getFullYear(), date.getMonth() + 1, -12), + allDay: true, + extendedProps: { + calendar: 'ETC' + } + }, + { + id: 6, + url: '', + title: 'Meditation', + start: new Date(date.getFullYear(), date.getMonth() + 1, -13), + end: new Date(date.getFullYear(), date.getMonth() + 1, -12), + allDay: true, + extendedProps: { + calendar: 'Personal' + } + }, + { + id: 7, + url: '', + title: 'Dinner', + start: new Date(date.getFullYear(), date.getMonth() + 1, -13), + end: new Date(date.getFullYear(), date.getMonth() + 1, -12), + allDay: true, + extendedProps: { + calendar: 'Family' + } + }, + { + id: 8, + url: '', + title: 'Product Review', + start: new Date(date.getFullYear(), date.getMonth() + 1, -13), + end: new Date(date.getFullYear(), date.getMonth() + 1, -12), + allDay: true, + extendedProps: { + calendar: 'Business' + } + }, + { + id: 9, + url: '', + title: 'Monthly Meeting', + start: nextMonth, + end: nextMonth, + allDay: true, + extendedProps: { + calendar: 'Business' + } + }, + { + id: 10, + url: '', + title: 'Monthly Checkup', + start: prevMonth, + end: prevMonth, + allDay: true, + extendedProps: { + calendar: 'Personal' + } + } + ] +} + +// ------------------------------------------------ +// GET: Return calendar events +// ------------------------------------------------ +mock.onGet('/apps/calendar/events').reply(config => { + // Get requested calendars as Array + const calendars = config.calendars + + return [200, data.events.filter(event => calendars.includes(event.extendedProps.calendar))] +}) + +// ------------------------------------------------ +// POST: Add new event +// ------------------------------------------------ +mock.onPost('/apps/calendar/add-event').reply(config => { + // Get event from post data + const { event } = JSON.parse(config.data) + + const { length } = data.events + let lastIndex = 0 + if (length) { + lastIndex = data.events[length - 1].id + } + event.id = lastIndex + 1 + + data.events.push(event) + + return [201, { event }] +}) + +// ------------------------------------------------ +// POST: Update Event +// ------------------------------------------------ +mock.onPost('/apps/calendar/update-event').reply(config => { + const { event: eventData } = JSON.parse(config.data) + + // Convert Id to number + eventData.id = Number(eventData.id) + + const event = data.events.find(ev => ev.id === Number(eventData.id)) + Object.assign(event, eventData) + + return [200, { event }] +}) + +// ------------------------------------------------ +// DELETE: Remove Event +// ------------------------------------------------ +mock.onDelete('/apps/calendar/remove-event').reply(config => { + // Get event id from URL + let { id } = config + + // Convert Id to number + const eventId = Number(id) + + const eventIndex = data.events.findIndex(ev => ev.id === eventId) + data.events.splice(eventIndex, 1) + return [200] +}) diff --git a/src/@fake-db/apps/chat.js b/src/@fake-db/apps/chat.js new file mode 100644 index 0000000..db718e6 --- /dev/null +++ b/src/@fake-db/apps/chat.js @@ -0,0 +1,286 @@ +import mock from '../mock' +/*eslint-disable */ +const previousDay = new Date(new Date().getTime() - 24 * 60 * 60 * 1000) +const dayBeforePreviousDay = new Date(new Date().getTime() - 24 * 60 * 60 * 1000 * 2) + +const data = { + profileUser: { + id: 11, + avatar: require('@src/assets/images/portrait/small/avatar-s-8.jpg').default, + fullName: 'John Doe', + role: 'admin', + about: + 'Dessert chocolate cake lemon drops jujubes. Biscuit cupcake ice cream bear claw brownie brownie marshmallow.', + status: 'online', + settings: { + isTwoStepAuthVerificationEnabled: true, + isNotificationsOn: false + } + }, + contacts: [ + { + id: 1, + fullName: 'Felecia Rower', + role: 'Frontend Developer', + about: 'Cake pie jelly jelly beans. Marzipan lemon drops halvah cake. Pudding cookie lemon drops icing', + + avatar: require('@src/assets/images/portrait/small/avatar-s-2.jpg').default, + status: 'offline' + }, + { + id: 2, + fullName: 'Adalberto Granzin', + role: 'UI/UX Designer', + about: + 'Toffee caramels jelly-o tart gummi bears cake I love ice cream lollipop. Sweet liquorice croissant candy danish dessert icing. Cake macaroon gingerbread toffee sweet.', + avatar: require('@src/assets/images/portrait/small/avatar-s-1.jpg').default, + status: 'busy' + }, + { + id: 3, + fullName: 'Joaquina Weisenborn', + role: 'Town planner', + about: + 'Soufflé soufflé caramels sweet roll. Jelly lollipop sesame snaps bear claw jelly beans sugar plum sugar plum.', + avatar: require('@src/assets/images/portrait/small/avatar-s-3.jpg').default, + status: 'busy' + }, + { + id: 4, + fullName: 'Verla Morgano', + role: 'Data scientist', + about: + 'Chupa chups candy canes chocolate bar marshmallow liquorice muffin. Lemon drops oat cake tart liquorice tart cookie. Jelly-o cookie tootsie roll halvah.', + avatar: require('@src/assets/images/portrait/small/avatar-s-4.jpg').default, + status: 'online' + }, + { + id: 5, + fullName: 'Margot Henschke', + role: 'Dietitian', + about: 'Cake pie jelly jelly beans. Marzipan lemon drops halvah cake. Pudding cookie lemon drops icing', + avatar: require('@src/assets/images/portrait/small/avatar-s-5.jpg').default, + status: 'busy' + }, + { + id: 6, + fullName: 'Sal Piggee', + role: 'Marketing executive', + about: + 'Toffee caramels jelly-o tart gummi bears cake I love ice cream lollipop. Sweet liquorice croissant candy danish dessert icing. Cake macaroon gingerbread toffee sweet.', + avatar: require('@src/assets/images/portrait/small/avatar-s-6.jpg').default, + status: 'online' + }, + { + id: 7, + fullName: 'Miguel Guelff', + role: 'Special educational needs teacher', + about: + 'Biscuit powder oat cake donut brownie ice cream I love soufflé. I love tootsie roll I love powder tootsie roll.', + avatar: require('@src/assets/images/portrait/small/avatar-s-7.jpg').default, + status: 'online' + }, + { + id: 8, + fullName: 'Mauro Elenbaas', + role: 'Advertising copywriter', + about: + 'Bear claw ice cream lollipop gingerbread carrot cake. Brownie gummi bears chocolate muffin croissant jelly I love marzipan wafer.', + avatar: require('@src/assets/images/portrait/small/avatar-s-8.jpg').default, + status: 'away' + }, + { + id: 9, + fullName: 'Bridgett Omohundro', + role: 'Designer, television/film set', + about: + 'Gummies gummi bears I love candy icing apple pie I love marzipan bear claw. I love tart biscuit I love candy canes pudding chupa chups liquorice croissant.', + avatar: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + status: 'offline' + }, + { + id: 10, + fullName: 'Zenia Jacobs', + role: 'Building surveyor', + about: 'Cake pie jelly jelly beans. Marzipan lemon drops halvah cake. Pudding cookie lemon drops icing', + avatar: require('@src/assets/images/portrait/small/avatar-s-10.jpg').default, + status: 'away' + } + ], + chats: [ + { + id: 1, + userId: 1, + unseenMsgs: 0, + chat: [ + { + message: 'Hi', + time: 'Mon Dec 10 2018 07:45:00 GMT+0000 (GMT)', + senderId: 11 + }, + { + message: 'Hello. How can I help You?', + time: 'Mon Dec 11 2018 07:45:15 GMT+0000 (GMT)', + senderId: 2 + }, + { + message: 'Can I get details of my last transaction I made last month?', + time: 'Mon Dec 11 2018 07:46:10 GMT+0000 (GMT)', + senderId: 11 + }, + { + message: 'We need to check if we can provide you such information.', + time: 'Mon Dec 11 2018 07:45:15 GMT+0000 (GMT)', + senderId: 2 + }, + { + message: 'I will inform you as I get update on this.', + time: 'Mon Dec 11 2018 07:46:15 GMT+0000 (GMT)', + senderId: 2 + }, + { + message: 'If it takes long you can mail me at my mail address.', + time: dayBeforePreviousDay, + senderId: 11 + } + ] + }, + { + id: 2, + userId: 2, + unseenMsgs: 1, + chat: [ + { + message: "How can we help? We're here for you!", + time: 'Mon Dec 10 2018 07:45:00 GMT+0000 (GMT)', + senderId: 11 + }, + { + message: 'Hey John, I am looking for the best admin template. Could you please help me to find it out?', + time: 'Mon Dec 10 2018 07:45:23 GMT+0000 (GMT)', + senderId: 1 + }, + { + message: 'It should be Bootstrap 4 compatible.', + time: 'Mon Dec 10 2018 07:45:55 GMT+0000 (GMT)', + senderId: 1 + }, + { + message: 'Absolutely!', + time: 'Mon Dec 10 2018 07:46:00 GMT+0000 (GMT)', + senderId: 11 + }, + { + message: 'Modern admin is the responsive bootstrap 4 admin template.!', + time: 'Mon Dec 10 2018 07:46:05 GMT+0000 (GMT)', + senderId: 11 + }, + { + message: 'Looks clean and fresh UI.', + time: 'Mon Dec 10 2018 07:46:23 GMT+0000 (GMT)', + senderId: 1 + }, + { + message: "It's perfect for my next project.", + time: 'Mon Dec 10 2018 07:46:33 GMT+0000 (GMT)', + senderId: 1 + }, + { + message: 'How can I purchase it?', + time: 'Mon Dec 10 2018 07:46:43 GMT+0000 (GMT)', + senderId: 1 + }, + { + message: 'Thanks, from ThemeForest.', + time: 'Mon Dec 10 2018 07:46:53 GMT+0000 (GMT)', + senderId: 11 + }, + { + message: 'I will purchase it for sure. 👍', + time: previousDay, + senderId: 1 + } + ] + } + ] +} +/*eslint-enable */ +// ------------------------------------------------ +// GET: Return Chats Contacts and Contacts +// ------------------------------------------------ +mock.onGet('/apps/chat/chats-and-contacts').reply(() => { + const chatsContacts = data.chats.map(chat => { + const contact = data.contacts.find(c => c.id === chat.userId) + contact.chat = { id: chat.id, unseenMsgs: chat.unseenMsgs, lastMessage: chat.chat[chat.chat.length - 1] } + return contact + }) + const profileUserData = { + id: data.profileUser.id, + avatar: data.profileUser.avatar, + fullName: data.profileUser.fullName, + status: data.profileUser.status + } + return [200, { chatsContacts, contacts: data.contacts, profileUser: profileUserData }] +}) + +// ------------------------------------------------ +// GET: Return User Profile +// ------------------------------------------------ +mock.onGet('/apps/chat/users/profile-user').reply(() => [200, data.profileUser]) + +// ------------------------------------------------ +// GET: Return Single Chat +// ------------------------------------------------ +mock.onGet('/apps/chat/get-chat').reply(config => { + // Get event id from URL + + let userId = config.id + + // Convert Id to number + userId = Number(userId) + + const chat = data.chats.find(c => c.id === userId) + if (chat) chat.unseenMsgs = 0 + const contact = data.contacts.find(c => c.id === userId) + if (contact.chat) contact.chat.unseenMsgs = 0 + return [200, { chat, contact }] +}) + +// ------------------------------------------------ +// POST: Add new chat message +// ------------------------------------------------ +mock.onPost('/apps/chat/send-msg').reply(config => { + // Get event from post data + const { obj } = JSON.parse(config.data) + + let activeChat = data.chats.find(chat => chat.userId === obj.contact.id) + + const newMessageData = { + message: obj.message, + time: new Date(), + senderId: 11 + } + // If there's new chat for user create one + let isNewChat = false + if (activeChat === undefined) { + isNewChat = true + + const { length } = data.chats + // const lastId = data.chats[length - 1].id + + data.chats.push({ + id: obj.contact.id, + userId: obj.contact.id, + unseenMsgs: 0, + chat: [newMessageData] + }) + activeChat = data.chats[data.chats.length - 1] + } else { + activeChat.chat.push(newMessageData) + } + + const response = { newMessageData, id: obj.contact.id } + if (isNewChat) response.chat = activeChat + + return [201, { response }] +}) diff --git a/src/@fake-db/apps/eCommerce.js b/src/@fake-db/apps/eCommerce.js new file mode 100644 index 0000000..68102f0 --- /dev/null +++ b/src/@fake-db/apps/eCommerce.js @@ -0,0 +1,542 @@ +import mock from '../mock' +/* eslint-disable */ +import { paginateArray, sortCompare, randomDate, getRandomInt } from '../utils' + +const nextDay = new Date(new Date().getTime() + 24 * 60 * 60 * 1000) +const nextWeek = new Date(nextDay.getTime() + 7 * 24 * 60 * 60 * 1000) + +const data = { + products: [ + { + id: 1, + name: 'VicTsing Wireless Mouse,', + slug: '3-year-unlimited-cloud-storage-service-activation-card-other-1', + description: + 'After thousands of samples of palm data, we designed this ergonomic mouse. The laptop mouse has a streamlined arc and thumb rest to help reduce the stress caused by prolonged use of the laptop mouse.', + brand: 'VicTsing', + price: 10.99, + image: require('@src/assets/images/pages/eCommerce/27.png').default, + hasFreeShipping: true, + rating: 2 + }, + { + id: 2, + name: 'Bose Frames Tenor - Rectangular Polarized, Bluetooth Audio Sunglasses', + slug: '360fly-panoramic-360-hd-video-camera-black-2', + description: + 'Redesigned for luxury — Thoughtfully refined and strikingly elegant, the latest Bose sunglasses blend enhanced features and designs for an elevated way to listen', + brand: 'Bose', + price: 249.0, + image: require('@src/assets/images/pages/eCommerce/26.png').default, + hasFreeShipping: false, + rating: 5 + }, + { + id: 3, + name: 'Willful Smart Watch for Men Women 2020,', + slug: '3-dr-backpack-for-solo-black-3', + description: + 'Are you looking for a smart watch, which can not only easily keep tracking of your steps, calories, heart rate and sleep quality, but also keep you informed of incoming calls.', + brand: 'Willful', + price: 29.99, + image: require('@src/assets/images/pages/eCommerce/25.png').default, + hasFreeShipping: false, + rating: 5 + }, + { + id: 4, + name: 'Ronyes Unisex College Bag Bookbags for Women', + slug: '3-dr-propellers-for-3-dr-solo-drones-2-pack-black-4', + description: + 'Made of high quality water-resistant material; padded and adjustable shoulder straps; external USB with built-in charging cable offers a convenient charging', + brand: 'Ronyes', + price: 23.99, + image: require('@src/assets/images/pages/eCommerce/24.png').default, + hasFreeShipping: false, + rating: 2 + }, + { + id: 5, + name: 'Toshiba Canvio Advance 2TB Portable External Hard Drive', + slug: '3-dr-solo-gimbal-black-5', + description: 'Up to 3TB of storage capacity to store your growing files and content', + brand: 'Toshiba', + price: 69.99, + image: require('@src/assets/images/pages/eCommerce/23.png').default, + hasFreeShipping: false, + rating: 2 + }, + { + id: 6, + name: 'Tile Pro - High Performance Bluetooth Tracker', + slug: '3-dr-solo-smart-rechargeable-battery-black-6', + description: + 'FIND KEYS, BAGS & MORE -- Pro is our high-performance finder ideal for keys, backpacks, luggage or any other items you want to keep track of. The easy-to-use finder and free app work with iOS and Android.', + brand: 'Tile', + price: 29.99, + image: require('@src/assets/images/pages/eCommerce/22.png').default, + hasFreeShipping: false, + rating: 4 + }, + { + id: 7, + name: 'Bugani M90 Portable Bluetooth Speaker', + slug: '3-m-eureka-rr-pet-micro-allergen-vacuum-bag-for-select-eureka-vacuums-3-pack-7', + description: + 'Bluetooth Speakers-The M90 Bluetooth speaker uses the latest Bluetooth 5.0 technology and the latest Bluetooth ATS chip, Connecting over Bluetooth in seconds to iPhone, iPad, Smart-phones, Tablets, Windows, and other Bluetooth devices.', + brand: 'Bugani', + price: 56.0, + image: require('@src/assets/images/pages/eCommerce/21.png').default, + hasFreeShipping: false, + rating: 3 + }, + { + id: 8, + name: 'PlayStation 4 Console', + slug: '3-m-filtrete-bissell-replacement-belt-8', + description: + 'All the greatest, games, TV, music and more. Connect with your friends to broadcast and celebrate your epic moments at the press of the Share button to Twitch, YouTube, Facebook and Twitter.', + brand: 'Sony', + price: 339.95, + image: require('@src/assets/images/pages/eCommerce/20.png').default, + hasFreeShipping: false, + rating: 1 + }, + { + id: 9, + name: 'Giotto 32oz Leakproof BPA Free Drinking Water', + slug: '3-m-filtrete-devil-tattoo-vacuum-bag-3-pack-9', + description: + 'With unique inspirational quote and time markers on it,this water bottle is great for measuring your daily intake of water,reminding you stay hydrated and drink enough water throughout the day.A must have for any fitness goals including weight loss,appetite control and overall health.', + brand: '3M', + price: 16.99, + image: require('@src/assets/images/pages/eCommerce/19.png').default, + hasFreeShipping: false, + rating: 5 + }, + { + id: 10, + name: 'Oculus Quest All-in-one VR', + slug: '3-m-filtrete-eureka-r-replacement-belt-for-select-eureka-vacuums-10', + description: + 'All-in-one VR: No PC. No wires. No limits. Oculus quest is an all-in-one gaming system built for virtual reality. Now you can play almost anywhere with just a VR headset and controllers. Oculus touch controllers: arm yourself with the award-winning Oculus touch controllers. Your slashes, throws and grab appear in VR with intuitive, realistic Precision, transporting your hands and gestures right into the game', + brand: 'Oculus', + price: 645.0, + image: require('@src/assets/images/pages/eCommerce/18.png').default, + hasFreeShipping: false, + rating: 1 + }, + { + id: 11, + name: 'Handbags for Women Large Designer bag', + slug: '3-m-filtrete-eureka-u-replacement-belt-11', + description: + 'Classic Hobo Purse: Top zipper closure, with 2 side zipper pockets design and elegant tassels decoration, fashionable and practical handbags for women, perfect for shopping, dating, travel and business', + brand: 'Hobo', + price: 39.99, + image: require('@src/assets/images/pages/eCommerce/17.png').default, + hasFreeShipping: false, + rating: 3 + }, + { + id: 12, + name: 'Adidas Mens Tech Response Shoes', + slug: '3-m-filtrete-hoover-a-micro-allergen-vacuum-bag-12', + description: + 'Comfort + performance. Designed with materials that are durable, lightweight and extremely comfortable. Core performance delivers the perfect mix of fit, style and all-around performance.', + brand: 'Adidas', + price: 54.59, + image: require('@src/assets/images/pages/eCommerce/16.png').default, + hasFreeShipping: false, + rating: 5 + }, + { + id: 13, + name: 'Laptop Bag', + slug: '3-m-filtrete-hoover-w2-micro-allergen-vacuum-bag-3-pack-13', + description: + 'TSA FRIENDLY- A separate DIGI SMART compartment can hold 15.6 inch Laptop as well as 15 inch, 14 inch Macbook, 12.9 inch iPad, and tech accessories like charger for quick TSA checkpoint when traveling', + brand: 'TAS', + price: 29.99, + image: require('@src/assets/images/pages/eCommerce/15.png').default, + hasFreeShipping: false, + rating: 5 + }, + { + id: 14, + name: 'Wireless Charger 5W Max', + slug: '3-m-filtrete-hoover-windtunnel-replacement-belt-14', + description: + 'Charge with case: transmits charging power directly through protective cases. Rubber/plastic/TPU cases under 5 mm thickness . Do not use any magnetic and metal attachments or cards, or it will prevent charging.', + brand: '3M', + price: 10.83, + image: require('@src/assets/images/pages/eCommerce/14.png').default, + hasFreeShipping: false, + rating: 3 + }, + { + id: 15, + name: 'Vankyo leisure 3 mini projector', + slug: '3-m-filtrete-vacuum-belt-for-select-hoover-t-series-upright-vacuums-15', + description: + 'SUPERIOR VIEWING EXPERIENCE: Supporting 1920x1080 resolution, VANKYO Leisure 3 projector is powered by MStar Advanced Color Engine, which is ideal for home entertainment. 2020 upgraded LED lighting provides a superior viewing experience for you.', + brand: 'Vankyo Store', + price: 99.99, + image: require('@src/assets/images/pages/eCommerce/13.png').default, + hasFreeShipping: false, + rating: 2 + }, + { + id: 16, + name: 'New Apple iPad Pro', + slug: '3-m-hoover-y-z-pet-micro-allergen-vacuum-bag-for-select-hoover-vacuums-3-pack-16', + description: + 'Up to 10 hours of surfing the web on Wi‑Fi, watching video, or listening to music. Up to 9 hours of surfing the web using cellular data network, Compatible with Smart Keyboard Folio and Bluetooth keyboards', + brand: 'Apple', + price: 799.99, + image: require('@src/assets/images/pages/eCommerce/12.png').default, + hasFreeShipping: false, + rating: 3 + }, + { + id: 17, + name: 'Nike Air Max', + slug: '72-9301-speaker-wire-harness-adapter-for-most-plymouth-dodge-and-mitsubishi-vehicles-multi-17', + description: + 'With a bold application of colorblocking inspired by modern art styles, the Nike Air Max 270 React sneaker is constructed with layers of lightweight material to achieve its artful look and comfortable feel.', + brand: 'Nike', + price: 98.95, + image: require('@src/assets/images/pages/eCommerce/11.png').default, + hasFreeShipping: false, + rating: 1 + }, + { + id: 18, + name: 'Logitech K380 Wireless Keyboard', + slug: 'acer-11-6-chromebook-intel-celeron-2-gb-memory-16-gb-e-mmc-flash-memory-moonstone-white-18', + description: + 'Logitech K380 Bluetooth Wireless Keyboard gives you the comfort and convenience of desktop typing on your smartphone, and tablet. It is a wireless keyboard that connects to all Bluetooth wireless devices that support external keyboards. Take this compact, lightweight, Bluetooth keyboard anywhere in your home. Type wherever you like, on any compatible computer, phone or tablet.', + brand: 'Logitech', + price: 81.99, + image: require('@src/assets/images/pages/eCommerce/10.png').default, + hasFreeShipping: false, + rating: 4 + }, + { + id: 19, + name: 'OnePlus 7 Pro ', + slug: 'one-plus-7-pro-19', + brand: 'Philips', + price: 14.99, + image: require('@src/assets/images/pages/eCommerce/9.png').default, + hasFreeShipping: false, + rating: 4, + description: `The OnePlus 7 Pro features a brand new design, with a glass back and front and curved sides. The phone feels + very premium but’s it’s also very heavy. The Nebula Blue variant looks slick but it’s quite slippery, which + makes single-handed use a real challenge. It has a massive 6.67-inch ‘Fluid AMOLED’ display with a QHD+ + resolution, 90Hz refresh rate and support for HDR 10+ content. The display produces vivid colours, deep blacks + and has good viewing angles.` + }, + { + id: 20, + name: 'Sony 4K Ultra HD LED TV ', + slug: 'sony-4-k-ultra-hd-led-tv-20', + brand: 'Apple', + price: 7999.99, + image: require('@src/assets/images/pages/eCommerce/8.png').default, + hasFreeShipping: false, + rating: 5, + description: `Sony 4K Ultra HD LED TV has 4K HDR Support. The TV provides clear visuals and provides distinct sound quality + and an immersive experience. This TV has Yes HDMI ports & Yes USB ports. Connectivity options included are HDMI. + You can connect various gadgets such as your laptop using the HDMI port. The TV comes with a 1 Year warranty.` + }, + { + id: 21, + name: 'Google - Google Home - White/Slate fabric', + slug: 'google-google-home-white-slate-fabric-21', + brand: 'Google', + price: 129.29, + image: require('@src/assets/images/pages/eCommerce/7.png').default, + hasFreeShipping: true, + rating: 4, + description: `Simplify your everyday life with the Google Home, a voice-activated speaker powered by the Google Assistant. Use + voice commands to enjoy music, get answers from Google and manage everyday tasks. Google Home is compatible with + Android and iOS operating systems, and can control compatible smart devices such as Chromecast or Nest.` + }, + { + id: 22, + name: 'Switch Pro Controller', + slug: 'switch-pro-controller-22', + brand: 'Sharp', + price: 429.99, + image: require('@src/assets/images/pages/eCommerce/6.png').default, + hasFreeShipping: false, + rating: 3, + description: `The Nintendo Switch Pro Controller is one of the priciest "baseline" controllers in the current console + generation, but it's also sturdy, feels good to play with, has an excellent direction pad, and features + impressive motion sensors and vibration systems. On top of all of that, it uses Bluetooth, so you don't need an + adapter to use it with your PC.` + }, + { + id: 23, + name: 'Apple - MacBook Air® (Latest Model) - 13.3" Display - Silver', + slug: 'apple-mac-book-air-latest-model-13-3-display-silver-23', + brand: 'Apple', + price: 999.99, + image: require('@src/assets/images/pages/eCommerce/5.png').default, + hasFreeShipping: false, + rating: 4, + description: `MacBook Air is a thin, lightweight laptop from Apple. MacBook Air features up to 8GB of memory, a + fifth-generation Intel Core processor, Thunderbolt 2, great built-in apps, and all-day battery life.1 Its thin, + light, and durable enough to take everywhere you go-and powerful enough to do everything once you get there, + better.` + }, + { + id: 24, + name: 'OneOdio A71 Wired Headphones', + slug: 'one-odio-a71-wired-headphones-24', + brand: 'OneOdio', + price: 49.99, + image: require('@src/assets/images/pages/eCommerce/4.png').default, + hasFreeShipping: true, + rating: 3, + description: `Omnidirectional detachable boom mic upgrades the headphones into a professional headset for gaming, business, + podcasting and taking calls on the go. Better pick up your voice. Control most electric devices through voice + activation, or schedule a ride with Uber and order a pizza. OneOdio A71 Wired Headphones voice-controlled device + turns any home into a smart device on a smartphone or tablet.` + }, + { + id: 25, + name: 'Apple iMac 27-inch', + slug: 'apple-i-mac-27-inch-25', + brand: 'Apple', + price: 999.99, + image: require('@src/assets/images/pages/eCommerce/3.png').default, + hasFreeShipping: true, + rating: 4, + description: `The all-in-one for all. If you can dream it, you can do it on iMac. It’s beautifully & incredibly intuitive and + packed with tools that let you take any idea to the next level. And the new 27-inch model elevates the + experience in way, with faster processors and graphics, expanded memory and storage, enhanced audio and video + capabilities, and an even more stunning Retina 5K display. It’s the desktop that does it all — better and faster + than ever.` + }, + { + id: 26, + name: 'Apple iPhone 11 (64GB, Black)', + slug: 'apple-i-phone-11-64-gb-black-26', + brand: 'Apple', + price: 669.99, + image: require('@src/assets/images/pages/eCommerce/2.png').default, + hasFreeShipping: true, + rating: 5, + description: `The Apple iPhone 11 is a great smartphone, which was loaded with a lot of quality features. It comes with a + waterproof and dustproof body which is the key attraction of the device. The excellent set of cameras offer + excellent images as well as capable of recording crisp videos. However, expandable storage and a fingerprint + scanner would have made it a perfect option to go for around this price range.` + }, + { + id: 27, + name: 'Apple Watch Series 5', + slug: 'apple-watch-series-5-27', + brand: 'Apple', + price: 339.99, + image: require('@src/assets/images/pages/eCommerce/1.png').default, + hasFreeShipping: true, + rating: 4, + description: `On Retina display that never sleeps, so it’s easy to see the time and other important information, without + raising or tapping the display. New location features, from a built-in compass to current elevation, help users + better navigate their day, while international emergency calling1 allows customers to call emergency services + directly from Apple Watch in over 150 countries, even without iPhone nearby. Apple Watch Series 5 is available + in a wider range of materials, including aluminium, stainless steel, ceramic and an all-new titanium.` + } + ], + userWishlist: [ + { id: 1, productId: 26 }, + { id: 2, productId: 23 } + ], + userCart: [ + { id: 1, productId: 27, qty: 1 }, + { id: 2, productId: 21, qty: 1 }, + { id: 3, productId: 26, qty: 1 }, + { id: 4, productId: 25, qty: 1 }, + { id: 5, productId: 23, qty: 1 } + ] +} +/* eslint-enable */ + +// ------------------------------------------------ +// GET: Return products +// ------------------------------------------------ +mock.onGet('/apps/ecommerce/products').reply(config => { + // eslint-disable-next-line object-curly-newline + const { q = '', sortBy = 'featured', perPage = 9, page = 1 } = config.params + + const queryLowered = q.toLowerCase() + + const filteredData = data.products.filter(product => product.name.toLowerCase().includes(queryLowered)) + + let sortDesc = false + const sortByKey = (() => { + if (sortBy === 'price-desc') { + sortDesc = true + return 'price' + } + if (sortBy === 'price-asc') { + return 'price' + } + sortDesc = true + return 'id' + })() + + const sortedData = filteredData.sort(sortCompare(sortByKey)) + if (sortDesc) sortedData.reverse() + + const paginatedData = JSON.parse(JSON.stringify(paginateArray(sortedData, perPage, page))) + + paginatedData.forEach(product => { + /* eslint-disable no-param-reassign */ + product.isInWishlist = data.userWishlist.findIndex(p => p.productId === product.id) > -1 + product.isInCart = data.userCart.findIndex(p => p.productId === product.id) > -1 + /* eslint-enable */ + }) + + return [ + 200, + { + products: paginatedData, + total: filteredData.length, + userWishlist: data.userWishlist, + userCart: data.userCart + } + ] +}) + +// ------------------------------------------------ +// GET: Return Single Product +// ------------------------------------------------ +mock.onGet(/\/apps\/ecommerce\/products\/\d+/).reply(config => { + // Get product id from URL + let productId = config.url.substring(config.url.lastIndexOf('/') + 1) + + // Convert Id to number + productId = Number(productId) + + const productIndex = data.products.findIndex(p => p.id === productId) + const product = data.products[productIndex] + + if (product) { + // Add data of wishlist and cart + product.isInWishlist = data.userWishlist.findIndex(p => p.productId === product.id) > -1 + product.isInCart = data.userCart.findIndex(p => p.productId === product.id) > -1 + + // * Add Dummy data for details page + product.colorOptions = ['primary', 'success', 'warning', 'danger', 'info'] + + return [200, { product }] + } + return [404] +}) + +// ------------------------------------------------ +// GET: Return Wishlist Products +// ------------------------------------------------ +mock.onGet('/apps/ecommerce/wishlist').reply(() => { + const products = data.userWishlist.map(wishlistProduct => { + const product = data.products.find(p => p.id === wishlistProduct.productId) + product.isInCart = data.userCart.findIndex(p => p.productId === wishlistProduct.productId) > -1 + return product + }) + + return [200, { products }] +}) + +// ------------------------------------------------ +// GET: Return Cart Products +// ------------------------------------------------ +mock.onGet('/apps/ecommerce/cart').reply(() => { + const products = data.userCart.map(cartProduct => { + const product = data.products.find(p => p.id === cartProduct.productId) + + // Other data + product.isInWishlist = data.userWishlist.findIndex(p => p.productId === cartProduct.productId) > -1 + product.qty = cartProduct.qty + product.shippingDate = randomDate(nextDay, nextWeek) + product.offers = getRandomInt(1, 4) + product.discountPercentage = getRandomInt(3, 20) + + return product + }) + + return [200, { products }] +}) + +// ------------------------------------------------ +// POST: Add Item in user Cart +// ------------------------------------------------ +mock.onPost('/apps/ecommerce/cart').reply(config => { + // Get product from post data + const { productId } = JSON.parse(config.data) + + const { length } = data.userCart + let lastId = 0 + if (length) lastId = data.userCart[length - 1].i + + data.userCart.push({ + id: lastId + 1, + productId, + qty: 1 + }) + + return [201] +}) + +// ------------------------------------------------ +// DELETE: Remove Item from user Cart +// ------------------------------------------------ +mock.onDelete(/\/apps\/ecommerce\/cart\/\d+/).reply(config => { + // Get product id from URL + let productId = config.url.substring(config.url.lastIndexOf('/') + 1) + + // Convert Id to number + productId = Number(productId) + + const productIndex = data.userCart.findIndex(i => i.productId === productId) + if (productIndex > -1) data.userCart.splice(productIndex, 1) + + return [200] +}) + +// ------------------------------------------------ +// POST: Add Item in user Wishlist +// ------------------------------------------------ +mock.onPost('/apps/ecommerce/wishlist').reply(config => { + // Get product from post data + const { productId } = JSON.parse(config.data) + + const { length } = data.userWishlist + let lastId = 0 + if (length) lastId = data.userWishlist[length - 1].i + + data.userWishlist.push({ + id: lastId + 1, + productId: Number(productId) + }) + + return [201] +}) + +// ------------------------------------------------ +// DELETE: Remove Item from user Wishlist +// ------------------------------------------------ +mock.onDelete(/\/apps\/ecommerce\/wishlist\/\d+/).reply(config => { + // Get product id from URL + let productId = config.url.substring(config.url.lastIndexOf('/') + 1) + + // Convert Id to number + productId = Number(productId) + + const productIndex = data.userWishlist.findIndex(i => i.productId === productId) + if (productIndex > -1) data.userWishlist.splice(productIndex, 1) + + return [200] +}) diff --git a/src/@fake-db/apps/email.js b/src/@fake-db/apps/email.js new file mode 100644 index 0000000..a71af30 --- /dev/null +++ b/src/@fake-db/apps/email.js @@ -0,0 +1,852 @@ +import mock from '../mock' + +/* eslint-disable */ +const data = { + emails: [ + { + id: 1, + from: { + email: 'tommys@mail.com', + name: 'Tommy Sicilia', + avatar: require('@src/assets/images/avatars/1.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@mail.com' + } + ], + subject: 'Theme Update', + cc: [], + bcc: [], + message: + '

    Hi John,

    Biscuit lemon drops marshmallow. Cotton candy marshmallow bear claw. Dragée tiramisu cookie cotton candy. Carrot cake sweet roll I love macaroon wafer jelly soufflé I love dragée. Jujubes jelly I love carrot cake topping I love. Sweet candy I love chupa chups dragée. Tart I love gummies. Chocolate bar carrot cake candy wafer candy canes oat cake I love. Sesame snaps icing pudding sweet roll marshmallow. Cupcake brownie sweet roll chocolate bar I love gummies. Biscuit biscuit macaroon sesame snaps macaroon icing I love soufflé caramels. Apple pie candy jelly. I love icing gummi bears jelly-o pie muffin apple pie.

    Marshmallow halvah brownie cake marzipan ice cream marshmallow. I love lollipop toffee croissant liquorice wafer muffin. Lollipop jelly beans caramels lollipop tootsie roll pudding pie macaroon tootsie roll. Oat cake jujubes gummies cake cake powder cupcake soufflé muffin. Chocolate caramels muffin tart. Jelly beans caramels dessert cotton candy liquorice chocolate cake. Chupa chups muffin bear claw I love. Biscuit jujubes soufflé tart caramels pie sugar plum. Croissant jelly beans cake. Ice cream chocolate liquorice dessert cookie chocolate cake. Powder tart sweet roll macaroon croissant. Sweet tootsie roll macaroon gummi bears macaroon. Gingerbread cake tart.

    Regrads,

    Kristeen Sicilia

    ', + attachments: [ + { + fileName: 'log.txt', + thumbnail: require('@src/assets/images/icons/txt.png').default, + url: '', + size: '5mb' + }, + { + fileName: 'performance.xls', + thumbnail: require('@src/assets/images/icons/xls.png').default, + url: '', + size: '10mb' + } + ], + isStarred: false, + labels: ['private'], + time: 'Mon Dec 10 2018 07:46:00 GMT+0000 (GMT)', + replies: [], + folder: 'inbox', + isRead: true + }, + { + id: 2, + from: { + email: 'tressag@mail.com', + name: 'Tressa Gass', + avatar: require('@src/assets/images/avatars/2.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@mail.com' + } + ], + subject: 'Company Report', + cc: ['vrushankbrahmshatriya@mail.com'], + bcc: ['menka@mail.com'], + message: + '

    Hello John,

    Chocolate bar chupa chups sweet roll chocolate muffin macaroon liquorice tart. Carrot cake topping jelly-o cupcake sweet apple pie jelly I love. Chocolate cake I love dessert carrot cake tootsie roll chocolate I love. Tootsie roll pie marzipan sesame snaps. Lemon drops cake I love chocolate I love. Cheesecake croissant croissant cheesecake tootsie roll chocolate cake caramels. I love I love cake jelly. Pastry jelly beans I love I love. I love tootsie roll gummies toffee I love cookie cookie. Brownie tart croissant.

    I love jelly pie. Croissant jelly beans lemon drops oat cake. Cupcake carrot cake ice cream cake cookie jelly-o fruitcake jelly macaroon. Biscuit muffin cupcake chocolate bar lollipop danish.

    Ice cream I love I love lemon drops cotton candy macaroon. Jujubes soufflé oat cake sweet roll bear claw cotton candy cookie toffee tootsie roll. Danish sesame snaps sesame snaps cookie jelly danish chocolate bar.

    Fruitcake pastry bear claw chocolate cookie. Biscuit icing bear claw. Sweet roll liquorice jelly-o muffin toffee I love wafer. Candy pastry halvah. Pie pastry candy canes tart. Fruitcake I love liquorice icing sweet roll macaroon. I love ice cream jelly-o biscuit brownie marzipan topping pudding sesame snaps. Chupa chups brownie brownie cotton candy sugar plum toffee. Tiramisu tootsie roll gingerbread biscuit I love ice cream brownie sesame snaps. I love croissant I love I love brownie pie marshmallow.

    Regrads

    Tressa Gass

    ', + attachments: [], + isStarred: true, + labels: ['company', 'private'], + time: 'Mon Dec 10 2018 07:55:00 GMT+0000 (GMT)', + replies: [], + folder: 'inbox', + isRead: true + }, + { + id: 3, + from: { + email: 'hettiem@mail.com', + name: 'Hettie Mcerlean', + avatar: require('@src/assets/images/avatars/3.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@mail.com' + }, + { + name: 'Pixinvent', + email: 'hello@pixinvent.net' + } + ], + subject: 'Order Delivered', + cc: [], + bcc: [], + message: + '

    Hello John,

    Chocolate bar chupa chups sweet roll chocolate muffin macaroon liquorice tart. Carrot cake topping jelly-o cupcake sweet apple pie jelly I love. Chocolate cake I love dessert carrot cake tootsie roll chocolate I love. Tootsie roll pie marzipan sesame snaps. Lemon drops cake I love chocolate I love. Cheesecake croissant croissant cheesecake tootsie roll chocolate cake caramels. I love I love cake jelly. Pastry jelly beans I love I love. I love tootsie roll gummies toffee I love cookie cookie. Brownie tart croissant.

    I love jelly pie. Croissant jelly beans lemon drops oat cake. Cupcake carrot cake ice cream cake cookie jelly-o fruitcake jelly macaroon. Biscuit muffin cupcake chocolate bar lollipop danish.

    Ice cream I love I love lemon drops cotton candy macaroon. Jujubes soufflé oat cake sweet roll bear claw cotton candy cookie toffee tootsie roll. Danish sesame snaps sesame snaps cookie jelly danish chocolate bar.

    Fruitcake pastry bear claw chocolate cookie. Biscuit icing bear claw. Sweet roll liquorice jelly-o muffin toffee I love wafer. Candy pastry halvah. Pie pastry candy canes tart. Fruitcake I love liquorice icing sweet roll macaroon. I love ice cream jelly-o biscuit brownie marzipan topping pudding sesame snaps. Chupa chups brownie brownie cotton candy sugar plum toffee. Tiramisu tootsie roll gingerbread biscuit I love ice cream brownie sesame snaps. I love croissant I love I love brownie pie marshmallow.

    Regrads

    Hettie Mcerlean

    ', + attachments: [], + isStarred: false, + labels: ['company'], + time: 'Mon Dec 10 2018 08:35:00 GMT+0000 (GMT)', + replies: [], + folder: 'spam', + isRead: true + }, + { + id: 4, + from: { + email: 'louettae@mail.com', + name: 'Louetta Esses', + avatar: require('@src/assets/images/avatars/4.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@mail.com' + } + ], + subject: 'Waterfall Model Update', + cc: [], + bcc: [], + message: + '

    Hi John,

    Biscuit lemon drops marshmallow. Cotton candy marshmallow bear claw. Dragée tiramisu cookie cotton candy. Carrot cake sweet roll I love macaroon wafer jelly soufflé I love dragée. Jujubes jelly I love carrot cake topping I love. Sweet candy I love chupa chups dragée. Tart I love gummies. Chocolate bar carrot cake candy wafer candy canes oat cake I love. Sesame snaps icing pudding sweet roll marshmallow. Cupcake brownie sweet roll chocolate bar I love gummies. Biscuit biscuit macaroon sesame snaps macaroon icing I love soufflé caramels. Apple pie candy jelly. I love icing gummi bears jelly-o pie muffin apple pie.

    Marshmallow halvah brownie cake marzipan ice cream marshmallow. I love lollipop toffee croissant liquorice wafer muffin. Lollipop jelly beans caramels lollipop tootsie roll pudding pie macaroon tootsie roll. Oat cake jujubes gummies cake cake powder cupcake soufflé muffin. Chocolate caramels muffin tart. Jelly beans caramels dessert cotton candy liquorice chocolate cake. Chupa chups muffin bear claw I love. Biscuit jujubes soufflé tart caramels pie sugar plum. Croissant jelly beans cake. Ice cream chocolate liquorice dessert cookie chocolate cake. Powder tart sweet roll macaroon croissant. Sweet tootsie roll macaroon gummi bears macaroon. Gingerbread cake tart.

    Regrads,

    Kristeen Sicilia

    ', + attachments: [ + { + fileName: 'report.doc', + thumbnail: require('@src/assets/images/icons/doc.png').default, + url: '', + size: '32mb' + } + ], + isStarred: false, + labels: ['important'], + time: 'Mon Dec 11 2018 09:04:10 GMT+0000 (GMT)', + replies: [], + folder: 'inbox', + isRead: true + }, + { + id: 5, + from: { + email: 'bposvner0@zdnet.com', + name: 'Bobbie Posvner', + avatar: require('@src/assets/images/avatars/11.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@dot.gov' + } + ], + subject: 'Re-contextualized zero administration toolset', + cc: [], + bcc: [], + message: + '

    Hello John,

    Epiboly henbill hemichorea composedness resequent hearthpenny racialization freeboard Reboulia Albuginaceae Violales Trisagion resinlike plumlet insalubrious Urocoptis Orthoceratidae ogmic plateaux reinsist preconsumption rattener venipuncture Rhadamanthine

    perversely corpusculated theophoric uncemented weiring myolipoma gudesire dramatics trichomaphyte adventitious video polychaete glossorrhaphy bestially zoospore nonnotional sawbones unprejudiciable wali collaborative coppled shammish manless predisorder

    ', + attachments: [], + isStarred: true, + labels: ['private'], + time: 'Tue Dec 12 2018 11:55:00 GMT+0000 (GMT)', + replies: [], + folder: 'spam', + isRead: true + }, + { + id: 6, + from: { + email: 'rgilder1@illinois.edu', + name: 'Rebecca Gilder', + avatar: require('@src/assets/images/avatars/6.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@google.co.uk' + } + ], + subject: 'Integrated bi-directional help-desk', + cc: [], + bcc: [], + message: + '

    Hello John,

    irretraceably indestructibility sisi fiddle pyretic Gerbera vocable hoped Chartreux thinglet whister fetiferous Guhayna overloud yuca suggestibly atmiatrics serioludicrous prehaustorium androgenic betulin chiropterite sprittail atrochal

    stopper acinaceous bandcutter unprostituted undependableness Saffarid parasympathetic dishonorer embryogeny overscrupulous deicidal Tapuya roupily devotee alfet sophiologic hydrobromide onlook preverb Dottore primitial frostlike overbig Monocyclica

    ', + attachments: [], + isStarred: false, + labels: ['personal'], + time: 'Thu Dec 13 2018 08:25:00 GMT+0000 (GMT)', + replies: [], + folder: 'trash', + isRead: true + }, + { + id: 7, + from: { + email: 'swilby2@yandex.ru', + name: 'Shawn Wilby', + avatar: require('@src/assets/images/avatars/1.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@altervista.org' + } + ], + subject: 'Devolved regional product', + cc: [], + bcc: [], + message: + '

    Hello John,

    scalpellum unisometrical emend esotrope gether separatical passionwise cringe flawful annotinous jiboa thrombotic essoinment successional backrope oligohemia gitaligenin formulaic bradycinesia paralgesic eumycetic receptoral eyrie yearly

    atomistical semischolastic clour discardment pseudelytron cheson path Bennet Herat pinchem Tho extravagantly shaking procidence flocker amidoketone gyric Moi petrolific clink immunization estrepement spalder poitrail

    ', + attachments: [], + isStarred: false, + labels: ['company'], + time: 'Fri Dec 14 2018 04:49:23 GMT+0000 (GMT)', + replies: [], + folder: 'draft', + isRead: true + }, + { + id: 8, + from: { + email: 'wmannering3@mozilla.org', + name: 'Waldemar Mannering', + avatar: require('@src/assets/images/avatars/11.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@sciencedaily.com' + } + ], + subject: 'Quality-focused methodical flexibility', + cc: [], + bcc: [], + message: + '

    Hi John,

    wartproof ketoheptose incomplicate hyomental organal supermaterial monogene sophister nizamate rightle multifilament phloroglucic overvehement boatloading derelictly probudgeting archantiquary unknighted pallograph Volcanalia Jacobitiana ethyl neth Jugatae

    noumenalize irredential energeia phlebotomist galp dactylitis unparticipated solepiece demure metarhyolite toboggan unpleased perilaryngeal binoxalate rabbitry atomic duali dihexahedron Pseudogryphus boomboat obelisk undreaded unadmired podometer

    ', + attachments: [], + isStarred: false, + labels: ['private'], + time: 'Tue Dec 15 2018 11:02:28 GMT+0000 (GMT)', + replies: [], + folder: 'inbox', + isRead: false + }, + { + id: 9, + from: { + email: 'hfrostdyke4@scientificamerican.com', + name: 'Heath Frostdyke', + avatar: require('@src/assets/images/avatars/9.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@weibo.com' + } + ], + subject: 'Secured optimal algorithm', + cc: [], + bcc: [], + message: + '

    Hello John,

    prefertility volumetrical subdivision Alpinist hypostomous foreyard lede knuckling Agade viking protometallic unsting palaeobiologist trierarchic bigheartedness Slartibartfast tabitude popadam idioplasm fabulous arsenite cingle backhandedness denizenship

    argo trickish dependingly unhouseled aegeriid ophthalmophlebotomy crazy freedwoman unspinsterlike clinical epistemologically hermodactyl humbugger misogynist plunder Sabbathly tabule feckless cerite porringer benumb duograph propatagian pressman

    ', + attachments: [], + isStarred: true, + labels: ['personal'], + time: 'Tue Jan 01 2018 18:31:19 GMT+0000 (GMT)', + replies: [], + folder: 'trash', + isRead: false + }, + { + id: 10, + from: { + email: 'pjentzsch5@tamu.edu', + name: 'Paulita Jentzsch', + avatar: require('@src/assets/images/avatars/7.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@skype.com' + } + ], + subject: 'Profound user-facing frame', + cc: [], + bcc: [], + message: + '

    Hello John,

    unstintedly septifarious prevalid implicative esere Kedarite Nekkar encampment Issedones Saururus Turkize Tshi misengrave lamnid benzamine rigidulous octonion hydrophilous coxalgic nasturtium epileptogenic biporose undenominationalism widu

    melioration pager infiltrate plouky tribesmanship transudate heinous exhibitionistic klendusic lienocele tractate unemotioned castigate selenate appealable Palladianism chloracetate penna moellon detector halcyon amidofluorid damascene hollaite

    ', + attachments: [ + { + fileName: 'UtNulla.xls', + thumbnail: require('@src/assets/images/icons/xls.png').default, + url: '', + size: '1mb' + } + ], + isStarred: true, + labels: ['important'], + time: 'Tue Jan 03 2018 08:05:33 GMT+0000 (GMT)', + replies: [], + folder: 'draft', + isRead: false + }, + { + id: 11, + from: { + email: 'lminghetti6@yale.edu', + name: 'Lowell Minghetti', + avatar: require('@src/assets/images/avatars/4.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@fda.gov' + } + ], + subject: 'Reactive full-range encryption', + cc: [], + bcc: [], + message: + '

    Hi John,

    Jaime stadimeter reshearer adfix exaristate herby chrysomonad ostentous Abrahamic Marsipobranchii skil linguodental relaster restbalk enhorror glycerizine foremelt difficultness Ostreidae Euphues panduriform howler Finmark primordality

    semicurvilinear skeet sociogenetic dicephalism ghalva ethnicon katagenesis tasklike triachenium abuser henbane strubbly streetway Ramaism besetting saccos enzymically wickiup inopulent poetship Miranda hemianesthesia sphericle oariopathy

    ', + attachments: [ + { + fileName: 'ElementumLigula.js', + thumbnail: require('@src/assets/images/icons/js.png').default, + url: '', + size: '29mb' + } + ], + isStarred: false, + labels: ['company'], + time: 'Tue Jan 03 2018 01:05:20 GMT+0000 (GMT)', + replies: [], + folder: 'trash', + isRead: true + }, + { + id: 12, + from: { + email: 'efinessy7@sbwire.com', + name: 'Eugenie Finessy', + avatar: require('@src/assets/images/avatars/2.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@odnoklassniki.ru' + } + ], + subject: 'Polarised holistic protocol', + cc: [], + bcc: [], + message: + '

    Hello John,

    nonmotile generale punctated humanify escharine unlatch alrighty unshepherding standstill upcrane unilobular prefrontal primate fluviatic premundane tritocone compaternity dolina phonautographic cobby corse neurohypnotic cyrtopia wreathy

    slanderousness Lemosi myxochondroma haemogram electrothermostat piperonyl spital reappeal pyopneumothorax Yunca eyoty forecourse extensive kickout germanization vigilant Criophoros muss aortostenosis Berchta phonophotoscopic precorrespondence rigidist castling

    ', + attachments: [], + isStarred: false, + labels: ['personal'], + time: 'Tue Jan 04 2018 21:26:54 GMT+0000 (GMT)', + replies: [], + folder: 'sent', + isRead: true + }, + { + id: 13, + from: { + email: 'tmckeurton8@163.com', + name: 'Tadio McKeurton', + avatar: require('@src/assets/images/avatars/10.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@nifty.com' + } + ], + subject: 'Down-sized transitional intranet', + cc: [], + bcc: [], + message: + '

    Hey John,

    calcimine gramineal nonfreezable interradial setula undertakable Abranchiata ultrasystematic spectroelectric Astarte Abraham bedsite enantiopathia exlex precoincident thiocarbamic mesenteriform daturism thioantimoniate tripudiate unsultry predynastic benzidino doxasticon

    overstale confessory glossed jane smoodger modernization Dehkan progymnospermic gangliectomy volumenometry Paulinistically tippy Gelfomino hive preredemption coccygine horrendous unintrusted plainer interrelatedly tearer arrojadite incircumspectly yokemating

    ', + attachments: [], + isStarred: false, + labels: ['important'], + time: 'Tue Jan 05 2018 19:00:00 GMT+0000 (GMT)', + replies: [], + folder: 'draft', + isRead: true + }, + { + id: 14, + from: { + email: 'ebegg9@wikia.com', + name: 'Eb Begg', + avatar: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default + }, + to: [ + { + name: 'me', + email: 'johndoe@51.la' + } + ], + subject: 'Organized value-added model', + cc: [], + bcc: [], + message: + '

    Hello Sir,

    Lituola restrengthen bathofloric manciple decaffeinize Debby aciliated eatage proscribe prejurisdiction buttle quacky hyposecretion indemonstrableness schelling lymphopathy consumptivity nonappointment filminess spumiform erotogenicity equestrianize boneflower interlardation

    allocate ponzite cote guilder tuff strind blamefully cocaine monstrously apocalyptically sublanate cherubimical oligoplasmia Miltonian hydrazyl unbeset statured Unami Cordeau strouthiocamelian geitjie larigo sociometry align

    ', + attachments: [], + isStarred: false, + labels: ['company'], + time: 'Tue Jan 06 2018 23:12:13 GMT+0000 (GMT)', + replies: [], + folder: 'inbox', + isRead: true + }, + { + id: 15, + from: { + email: 'mspata@sina.com.cn', + name: 'Modestine Spat', + avatar: require('@src/assets/images/avatars/9.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@oracle.com' + } + ], + subject: 'Profound systemic alliance 🎉 🎊', + cc: [], + bcc: [], + message: + '

    Hey John,

    Parthenopean logeion chipwood tonsilitic cockleshell substance Stilbum dismayed tape Alderamin Phororhacos bridewain zoonomia lujaurite printline extraction weanedness charterless splitmouth bindoree unfit philological Pythonissa scintillescent

    cinchonism sabbaton thyrocricoid dissuasively schematograph immerse pristane stimulability unreligion uncomplemental uteritis nef bavenite Hachiman teleutosorus anterolateral infirmate Nahani Hyla barile farthing crea venesector Cirrostomi

    ', + attachments: [], + isStarred: false, + labels: ['company'], + time: 'Tue Jan 07 2018 12:25:03 GMT+0000 (GMT)', + replies: [], + folder: 'inbox', + isRead: false + }, + { + id: 16, + from: { + email: 'cprandob@rambler.ru', + name: 'Chase Prando', + avatar: require('@src/assets/images/avatars/2.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@vistaprint.com' + } + ], + subject: 'Centralized intermediate instruction set', + cc: [], + bcc: [], + message: + '

    Respected Sir,

    drainman merman pleurosteal slatted serenader Tantalus slodder cachalot guerdon flannelflower digestibility priggish loa monocarbide endive rented kelep pangamous gummata siris stockproof butlerism polycrystalline begetter

    rack unpaining beglue astucious yardstick laniflorous tetrachloride avidious Biblicistic clival myosinogen antilobium unamiability unperforate Elaphurus wrapping deformity revocative kovil unwainscoted councilmanic saccharobiose federalize procellous

    ', + attachments: [], + isStarred: false, + labels: ['company'], + time: 'Tue Jan 08 2018 00:36:40 GMT+0000 (GMT)', + replies: [], + folder: 'sent', + isRead: true + }, + { + id: 17, + from: { + email: 'nbartlesc@merriam-webster.com', + name: 'Normand Bartles', + avatar: require('@src/assets/images/avatars/9.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@si.edu' + } + ], + subject: 'Re-contextualized leading edge projection', + cc: [], + bcc: [], + message: + '

    Hello John,

    orpine anidiomatic protoreptilian lacklusterness macromastia obstetricate Phaneroglossa tripleness laxatively hypophloeous ocellate sinoauricular porch lignitic miche strinkle hyperthyreosis tugui Alascan unrailroaded Cypriote vesuvian gradative hardener

    forthink Locarno wattlework Nordicist formoxime demipriest medrick Lomentaria lucible Canossa Manatus anaplasty Spirochaete bonus overgown Amurru Skupshtina opisthorchiasis preworthy Brodie shortchange Nikko Gaviae crosscut

    ', + attachments: [], + isStarred: false, + labels: ['personal'], + time: 'Tue Jan 09 2018 22:06:50 GMT+0000 (GMT)', + replies: [], + folder: 'spam', + isRead: true + }, + { + id: 18, + from: { + email: 'rgennd@dedecms.com', + name: 'Robin Genn', + avatar: require('@src/assets/images/avatars/6.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@about.com' + } + ], + subject: 'Team-oriented system-worthy intranet', + cc: [], + bcc: [], + message: + '

    Hi John,

    balsamation teachableness enarthrodia dentilation superguarantee Yuapin schedulize antarctically biocoenotic unspottedly stinter admonitorily uncollatedness umquhile grayhead dephase stopgap evenglow photogenically desmacyte rink osiered specking ratwa

    hospitize epithymetical montage rhapsodical Ninja superdramatist westerner clubionid haustellate Saltator rodding ophthalmomalacia concupiscibleness tingle hyperuresis Trigoniidae rearousal sanctimonial Munychia counterpaned exhibitable communer triadism Janiform

    ', + attachments: [], + isStarred: true, + labels: ['personal'], + time: 'Tue Jan 10 2018 01:51:24 GMT+0000 (GMT)', + replies: [], + folder: 'spam', + isRead: true + }, + { + id: 19, + from: { + email: 'eramelote@webeden.co.uk', + name: 'Emmalynn Ramelot', + avatar: require('@src/assets/images/avatars/8.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@tinypic.com' + } + ], + subject: 'Phased eco-centric architecture', + cc: [], + bcc: [], + message: + '

    Hey John,

    hightoby Maja vindicatorship unglobe poduran bronchodilatation uncontorted underwarden cyclometric orgiacs tigerhearted upscale curatize Scylliorhinidae slick unisolated nanocephalous cuirassier heartwise Venusian titanitic requirement antirestoration toluido

    Trematosaurus procreant ethos pessimistic antiselene pisk Amphipneusta anconad Corchorus unswabbed sizable Balanites sardonical shovelbill trammeler carpetwork rhexis remade myelinated right bounteous unsin retroduction Montanist

    ', + attachments: [], + isStarred: true, + labels: ['personal'], + time: 'Tue Jan 11 2018 14:25:46 GMT+0000 (GMT)', + replies: [], + folder: 'spam', + isRead: false + }, + { + id: 20, + from: { + email: 'pcuzenf@mediafire.com', + name: 'Penni Cuzen', + avatar: require('@src/assets/images/avatars/9.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@google.es' + } + ], + subject: 'Future-proofed motivating support', + cc: [], + bcc: [], + message: + '

    Hello John,

    yonder secessionalist astringer Ovangangela overcumber supracaecal scutulate Aglaonema Pakawan citril unsubducted cavernal multivalve ladify Cichorium supplication flexion cricothyroidean picaro locally etiogenic timeously scalpeen sapropel

    agglutinative hyperideation Flamandize antipragmatic wincer brachyphalangia forenotion Angloman ornamentation merch revulsed windingly tristate orgic sateless orseilline Anchietea pilferer aroid counselor forevermore kulmet maladventure haruspice

    ', + attachments: [ + { + fileName: 'Augue.js', + thumbnail: require('@src/assets/images/icons/js.png').default, + url: '', + size: '4mb' + } + ], + isStarred: false, + labels: ['private'], + time: 'Tue Jan 12 2018 04:16:10 GMT+0000 (GMT)', + replies: [], + folder: 'spam', + isRead: false + }, + { + id: 21, + from: { + email: 'abaldersong@utexas.edu', + name: 'Ardis Balderson', + avatar: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default + }, + to: [ + { + name: 'me', + email: 'johndoe@ow.ly' + } + ], + subject: 'Focused impactful open system 📷 😃', + cc: [], + bcc: [], + message: + '

    Hey John,

    bah kivu decrete epanorthotic unnotched Argyroneta nonius veratrine preimaginary saunders demidolmen Chaldaic allusiveness lorriker unworshipping ribaldish tableman hendiadys outwrest unendeavored fulfillment scientifical Pianokoto Chelonia

    Freudian sperate unchary hyperneurotic phlogiston duodecahedron unflown Paguridea catena disrelishable Stygian paleopsychology cantoris phosphoritic disconcord fruited inblow somewhatly ilioperoneal forrard palfrey Satyrinae outfreeman melebiose

    ', + attachments: [], + isStarred: true, + labels: ['company'], + time: new Date(new Date().getTime() - 7 * 60 * 60 * 1000), + replies: [], + folder: 'inbox', + isRead: false + }, + { + id: 22, + from: { + email: 'dmallallh@ask.com', + name: 'Dagmar Mallall', + avatar: require('@src/assets/images/avatars/8.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@furl.net' + } + ], + subject: 'Function-based local productivity 💻', + cc: [], + bcc: [], + message: + '

    Dear Consumer,

    gibbed preconceptual passionwort Goanese confluence ungnaw aubepine coadjacency Romipetal isochronic convener overinsistently psammophyte colpenchyma unlogic instinctivist motorcab wellhole receptacle sinistrocular avifaunal decagram paramountness samhita

    sphincterismus Aunjetitz vagabondage parallelotropism unreceipted io wheretoever semivolcanic Chlamydomonadidae spittlestaff spermatogenic Sephardi berrigan lowly grotesquerie Pentameridae unsuccessive archlexicographer Stephanian reimpatriate untossed beth ventriloquial dedicational

    ', + attachments: [], + isStarred: false, + labels: ['company'], + time: new Date(new Date().getTime() - 5 * 20 * 60 * 1000), + replies: [], + folder: 'draft', + isRead: false + }, + { + id: 23, + from: { + email: 'nmacgaughyi@aol.com', + name: 'Nada MacGaughy', + avatar: require('@src/assets/images/avatars/3.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@cnet.com' + } + ], + subject: 'Compatible object-oriented policy ', + cc: [], + bcc: [], + message: + '

    Hello John,

    miraculous pirijiri meekheartedness superoxygenation Elric paries epideictical Prajapati reassign stridlins spoach overreadily abusion sailmaking illiterately septangularness retinene Hler exceptionary ferberite possessionalist piperide Oschophoria beau

    abnormalize yearnfulness Janiculum sixhaend abstemiousness uterogestation orchestrina gallotannin muckment melanoblast supercivilization inclusionist electroosmotically immatchable stomatoplastic satinity hydrogen unexorable quinamidine milksopism fascinating ratsbane endocline Zolaist

    ', + attachments: [ + { + fileName: 'Leo.xls', + thumbnail: require('@src/assets/images/icons/xls.png').default, + url: '', + size: '33mb' + } + ], + isStarred: false, + labels: ['private'], + time: new Date(new Date().getTime() - 2 * 60 * 60 * 1000), + replies: [], + folder: 'trash', + isRead: false + }, + { + id: 24, + from: { + email: 'douldcottj@yellowpages.com', + name: 'Dalila Ouldcott', + avatar: require('@src/assets/images/avatars/1.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@github.io' + } + ], + subject: 'User-friendly value-added application 😊', + cc: [], + bcc: [], + message: + '

    Hey John,

    wellish laminable ineunt popshop catalyte prismatize campimetrical lentisk excluding portlet coccinellid impestation Bangash Lollardist perameloid procerebrum presume cashmerette washbasin nainsook Odontolcae Alea holcodont welted

    cibarious terrifical uploop naphthaleneacetic containable nonsailor Zwinglian blighty benchful guar porch fallectomy building coinvolve eidolism warmth unclericalize seismographic recongeal ethanethial clog regicidal regainment legific

    ', + attachments: [ + { + fileName: 'example.doc', + thumbnail: require('@src/assets/images/icons/doc.png').default, + url: '', + size: '21mb' + } + ], + isStarred: false, + labels: ['personal'], + time: new Date(new Date().getTime() - 1 * 30 * 60 * 1000), + replies: [ + { + id: 25, + from: { + email: 'johndoe@mail.com', + name: 'John Doe', + avatar: require('@src/assets/images/avatars/11.png').default + }, + to: [ + { + name: 'me', + email: 'hettiem@mail.com' + } + ], + subject: '🎯 Focused impactful open system', + cc: [], + bcc: [], + message: + '

    Hello Hettie,

    Marshmallow cookie jelly liquorice. Powder macaroon cake pastry biscuit. Cotton candy cotton candy jelly chocolate bar. Sesame snaps candy gummi bears cake cookie jujubes. Sweet I love sweet roll. Sesame snaps I love marzipan. Jelly powder tootsie roll. Marshmallow pudding cookie fruitcake liquorice powder. I love I love cookie chupa chups fruitcake ice cream I love biscuit I love. Tiramisu apple pie candy canes cookie gummies. Donut toffee bear claw topping jelly-o. Cupcake icing muffin. Cookie brownie wafer pie sweet. Icing sesame snaps halvah toffee marshmallow lemon drops jelly.

    Tiramisu candy canes powder. Powder chocolate bar halvah liquorice cake I love danish. Cake wafer apple pie. Bear claw fruitcake I love marzipan dessert marzipan lollipop. Halvah gingerbread jelly chupa chups tiramisu I love wafer gummi bears. Candy powder caramels candy gummies. Tart tart cupcake brownie. Bear claw gummies toffee. Tiramisu donut cake chocolate bar. Halvah chocolate bar donut jelly-o. Icing candy brownie chocolate. Pastry bear claw halvah gummies chocolate bar chocolate. Apple pie danish wafer I love biscuit.

    Regrads,

    John Doe

    ', + attachments: [], + isStarred: false, + labels: [], + time: 'Mon Dec 10 2018 10:56:00 GMT+0000 (GMT)', + replies: [], + folder: 'inbox', + isRead: false + }, + { + id: 26, + from: { + email: 'hettiem@mail.com', + name: 'Hettie Mcerlean', + avatar: require('@src/assets/images/avatars/3.png').default + }, + to: [ + { + name: 'me', + email: 'johndoe@mail.com' + } + ], + subject: 'Profound systemic alliance 🎉 🎊', + cc: [], + bcc: [], + message: + '

    Oat cake tart danish jelly beans brownie I love. Liquorice I love lollipop chocolate cake carrot cake toffee. Tart muffin candy canes croissant sugar plum lollipop. Macaroon cheesecake marshmallow powder sweet roll bonbon candy apple pie candy canes.

    Regrads,

    Hettie Mcerlean

    ', + attachments: [], + isStarred: false, + labels: [], + time: 'Mon Dec 10 2018 11:25:00 GMT+0000 (GMT)', + replies: [], + folder: 'inbox', + isRead: false + } + ], + folder: 'inbox', + isRead: true + } + ] +} + +// ------------------------------------------------ +// GET: Return Emails +// ------------------------------------------------ +mock.onGet('/apps/email/emails').reply(config => { + const { q = '', folder = 'inbox', label } = config.params + + const queryLowered = q.toLowerCase() + + function isInFolder(email) { + if (folder === 'trash') return email.folder === 'trash' + if (folder === 'starred') return email.isStarred && email.folder !== 'trash' + return email.folder === (folder || email.folder) && email.folder !== 'trash' + } + + const filteredData = data.emails.filter( + email => + /* eslint-disable operator-linebreak, implicit-arrow-linebreak */ + email.subject.toLowerCase().includes(queryLowered) && + isInFolder(email) && + (label ? email.labels.includes(label) : true) + ) + /* eslint-enable */ + + // ------------------------------------------------ + // Email Meta + // ------------------------------------------------ + const emailsMeta = { + inbox: data.emails.filter(email => !email.isDeleted && !email.isRead && email.folder === 'inbox').length, + draft: data.emails.filter(email => email.folder === 'draft').length, + spam: data.emails.filter(email => !email.isDeleted && !email.isRead && email.folder === 'spam').length + } + + return [ + 200, + { + emails: filteredData.reverse(), + emailsMeta + } + ] +}) + +// ------------------------------------------------ +// POST: Update Email +// ------------------------------------------------ +mock.onPost('/apps/email/update-emails').reply(config => { + const { emailIds, dataToUpdate } = JSON.parse(config.data) + function updateMailData(email) { + Object.assign(email, dataToUpdate) + } + + data.emails.forEach(email => { + if (emailIds.includes(email.id)) updateMailData(email) + }) + + return [200] +}) + +// ------------------------------------------------ +// POST: Update Emails Label +// ------------------------------------------------ +mock.onPost('/apps/email/update-emails-label').reply(config => { + const { emailIds, label } = JSON.parse(config.data) + + function updateMailLabels(email) { + const labelIndex = email.labels.indexOf(label) + + if (labelIndex === -1) email.labels.push(label) + else email.labels.splice(labelIndex, 1) + } + + data.emails.forEach(email => { + if (emailIds.includes(email.id)) updateMailLabels(email) + }) + + return [200] +}) + +// ------------------------------------------------ +// GET: GET Single Email +// ------------------------------------------------ +mock.onGet('/apps/email/get-email').reply(config => { + const { id } = config + + const emailId = Number(id) + + const mail = data.emails.find(i => i.id === emailId) + const mailIndex = data.emails.findIndex(i => i.id === mail.id) + mailIndex === 0 ? (mail.hasPreviousMail = true) : (mail.hasPreviousMail = false) + mailIndex === data.emails.length - 1 ? (mail.hasNextMail = true) : (mail.hasNextMail = false) + + return mail ? [200, mail] : [404] +}) + +// ------------------------------------------------ +// GET: Paginate Existing Email +// ------------------------------------------------ +mock.onGet('/apps/email/paginate-email').reply(config => { + const { dir, emailId } = config.params + + const currentEmailIndex = data.emails.findIndex(e => e.id === emailId) + + const newEmailIndex = dir === 'previous' ? currentEmailIndex - 1 : currentEmailIndex + 1 + + const newEmail = data.emails[newEmailIndex] + + return newEmail ? [200, newEmail] : [404] +}) +/* eslint-enable */ diff --git a/src/@fake-db/apps/invoice.js b/src/@fake-db/apps/invoice.js new file mode 100644 index 0000000..5e0b2ec --- /dev/null +++ b/src/@fake-db/apps/invoice.js @@ -0,0 +1,983 @@ +import mock from '../mock' +import { paginateArray, sortCompare } from '../utils' + +const data = { + invoices: [ + { + id: 4987, + issuedDate: '13 Dec 2019', + client: { + address: '7777 Mendez Plains', + company: 'Hall-Robbins PLC', + companyEmail: 'don85@johnson.com', + country: 'USA', + contact: '(616) 865-4180', + name: 'Jordan Stevenson' + }, + service: 'Software Development', + total: 3428, + avatar: '', + invoiceStatus: 'Paid', + balance: '$724', + dueDate: '23 Apr 2019' + }, + { + id: 4988, + issuedDate: '17 Jul 2019', + client: { + address: '04033 Wesley Wall Apt. 961', + company: 'Mccann LLC and Sons', + companyEmail: 'brenda49@taylor.info', + country: 'Haiti', + contact: '(226) 204-8287', + name: 'Stephanie Burns' + }, + service: 'UI/UX Design & Development', + total: 5219, + avatar: require('@src/assets/images/avatars/10-small.png').default, + invoiceStatus: 'Downloaded', + balance: 0, + dueDate: '15 Dec 2019' + }, + { + id: 4989, + issuedDate: '19 Oct 2019', + client: { + address: '5345 Robert Squares', + company: 'Leonard-Garcia and Sons', + companyEmail: 'smithtiffany@powers.com', + country: 'Denmark', + contact: '(955) 676-1076', + name: 'Tony Herrera' + }, + service: 'Unlimited Extended License', + total: 3719, + avatar: require('@src/assets/images/avatars/1-small.png').default, + invoiceStatus: 'Paid', + balance: 0, + dueDate: '03 Nov 2019' + }, + { + id: 4990, + issuedDate: '06 Mar 2020', + client: { + address: '19022 Clark Parks Suite 149', + company: 'Smith, Miller and Henry LLC', + companyEmail: 'mejiageorge@lee-perez.com', + country: 'Cambodia', + contact: '(832) 323-6914', + name: 'Kevin Patton' + }, + service: 'Software Development', + total: 4749, + avatar: require('@src/assets/images/avatars/9-small.png').default, + invoiceStatus: 'Sent', + balance: 0, + dueDate: '11 Feb 2020' + }, + { + id: 4991, + issuedDate: '08 Feb 2020', + client: { + address: '8534 Saunders Hill Apt. 583', + company: 'Garcia-Cameron and Sons', + companyEmail: 'brandon07@pierce.com', + country: 'Martinique', + contact: '(970) 982-3353', + name: 'Mrs. Julie Donovan MD' + }, + service: 'UI/UX Design & Development', + total: 4056, + avatar: require('@src/assets/images/avatars/10-small.png').default, + invoiceStatus: 'Draft', + balance: '$815', + dueDate: '30 Jun 2019' + }, + { + id: 4992, + issuedDate: '26 Aug 2019', + client: { + address: '661 Perez Run Apt. 778', + company: 'Burnett-Young PLC', + companyEmail: 'guerrerobrandy@beasley-harper.com', + country: 'Botswana', + contact: '(511) 938-9617', + name: 'Amanda Phillips' + }, + service: 'UI/UX Design & Development', + total: 2771, + avatar: '', + invoiceStatus: 'Paid', + balance: 0, + dueDate: '24 Jun 2019' + }, + { + id: 4993, + issuedDate: '17 Sep 2019', + client: { + address: '074 Long Union', + company: 'Wilson-Lee LLC', + companyEmail: 'williamshenry@moon-smith.com', + country: 'Montserrat', + contact: '(504) 859-2893', + name: 'Christina Collier' + }, + service: 'UI/UX Design & Development', + total: 2713, + avatar: '', + invoiceStatus: 'Draft', + balance: '$407', + dueDate: '22 Nov 2019' + }, + { + id: 4994, + issuedDate: '11 Feb 2020', + client: { + address: '5225 Ford Cape Apt. 840', + company: 'Schwartz, Henry and Rhodes Group', + companyEmail: 'margaretharvey@russell-murray.com', + country: 'Oman', + contact: '(758) 403-7718', + name: 'David Flores' + }, + service: 'Template Customization', + total: 4309, + avatar: require('@src/assets/images/avatars/9-small.png').default, + invoiceStatus: 'Paid', + balance: '-$205', + dueDate: '10 Feb 2020' + }, + { + id: 4995, + issuedDate: '26 Jan 2020', + client: { + address: '23717 James Club Suite 277', + company: 'Henderson-Holder PLC', + companyEmail: 'dianarodriguez@villegas.com', + country: 'Cambodia', + contact: '(292) 873-8254', + name: 'Valerie Perez' + }, + service: 'Software Development', + total: 3367, + avatar: require('@src/assets/images/avatars/2-small.png').default, + invoiceStatus: 'Downloaded', + balance: 0, + dueDate: '24 Dec 2019' + }, + { + id: 4996, + issuedDate: '15 Jan 2020', + client: { + address: '4528 Myers Gateway', + company: 'Page-Wise PLC', + companyEmail: 'bwilson@norris-brock.com', + country: 'Guam', + contact: '(956) 803-2008', + name: 'Susan Dickerson' + }, + service: 'Software Development', + total: 4776, + avatar: require('@src/assets/images/avatars/9-small.png').default, + invoiceStatus: 'Downloaded', + balance: '$305', + dueDate: '02 Jun 2019' + }, + { + id: 4997, + issuedDate: '27 Sep 2019', + client: { + address: '4234 Mills Club Suite 107', + company: 'Turner PLC Inc', + companyEmail: 'markcampbell@bell.info', + country: 'United States Virgin Islands', + contact: '(716) 962-8635', + name: 'Kelly Smith' + }, + service: 'Unlimited Extended License', + total: 3789, + avatar: require('@src/assets/images/avatars/4-small.png').default, + invoiceStatus: 'Partial Payment', + balance: '$666', + dueDate: '18 Mar 2020' + }, + { + id: 4998, + issuedDate: '31 Jul 2019', + client: { + address: '476 Keith Meadow', + company: 'Levine-Dorsey PLC', + companyEmail: 'mary61@rosario.com', + country: 'Syrian Arab Republic', + contact: '(523) 449-0782', + name: 'Jamie Jones' + }, + service: 'Unlimited Extended License', + total: 5200, + avatar: require('@src/assets/images/avatars/5-small.png').default, + invoiceStatus: 'Partial Payment', + balance: 0, + dueDate: '17 Jan 2020' + }, + { + id: 4999, + issuedDate: '14 Feb 2020', + client: { + address: '56381 Ashley Village Apt. 332', + company: 'Hall, Thompson and Ramirez LLC', + companyEmail: 'sean22@cook.com', + country: 'Ukraine', + contact: '(583) 470-8356', + name: 'Ruben Garcia' + }, + service: 'Software Development', + total: 4558, + avatar: require('@src/assets/images/avatars/7-small.png').default, + invoiceStatus: 'Paid', + balance: 0, + dueDate: '01 Oct 2019' + }, + { + id: 5000, + issuedDate: '21 May 2019', + client: { + address: '6946 Gregory Plaza Apt. 310', + company: 'Lambert-Thomas Group', + companyEmail: 'mccoymatthew@lopez-jenkins.net', + country: 'Vanuatu', + contact: '(366) 906-6467', + name: 'Ryan Meyer' + }, + service: 'Template Customization', + total: 3503, + avatar: require('@src/assets/images/avatars/9-small.png').default, + invoiceStatus: 'Paid', + balance: 0, + dueDate: '22 May 2019' + }, + { + id: 5001, + issuedDate: '30 Jun 2019', + client: { + address: '64351 Andrew Lights', + company: 'Gregory-Haynes PLC', + companyEmail: 'novakshannon@mccarty-murillo.com', + country: 'Romania', + contact: '(320) 616-3915', + name: 'Valerie Valdez' + }, + service: 'Unlimited Extended License', + total: 5285, + avatar: require('@src/assets/images/avatars/2-small.png').default, + invoiceStatus: 'Partial Payment', + balance: '-$202', + dueDate: '02 Aug 2019' + }, + { + id: 5002, + issuedDate: '21 Jun 2019', + client: { + address: '5702 Sarah Heights', + company: 'Wright-Schmidt LLC', + companyEmail: 'smithrachel@davis-rose.net', + country: 'Costa Rica', + contact: '(435) 899-1963', + name: 'Melissa Wheeler' + }, + service: 'UI/UX Design & Development', + total: 3668, + avatar: require('@src/assets/images/avatars/6-small.png').default, + invoiceStatus: 'Downloaded', + balance: '$731', + dueDate: '15 Dec 2019' + }, + { + id: 5003, + issuedDate: '30 Dec 2019', + client: { + address: '668 Robert Flats', + company: 'Russell-Abbott Ltd', + companyEmail: 'scott96@mejia.net', + country: 'Congo', + contact: '(254) 399-4728', + name: 'Alan Jimenez' + }, + service: 'Unlimited Extended License', + total: 4372, + avatar: '', + invoiceStatus: 'Sent', + balance: '-$344', + dueDate: '17 Sep 2019' + }, + { + id: 5004, + issuedDate: '27 May 2019', + client: { + address: '55642 Chang Extensions Suite 373', + company: 'Williams LLC Inc', + companyEmail: 'cramirez@ross-bass.biz', + country: 'Saint Pierre and Miquelon', + contact: '(648) 500-4338', + name: 'Jennifer Morris' + }, + service: 'Template Customization', + total: 3198, + avatar: require('@src/assets/images/avatars/7-small.png').default, + invoiceStatus: 'Partial Payment', + balance: '-$253', + dueDate: '16 Aug 2019' + }, + { + id: 5005, + issuedDate: '30 Jul 2019', + client: { + address: '56694 Eric Orchard', + company: 'Hudson, Bell and Phillips PLC', + companyEmail: 'arielberg@wolfe-smith.com', + country: 'Uruguay', + contact: '(896) 544-3796', + name: 'Timothy Stevenson' + }, + service: 'Unlimited Extended License', + total: 5293, + avatar: '', + invoiceStatus: 'Past Due', + balance: 0, + dueDate: '01 Aug 2019' + }, + { + id: 5006, + issuedDate: '10 Jun 2019', + client: { + address: '3727 Emma Island Suite 879', + company: 'Berry, Gonzalez and Heath Inc', + companyEmail: 'yrobinson@nichols.com', + country: 'Israel', + contact: '(236) 784-5142', + name: 'Erik Hayden' + }, + service: 'Template Customization', + total: 5612, + avatar: require('@src/assets/images/avatars/6-small.png').default, + invoiceStatus: 'Downloaded', + balance: '$883', + dueDate: '12 Apr 2019' + }, + { + id: 5007, + issuedDate: '01 Feb 2020', + client: { + address: '953 Miller Common Suite 580', + company: 'Martinez, Fuller and Chavez and Sons', + companyEmail: 'tatejennifer@allen.net', + country: 'Cook Islands', + contact: '(436) 717-2419', + name: 'Katherine Kennedy' + }, + service: 'Software Development', + total: 2230, + avatar: require('@src/assets/images/avatars/1-small.png').default, + invoiceStatus: 'Sent', + balance: 0, + dueDate: '19 Nov 2019' + }, + { + id: 5008, + issuedDate: '22 Mar 2020', + client: { + address: '808 Sullivan Street Apt. 135', + company: 'Wilson and Sons LLC', + companyEmail: 'gdurham@lee.com', + country: 'Nepal', + contact: '(489) 946-3041', + name: 'Monica Fuller' + }, + service: 'Unlimited Extended License', + total: 2032, + avatar: require('@src/assets/images/avatars/8-small.png').default, + invoiceStatus: 'Partial Payment', + balance: 0, + dueDate: '30 Nov 2019' + }, + { + id: 5009, + issuedDate: '30 Nov 2019', + client: { + address: '25135 Christopher Creek', + company: 'Hawkins, Johnston and Mcguire PLC', + companyEmail: 'jenny96@lawrence-thompson.com', + country: 'Kiribati', + contact: '(274) 246-3725', + name: 'Stacey Carter' + }, + service: 'UI/UX Design & Development', + total: 3128, + avatar: require('@src/assets/images/avatars/3-small.png').default, + invoiceStatus: 'Paid', + balance: 0, + dueDate: '10 Sep 2019' + }, + { + id: 5010, + issuedDate: '06 Jan 2020', + client: { + address: '81285 Rebecca Estates Suite 046', + company: 'Huynh-Mills and Sons', + companyEmail: 'jgutierrez@jackson.com', + country: 'Swaziland', + contact: '(258) 211-5970', + name: 'Chad Davis' + }, + service: 'Software Development', + total: 2060, + avatar: require('@src/assets/images/avatars/2-small.png').default, + invoiceStatus: 'Downloaded', + balance: 0, + dueDate: '08 Dec 2019' + }, + { + id: 5011, + issuedDate: '01 Jun 2019', + client: { + address: '3102 Briggs Dale Suite 118', + company: 'Jones-Cooley and Sons', + companyEmail: 'hunter14@jones.com', + country: 'Congo', + contact: '(593) 965-4100', + name: 'Chris Reyes' + }, + service: 'UI/UX Design & Development', + total: 4077, + avatar: '', + invoiceStatus: 'Draft', + balance: 0, + dueDate: '01 Feb 2020' + }, + { + id: 5012, + issuedDate: '30 Oct 2019', + client: { + address: '811 Jill Skyway', + company: 'Jones PLC Ltd', + companyEmail: 'pricetodd@johnson-jenkins.com', + country: 'Brazil', + contact: '(585) 829-2603', + name: 'Laurie Summers' + }, + service: 'Template Customization', + total: 2872, + avatar: require('@src/assets/images/avatars/4-small.png').default, + invoiceStatus: 'Partial Payment', + balance: 0, + dueDate: '18 Oct 2019' + }, + { + id: 5013, + issuedDate: '05 Feb 2020', + client: { + address: '2223 Brandon Inlet Suite 597', + company: 'Jordan, Gomez and Ross Group', + companyEmail: 'perrydavid@chapman-rogers.com', + country: 'Congo', + contact: '(527) 351-5517', + name: 'Lindsay Wilson' + }, + service: 'Software Development', + total: 3740, + avatar: require('@src/assets/images/avatars/10-small.png').default, + invoiceStatus: 'Draft', + balance: 0, + dueDate: '01 Nov 2019' + }, + { + id: 5014, + issuedDate: '01 Dec 2019', + client: { + address: '08724 Barry Causeway', + company: 'Gonzalez, Moody and Glover LLC', + companyEmail: 'leahgriffin@carpenter.com', + country: 'Equatorial Guinea', + contact: '(628) 903-0132', + name: 'Jenna Castro' + }, + service: 'Unlimited Extended License', + total: 3623, + avatar: '', + invoiceStatus: 'Downloaded', + balance: 0, + dueDate: '23 Sep 2019' + }, + { + id: 5015, + issuedDate: '16 Apr 2019', + client: { + address: '073 Holt Ramp Apt. 755', + company: 'Ashley-Pacheco Ltd', + companyEmail: 'esparzadaniel@allen.com', + country: 'Seychelles', + contact: '(847) 396-9904', + name: 'Wendy Weber' + }, + service: 'Software Development', + total: 2477, + avatar: require('@src/assets/images/avatars/7-small.png').default, + invoiceStatus: 'Draft', + balance: 0, + dueDate: '01 Apr 2019' + }, + { + id: 5016, + issuedDate: '24 Jan 2020', + client: { + address: '984 Sherry Trail Apt. 953', + company: 'Berry PLC Group', + companyEmail: 'todd34@owens-morgan.com', + country: 'Ireland', + contact: '(852) 249-4539', + name: 'April Yates' + }, + service: 'Unlimited Extended License', + total: 3904, + avatar: '', + invoiceStatus: 'Paid', + balance: '$951', + dueDate: '30 Sep 2019' + }, + { + id: 5017, + issuedDate: '24 Feb 2020', + client: { + address: '093 Jonathan Camp Suite 953', + company: 'Allen Group Ltd', + companyEmail: 'roydavid@bailey.com', + country: 'Netherlands', + contact: '(917) 984-2232', + name: 'Daniel Marshall PhD' + }, + service: 'UI/UX Design & Development', + total: 3102, + avatar: require('@src/assets/images/avatars/1-small.png').default, + invoiceStatus: 'Partial Payment', + balance: '-$153', + dueDate: '25 Aug 2019' + }, + { + id: 5018, + issuedDate: '29 Feb 2020', + client: { + address: '4735 Kristie Islands Apt. 259', + company: 'Chapman-Schneider LLC', + companyEmail: 'baldwinjoel@washington.com', + country: 'Cocos (Keeling) Islands', + contact: '(670) 409-3703', + name: 'Randy Rich' + }, + service: 'UI/UX Design & Development', + total: 2483, + avatar: require('@src/assets/images/avatars/5-small.png').default, + invoiceStatus: 'Draft', + balance: 0, + dueDate: '10 Jul 2019' + }, + { + id: 5019, + issuedDate: '07 Aug 2019', + client: { + address: '92218 Andrew Radial', + company: 'Mcclure, Hernandez and Simon Ltd', + companyEmail: 'psmith@morris.info', + country: 'Macao', + contact: '(646) 263-0257', + name: 'Mrs. Jodi Chapman' + }, + service: 'Unlimited Extended License', + total: 2825, + avatar: require('@src/assets/images/avatars/8-small.png').default, + invoiceStatus: 'Partial Payment', + balance: '-$459', + dueDate: '14 Oct 2019' + }, + { + id: 5020, + issuedDate: '10 May 2019', + client: { + address: '2342 Michelle Valley', + company: 'Hamilton PLC and Sons', + companyEmail: 'lori06@morse.com', + country: 'Somalia', + contact: '(751) 213-4288', + name: 'Steven Myers' + }, + service: 'Unlimited Extended License', + total: 2029, + avatar: require('@src/assets/images/avatars/4-small.png').default, + invoiceStatus: 'Past Due', + balance: 0, + dueDate: '28 Mar 2019' + }, + { + id: 5021, + issuedDate: '02 Apr 2019', + client: { + address: '16039 Brittany Terrace Apt. 128', + company: 'Silva-Reeves LLC', + companyEmail: 'zpearson@miller.com', + country: 'Slovakia (Slovak Republic)', + contact: '(655) 649-7872', + name: 'Charles Alexander' + }, + service: 'Software Development', + total: 3208, + avatar: '', + invoiceStatus: 'Sent', + balance: 0, + dueDate: '06 Sep 2019' + }, + { + id: 5022, + issuedDate: '02 May 2019', + client: { + address: '37856 Olsen Lakes Apt. 852', + company: 'Solis LLC Ltd', + companyEmail: 'strongpenny@young.net', + country: 'Brazil', + contact: '(402) 935-0735', + name: 'Elizabeth Jones' + }, + service: 'Software Development', + total: 3077, + avatar: '', + invoiceStatus: 'Sent', + balance: 0, + dueDate: '09 May 2019' + }, + { + id: 5023, + issuedDate: '23 Mar 2020', + client: { + address: '11489 Griffin Plaza Apt. 927', + company: 'Munoz-Peters and Sons', + companyEmail: 'carrietorres@acosta.com', + country: 'Argentina', + contact: '(915) 448-6271', + name: 'Heidi Walton' + }, + service: 'Software Development', + total: 5578, + avatar: require('@src/assets/images/avatars/9-small.png').default, + invoiceStatus: 'Draft', + balance: 0, + dueDate: '23 Jul 2019' + }, + { + id: 5024, + issuedDate: '28 Sep 2019', + client: { + address: '276 Michael Gardens Apt. 004', + company: 'Shea, Velez and Garcia LLC', + companyEmail: 'zjohnson@nichols-powers.com', + country: 'Philippines', + contact: '(817) 700-2984', + name: 'Christopher Allen' + }, + service: 'Software Development', + total: 2787, + avatar: require('@src/assets/images/avatars/1-small.png').default, + invoiceStatus: 'Partial Payment', + balance: 0, + dueDate: '25 Sep 2019' + }, + { + id: 5025, + issuedDate: '21 Feb 2020', + client: { + address: '633 Bell Well Apt. 057', + company: 'Adams, Simmons and Brown Group', + companyEmail: 'kayla09@thomas.com', + country: 'Martinique', + contact: '(266) 611-9482', + name: 'Joseph Oliver' + }, + service: 'UI/UX Design & Development', + total: 5591, + avatar: '', + invoiceStatus: 'Downloaded', + balance: 0, + dueDate: '07 Jun 2019' + }, + { + id: 5026, + issuedDate: '24 May 2019', + client: { + address: '1068 Lopez Fall', + company: 'Williams-Lawrence and Sons', + companyEmail: 'melvindavis@allen.info', + country: 'Mexico', + contact: '(739) 745-9728', + name: 'Megan Roberts' + }, + service: 'Template Customization', + total: 2783, + avatar: require('@src/assets/images/avatars/6-small.png').default, + invoiceStatus: 'Draft', + balance: 0, + dueDate: '22 Oct 2019' + }, + { + id: 5027, + issuedDate: '13 Jan 2020', + client: { + address: '86691 Mackenzie Light Suite 568', + company: 'Deleon Inc LLC', + companyEmail: 'gjordan@fernandez-coleman.com', + country: 'Costa Rica', + contact: '(682) 804-6506', + name: 'Mary Garcia' + }, + service: 'Template Customization', + total: 2719, + avatar: '', + invoiceStatus: 'Sent', + balance: 0, + dueDate: '04 Feb 2020' + }, + { + id: 5028, + issuedDate: '18 May 2019', + client: { + address: '86580 Sarah Bridge', + company: 'Farmer, Johnson and Anderson Group', + companyEmail: 'robertscott@garcia.com', + country: 'Cameroon', + contact: '(775) 366-0411', + name: 'Crystal Mays' + }, + service: 'Template Customization', + total: 3325, + avatar: '', + invoiceStatus: 'Paid', + balance: '$361', + dueDate: '02 Mar 2020' + }, + { + id: 5029, + issuedDate: '29 Oct 2019', + client: { + address: '49709 Edwin Ports Apt. 353', + company: 'Sherman-Johnson PLC', + companyEmail: 'desiree61@kelly.com', + country: 'Macedonia', + contact: '(510) 536-6029', + name: 'Nicholas Tanner' + }, + service: 'Template Customization', + total: 3851, + avatar: '', + invoiceStatus: 'Paid', + balance: 0, + dueDate: '25 Aug 2019' + }, + { + id: 5030, + issuedDate: '07 Apr 2019', + client: { + address: '3856 Mathis Squares Apt. 584', + company: 'Byrd LLC PLC', + companyEmail: 'jeffrey25@martinez-hodge.com', + country: 'Congo', + contact: '(253) 230-4657', + name: 'Mr. Justin Richardson' + }, + service: 'Template Customization', + total: 5565, + avatar: '', + invoiceStatus: 'Draft', + balance: 0, + dueDate: '06 Mar 2020' + }, + { + id: 5031, + issuedDate: '21 Aug 2019', + client: { + address: '141 Adrian Ridge Suite 550', + company: 'Stone-Zimmerman Group', + companyEmail: 'john77@anderson.net', + country: 'Falkland Islands (Malvinas)', + contact: '(612) 546-3485', + name: 'Jennifer Summers' + }, + service: 'Template Customization', + total: 3313, + avatar: require('@src/assets/images/avatars/3-small.png').default, + invoiceStatus: 'Partial Payment', + balance: 0, + dueDate: '09 Jun 2019' + }, + { + id: 5032, + issuedDate: '31 May 2019', + client: { + address: '01871 Kristy Square', + company: 'Yang, Hansen and Hart PLC', + companyEmail: 'ywagner@jones.com', + country: 'Germany', + contact: '(203) 601-8603', + name: 'Richard Payne' + }, + service: 'Template Customization', + total: 5181, + avatar: '', + invoiceStatus: 'Past Due', + balance: 0, + dueDate: '22 Oct 2019' + }, + { + id: 5033, + issuedDate: '12 Jul 2019', + client: { + address: '075 Smith Views', + company: 'Jenkins-Rosales Inc', + companyEmail: 'calvin07@joseph-edwards.org', + country: 'Colombia', + contact: '(895) 401-4255', + name: 'Lori Wells' + }, + service: 'Template Customization', + total: 2869, + avatar: require('@src/assets/images/avatars/1-small.png').default, + invoiceStatus: 'Partial Payment', + balance: 0, + dueDate: '22 Mar 2020' + }, + { + id: 5034, + issuedDate: '10 Jul 2019', + client: { + address: '2577 Pearson Overpass Apt. 314', + company: 'Mason-Reed PLC', + companyEmail: 'eric47@george-castillo.com', + country: 'Paraguay', + contact: '(602) 336-9806', + name: 'Tammy Sanchez' + }, + service: 'Unlimited Extended License', + total: 4836, + avatar: '', + invoiceStatus: 'Paid', + balance: 0, + dueDate: '22 Oct 2019' + }, + { + id: 5035, + issuedDate: '20 Jul 2019', + client: { + address: '1770 Sandra Mountains Suite 636', + company: 'Foster-Pham PLC', + companyEmail: 'jamesjoel@chapman.net', + country: 'Western Sahara', + contact: '(936) 550-1638', + name: 'Dana Carey' + }, + service: 'UI/UX Design & Development', + total: 4263, + avatar: '', + invoiceStatus: 'Draft', + balance: '$762', + dueDate: '12 Jun 2019' + }, + { + id: 5036, + issuedDate: '19 Apr 2019', + client: { + address: '78083 Laura Pines', + company: 'Richardson and Sons LLC', + companyEmail: 'pwillis@cross.org', + country: 'Bhutan', + contact: '(687) 660-2473', + name: 'Andrew Burns' + }, + service: 'Unlimited Extended License', + total: 3171, + avatar: require('@src/assets/images/avatars/9-small.png').default, + invoiceStatus: 'Paid', + balance: '-$205', + dueDate: '25 Sep 2019' + } + ] +} + +// ------------------------------------------------ +// GET: Return Invoice List +// ------------------------------------------------ +mock.onGet('/apps/invoice/invoices').reply(config => { + // eslint-disable-next-line object-curly-newline + const { q = '', perPage = 10, page = 1, status = null } = config + /* eslint-enable */ + + const queryLowered = q.toLowerCase() + const filteredData = data.invoices + .filter( + invoice => + /* eslint-disable operator-linebreak, implicit-arrow-linebreak */ + (invoice.client.companyEmail.toLowerCase().includes(queryLowered) || + invoice.client.name.toLowerCase().includes(queryLowered)) && + invoice.invoiceStatus.toLowerCase() === (status.toLowerCase() || invoice.invoiceStatus.toLowerCase()) + ) + .sort(sortCompare('id')) + .reverse() + /* eslint-enable */ + + return [ + 200, + { + allData: data.invoices, + invoices: paginateArray(filteredData, perPage, page), + total: filteredData.length + } + ] +}) + +// ------------------------------------------------ +// GET: Return Single Invoice +// ------------------------------------------------ +mock.onGet(/\/api\/invoice\/invoices\/\d+/).reply(config => { + // // Get event id from URL + const invoiceId = Number(config.url.substring(config.url.lastIndexOf('/') + 1)) + + const invoiceIndex = data.invoices.findIndex(e => e.id === invoiceId) + const responseData = { + invoice: data.invoices[invoiceIndex], + paymentDetails: { + totalDue: '$12,110.55', + bankName: 'American Bank', + country: 'United States', + iban: 'ETD95476213874685', + swiftCode: 'BR91905' + } + } + return [200, responseData] +}) + +// ------------------------------------------------ +// DELETE: Deletes Invoice +// ------------------------------------------------ +mock.onDelete('/apps/invoice/delete').reply(config => { + // Get invoice id from URL + let invoiceId = config.id + + // Convert Id to number + invoiceId = Number(invoiceId) + + const invoiceIndex = data.invoices.findIndex(t => t.id === invoiceId) + data.invoices.splice(invoiceIndex, 1) + + return [200] +}) + +// ------------------------------------------------ +// GET: Return Clients +// ------------------------------------------------ +mock.onGet('/api/invoice/clients').reply(() => { + const clients = data.invoices.map(invoice => invoice.client) + return [200, clients.slice(0, 5)] +}) diff --git a/src/@fake-db/apps/todo.js b/src/@fake-db/apps/todo.js new file mode 100644 index 0000000..3014c03 --- /dev/null +++ b/src/@fake-db/apps/todo.js @@ -0,0 +1,417 @@ +import mock from '../mock' + +const data = { + tasks: [ + { + id: 1, + title: 'Entire change break our wife wide it daughter mention member.', + dueDate: '2020-11-25', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Jacob Ramirez', + avatar: require('@src/assets/images/avatars/12.png').default + }, + tags: ['update'], + isCompleted: false, + isDeleted: false, + isImportant: false + }, + { + id: 2, + title: 'Citizen stand administration step agency century.', + dueDate: '2020-12-14', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Andrew Anderson', + avatar: '' + }, + tags: ['team', 'medium'], + isCompleted: true, + isDeleted: false, + isImportant: false + }, + { + id: 3, + title: 'Meet Jane and ask for coffee ❤️', + dueDate: '2020-11-25', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Benjamin Jacobs', + avatar: '' + }, + tags: ['high'], + isCompleted: false, + isDeleted: false, + isImportant: false + }, + { + id: 4, + title: 'Answer the support tickets and close completed tickets. ', + dueDate: '2020-11-20', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Curtis Schmidt', + avatar: require('@src/assets/images/avatars/9.png').default + }, + tags: ['medium'], + isCompleted: false, + isDeleted: false, + isImportant: true + }, + { + id: 5, + title: 'Test functionality of apps developed by dev team for enhancements. ', + dueDate: '2020-12-06', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Katherine Perkins', + avatar: require('@src/assets/images/avatars/9.png').default + }, + tags: ['medium'], + isCompleted: true, + isDeleted: false, + isImportant: true + }, + { + id: 6, + title: 'Conduct a mini awareness meeting regarding health care. ', + dueDate: '2020-12-06', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'David Murphy', + avatar: '' + }, + tags: ['high', 'medium'], + isCompleted: true, + isDeleted: true, + isImportant: false + }, + { + id: 7, + title: 'Plan new dashboard design with design team for Google app store. ', + dueDate: '2020-12-05', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Karina Miller', + avatar: require('@src/assets/images/avatars/1.png').default + }, + tags: ['medium'], + isCompleted: false, + isDeleted: false, + isImportant: true + }, + { + id: 8, + title: 'Pick up Nats from her school and drop at dance class😁 ', + dueDate: '2020-12-08', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Thomas Moses', + avatar: require('@src/assets/images/avatars/7.png').default + }, + tags: ['low', 'medium'], + isCompleted: false, + isDeleted: false, + isImportant: false + }, + { + id: 9, + title: 'Finish documentation and make it live', + dueDate: '2020-11-25', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Angel Morrow', + avatar: '' + }, + tags: ['high', 'update'], + isCompleted: false, + isDeleted: true, + isImportant: false + }, + { + id: 10, + title: 'List out all the SEO resources and send it to new SEO team. ', + dueDate: '2020-12-09', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Karen Carrillo', + avatar: '' + }, + tags: ['low'], + isCompleted: true, + isDeleted: false, + isImportant: false + }, + { + id: 11, + title: 'Refactor Code and fix the bugs and test it on server ', + dueDate: '2020-12-01', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Timothy Brewer', + avatar: require('@src/assets/images/avatars/1.png').default + }, + tags: ['low'], + isCompleted: true, + isDeleted: false, + isImportant: true + }, + { + id: 12, + title: 'Reminder to mail clients for holidays', + dueDate: '2020-12-09', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Brian Barry', + avatar: '' + }, + tags: ['team'], + isCompleted: false, + isDeleted: false, + isImportant: false + }, + { + id: 13, + title: "Submit quotation for Abid's ecommerce website and admin project", + dueDate: '2020-12-01', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Joshua Golden', + avatar: require('@src/assets/images/avatars/5.png').default + }, + tags: ['team'], + isCompleted: false, + isDeleted: false, + isImportant: false + }, + { + id: 14, + title: 'Send PPT with real-time reports', + dueDate: '2020-11-29', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Paula Hammond', + avatar: require('@src/assets/images/avatars/5.png').default + }, + tags: ['medium'], + isCompleted: true, + isDeleted: false, + isImportant: true + }, + { + id: 15, + title: 'Skype Tommy for project status & report', + dueDate: '2020-11-29', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Tyler Garcia', + avatar: '' + }, + tags: ['medium'], + isCompleted: false, + isDeleted: false, + isImportant: false + }, + { + id: 16, + title: 'Hire 5 new Fresher or Experienced, frontend and backend developers ', + dueDate: '2020-12-12', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Darlene Shields', + avatar: require('@src/assets/images/avatars/1.png').default + }, + tags: ['low'], + isCompleted: true, + isDeleted: false, + isImportant: false + }, + { + id: 17, + title: 'Plan a party for development team 🎁', + dueDate: '2020-12-04', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Destiny Michael', + avatar: '' + }, + tags: ['medium', 'low'], + isCompleted: false, + isDeleted: false, + isImportant: false + }, + { + id: 18, + title: 'Fix Responsiveness for new structure 💻', + dueDate: '2020-11-18', + description: + 'Chocolate cake topping bonbon jujubes donut sweet wafer. Marzipan gingerbread powder brownie bear claw. Chocolate bonbon sesame snaps jelly caramels oat cake.', + assignee: { + fullName: 'Danielle Anderson', + avatar: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default + }, + tags: ['low'], + isCompleted: false, + isDeleted: false, + isImportant: true + } + ] +} + +// ------------------------------------------------ +// GET: Return Tasks +// ------------------------------------------------ +mock.onGet('/apps/todo/tasks').reply(config => { + // eslint-disable-next-line object-curly-newline + const { q = '', filter, tag, sortBy: sortByParam = 'latest' } = config.params + /* eslint-enable */ + // ------------------------------------------------ + // Get Sort by and Sort Direction + // ------------------------------------------------ + let sortDesc = true + + const sortBy = (() => { + if (sortByParam === 'title-asc') { + sortDesc = false + return 'title' + } + if (sortByParam === 'title-desc') return 'title' + if (sortByParam === 'assignee') { + sortDesc = false + return 'assignee' + } + if (sortByParam === 'due-date') { + sortDesc = false + return 'dueDate' + } + return 'id' + })() + + // ------------------------------------------------ + // Filtering + // ------------------------------------------------ + const queryLowered = q.toLowerCase() + + const hasFilter = task => { + if (filter === 'important') return task.isImportant && !task.isDeleted + if (filter === 'completed') return task.isCompleted && !task.isDeleted + if (filter === 'deleted') return task.isDeleted + return !task.isDeleted + } + /* eslint-disable */ + const filteredData = data.tasks.filter(task => { + return task.title.toLowerCase().includes(queryLowered) && hasFilter(task) && (tag ? task.tags.includes(tag) : true) + }) + /* eslint-enable */ + + // ------------------------------------------------ + // Perform sorting + // ------------------------------------------------ + const sortTasks = key => (a, b) => { + let fieldA + let fieldB + + // If sorting is by dueDate => Convert data to date + if (key === 'dueDate') { + fieldA = new Date(a[key]) + fieldB = new Date(b[key]) + // eslint-disable-next-line brace-style + } + + // If sorting is by assignee => Use `fullName` of assignee + else if (key === 'assignee') { + fieldA = a.assignee ? a.assignee.fullName : null + fieldB = b.assignee ? b.assignee.fullName : null + } else { + fieldA = a[key] + fieldB = b[key] + } + + let comparison = 0 + + if (fieldA === fieldB) { + comparison = 0 + } else if (fieldA === null) { + comparison = 1 + } else if (fieldB === null) { + comparison = -1 + } else if (fieldA > fieldB) { + comparison = 1 + } else if (fieldA < fieldB) { + comparison = -1 + } + + return comparison + } + + // Sort Data + const sortedData = filteredData.sort(sortTasks(sortBy)) + if (sortDesc) sortedData.reverse() + return [200, sortedData] +}) + +// ------------------------------------------------ +// POST: Add new task +// ------------------------------------------------ +mock.onPost('/apps/todo/add-tasks').reply(config => { + // Get event from post data + const { task } = JSON.parse(config.data) + + const { length } = data.tasks + let lastIndex = 0 + if (length) { + lastIndex = data.tasks[length - 1].id + } + task.id = lastIndex + 1 + + data.tasks.push(task) + + return [201, { task }] +}) + +// ------------------------------------------------ +// POST: Update Task +// ------------------------------------------------ +mock.onPost('/apps/todo/update-task').reply(config => { + const taskData = JSON.parse(config.data).task + + // Convert Id to number + taskData.id = Number(taskData.id) + + const task = data.tasks.find(e => e.id === Number(taskData.id)) + Object.assign(task, taskData) + + return [200, { task }] +}) + +// ------------------------------------------------ +// DELETE: Remove Task +// ------------------------------------------------ +mock.onDelete('/apps/todo/delete-task').reply(config => { + // Get task id from URL + let taskId = config.taskId + + // Convert Id to number + taskId = Number(taskId) + + const task = data.tasks.find(t => t.id === taskId) + Object.assign(task, { isDeleted: true }) + return [200] +}) diff --git a/src/@fake-db/apps/userList.js b/src/@fake-db/apps/userList.js new file mode 100644 index 0000000..0ff077d --- /dev/null +++ b/src/@fake-db/apps/userList.js @@ -0,0 +1,722 @@ +import mock from '../mock' +import { paginateArray } from '../utils' + +const data = { + users: [ + { + id: 1, + fullName: 'Galen Slixby', + company: 'Yotz PVT LTD', + role: 'editor', + username: 'gslixby0', + country: 'El Salvador', + contact: '(479) 232-9151', + email: 'gslixby0@abc.net.au', + currentPlan: 'enterprise', + status: 'inactive', + avatar: '' + }, + { + id: 2, + fullName: 'Halsey Redmore', + company: 'Skinder PVT LTD', + role: 'author', + username: 'hredmore1', + country: 'Albania', + contact: '(472) 607-9137', + email: 'hredmore1@imgur.com', + currentPlan: 'team', + status: 'pending', + avatar: require('@src/assets/images/avatars/10.png').default + }, + { + id: 3, + fullName: 'Marjory Sicely', + company: 'Oozz PVT LTD', + role: 'maintainer', + username: 'msicely2', + country: 'Russia', + contact: '(321) 264-4599', + email: 'msicely2@who.int', + currentPlan: 'enterprise', + status: 'active', + avatar: require('@src/assets/images/avatars/1.png').default + }, + { + id: 4, + fullName: 'Cyrill Risby', + company: 'Oozz PVT LTD', + role: 'maintainer', + username: 'crisby3', + country: 'China', + contact: '(923) 690-6806', + email: 'crisby3@wordpress.com', + currentPlan: 'team', + status: 'inactive', + avatar: require('@src/assets/images/avatars/9.png').default + }, + { + id: 5, + fullName: 'Maggy Hurran', + company: 'Aimbo PVT LTD', + role: 'subscriber', + username: 'mhurran4', + country: 'Pakistan', + contact: '(669) 914-1078', + email: 'mhurran4@yahoo.co.jp', + currentPlan: 'enterprise', + status: 'pending', + avatar: require('@src/assets/images/avatars/10.png').default + }, + { + id: 6, + fullName: 'Silvain Halstead', + company: 'Jaxbean PVT LTD', + role: 'author', + username: 'shalstead5', + country: 'China', + contact: '(958) 973-3093', + email: 'shalstead5@shinystat.com', + currentPlan: 'company', + status: 'active', + avatar: '' + }, + { + id: 7, + fullName: 'Breena Gallemore', + company: 'Jazzy PVT LTD', + role: 'subscriber', + username: 'bgallemore6', + country: 'Canada', + contact: '(825) 977-8152', + email: 'bgallemore6@boston.com', + currentPlan: 'company', + status: 'pending', + avatar: '' + }, + { + id: 8, + fullName: 'Kathryne Liger', + company: 'Pixoboo PVT LTD', + role: 'author', + username: 'kliger7', + country: 'France', + contact: '(187) 440-0934', + email: 'kliger7@vinaora.com', + currentPlan: 'enterprise', + status: 'pending', + avatar: require('@src/assets/images/avatars/9.png').default + }, + { + id: 9, + fullName: 'Franz Scotfurth', + company: 'Tekfly PVT LTD', + role: 'subscriber', + username: 'fscotfurth8', + country: 'China', + contact: '(978) 146-5443', + email: 'fscotfurth8@dailymotion.com', + currentPlan: 'team', + status: 'pending', + avatar: require('@src/assets/images/avatars/2.png').default + }, + { + id: 10, + fullName: 'Jillene Bellany', + company: 'Gigashots PVT LTD', + role: 'maintainer', + username: 'jbellany9', + country: 'Jamaica', + contact: '(589) 284-6732', + email: 'jbellany9@kickstarter.com', + currentPlan: 'company', + status: 'inactive', + avatar: require('@src/assets/images/avatars/9.png').default + }, + { + id: 11, + fullName: 'Jonah Wharlton', + company: 'Eare PVT LTD', + role: 'subscriber', + username: 'jwharltona', + country: 'United States', + contact: '(176) 532-6824', + email: 'jwharltona@oakley.com', + currentPlan: 'team', + status: 'inactive', + avatar: require('@src/assets/images/avatars/4.png').default + }, + { + id: 12, + fullName: 'Seth Hallam', + company: 'Yakitri PVT LTD', + role: 'subscriber', + username: 'shallamb', + country: 'Peru', + contact: '(234) 464-0600', + email: 'shallamb@hugedomains.com', + currentPlan: 'team', + status: 'pending', + avatar: require('@src/assets/images/avatars/5.png').default + }, + { + id: 13, + fullName: 'Yoko Pottie', + company: 'Leenti PVT LTD', + role: 'subscriber', + username: 'ypottiec', + country: 'Philippines', + contact: '(907) 284-5083', + email: 'ypottiec@privacy.gov.au', + currentPlan: 'basic', + status: 'inactive', + avatar: require('@src/assets/images/avatars/7.png').default + }, + { + id: 14, + fullName: 'Maximilianus Krause', + company: 'Digitube PVT LTD', + role: 'author', + username: 'mkraused', + country: 'Democratic Republic of the Congo', + contact: '(167) 135-7392', + email: 'mkraused@stanford.edu', + currentPlan: 'team', + status: 'active', + avatar: require('@src/assets/images/avatars/9.png').default + }, + { + id: 15, + fullName: 'Zsazsa McCleverty', + company: 'Kaymbo PVT LTD', + role: 'maintainer', + username: 'zmcclevertye', + country: 'France', + contact: '(317) 409-6565', + email: 'zmcclevertye@soundcloud.com', + currentPlan: 'enterprise', + status: 'active', + avatar: require('@src/assets/images/avatars/2.png').default + }, + { + id: 16, + fullName: 'Bentlee Emblin', + company: 'Yambee PVT LTD', + role: 'author', + username: 'bemblinf', + country: 'Spain', + contact: '(590) 606-1056', + email: 'bemblinf@wired.com', + currentPlan: 'company', + status: 'active', + avatar: require('@src/assets/images/avatars/6.png').default + }, + { + id: 17, + fullName: 'Brockie Myles', + company: 'Wikivu PVT LTD', + role: 'maintainer', + username: 'bmylesg', + country: 'Poland', + contact: '(553) 225-9905', + email: 'bmylesg@amazon.com', + currentPlan: 'basic', + status: 'active', + avatar: '' + }, + { + id: 18, + fullName: 'Bertha Biner', + company: 'Twinte PVT LTD', + role: 'editor', + username: 'bbinerh', + country: 'Yemen', + contact: '(901) 916-9287', + email: 'bbinerh@mozilla.com', + currentPlan: 'team', + status: 'active', + avatar: require('@src/assets/images/avatars/7.png').default + }, + { + id: 19, + fullName: 'Travus Bruntjen', + company: 'Cogidoo PVT LTD', + role: 'admin', + username: 'tbruntjeni', + country: 'France', + contact: '(524) 586-6057', + email: 'tbruntjeni@sitemeter.com', + currentPlan: 'enterprise', + status: 'active', + avatar: '' + }, + { + id: 20, + fullName: 'Wesley Burland', + company: 'Bubblemix PVT LTD', + role: 'editor', + username: 'wburlandj', + country: 'Honduras', + contact: '(569) 683-1292', + email: 'wburlandj@uiuc.edu', + currentPlan: 'team', + status: 'inactive', + avatar: require('@src/assets/images/avatars/6.png').default + }, + { + id: 21, + fullName: 'Selina Kyle', + company: 'Wayne Enterprises', + role: 'admin', + username: 'catwomen1940', + country: 'USA', + contact: '(829) 537-0057', + email: 'irena.dubrovna@wayne.com', + currentPlan: 'team', + status: 'active', + avatar: require('@src/assets/images/avatars/1.png').default + }, + { + id: 22, + fullName: 'Jameson Lyster', + company: 'Quaxo PVT LTD', + role: 'editor', + username: 'jlysterl', + country: 'Ukraine', + contact: '(593) 624-0222', + email: 'jlysterl@guardian.co.uk', + currentPlan: 'company', + status: 'inactive', + avatar: require('@src/assets/images/avatars/8.png').default + }, + { + id: 23, + fullName: 'Kare Skitterel', + company: 'Ainyx PVT LTD', + role: 'maintainer', + username: 'kskitterelm', + country: 'Poland', + contact: '(254) 845-4107', + email: 'kskitterelm@washingtonpost.com', + currentPlan: 'basic', + status: 'pending', + avatar: require('@src/assets/images/avatars/3.png').default + }, + { + id: 24, + fullName: 'Cleavland Hatherleigh', + company: 'Flipopia PVT LTD', + role: 'admin', + username: 'chatherleighn', + country: 'Brazil', + contact: '(700) 783-7498', + email: 'chatherleighn@washington.edu', + currentPlan: 'team', + status: 'pending', + avatar: require('@src/assets/images/avatars/2.png').default + }, + { + id: 25, + fullName: 'Adeline Micco', + company: 'Topicware PVT LTD', + role: 'admin', + username: 'amiccoo', + country: 'France', + contact: '(227) 598-1841', + email: 'amiccoo@whitehouse.gov', + currentPlan: 'enterprise', + status: 'pending', + avatar: '' + }, + { + id: 26, + fullName: 'Hugh Hasson', + company: 'Skinix PVT LTD', + role: 'admin', + username: 'hhassonp', + country: 'China', + contact: '(582) 516-1324', + email: 'hhassonp@bizjournals.com', + currentPlan: 'basic', + status: 'inactive', + avatar: require('@src/assets/images/avatars/4.png').default + }, + { + id: 27, + fullName: 'Germain Jacombs', + company: 'Youopia PVT LTD', + role: 'editor', + username: 'gjacombsq', + country: 'Zambia', + contact: '(137) 467-5393', + email: 'gjacombsq@jigsy.com', + currentPlan: 'enterprise', + status: 'active', + avatar: require('@src/assets/images/avatars/10.png').default + }, + { + id: 28, + fullName: 'Bree Kilday', + company: 'Jetpulse PVT LTD', + role: 'maintainer', + username: 'bkildayr', + country: 'Portugal', + contact: '(412) 476-0854', + email: 'bkildayr@mashable.com', + currentPlan: 'team', + status: 'active', + avatar: '' + }, + { + id: 29, + fullName: 'Candice Pinyon', + company: 'Kare PVT LTD', + role: 'maintainer', + username: 'cpinyons', + country: 'Sweden', + contact: '(170) 683-1520', + email: 'cpinyons@behance.net', + currentPlan: 'team', + status: 'active', + avatar: require('@src/assets/images/avatars/7.png').default + }, + { + id: 30, + fullName: 'Isabel Mallindine', + company: 'Voomm PVT LTD', + role: 'subscriber', + username: 'imallindinet', + country: 'Slovenia', + contact: '(332) 803-1983', + email: 'imallindinet@shinystat.com', + currentPlan: 'team', + status: 'pending', + avatar: '' + }, + { + id: 31, + fullName: 'Gwendolyn Meineken', + company: 'Oyondu PVT LTD', + role: 'admin', + username: 'gmeinekenu', + country: 'Moldova', + contact: '(551) 379-7460', + email: 'gmeinekenu@hc360.com', + currentPlan: 'basic', + status: 'pending', + avatar: require('@src/assets/images/avatars/1.png').default + }, + { + id: 32, + fullName: 'Rafaellle Snowball', + company: 'Fivespan PVT LTD', + role: 'editor', + username: 'rsnowballv', + country: 'Philippines', + contact: '(974) 829-0911', + email: 'rsnowballv@indiegogo.com', + currentPlan: 'basic', + status: 'pending', + avatar: require('@src/assets/images/avatars/5.png').default + }, + { + id: 33, + fullName: 'Rochette Emer', + company: 'Thoughtworks PVT LTD', + role: 'admin', + username: 'remerw', + country: 'North Korea', + contact: '(841) 889-3339', + email: 'remerw@blogtalkradio.com', + currentPlan: 'basic', + status: 'active', + avatar: require('@src/assets/images/avatars/8.png').default + }, + { + id: 34, + fullName: 'Ophelie Fibbens', + company: 'Jaxbean PVT LTD', + role: 'subscriber', + username: 'ofibbensx', + country: 'Indonesia', + contact: '(764) 885-7351', + email: 'ofibbensx@booking.com', + currentPlan: 'company', + status: 'active', + avatar: require('@src/assets/images/avatars/4.png').default + }, + { + id: 35, + fullName: 'Stephen MacGilfoyle', + company: 'Browseblab PVT LTD', + role: 'maintainer', + username: 'smacgilfoyley', + country: 'Japan', + contact: '(350) 589-8520', + email: 'smacgilfoyley@bigcartel.com', + currentPlan: 'company', + status: 'pending', + avatar: '' + }, + { + id: 36, + fullName: 'Bradan Rosebotham', + company: 'Agivu PVT LTD', + role: 'subscriber', + username: 'brosebothamz', + country: 'Belarus', + contact: '(882) 933-2180', + email: 'brosebothamz@tripadvisor.com', + currentPlan: 'team', + status: 'inactive', + avatar: '' + }, + { + id: 37, + fullName: 'Skip Hebblethwaite', + company: 'Katz PVT LTD', + role: 'admin', + username: 'shebblethwaite10', + country: 'Canada', + contact: '(610) 343-1024', + email: 'shebblethwaite10@arizona.edu', + currentPlan: 'company', + status: 'inactive', + avatar: require('@src/assets/images/avatars/9.png').default + }, + { + id: 38, + fullName: 'Moritz Piccard', + company: 'Twitternation PVT LTD', + role: 'maintainer', + username: 'mpiccard11', + country: 'Croatia', + contact: '(365) 277-2986', + email: 'mpiccard11@vimeo.com', + currentPlan: 'enterprise', + status: 'inactive', + avatar: require('@src/assets/images/avatars/1.png').default + }, + { + id: 39, + fullName: 'Tyne Widmore', + company: 'Yombu PVT LTD', + role: 'subscriber', + username: 'twidmore12', + country: 'Finland', + contact: '(531) 731-0928', + email: 'twidmore12@bravesites.com', + currentPlan: 'team', + status: 'pending', + avatar: '' + }, + { + id: 40, + fullName: 'Florenza Desporte', + company: 'Kamba PVT LTD', + role: 'author', + username: 'fdesporte13', + country: 'Ukraine', + contact: '(312) 104-2638', + email: 'fdesporte13@omniture.com', + currentPlan: 'company', + status: 'active', + avatar: require('@src/assets/images/avatars/6.png').default + }, + { + id: 41, + fullName: 'Edwina Baldetti', + company: 'Dazzlesphere PVT LTD', + role: 'maintainer', + username: 'ebaldetti14', + country: 'Haiti', + contact: '(315) 329-3578', + email: 'ebaldetti14@theguardian.com', + currentPlan: 'team', + status: 'pending', + avatar: '' + }, + { + id: 42, + fullName: 'Benedetto Rossiter', + company: 'Mybuzz PVT LTD', + role: 'editor', + username: 'brossiter15', + country: 'Indonesia', + contact: '(323) 175-6741', + email: 'brossiter15@craigslist.org', + currentPlan: 'team', + status: 'inactive', + avatar: '' + }, + { + id: 43, + fullName: 'Micaela McNirlan', + company: 'Tambee PVT LTD', + role: 'admin', + username: 'mmcnirlan16', + country: 'Indonesia', + contact: '(242) 952-0916', + email: 'mmcnirlan16@hc360.com', + currentPlan: 'basic', + status: 'inactive', + avatar: '' + }, + { + id: 44, + fullName: 'Vladamir Koschek', + company: 'Centimia PVT LTD', + role: 'author', + username: 'vkoschek17', + country: 'Guatemala', + contact: '(531) 758-8335', + email: 'vkoschek17@abc.net.au', + currentPlan: 'team', + status: 'active', + avatar: '' + }, + { + id: 45, + fullName: 'Corrie Perot', + company: 'Flipopia PVT LTD', + role: 'subscriber', + username: 'cperot18', + country: 'China', + contact: '(659) 385-6808', + email: 'cperot18@goo.ne.jp', + currentPlan: 'team', + status: 'pending', + avatar: require('@src/assets/images/avatars/3.png').default + }, + { + id: 46, + fullName: 'Saunder Offner', + company: 'Skalith PVT LTD', + role: 'maintainer', + username: 'soffner19', + country: 'Poland', + contact: '(200) 586-2264', + email: 'soffner19@mac.com', + currentPlan: 'enterprise', + status: 'pending', + avatar: '' + }, + { + id: 47, + fullName: 'Karena Courtliff', + company: 'Feedfire PVT LTD', + role: 'admin', + username: 'kcourtliff1a', + country: 'China', + contact: '(478) 199-0020', + email: 'kcourtliff1a@bbc.co.uk', + currentPlan: 'basic', + status: 'active', + avatar: require('@src/assets/images/avatars/1.png').default + }, + { + id: 48, + fullName: 'Onfre Wind', + company: 'Thoughtmix PVT LTD', + role: 'admin', + username: 'owind1b', + country: 'Ukraine', + contact: '(344) 262-7270', + email: 'owind1b@yandex.ru', + currentPlan: 'basic', + status: 'pending', + avatar: '' + }, + { + id: 49, + fullName: 'Paulie Durber', + company: 'Babbleblab PVT LTD', + role: 'subscriber', + username: 'pdurber1c', + country: 'Sweden', + contact: '(694) 676-1275', + email: 'pdurber1c@gov.uk', + currentPlan: 'team', + status: 'inactive', + avatar: '' + }, + { + id: 50, + fullName: 'Beverlie Krabbe', + company: 'Kaymbo PVT LTD', + role: 'editor', + username: 'bkrabbe1d', + country: 'China', + contact: '(397) 294-5153', + email: 'bkrabbe1d@home.pl', + currentPlan: 'company', + status: 'active', + avatar: require('@src/assets/images/avatars/9.png').default + } + ] +} + +// GET ALL DATA +mock.onGet('/api/users/list/all-data').reply(200, data.users) + +// POST: Add new user +mock.onPost('/apps/users/add-user').reply(config => { + // Get event from post data + const user = JSON.parse(config.data) + + const { length } = data.users + let lastIndex = 0 + if (length) { + lastIndex = data.users[length - 1].id + } + user.id = lastIndex + 1 + + data.users.unshift(user) + + return [201, { user }] +}) + +// GET Updated DATA +mock.onGet('/api/users/list/data').reply(config => { + const { q = '', perPage = 10, page = 1, role = null, currentPlan = null, status = null } = config + + /* eslint-disable */ + const queryLowered = q.toLowerCase() + const filteredData = data.users.filter( + user => + (user.username.toLowerCase().includes(queryLowered) || user.fullName.toLowerCase().includes(queryLowered)) && + user.role === (role || user.role) && + user.currentPlan === (currentPlan || user.currentPlan) && + user.status === (status || user.status) + ) + /* eslint-enable */ + + return [ + 200, + { + users: paginateArray(filteredData, perPage, page), + total: filteredData.length + } + ] +}) + +// GET USER +mock.onGet('/api/users/user').reply(config => { + const { id } = config + const user = data.users.find(i => i.id === id) + return [200, { user }] +}) + +// DELETE: Deletes User +mock.onDelete('/apps/users/delete').reply(config => { + // Get user id from URL + let userId = config.id + + // Convert Id to number + userId = Number(userId) + + const userIndex = data.users.findIndex(t => t.id === userId) + data.users.splice(userIndex, 1) + + return [200] +}) diff --git a/src/@fake-db/autoComplete/autoComplete.js b/src/@fake-db/autoComplete/autoComplete.js new file mode 100644 index 0000000..375e968 --- /dev/null +++ b/src/@fake-db/autoComplete/autoComplete.js @@ -0,0 +1,508 @@ +import mock from '../mock' + +const autoComplete = [ + { + title: 'The Shawshank Redemption', + rank: '1', + id: 'tt0111161' + }, + { + title: 'The Godfather', + rank: '2', + id: 'tt0068646' + }, + { + title: 'The Godfather: Part II', + rank: '3', + id: 'tt0071562' + }, + { + title: 'Pulp Fiction', + rank: '4', + id: 'tt0110912' + }, + { + title: 'The Good, the Bad and the Ugly', + rank: '5', + id: 'tt0060196' + }, + { + title: 'The Dark Knight', + rank: '6', + id: 'tt0468569' + }, + { + title: '12 Angry Men', + rank: '7', + id: 'tt0050083' + }, + { + title: 'Schindler\'s List', + rank: '8', + id: 'tt0108052' + }, + { + title: 'The Lord of the Rings: The Return of the King', + rank: '9', + id: 'tt0167260' + }, + { + title: 'Fight Club', + rank: '10', + id: 'tt0137523' + }, + { + title: 'Star Wars: Episode V - The Empire Strikes Back', + rank: '11', + id: 'tt0080684' + }, + { + title: 'The Lord of the Rings: The Fellowship of the Ring', + rank: '12', + id: 'tt0120737' + }, + { + title: 'One Flew Over the Cuckoo\'s Nest', + rank: '13', + id: 'tt0073486' + }, + { + title: 'Inception', + rank: '14', + id: 'tt1375666' + }, + { + title: 'Goodfellas', + rank: '15', + id: 'tt0099685' + }, + { + title: 'Star Wars', + rank: '16', + id: 'tt0076759' + }, + { + title: 'Seven Samurai', + rank: '17', + id: 'tt0047478' + }, + { + title: 'Forrest Gump', + rank: '18', + id: 'tt0109830' + }, + { + title: 'The Matrix', + rank: '19', + id: 'tt0133093' + }, + { + title: 'The Lord of the Rings: The Two Towers', + rank: '20', + id: 'tt0167261' + }, + { + title: 'City of God', + rank: '21', + id: 'tt0317248' + }, + { + title: 'Se7en', + rank: '22', + id: 'tt0114369' + }, + { + title: 'The Silence of the Lambs', + rank: '23', + id: 'tt0102926' + }, + { + title: 'Once Upon a Time in the West', + rank: '24', + id: 'tt0064116' + }, + { + title: 'Casablanca', + rank: '25', + id: 'tt0034583' + }, + { + title: 'The Usual Suspects', + rank: '26', + id: 'tt0114814' + }, + { + title: 'Raiders of the Lost Ark', + rank: '27', + id: 'tt0082971' + }, + { + title: 'Rear Window', + rank: '28', + id: 'tt0047396' + }, + { + title: 'It\'s a Wonderful Life', + rank: '29', + id: 'tt0038650' + }, + { + title: 'Psycho', + rank: '30', + id: 'tt0054215' + }, + { + title: 'Léon: The Professional', + rank: '31', + id: 'tt0110413' + }, + { + title: 'Sunset Blvd.', + rank: '32', + id: 'tt0043014' + }, + { + title: 'American History X', + rank: '33', + id: 'tt0120586' + }, + { + title: 'Apocalypse Now', + rank: '34', + id: 'tt0078788' + }, + { + title: 'Terminator 2: Judgment Day', + rank: '35', + id: 'tt0103064' + }, + { + title: 'Saving Private Ryan', + rank: '36', + id: 'tt0120815' + }, + { + title: 'Memento', + rank: '37', + id: 'tt0209144' + }, + { + title: 'City Lights', + rank: '38', + id: 'tt0021749' + }, + { + title: 'Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb', + rank: '39', + id: 'tt0057012' + }, + { + title: 'Alien', + rank: '40', + id: 'tt0078748' + }, + { + title: 'Modern Times', + rank: '41', + id: 'tt0027977' + }, + { + title: 'Spirited Away', + rank: '42', + id: 'tt0245429' + }, + { + title: 'North by Northwest', + rank: '43', + id: 'tt0053125' + }, + { + title: 'Back to the Future', + rank: '44', + id: 'tt0088763' + }, + { + title: 'Life Is Beautiful', + rank: '45', + id: 'tt0118799' + }, + { + title: 'The Shining', + rank: '46', + id: 'tt0081505' + }, + { + title: 'The Pianist', + rank: '47', + id: 'tt0253474' + }, + { + title: 'Citizen Kane', + rank: '48', + id: 'tt0033467' + }, + { + title: 'The Departed', + rank: '49', + id: 'tt0407887' + }, + { + title: 'M', + rank: '50', + id: 'tt0022100' + }, + { + title: 'Paths of Glory', + rank: '51', + id: 'tt0050825' + }, + { + title: 'Vertigo', + rank: '52', + id: 'tt0052357' + }, + { + title: 'Django Unchained', + rank: '53', + id: 'tt1853728' + }, + { + title: 'Double Indemnity', + rank: '54', + id: 'tt0036775' + }, + { + title: 'The Dark Knight Rises', + rank: '55', + id: 'tt1345836' + }, + { + title: 'Aliens', + rank: '56', + id: 'tt0090605' + }, + { + title: 'Taxi Driver', + rank: '57', + id: 'tt0075314' + }, + { + title: 'American Beauty', + rank: '58', + id: 'tt0169547' + }, + { + title: 'The Green Mile', + rank: '59', + id: 'tt0120689' + }, + { + title: 'Gladiator', + rank: '60', + id: 'tt0172495' + }, + { + title: 'The Intouchables', + rank: '61', + id: 'tt1675434' + }, + { + title: 'WALL·E', + rank: '62', + id: 'tt0910970' + }, + { + title: 'The Lives of Others', + rank: '63', + id: 'tt0405094' + }, + { + title: 'Toy Story 3', + rank: '64', + id: 'tt0435761' + }, + { + title: 'The Great Dictator', + rank: '65', + id: 'tt0032553' + }, + { + title: 'The Prestige', + rank: '66', + id: 'tt0482571' + }, + { + title: 'A Clockwork Orange', + rank: '67', + id: 'tt0066921' + }, + { + title: 'Lawrence of Arabia', + rank: '68', + id: 'tt0056172' + }, + { + title: 'Amélie', + rank: '69', + id: 'tt0211915' + }, + { + title: 'To Kill a Mockingbird', + rank: '70', + id: 'tt0056592' + }, + { + title: 'Reservoir Dogs', + rank: '71', + id: 'tt0105236' + }, + { + title: 'Das Boot', + rank: '72', + id: 'tt0082096' + }, + { + title: 'The Lion King', + rank: '73', + id: 'tt0110357' + }, + { + title: 'Cinema Paradiso', + rank: '74', + id: 'tt0095765' + }, + { + title: 'Star Wars: Episode VI - Return of the Jedi', + rank: '75', + id: 'tt0086190' + }, + { + title: 'The Treasure of the Sierra Madre', + rank: '76', + id: 'tt0040897' + }, + { + title: 'The Third Man', + rank: '77', + id: 'tt0041959' + }, + { + title: 'Once Upon a Time in America', + rank: '78', + id: 'tt0087843' + }, + { + title: 'Requiem for a Dream', + rank: '79', + id: 'tt0180093' + }, + { + title: 'Eternal Sunshine of the Spotless Mind', + rank: '80', + id: 'tt0338013' + }, + { + title: 'Full Metal Jacket', + rank: '81', + id: 'tt0093058' + }, + { + title: 'Oldboy', + rank: '82', + id: 'tt0364569' + }, + { + title: 'Braveheart', + rank: '83', + id: 'tt0112573' + }, + { + title: 'L.A. Confidential', + rank: '84', + id: 'tt0119488' + }, + { + title: 'Bicycle Thieves', + rank: '85', + id: 'tt0040522' + }, + { + title: 'Chinatown', + rank: '86', + id: 'tt0071315' + }, + { + title: 'Singin\' in the Rain', + rank: '87', + id: 'tt0045152' + }, + { + title: 'Princess Mononoke', + rank: '88', + id: 'tt0119698' + }, + { + title: 'Monty Python and the Holy Grail', + rank: '89', + id: 'tt0071853' + }, + { + title: 'Metropolis', + rank: '90', + id: 'tt0017136' + }, + { + title: 'Rashomon', + rank: '91', + id: 'tt0042876' + }, + { + title: 'Some Like It Hot', + rank: '92', + id: 'tt0053291' + }, + { + title: 'Amadeus', + rank: '93', + id: 'tt0086879' + }, + { + title: '2001: A Space Odyssey', + rank: '94', + id: 'tt0062622' + }, + { + title: 'All About Eve', + rank: '95', + id: 'tt0042192' + }, + { + title: 'Witness for the Prosecution', + rank: '96', + id: 'tt0051201' + }, + { + title: 'The Sting', + rank: '97', + id: 'tt0070735' + }, + { + title: 'The Apartment', + rank: '98', + id: 'tt0053604' + }, + { + title: 'Grave of the Fireflies', + rank: '99', + id: 'tt0095327' + }, + { + title: 'Indiana Jones and the Last Crusade', + rank: '100', + id: 'tt0097576' + } +] + +mock.onGet('/api/autocomplete/data').reply(200, { + autoComplete +}) diff --git a/src/@fake-db/cards/card-analytics.js b/src/@fake-db/cards/card-analytics.js new file mode 100644 index 0000000..af76160 --- /dev/null +++ b/src/@fake-db/cards/card-analytics.js @@ -0,0 +1,96 @@ +import mock from '../mock' + +const data = { + support_tracker: { + title: 'Support Tracker', + last_days: ['Last 28 Days', 'Last Month', 'Last Year'], + totalTicket: 163, + newTicket: 29, + openTicket: 63, + responseTime: 1 + }, + avg_sessions: { + sessions: 2700, + last_days: ['Last 28 Days', 'Last Month', 'Last Year'], + growth: '+5.2%', + goal: 100000, + users: 100000, + retention: 90, + duration: 1 + }, + revenue_report: { + years: ['2020', '2019', '2018'], + price: '25,852', + budget: '56,800' + }, + goal_overview: { + completed: '786,617', + inProgress: '13,561' + }, + revenue: { + thisMonth: '86,589', + lastMonth: '73,683' + }, + product_orders: { + last_days: ['Last 28 Days', 'Last Month', 'Last Year'], + chart_info: { finished: 23043, pending: 14658, rejected: 4758 } + }, + sessions_device: { + last_days: ['Last 28 Days', 'Last Month', 'Last Year'], + chart_info: [ + { + icon: 'Monitor', + name: 'Desktop', + iconColor: 'text-primary', + usage: 58.6, + upDown: 2 + }, + { + icon: 'Tablet', + name: 'Mobile', + iconColor: 'text-warning', + usage: 34.9, + upDown: 8 + }, + { + icon: 'Tablet', + name: 'Tablet', + iconColor: 'text-danger', + usage: 6.5, + upDown: -5 + } + ] + }, + customers: { + last_days: ['Last 28 Days', 'Last Month', 'Last Year'], + listData: [ + { + icon: 'Circle', + iconColor: 'text-primary', + text: 'New', + result: 690 + }, + { + icon: 'Circle', + iconColor: 'text-warning', + text: 'Returning', + result: 258 + }, + { + icon: 'Circle', + iconColor: 'text-danger', + text: 'Referrals', + result: 149 + } + ] + } +} + +mock.onGet('/card/card-analytics/support-tracker').reply(() => [200, data.support_tracker]) +mock.onGet('/card/card-analytics/avg-sessions').reply(() => [200, data.avg_sessions]) +mock.onGet('/card/card-analytics/revenue-report').reply(() => [200, data.revenue_report]) +mock.onGet('/card/card-analytics/goal-overview').reply(() => [200, data.goal_overview]) +mock.onGet('/card/card-analytics/revenue').reply(() => [200, data.revenue]) +mock.onGet('/card/card-analytics/product-orders').reply(() => [200, data.product_orders]) +mock.onGet('/card/card-analytics/sessions-device').reply(() => [200, data.sessions_device]) +mock.onGet('/card/card-analytics/customers').reply(() => [200, data.customers]) diff --git a/src/@fake-db/cards/card-statistics.js b/src/@fake-db/cards/card-statistics.js new file mode 100644 index 0000000..d6d3144 --- /dev/null +++ b/src/@fake-db/cards/card-statistics.js @@ -0,0 +1,109 @@ +import mock from '../mock' + +const data = { + orders_bar_chart: { + title: 'Orders', + statistics: '2,76k', + series: [ + { + name: '2020', + data: [45, 85, 65, 45, 65] + } + ] + }, + profit_line_chart: { + title: 'Profit', + statistics: '6,24k', + series: [ + { + data: [0, 20, 5, 30, 15, 45] + } + ] + }, + subscribers_gained: { + series: [ + { + name: 'Subscribers', + data: [28, 40, 36, 52, 38, 60, 55] + } + ], + analyticsData: { + subscribers: 92600 + } + }, + revenueGenerated: { + series: [ + { + name: 'Revenue', + data: [350, 275, 400, 300, 350, 300, 450] + } + ], + analyticsData: { + revenue: 97500 + } + }, + quarterlySales: { + series: [ + { + name: 'Sales', + data: [10, 15, 7, 12, 3, 16] + } + ], + analyticsData: { + sales: '36%' + } + }, + ordersRecevied: { + series: [ + { + name: 'Orders', + data: [10, 15, 8, 15, 7, 12, 8] + } + ], + analyticsData: { + orders: 97500 + } + }, + siteTraffic: { + series: [ + { + name: 'Traffic Rate', + data: [150, 200, 125, 225, 200, 250] + } + ] + }, + activeUsers: { + series: [ + { + name: 'Active Users', + data: [750, 1000, 900, 1250, 1000, 1200, 1100] + } + ] + }, + newsletter: { + series: [ + { + name: 'Newsletter', + data: [365, 390, 365, 400, 375, 400] + } + ] + } +} + +mock.onGet('/card/card-statistics/orders-bar-chart').reply(() => [200, data.orders_bar_chart]) + +mock.onGet('/card/card-statistics/profit-line-chart').reply(() => [200, data.profit_line_chart]) + +mock.onGet('/card/card-statistics/subscribers').reply(() => [200, data.subscribers_gained]) + +mock.onGet('/card/card-statistics/revenue').reply(() => [200, data.revenueGenerated]) + +mock.onGet('/card/card-statistics/sales').reply(() => [200, data.quarterlySales]) + +mock.onGet('/card/card-statistics/orders').reply(() => [200, data.ordersRecevied]) + +mock.onGet('/card/card-statistics/site-traffic').reply(() => [200, data.siteTraffic]) + +mock.onGet('/card/card-statistics/active-users').reply(() => [200, data.activeUsers]) + +mock.onGet('/card/card-statistics/newsletter').reply(() => [200, data.newsletter]) diff --git a/src/@fake-db/index.js b/src/@fake-db/index.js new file mode 100644 index 0000000..10e5e7e --- /dev/null +++ b/src/@fake-db/index.js @@ -0,0 +1,22 @@ +import mock from './mock' +import './tables/datatables' +import './autoComplete/autoComplete' +import './navbar/navbarSearch' +import './apps/email' +import './apps/chat' +import './apps/todo' +import './apps/calendar' +import './apps/userList' +import './apps/invoice' +import './apps/eCommerce' +import './pages/account-settings' +import './pages/profile' +import './pages/faq' +import './pages/knowledge-base' +import './pages/pricing-data' +import './pages/blog-data' +import './cards/card-analytics' +import './cards/card-statistics' +import './jwt' + +mock.onAny().passThrough() diff --git a/src/@fake-db/jwt/index.js b/src/@fake-db/jwt/index.js new file mode 100644 index 0000000..e11672e --- /dev/null +++ b/src/@fake-db/jwt/index.js @@ -0,0 +1,170 @@ +import mock from '../mock' +import jwt from 'jsonwebtoken' + +const data = { + users: [ + { + id: 1, + fullName: 'John Doe', + username: 'johndoe', + password: 'admin', + avatar: require('@src/assets/images/portrait/small/avatar-s-11.jpg').default, + email: 'admin@demo.com', + role: 'admin', + ability: [ + { + action: 'manage', + subject: 'all' + } + ], + extras: { + eCommerceCartItemsCount: 5 + } + }, + { + id: 2, + fullName: 'Jane Doe', + username: 'janedoe', + password: 'client', + avatar: require('@src/assets/images/avatars/1-small.png').default, + email: 'client@demo.com', + role: 'client', + ability: [ + { + action: 'read', + subject: 'ACL' + }, + { + action: 'read', + subject: 'Auth' + } + ], + extras: { + eCommerceCartItemsCount: 5 + } + } + ] +} + +// ! These two secrets shall be in .env file and not in any other file +const jwtConfig = { + secret: 'dd5f3089-40c3-403d-af14-d0c228b05cb4', + refreshTokenSecret: '7c4c1c50-3230-45bf-9eae-c9b2e401c767', + expireTime: '10m', + refreshTokenExpireTime: '10m' +} + +mock.onPost('/jwt/login').reply(request => { + const { email, password } = JSON.parse(request.data) + + let error = { + email: ['Something went wrong'] + } + + const user = data.users.find(u => u.email === email && u.password === password) + + if (user) { + try { + const accessToken = jwt.sign({ id: user.id }, jwtConfig.secret, { expiresIn: jwtConfig.expireTime }) + const refreshToken = jwt.sign({ id: user.id }, jwtConfig.refreshTokenSecret, { + expiresIn: jwtConfig.refreshTokenExpireTime + }) + + const userData = { ...user } + + delete userData.password + + const response = { + userData, + accessToken, + refreshToken + } + + return [200, response] + } catch (e) { + error = e + } + } else { + error = { + email: ['Email or Password is Invalid'] + } + } + + return [400, { error }] +}) + +mock.onPost('/jwt/register').reply(request => { + if (request.data.length > 0) { + const { email, password, username } = JSON.parse(request.data) + const isEmailAlreadyInUse = data.users.find(user => user.email === email) + const isUsernameAlreadyInUse = data.users.find(user => user.username === username) + const error = { + email: isEmailAlreadyInUse ? 'This email is already in use.' : null, + username: isUsernameAlreadyInUse ? 'This username is already in use.' : null + } + + if (!error.username && !error.email) { + const userData = { + email, + password, + username, + fullName: '', + avatar: null, + role: 'admin', + ability: [ + { + action: 'manage', + subject: 'all' + } + ] + } + + // Add user id + const length = data.users.length + let lastIndex = 0 + if (length) { + lastIndex = data.users[length - 1].id + } + userData.id = lastIndex + 1 + + data.users.push(userData) + + const accessToken = jwt.sign({ id: userData.id }, jwtConfig.secret, { expiresIn: jwtConfig.expireTime }) + + const user = Object.assign({}, userData) + delete user['password'] + const response = { user, accessToken } + + return [200, response] + } else { + return [200, { error }] + } + } +}) + +mock.onPost('/jwt/refresh-token').reply(request => { + const { refreshToken } = JSON.parse(request.data) + + try { + const { id } = jwt.verify(refreshToken, jwtConfig.refreshTokenSecret) + + const userData = { ...data.users.find(user => user.id === id) } + + const newAccessToken = jwt.sign({ id: userData.id }, jwtConfig.secret, { expiresIn: jwtConfig.expiresIn }) + const newRefreshToken = jwt.sign({ id: userData.id }, jwtConfig.refreshTokenSecret, { + expiresIn: jwtConfig.refreshTokenExpireTime + }) + + delete userData.password + const response = { + userData, + accessToken: newAccessToken, + refreshToken: newRefreshToken + } + + return [200, response] + } catch (e) { + const error = 'Invalid refresh token' + return [401, { error }] + } +}) diff --git a/src/@fake-db/mock.js b/src/@fake-db/mock.js new file mode 100644 index 0000000..e9538d0 --- /dev/null +++ b/src/@fake-db/mock.js @@ -0,0 +1,6 @@ +import MockAdapter from 'axios-mock-adapter' +import axios from 'axios' + +const mock = new MockAdapter(axios) + +export default mock diff --git a/src/@fake-db/navbar/navbarSearch.js b/src/@fake-db/navbar/navbarSearch.js new file mode 100644 index 0000000..4fd342c --- /dev/null +++ b/src/@fake-db/navbar/navbarSearch.js @@ -0,0 +1,1018 @@ +import mock from '../mock' + +export const searchArr = [ + { + groupTitle: 'Pages', + searchLimit: 4, + data: [ + { + id: 1, + target: 'analyticsDash', + isBookmarked: false, + title: 'Analytics Dashboard', + icon: 'Home', + link: '/dashboard/analytics' + }, + { + id: 2, + target: 'eCommerceDash', + isBookmarked: false, + title: 'eCommerce Dashboard', + icon: 'Home', + link: '/' + }, + { + id: 3, + target: 'email', + isBookmarked: true, + title: 'Email', + icon: 'Mail', + link: '/apps/email' + }, + { + id: 4, + target: 'chat', + isBookmarked: true, + title: 'Chat', + icon: 'MessageSquare', + link: '/apps/chat' + }, + { + id: 5, + target: 'todo', + isBookmarked: true, + title: 'Todo', + icon: 'CheckSquare', + link: '/apps/todo' + }, + { + id: 6, + target: 'calendar', + isBookmarked: true, + title: 'Calendar', + icon: 'Calendar', + link: '/apps/calendar' + }, + { + id: 7, + target: 'invoiceList', + isBookmarked: false, + title: 'Invoice List', + icon: 'List', + link: '/apps/invoice/list' + }, + { + id: 8, + target: 'invoicePreview', + isBookmarked: false, + title: 'Invoice Preview', + icon: 'FileText', + link: '/apps/invoice/preview' + }, + { + id: 9, + target: 'invoiceEdit', + isBookmarked: false, + title: 'Invoice Edit', + icon: 'Edit', + link: '/apps/invoice/edit' + }, + { + id: 10, + target: 'invoiceAdd', + isBookmarked: false, + title: 'Invoice Add', + icon: 'Plus', + link: '/apps/invoice/add' + }, + { + id: 11, + target: 'shop', + isBookmarked: false, + title: 'Shop Ecommerce', + icon: 'ShoppingCart', + link: '/apps/ecommerce/shop' + }, + { + id: 12, + target: 'detail', + isBookmarked: false, + title: 'Product Detail', + icon: 'Circle', + link: '/apps/ecommerce/product-detail' + }, + { + id: 13, + target: 'wishList', + isBookmarked: false, + title: 'Wish List', + icon: 'Heart', + link: '/apps/ecommerce/wishlist' + }, + { + id: 14, + target: 'checkout', + isBookmarked: false, + title: 'Checkout', + icon: 'CreditCard', + link: '/apps/ecommerce/checkout' + }, + { + id: 15, + target: 'userList', + isBookmarked: false, + title: 'User List', + icon: 'User', + link: '/apps/user/list' + }, + { + id: 16, + target: 'userView', + isBookmarked: false, + title: 'User View', + icon: 'User', + link: '/apps/user/view' + }, + { + id: 17, + target: 'userEdit', + isBookmarked: false, + title: 'User Edit', + icon: 'User', + link: '/apps/user/edit' + }, + { + id: 18, + target: 'login-v1', + isBookmarked: false, + title: 'Login v1 Page', + icon: 'LogIn', + link: '/pages/login-v1' + }, + { + id: 19, + target: 'login-v2', + isBookmarked: false, + title: 'Login v2 Page', + icon: 'LogIn', + link: '/pages/login-v2' + }, + { + id: 20, + target: 'register-v1', + isBookmarked: false, + title: 'Register v1 Page', + icon: 'UserPlus', + link: '/pages/register-v1' + }, + { + id: 21, + target: 'register-v2', + isBookmarked: false, + title: 'Register v2 Page', + icon: 'UserPlus', + link: '/pages/register-v2' + }, + { + id: 22, + target: 'forgotPassword-v1', + isBookmarked: false, + title: 'Forgot Password v1 Page', + icon: 'Crosshair', + link: '/pages/forgot-password-v1' + }, + { + id: 23, + target: 'forgotPassword-v2', + isBookmarked: false, + title: 'Forgot Password v2 Page', + icon: 'Crosshair', + link: '/pages/forgot-password-v2' + }, + { + id: 24, + target: 'resetPassword-v1', + isBookmarked: false, + title: 'Reset Password v1 Page', + icon: 'TrendingUp', + link: '/pages/reset-password-v1' + }, + { + id: 25, + target: 'resetPassword-v2', + isBookmarked: false, + title: 'Reset Password v2 Page', + icon: 'TrendingUp', + link: '/pages/reset-password-v2' + }, + { + id: 26, + target: 'accountSettings', + isBookmarked: false, + title: 'Account Settings', + icon: 'Settings', + link: '/pages/account-settings' + }, + { + id: 27, + target: 'profile', + isBookmarked: false, + title: 'Profile Page', + icon: 'Users', + link: '/pages/profile', + collapsed: true + }, + { + id: 28, + target: 'faq', + isBookmarked: false, + title: 'FAQ Page', + icon: 'Zap', + link: '/pages/faq' + }, + { + id: 29, + target: 'knowledgeBase', + isBookmarked: false, + title: 'Knowledge Base Page', + icon: 'AlignLeft', + link: '/pages/knowledge-base' + }, + + { + id: 30, + target: 'pricing', + isBookmarked: false, + title: 'Pricing', + icon: 'DollarSign', + link: '/pages/pricing' + }, + + { + id: 31, + target: 'blogList', + isBookmarked: false, + title: 'Blog List', + icon: 'List', + link: '/pages/blog/list' + }, + { + id: 32, + target: 'blogDetail', + isBookmarked: false, + title: 'Blog Details', + icon: 'FileText', + link: '/pages/blog/detail' + }, + { + id: 33, + target: 'blogEdit', + isBookmarked: false, + title: 'Blog Edit', + icon: 'Edit', + link: '/pages/blog/edit' + }, + + { + id: 34, + target: 'comingSoon', + isBookmarked: false, + title: 'Coming Soon Page', + icon: 'Watch', + link: '/misc/coming-soon' + }, + + { + id: 35, + target: 'notAuthorized', + isBookmarked: false, + title: 'Not Authorized Page', + icon: 'UserX', + link: '/misc/not-authorized' + }, + { + id: 36, + target: 'maintenance', + isBookmarked: false, + title: 'Maintenance Page', + icon: 'Aperture', + link: '/misc/maintenance' + }, + { + id: 37, + target: 'error', + isBookmarked: false, + title: 'Error', + icon: 'AlertTriangle', + link: '/misc/error' + }, + { + id: 38, + target: 'typography', + isBookmarked: false, + title: 'Typography', + icon: 'Type', + link: '/ui-element/typography' + }, + { + id: 39, + target: 'colors', + isBookmarked: false, + title: 'Colors', + icon: 'Feather', + link: '/colors/colors' + }, + { + id: 40, + target: 'feather', + isBookmarked: false, + title: 'Feather Icons', + icon: 'Feather', + link: '/icons/reactfeather' + }, + { + id: 41, + target: 'basic', + isBookmarked: false, + title: 'Card Basic', + icon: 'Square', + link: '/cards/basic' + }, + { + id: 42, + target: 'cardAdvance', + isBookmarked: false, + title: 'Card Advance', + icon: 'Tablet', + link: '/cards/advance' + }, + { + id: 43, + target: 'cardStatistics', + isBookmarked: false, + title: 'Card Statistics', + icon: 'Smartphone', + link: '/cards/statistics' + }, + { + id: 44, + target: 'CardAnalytics', + isBookmarked: false, + title: 'Card Analytics', + icon: 'BarChart2', + link: '/cards/analytics' + }, + { + id: 45, + target: 'cardActions', + isBookmarked: false, + title: 'Card Actions', + icon: 'Airplay', + link: '/cards/action' + }, + { + id: 46, + target: 'alerts', + isBookmarked: false, + title: 'Alerts', + icon: 'Info', + link: '/components/alerts' + }, + { + id: 47, + target: 'autoComplete', + isBookmarked: false, + title: 'Auto Complete', + icon: 'Search', + link: '/components/auto-complete' + }, + { + id: 48, + target: 'avatar', + isBookmarked: false, + title: 'Avatar', + icon: 'User', + link: '/components/avatar' + }, + { + id: 49, + target: 'badges', + isBookmarked: false, + title: 'Badges', + icon: 'Circle', + link: '/components/badges' + }, + { + id: 50, + target: 'breadCrumbs', + isBookmarked: false, + title: 'Breadcrumbs', + icon: 'MoreHorizontal', + link: '/components/breadcrumbs' + }, + { + id: 51, + target: 'buttons', + isBookmarked: false, + title: 'Buttons', + icon: 'Inbox', + link: '/components/buttons' + }, + { + id: 52, + target: 'carousel', + isBookmarked: false, + title: 'Carousel', + icon: 'Map', + link: '/components/carousel' + }, + { + id: 53, + target: 'collapse', + isBookmarked: false, + title: 'Collapse', + icon: 'Minimize', + link: '/components/collapse' + }, + { + id: 54, + target: 'divider', + isBookmarked: false, + title: 'Divider', + icon: 'Minus', + link: '/components/divider' + }, + { + id: 55, + target: 'dropDowns', + isBookmarked: false, + title: 'Dropdowns', + icon: 'Inbox', + link: '/components/dropdowns' + }, + { + id: 56, + target: 'listGroup', + isBookmarked: false, + title: 'List Group', + icon: 'Layers', + link: '/components/list-group' + }, + { + id: 57, + target: 'mediaObjects', + isBookmarked: false, + title: 'Media Objects', + icon: 'Image', + link: '/components/media-objects' + }, + { + id: 58, + target: 'modals', + isBookmarked: false, + title: 'Modals', + icon: 'Maximize2', + link: '/components/modals' + }, + { + id: 59, + target: 'navsComponent', + isBookmarked: false, + title: 'Navs Component', + icon: 'MoreVertical', + link: '/components/nav-component' + }, + { + id: 60, + target: 'pagination', + isBookmarked: false, + title: 'Pagination', + icon: 'ChevronsRight', + link: '/components/pagination' + }, + { + id: 61, + target: 'pillBadges', + isBookmarked: false, + title: 'Pill Badges', + icon: 'Circle', + link: '/components/pill-badges' + }, + { + id: 62, + target: 'pillsComponent', + isBookmarked: false, + title: 'Pills Component', + icon: 'ToggleRight', + link: '/components/pills-component' + }, + { + id: 63, + target: 'popovers', + isBookmarked: false, + title: 'Popovers', + icon: 'MessageCircle', + link: '/components/popovers' + }, + { + id: 64, + target: 'progress', + isBookmarked: false, + title: 'Progress', + icon: 'Server', + link: '/components/progress' + }, + { + id: 65, + target: 'spinners', + isBookmarked: false, + title: 'Spinners', + icon: 'Sun', + link: '/components/spinners' + }, + { + id: 66, + target: 'tabsComponent', + isBookmarked: false, + title: 'Tabs Component', + icon: 'Server', + link: '/components/tabs-component' + }, + { + id: 67, + target: 'timeline', + isBookmarked: false, + title: 'Timeline', + icon: 'MoreVertical', + link: '/components/timeline' + }, + { + id: 68, + target: 'toasts', + isBookmarked: false, + title: 'Toasts', + icon: 'Triangle', + link: '/components/toasts' + }, + { + id: 69, + target: 'tooltips', + isBookmarked: false, + title: 'Tooltips', + icon: 'MessageCircle', + link: '/components/tooltips' + }, + { + id: 70, + target: 'sweetAlert', + isBookmarked: false, + title: 'Sweet Alerts', + icon: 'AlertTriangle', + link: '/extensions/sweet-alert' + }, + { + id: 71, + target: 'blockui', + isBookmarked: false, + title: 'BlockUI', + icon: 'Loader', + link: '/components/blockui' + }, + { + id: 72, + target: 'toastr', + isBookmarked: false, + title: 'Toastr', + icon: 'CreditCard', + link: '/extensions/toastr' + }, + { + id: 73, + target: 'slider', + isBookmarked: false, + title: 'Slider', + icon: 'Sliders', + link: '/extensions/slider' + }, + { + id: 74, + target: 'drag_&_drop', + isBookmarked: false, + title: 'Drag & Drop', + icon: 'Move', + link: '/extensions/drag-and-drop' + }, + { + id: 75, + target: 'tour', + isBookmarked: false, + title: 'Tour', + icon: 'Airplay', + link: '/extensions/tour' + }, + { + id: 76, + target: 'clipBoard', + isBookmarked: false, + title: 'Clipboard', + icon: 'Clipboard', + link: '/extensions/clipboard' + }, + { + id: 77, + target: 'mediaPlayer', + isBookmarked: false, + title: 'React Player', + icon: 'Film', + link: '/extensions/react-player' + }, + { + id: 78, + target: 'contentMenu', + isBookmarked: false, + title: 'Context Menu', + icon: 'Menu', + link: '/extensions/context-menu' + }, + { + id: 79, + target: 'swiper', + isBookmarked: false, + title: 'Swiper', + icon: 'Smartphone', + link: '/extensions/swiper' + }, + { + id: 81, + target: 'ratings', + isBookmarked: false, + title: 'Ratings', + icon: 'Star', + link: '/extensions/ratings' + }, + { + id: 82, + target: 'i18n', + isBookmarked: false, + title: 'I18n', + icon: 'Globe', + link: '/extensions/i18n' + }, + { + id: 83, + target: 'access-control', + isBookmarked: false, + title: 'Access Control', + icon: 'Lock', + link: '/access-control' + }, + { + id: 84, + target: 'extPagination', + isBookmarked: false, + title: 'React Paginate', + icon: 'MoreHorizontal', + link: '/extensions/pagination' + }, + { + id: 85, + target: 'extImport', + isBookmarked: false, + title: 'Import', + icon: 'DownloadCloud', + link: '/extensions/import' + }, + { + id: 86, + target: 'extExport', + isBookmarked: false, + title: 'Export', + icon: 'UploadCloud', + link: '/extensions/export' + }, + { + id: 87, + target: 'extExportSelected', + isBookmarked: false, + title: 'Export Selected', + icon: 'CheckSquare', + link: '/extensions/export-selected' + }, + { + id: 88, + target: 'pageLayout-collapsedMenu', + isBookmarked: false, + title: 'Collapsed Menu Page Layout', + icon: 'Layout', + link: '/page-layout/collapse-menu' + }, + { + id: 89, + target: 'pageLayout-layoutBoxed', + isBookmarked: false, + title: 'Boxed Page Layout', + icon: 'Layout', + link: '/page-layout/layout-boxed' + }, + { + id: 90, + target: 'pageLayout-withoutMenu', + isBookmarked: false, + title: 'Without Menu Page Layout', + icon: 'Layout', + link: '/page-layout/without-menu' + }, + { + id: 91, + target: 'pageLayout-layoutEmpty', + isBookmarked: false, + title: 'Empty Page Layout', + icon: 'Layout', + link: '/page-layout/layout-empty' + }, + { + id: 92, + target: 'pageLayout-layoutBlank', + isBookmarked: false, + title: 'Blank Page Layout', + icon: 'Layout', + link: '/page-layout/layout-blank' + }, + { + id: 93, + target: 'input', + isBookmarked: false, + title: 'Input', + icon: 'Server', + link: '/forms/elements/input' + }, + { + id: 94, + target: 'inputGroup', + isBookmarked: false, + title: 'Input Group', + icon: 'Package', + link: '/forms/elements/input-group' + }, + { + id: 95, + target: 'inputMask', + isBookmarked: false, + title: 'Input Mask', + icon: 'Copy', + link: '/forms/elements/input-mask' + }, + { + id: 96, + target: 'textarea', + isBookmarked: false, + title: 'Textarea', + icon: 'Edit2', + link: '/forms/elements/textarea' + }, + { + id: 97, + target: 'checkbox', + isBookmarked: false, + title: 'Checkbox', + icon: 'CheckSquare', + link: '/forms/elements/checkbox' + }, + { + id: 98, + target: 'radio', + isBookmarked: false, + title: 'Radio', + icon: 'StopCircle', + link: '/forms/elements/radio' + }, + { + id: 99, + target: 'switch', + isBookmarked: false, + title: 'Switch', + icon: 'ToggleLeft', + link: '/forms/elements/switch' + }, + { + id: 100, + target: 'select', + isBookmarked: false, + title: 'Select', + icon: 'Server', + link: '/forms/elements/select' + }, + { + id: 101, + target: 'numberInput', + isBookmarked: false, + title: 'Number Input', + icon: 'Plus', + link: '/forms/elements/number-input' + }, + { + id: 102, + target: 'fileUploader', + isBookmarked: false, + title: 'File Uploader', + icon: 'Upload', + link: '/forms/elements/file-uploader' + }, + { + id: 103, + target: 'quillEditor', + isBookmarked: false, + title: 'Editor', + icon: 'Edit3', + link: '/forms/elements/editor' + }, + { + id: 104, + target: 'date_&_timePicker', + isBookmarked: false, + title: 'Date & Time Picker', + icon: 'Calendar', + link: '/forms/elements/pickers' + }, + { + id: 105, + target: 'formLayouts', + isBookmarked: false, + title: 'Form Layouts', + icon: 'Layout', + link: '/forms/layout/form-layout' + }, + { + id: 106, + target: 'wizard', + isBookmarked: false, + title: 'Form Wizard', + icon: 'Sliders', + link: '/forms/wizard' + }, + { + id: 107, + target: 'react-hook-form', + isBookmarked: false, + title: 'React Hook Form Validation', + icon: 'ThumbsUp', + link: '/forms/react-hook-form' + }, + { + id: 108, + target: 'reactstrapVal', + isBookmarked: false, + title: 'Reactstrap Validation', + icon: 'ThumbsUp', + link: '/forms/reactstrap-validation' + }, + { + id: 109, + target: 'formRepeater', + isBookmarked: false, + title: 'Form Repeater', + icon: 'RotateCw', + link: '/forms/form-repeater' + }, + { + id: 110, + target: 'tablesReactstrap', + isBookmarked: false, + title: 'Reactstrap Tables', + icon: 'Grid', + link: '/tables/reactstrap' + }, + { + id: 111, + target: 'dtBasic', + isBookmarked: false, + title: 'Datatables Basic', + icon: 'Grid', + link: '/datatables/basic' + }, + { + id: 112, + target: 'dtAdvance', + isBookmarked: false, + title: 'Datatables Advance', + icon: 'Grid', + link: '/datatables/advance' + }, + { + id: 114, + target: 'apex', + isBookmarked: false, + title: 'Apex Charts', + icon: 'BarChart', + link: '/charts/apex' + }, + { + id: 115, + target: 'chartJs', + isBookmarked: false, + title: 'ChartJS', + icon: 'Activity', + link: '/charts/chartjs' + }, + { + id: 116, + target: 'recharts', + isBookmarked: false, + title: 'Recharts', + icon: 'BarChart2', + link: '/charts/recharts' + }, + { + id: 117, + target: 'leafletMaps', + isBookmarked: false, + title: 'Leaflet Maps', + icon: 'MapPin', + link: '/maps/leaflet' + } + ] + }, + { + groupTitle: 'Files', + searchLimit: 4, + data: [ + { + title: 'Passport Image', + by: 'Oliver Queen', + size: '52kb', + file: require('@src/assets/images/icons/jpg.png').default + }, + { + title: 'Parenting Guide', + by: 'Alfred Pennyworth', + size: '2.3mb', + file: require('@src/assets/images/icons/doc.png').default + }, + { + title: 'Class Notes', + by: 'Barry Allen', + size: '30kb', + file: require('@src/assets/images/icons/doc.png').default + }, + { + title: 'Class Attendance', + by: 'Walter White', + size: '52mb', + file: require('@src/assets/images/icons/xls.png').default + } + ] + }, + { + groupTitle: 'Contacts', + searchLimit: 4, + data: [ + { + title: 'Mia Davis', + email: 'miadavis@teleworm.us', + img: require('@src/assets/images/portrait/small/avatar-s-8.jpg').default, + date: '01/03/2020' + }, + { + title: 'Norris Carrière', + email: 'NorrisCarriere@rhyta.com', + img: require('@src/assets/images/portrait/small/avatar-s-3.jpg').default, + date: '07/03/2020' + }, + { + title: 'Charlotte Gordon', + email: 'CharlotteGordon@jourrapide.com', + img: require('@src/assets/images/portrait/small/avatar-s-26.jpg').default, + date: '14/03/2020' + }, + { + title: 'Robert Nash', + email: 'RobertNash@dayrep.com', + img: require('@src/assets/images/portrait/small/avatar-s-25.jpg').default, + date: '21/03/2020' + } + ] + } +] + +// GET Search Data +mock.onGet('/api/main-search/data').reply(config => { + return [200, { searchArr }] +}) + +// GET Search Data & Bookmarks +mock.onGet('/api/bookmarks/data').reply(config => { + const bookmarks = searchArr[0].data.filter(item => item.isBookmarked) + const suggestions = searchArr[0].data + return [200, { suggestions, bookmarks }] +}) + +// POST Update isBookmarked +mock.onPost('/api/bookmarks/update').reply(config => { + const { id } = JSON.parse(config.data) + + const obj = searchArr[0].data.find(item => item.id === id) + + Object.assign(obj, { isBookmarked: !obj.isBookmarked }) + + return [200] +}) diff --git a/src/@fake-db/pages/account-settings.js b/src/@fake-db/pages/account-settings.js new file mode 100644 index 0000000..ff501b9 --- /dev/null +++ b/src/@fake-db/pages/account-settings.js @@ -0,0 +1,51 @@ +import mock from '../mock' +const data = { + accountSetting: { + general: { + avatar: require('@src/assets/images/portrait/small/avatar-s-11.jpg').default, + username: 'johndoe', + fullName: 'John Doe', + email: 'granger007@hogward.com', + company: 'IBM Technology' + }, + info: { + bio: '', + dob: null, + country: 'USA', + website: '', + phone: 6562542568 + }, + social: { + socialLinks: { + twitter: 'https://www.twitter.com', + facebook: '', + google: '', + linkedIn: 'https://www.linkedin.com', + instagram: '', + quora: '' + }, + connections: { + twitter: { + profileImg: require('@src/assets/images/avatars/11-small.png').default, + id: 'johndoe' + }, + google: { + profileImg: require('@src/assets/images/avatars/3-small.png').default, + id: 'luraweber' + }, + facebook: {}, + github: {} + } + }, + notification: { + commentOnArticle: true, + answerOnForm: true, + followMe: false, + newAnnouncements: true, + productUpdates: true, + blogDigest: false + } + } +} + +mock.onGet('/account-setting/data').reply(() => [200, data.accountSetting]) diff --git a/src/@fake-db/pages/blog-data.js b/src/@fake-db/pages/blog-data.js new file mode 100644 index 0000000..bd9c41b --- /dev/null +++ b/src/@fake-db/pages/blog-data.js @@ -0,0 +1,157 @@ +import mock from '../mock' + +const data = { + // blog list + blogList: [ + { + img: require('@src/assets/images/slider/02.jpg').default, + title: 'The Best Features Coming to iOS and Web design', + id: 1, + avatar: require('@src/assets/images/portrait/small/avatar-s-7.jpg').default, + userFullName: 'Ghani Pradita', + blogPosted: 'Jan 10, 2020', + tags: ['Quote', 'Fashion'], + excerpt: 'Donut fruitcake soufflé apple pie candy canes jujubes croissant chocolate bar ice cream.', + comment: 76 + }, + { + img: require('@src/assets/images/slider/06.jpg').default, + title: 'Latest Quirky Opening Sentence or Paragraph', + id: 2, + avatar: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + userFullName: 'Jorge Griffin', + blogPosted: 'Jan 10, 2020', + tags: ['Gaming', 'Video'], + excerpt: 'Apple pie caramels lemon drops halvah liquorice carrot cake. Tiramisu brownie lemon drops.', + comment: 2100 + }, + { + img: require('@src/assets/images/slider/04.jpg').default, + title: 'Share an Amazing and Shocking Fact or Statistic', + id: 3, + avatar: require('@src/assets/images/portrait/small/avatar-s-3.jpg').default, + userFullName: 'Claudia Neal', + blogPosted: 'Jan 10, 2020', + tags: ['Gaming', 'Food'], + excerpt: 'Tiramisu jelly-o chupa chups tootsie roll donut wafer marshmallow cheesecake topping.', + comment: 243 + }, + { + img: require('@src/assets/images/slider/03.jpg').default, + title: 'Withhold a Compelling Piece of Information', + id: 4, + avatar: require('@src/assets/images/portrait/small/avatar-s-14.jpg').default, + userFullName: 'Fred Boone', + blogPosted: 'Jan 10, 2020', + tags: ['Video'], + excerpt: 'Croissant apple pie lollipop gingerbread. Cookie jujubes chocolate cake icing cheesecake.', + comment: 10 + }, + { + img: require('@src/assets/images/slider/09.jpg').default, + title: 'Unadvertised Bonus Opening: Share a Quote', + id: 5, + avatar: require('@src/assets/images/portrait/small/avatar-s-13.jpg').default, + userFullName: 'Billy French', + blogPosted: 'Jan 10, 2020', + tags: ['Quote', 'Fashion'], + excerpt: 'Muffin liquorice candy soufflé bear claw apple pie icing halvah. Pie marshmallow jelly.', + comment: 319 + }, + { + img: require('@src/assets/images/slider/10.jpg').default, + title: 'Ships at a distance have Every Man’s Wish on Board', + id: 6, + avatar: require('@src/assets/images/portrait/small/avatar-s-13.jpg').default, + userFullName: 'Helena Hunt', + blogPosted: 'Jan 10, 2020', + tags: ['Fashion', 'Video'], + excerpt: 'A little personality goes a long way, especially on a business blog. So don’t be afraid to let loose.', + comment: 1500 + } + ], + + // sidebar + blogSidebar: { + recentPosts: [ + { + img: require('@src/assets/images/banner/banner-22.jpg').default, + title: 'Why Should Forget Facebook?', + id: 7, + createdTime: 'Jan 14 2020' + }, + { + img: require('@src/assets/images/banner/banner-27.jpg').default, + title: 'Publish your passions, your way', + id: 8, + createdTime: 'Mar 04 2020' + }, + { + img: require('@src/assets/images/banner/banner-39.jpg').default, + title: 'The Best Ways to Retain More', + id: 9, + createdTime: 'Feb 18 2020' + }, + { + img: require('@src/assets/images/banner/banner-35.jpg').default, + title: 'Share a Shocking Fact or Statistic', + id: 10, + createdTime: 'Oct 08 2020' + } + ], + categories: [ + { category: 'Fashion', icon: 'Watch' }, + { category: 'Food', icon: 'ShoppingCart' }, + { category: 'Gaming', icon: 'Command' }, + { category: 'Quote', icon: 'Hash' }, + { category: 'Video', icon: 'Video' } + ] + }, + + // detail + blogDetail: { + blog: { + img: require('@src/assets/images/banner/banner-12.jpg').default, + title: 'The Best Features Coming to iOS and Web design', + avatar: require('@src/assets/images/portrait/small/avatar-s-7.jpg').default, + userFullName: 'Ghani Pradita', + createdTime: 'Jan 10, 2020', + tags: ['Gaming', 'Video'], + content: + '

    Before you get into the nitty-gritty of coming up with a perfect title, start with a rough draft: your working title. What is that, exactly? A lot of people confuse working titles with topics. Let\'s clear that Topics are very general and could yield several different blog posts. Think "raising healthy kids," or "kitchen storage." A writer might look at either of those topics and choose to take them in very, very different directions.A working title, on the other hand, is very specific and guides the creation of a single blog post. For example, from the topic "raising healthy kids," you could derive the following working title See how different and specific each of those is? That\'s what makes them working titles, instead of overarching topics.

    Unprecedented Challenge

    • Preliminary thinking systems
    • Bandwidth efficient
    • Green space
    • Social impact
    • Thought partnership
    • Fully ethical life
    ', + comments: 19100, + bookmarked: 139 + }, + comments: [ + { + avatar: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + userFullName: 'Chad Alexander', + commentedAt: 'May 24, 2020', + commentText: + 'A variation on the question technique above, the multiple-choice question great way to engage your reader.' + } + ] + }, + + // edit + blogEdit: { + avatar: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + userFullName: 'Chad Alexander', + createdTime: 'May 24, 2020', + blogTitle: 'The Best Features Coming to iOS and Web design', + blogCategories: [ + { value: 'fashion', label: 'Fashion' }, + { value: 'gaming', label: 'Gaming' } + ], + slug: 'the-best-features-coming-to-ios-and-web-design', + status: 'Published', + excerpt: + '

    Cupcake ipsum dolor sit. Amet dessert donut candy chocolate bar cotton dessert candy chocolate. Candy muffin danish. Macaroon brownie jelly beans marzipan cheesecake oat cake. Carrot cake macaroon chocolate cake. Jelly brownie jelly. Marzipan pie sweet roll.


    Liquorice dragée cake chupa chups pie cotton candy jujubes bear claw sesame snaps. Fruitcake chupa chups chocolate bonbon lemon drops croissant caramels lemon drops. Candy jelly cake marshmallow jelly beans dragée macaroon. Gummies sugar plum fruitcake. Candy canes candy cupcake caramels cotton candy jujubes fruitcake.

    ', + featuredImage: require('@src/assets/images/slider/03.jpg').default + } +} + +mock.onGet('/blog/list/data').reply(() => [200, data.blogList]) +mock.onGet('/blog/list/data/sidebar').reply(() => [200, data.blogSidebar]) +mock.onGet('/blog/list/data/detail').reply(() => [200, data.blogDetail]) +mock.onGet('/blog/list/data/edit').reply(() => [200, data.blogEdit]) diff --git a/src/@fake-db/pages/faq.js b/src/@fake-db/pages/faq.js new file mode 100644 index 0000000..3ec23c0 --- /dev/null +++ b/src/@fake-db/pages/faq.js @@ -0,0 +1,205 @@ +import mock from '../mock' +const data = { + faqData: { + // payment + payment: { + icon: 'CreditCard', + title: 'Payment', + subtitle: 'Which license do I need?', + qandA: [ + { + question: 'Does my subscription automatically renew?', + ans: + 'Pastry pudding cookie toffee bonbon jujubes jujubes powder topping. Jelly beans gummi bears sweet roll bonbon muffin liquorice. Wafer lollipop sesame snaps. Brownie macaroon cookie muffin cupcake candy caramels tiramisu. Oat cake chocolate cake sweet jelly-o brownie biscuit marzipan. Jujubes donut marzipan chocolate bar. Jujubes sugar plum jelly beans tiramisu icing cheesecake.' + }, + { + question: 'Can I store the item on an intranet so everyone has access?', + ans: + 'Sweet pie candy jelly. Sesame snaps biscuit sugar plum. Sweet roll topping fruitcake. Caramels liquorice biscuit ice cream fruitcake cotton candy tart. Donut caramels gingerbread jelly-o gingerbread pudding. Gummi bears pastry marshmallow candy canes pie. Pie apple pie carrot cake.' + }, + { + question: 'What does non-exclusive mean?', + ans: + 'Tart gummies dragée lollipop fruitcake pastry oat cake. Cookie jelly jelly macaroon icing jelly beans soufflé cake sweet. Macaroon sesame snaps cheesecake tart cake sugar plum. Dessert jelly-o sweet muffin chocolate candy pie tootsie roll marzipan.' + }, + { + question: 'Is the Regular License the same thing as an editorial license?', + ans: + 'Cheesecake muffin cupcake dragée lemon drops tiramisu cake gummies chocolate cake. Marshmallow tart croissant. Tart dessert tiramisu marzipan lollipop lemon drops. Cake bonbon bonbon gummi bears topping jelly beans brownie jujubes muffin. Donut croissant jelly-o cake marzipan. Liquorice marzipan cookie wafer tootsie roll. Tootsie roll sweet cupcake.' + }, + { + question: 'Which license do I need for an end product that is only accessible to paying users?', + ans: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.' + }, + { + question: 'Which license do I need to use an item in a commercial?', + ans: + 'At tempor commodo ullamcorper a lacus vestibulum. Ultrices neque ornare aenean euismod. Dui vivamus arcu felis bibendum. Turpis in eu mi bibendum neque egestas congue. Nullam ac tortor vitae purus faucibus ornare suspendisse sed.' + }, + { + question: 'Can I re-distribute an item? What about under an Extended License?', + ans: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Euismod lacinia at quis risus sed vulputate odio ut enim. Dictum at tempor commodo ullamcorper a lacus vestibulum.' + } + ] + }, + // delivery + delivery: { + icon: 'ShoppingBag', + title: 'Delivery', + subtitle: 'Which license do I need?', + qandA: [ + { + question: 'Where has my order reached?', + ans: + 'Pastry pudding cookie toffee bonbon jujubes jujubes powder topping. Jelly beans gummi bears sweet roll bonbon muffin liquorice. Wafer lollipop sesame snaps. Brownie macaroon cookie muffin cupcake candy caramels tiramisu. Oat cake chocolate cake sweet jelly-o brownie biscuit marzipan. Jujubes donut marzipan chocolate bar. Jujubes sugar plum jelly beans tiramisu icing cheesecake.' + }, + { + question: + 'The shipment status shows that it has been returned/cancelled. What does it mean and who do I contact?', + ans: + 'Sweet pie candy jelly. Sesame snaps biscuit sugar plum. Sweet roll topping fruitcake. Caramels liquorice biscuit ice cream fruitcake cotton candy tart. Donut caramels gingerbread jelly-o gingerbread pudding. Gummi bears pastry marshmallow candy canes pie. Pie apple pie carrot cake.' + }, + { + question: 'What if my shipment is marked as lost?', + ans: + 'Tart gummies dragée lollipop fruitcake pastry oat cake. Cookie jelly jelly macaroon icing jelly beans soufflé cake sweet. Macaroon sesame snaps cheesecake tart cake sugar plum. Dessert jelly-o sweet muffin chocolate candy pie tootsie roll marzipan.' + }, + { + question: 'My shipment status shows that it’s out for delivery. By when will I receive it?', + ans: + 'Cheesecake muffin cupcake dragée lemon drops tiramisu cake gummies chocolate cake. Marshmallow tart croissant. Tart dessert tiramisu marzipan lollipop lemon drops. Cake bonbon bonbon gummi bears topping jelly beans brownie jujubes muffin. Donut croissant jelly-o cake marzipan. Liquorice marzipan cookie wafer tootsie roll. Tootsie roll sweet cupcake.' + }, + { + question: 'What do I need to do to get the shipment delivered within a specific timeframe?', + ans: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.' + } + ] + }, + // cancellation and return + cancellationReturn: { + icon: 'RefreshCw', + title: 'Cancellation & Return', + subtitle: 'Which license do I need?', + qandA: [ + { + question: 'Can my security guard or neighbour receive my shipment if I am not available?', + ans: + 'Pastry pudding cookie toffee bonbon jujubes jujubes powder topping. Jelly beans gummi bears sweet roll bonbon muffin liquorice. Wafer lollipop sesame snaps. Brownie macaroon cookie muffin cupcake candy caramels tiramisu. Oat cake chocolate cake sweet jelly-o brownie biscuit marzipan. Jujubes donut marzipan chocolate bar. Jujubes sugar plum jelly beans tiramisu icing cheesecake.' + }, + { + question: 'How can I get the contact number of my delivery agent?', + ans: + 'Sweet pie candy jelly. Sesame snaps biscuit sugar plum. Sweet roll topping fruitcake. Caramels liquorice biscuit ice cream fruitcake cotton candy tart. Donut caramels gingerbread jelly-o gingerbread pudding. Gummi bears pastry marshmallow candy canes pie. Pie apple pie carrot cake.' + }, + { + question: 'How can I cancel my shipment?', + ans: + 'Tart gummies dragée lollipop fruitcake pastry oat cake. Cookie jelly jelly macaroon icing jelly beans soufflé cake sweet. Macaroon sesame snaps cheesecake tart cake sugar plum. Dessert jelly-o sweet muffin chocolate candy pie tootsie roll marzipan.' + }, + { + question: 'I have received a defective/damaged product. What do I do?', + ans: + 'Cheesecake muffin cupcake dragée lemon drops tiramisu cake gummies chocolate cake. Marshmallow tart croissant. Tart dessert tiramisu marzipan lollipop lemon drops. Cake bonbon bonbon gummi bears topping jelly beans brownie jujubes muffin. Donut croissant jelly-o cake marzipan. Liquorice marzipan cookie wafer tootsie roll. Tootsie roll sweet cupcake.' + }, + { + question: 'How do I change my delivery address?', + ans: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.' + }, + { + question: 'What documents do I need to carry for self-collection of my shipment?', + ans: + 'At tempor commodo ullamcorper a lacus vestibulum. Ultrices neque ornare aenean euismod. Dui vivamus arcu felis bibendum. Turpis in eu mi bibendum neque egestas congue. Nullam ac tortor vitae purus faucibus ornare suspendisse sed. Commodo viverra maecenas accumsan lacus vel facilisis volutpat est velit. Tortor consequat id porta nibh. Id aliquet lectus proin nibh nisl condimentum id venenatis a. Faucibus nisl tincidunt eget nullam non nisi. Enim nunc faucibus a pellentesque. Pellentesque diam volutpat commodo sed egestas egestas fringilla phasellus. Nec nam aliquam sem et tortor consequat id. Fringilla est ullamcorper eget nulla facilisi. Morbi tristique senectus et netus et.' + }, + { + question: 'What are the timings for self-collecting shipments from the Delhivery Branch?', + ans: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Euismod lacinia at quis risus sed vulputate odio ut enim. Dictum at tempor commodo ullamcorper a lacus vestibulum.' + } + ] + }, + // my orders + myOrders: { + icon: 'Package', + title: 'My Orders', + subtitle: 'Which license do I need?', + qandA: [ + { + question: 'Can I avail of an open delivery?', + ans: + 'Pastry pudding cookie toffee bonbon jujubes jujubes powder topping. Jelly beans gummi bears sweet roll bonbon muffin liquorice. Wafer lollipop sesame snaps. Brownie macaroon cookie muffin cupcake candy caramels tiramisu. Oat cake chocolate cake sweet jelly-o brownie biscuit marzipan. Jujubes donut marzipan chocolate bar. Jujubes sugar plum jelly beans tiramisu icing cheesecake.' + }, + { + question: 'I haven’t received the refund of my returned shipment. What do I do?', + ans: + 'Sweet pie candy jelly. Sesame snaps biscuit sugar plum. Sweet roll topping fruitcake. Caramels liquorice biscuit ice cream fruitcake cotton candy tart. Donut caramels gingerbread jelly-o gingerbread pudding. Gummi bears pastry marshmallow candy canes pie. Pie apple pie carrot cake.' + }, + { + question: 'How can I ship my order to an international location?', + ans: + 'Tart gummies dragée lollipop fruitcake pastry oat cake. Cookie jelly jelly macaroon icing jelly beans soufflé cake sweet. Macaroon sesame snaps cheesecake tart cake sugar plum. Dessert jelly-o sweet muffin chocolate candy pie tootsie roll marzipan.' + }, + { + question: 'I missed the delivery of my order today. What should I do?', + ans: + 'Cheesecake muffin cupcake dragée lemon drops tiramisu cake gummies chocolate cake. Marshmallow tart croissant. Tart dessert tiramisu marzipan lollipop lemon drops. Cake bonbon bonbon gummi bears topping jelly beans brownie jujubes muffin. Donut croissant jelly-o cake marzipan. Liquorice marzipan cookie wafer tootsie roll. Tootsie roll sweet cupcake.' + }, + { + question: 'The delivery of my order is delayed. What should I do?', + ans: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.' + } + ] + }, + // product and services + productServices: { + icon: 'Settings', + title: 'Product & Services', + subtitle: 'Which license do I need?', + qandA: [ + { + question: 'How can I register a complaint against the courier executive who came to deliver my order?', + ans: + 'Pastry pudding cookie toffee bonbon jujubes jujubes powder topping. Jelly beans gummi bears sweet roll bonbon muffin liquorice. Wafer lollipop sesame snaps. Brownie macaroon cookie muffin cupcake candy caramels tiramisu. Oat cake chocolate cake sweet jelly-o brownie biscuit marzipan. Jujubes donut marzipan chocolate bar. Jujubes sugar plum jelly beans tiramisu icing cheesecake.' + }, + { + question: 'The status for my shipment shows as ‘not picked up’. What do I do?', + ans: + 'Sweet pie candy jelly. Sesame snaps biscuit sugar plum. Sweet roll topping fruitcake. Caramels liquorice biscuit ice cream fruitcake cotton candy tart. Donut caramels gingerbread jelly-o gingerbread pudding. Gummi bears pastry marshmallow candy canes pie. Pie apple pie carrot cake.' + }, + { + question: 'How can I get a proof of delivery for my shipment?', + ans: + 'Tart gummies dragée lollipop fruitcake pastry oat cake. Cookie jelly jelly macaroon icing jelly beans soufflé cake sweet. Macaroon sesame snaps cheesecake tart cake sugar plum. Dessert jelly-o sweet muffin chocolate candy pie tootsie roll marzipan.' + }, + { + question: 'How can I avail your services?', + ans: + 'Cheesecake muffin cupcake dragée lemon drops tiramisu cake gummies chocolate cake. Marshmallow tart croissant. Tart dessert tiramisu marzipan lollipop lemon drops. Cake bonbon bonbon gummi bears topping jelly beans brownie jujubes muffin. Donut croissant jelly-o cake marzipan. Liquorice marzipan cookie wafer tootsie roll. Tootsie roll sweet cupcake.' + } + ] + } + } +} + +mock.onGet('/faq/data').reply(config => { + const { q = '' } = config.params + const queryLowered = q.toLowerCase() + + const filteredData = {} + + Object.entries(data.faqData).forEach(entry => { + const [categoryName, categoryObj] = entry + const filteredQAndAOfCategory = categoryObj.qandA.filter(qAndAObj => { + return qAndAObj.question.toLowerCase().includes(queryLowered) + }) + if (filteredQAndAOfCategory.length) { + filteredData[categoryName] = { ...categoryObj, qandA: filteredQAndAOfCategory } + } + }) + + return [200, filteredData] +}) diff --git a/src/@fake-db/pages/knowledge-base.js b/src/@fake-db/pages/knowledge-base.js new file mode 100644 index 0000000..4dc68d2 --- /dev/null +++ b/src/@fake-db/pages/knowledge-base.js @@ -0,0 +1,287 @@ +import mock from '../mock' + +const data = { + // knowledge base + knowledgeBase: [ + { + id: 1, + category: 'sales-automation', + img: require('@src/assets/images/illustration/sales.svg').default, + title: 'Sales Automation', + desc: 'There is perhaps no better demonstration of the folly of image of our tiny world.' + }, + { + id: 2, + category: 'marketing-automation', + img: require('@src/assets/images/illustration/marketing.svg').default, + title: 'Marketing Automation', + desc: 'Look again at that dot. That’s here. That’s home. That’s us. On it everyone you love.' + }, + { + id: 3, + category: 'api-questions', + img: require('@src/assets/images/illustration/api.svg').default, + title: 'API Questions', + desc: 'every hero and coward, every creator and destroyer of civilization.' + }, + { + id: 4, + category: 'personalization', + img: require('@src/assets/images/illustration/personalization.svg').default, + title: 'Personalization', + desc: 'It has been said that astronomy is a humbling and character experience.' + }, + { + id: 5, + category: 'email-marketing', + img: require('@src/assets/images/illustration/email.svg').default, + title: 'Email Marketing', + desc: 'There is perhaps no better demonstration of the folly of human conceits.' + }, + { + id: 6, + category: 'demand-generation', + img: require('@src/assets/images/illustration/demand.svg').default, + title: 'Demand Generation', + desc: 'Competent means we will never take anything for granted.' + } + ], + categoryData: [ + { + id: 0, + title: 'Account Settings', + icon: 'Settings', + iconColor: 'text-primary', + questions: [ + { + id: 0, + question: 'How Secure Is My Password?', + slug: 'how-secure-is-my-password' + }, + { + id: 1, + question: 'Can I Change My Username?', + slug: 'can-i-change-my-username' + }, + { + id: 2, + question: 'Where Can I Upload My Avatar?', + slug: 'where-can-i-upload-my-avatar' + }, + { + id: 3, + question: 'How Do I Change My Timezone?', + slug: 'how-do-i-change-my-timezone' + }, + { + id: 4, + question: 'How Do I Change My Password?', + slug: 'how-do-i-change-my-password' + } + ] + }, + { + id: 1, + title: 'API Questions', + icon: 'Link', + iconColor: 'text-success', + questions: [ + { + id: 0, + question: 'Dessert halvah carrot cake sweet?', + slug: 'dessert-halvah-carrot-cake-sweet' + }, + { + id: 1, + question: 'Jelly beans bonbon marshmallow?', + slug: 'jelly-beans-bonbon-marshmallow' + }, + { + id: 2, + question: 'Marzipan chocolate gummi bears bonbon powder?', + slug: 'marzipan-chocolate-gummi-bears-bonbon-powder' + }, + { + id: 3, + question: 'Chupa chups lemon drops caramels?', + slug: 'chupa-chups-lemon-drops-caramels' + } + ] + }, + { + id: 2, + title: 'Billing', + icon: 'FileText', + iconColor: 'text-danger', + questions: [ + { + id: 0, + question: 'Oat cake lemon drops sweet sweet?', + slug: 'oat-cake-lemon-drops-sweet-sweet' + }, + { + id: 1, + question: 'Cotton candy brownie ice cream wafer roll?', + slug: 'cotton-candy-brownie-ice-cream-wafer-roll' + }, + { + id: 2, + question: 'Chocolate bonbon cake sugar plum?', + slug: 'chocolate-bonbon-cake-sugar-plum' + }, + { + id: 3, + question: 'Cake fruitcake chupa chups?', + slug: 'cake-fruitcake-chupa-chups' + }, + { + id: 4, + question: 'Fruitcake bonbon dessert gingerbread powder?', + slug: 'fruitcake-bonbon-dessert-gingerbread-powder' + } + ] + }, + { + id: 3, + title: 'Copyright & Legal', + icon: 'Lock', + iconColor: 'text-warning', + questions: [ + { + id: 0, + question: 'Marshmallow jelly beans oat cake?', + slug: 'marshmallow-jelly-beans-oat-cake' + }, + { + id: 1, + question: 'Cake ice cream jujubes cookie?', + slug: 'cake-ice-cream-jujubes-cookie' + }, + { + id: 2, + question: 'Sesame snaps tart cake pie chocolate?', + slug: 'sesame-snaps-tart-cake-pie-chocolate' + }, + { + id: 3, + question: 'Chocolate cake chocolate tootsi?', + slug: 'chocolate-cake-chocolate-tootsi' + }, + { + id: 4, + question: 'Caramels lemon drops tiramisu cake?', + slug: 'caramels-lemon-drops-tiramisu-cake' + }, + { + id: 5, + question: 'Brownie dessert gummies. Tiramisu bear claw apple?', + slug: 'brownie-dessert-gummies-tiramisu-bear-claw-apple' + } + ] + }, + { + id: 4, + title: 'Mobile Apps', + icon: 'Smartphone', + iconColor: 'text-info', + questions: [ + { + id: 0, + question: 'Macaroon tootsie roll?', + slug: 'macaroon-tootsie-roll' + }, + { + id: 1, + question: 'Cheesecake sweet soufflé jelly tiramisu chocolate?', + slug: 'cheesecake-sweet-soufflé-jelly-tiramisu-chocolate' + }, + { + id: 2, + question: 'Carrot cake topping tiramisu oat?', + slug: 'carrot-cake-topping-tiramisu-oat' + }, + { + id: 3, + question: 'Ice cream soufflé marshmallow?', + slug: 'ice-cream-soufflé-marshmallow' + }, + { + id: 4, + question: 'Dragée liquorice dragée jelly beans?', + slug: 'dragée-liquorice-dragée-jelly-beans' + }, + { + id: 5, + question: 'Lemon drops gingerbread chupa chups tiramisu?', + slug: 'lemon-drops-gingerbread-chupa-chups-tiramisu' + } + ] + }, + { + id: 5, + title: 'Using KnowHow', + icon: 'HelpCircle', + iconColor: '', + questions: [ + { + id: 0, + question: 'Brownie dessert gummies?', + slug: 'brownie-dessert-gummies' + }, + { + id: 1, + question: 'Cookie tiramisu lollipop?', + slug: 'cookie-tiramisu-lollipop' + }, + { + id: 2, + question: 'Bonbon sugar plum jelly-o?', + slug: 'bonbon-sugar-plum-jelly-o' + }, + { + id: 3, + question: 'Halvah chupa chups chupa chups?', + slug: 'halvah-chupa-chups-chupa-chups' + } + ] + } + ], + questionData: { + title: 'Why Was My Developer Application Rejected?', + lastUpdated: '10 Dec 2018', + relatedQuestions: [ + { + id: 0, + question: 'Cake icing gummi bears?' + }, + { + id: 1, + question: 'Jelly soufflé apple pie?' + }, + { + id: 2, + question: 'Soufflé apple pie ice cream cotton?' + }, + { + id: 3, + question: 'Powder wafer brownie?' + }, + { + id: 4, + question: 'Toffee donut dragée cotton candy?' + }, + { + id: 5, + question: 'Soufflé chupa chups chocolate bar?' + } + ], + // ! Here we have used require for image source but in API it shall be URL of live image, this is just for demo purpose + content: `

    It has been said that astronomy is a humbling and character-building experience. There is perhaps no better demonstration of the folly of human conceits than this distant image of our tiny world. To me, it underscores our responsibility to deal more kindly with one another, and to preserve and cherish the pale blue dot, the only home we’ve ever known. The Earth is a very small stage in a vast cosmic arena. Think of the rivers of blood spilled by all those generals and emperors so that, in glory and triumph, they could become the momentary masters of a fraction of a dot. Think of the endless cruelties visited by the inhabitants of one corner of this pixel on the scarcely distinguishable inhabitants of some other corner, how frequent their misunderstandings, how eager they are to kill one another, how fervent their hatreds.

    Houston

    that may have seemed like a very long final phase. The auto targeting was taking us right into a … crater, with a large number of big boulders and rocks … and it required …flying manually over the rock field to find a reasonably good area.

    ` + } +} + +mock.onGet('/faq/data/knowledge_base').reply(() => [200, data.knowledgeBase]) +mock.onGet('/faq/data/category').reply(() => [200, data.categoryData]) +mock.onGet('/faq/data/question').reply(() => [200, data.questionData]) diff --git a/src/@fake-db/pages/pricing-data.js b/src/@fake-db/pages/pricing-data.js new file mode 100644 index 0000000..555a160 --- /dev/null +++ b/src/@fake-db/pages/pricing-data.js @@ -0,0 +1,79 @@ +import mock from '../mock' + +const data = { + pricing: { + basicPlan: { + title: 'Basic', + img: require('@src/assets/images/illustration/Pot1.svg').default, + subtitle: 'A simple start for everyone', + monthlyPrice: 0, + yearlyPlan: { + perMonth: 0, + totalAnnual: 0 + }, + planBenefits: [ + '100 responses a month', + 'Unlimited forms and surveys', + 'Unlimited fields', + 'Basic form creation tools', + 'Up to 2 subdomains' + ], + popular: false + }, + standardPlan: { + title: 'Standard', + img: require('@src/assets/images/illustration/Pot2.svg').default, + subtitle: 'For small to medium businesses', + monthlyPrice: 49, + yearlyPlan: { + perMonth: 40, + totalAnnual: 480 + }, + planBenefits: [ + 'Unlimited responses', + 'Unlimited forms and surveys', + 'Instagram profile page', + 'Google Docs integration', + 'Custom “Thank you” page' + ], + popular: true + }, + enterprisePlan: { + title: 'Enterprise', + img: require('@src/assets/images/illustration/Pot3.svg').default, + subtitle: 'Solution for big organizations', + monthlyPrice: 99, + yearlyPlan: { + perMonth: 80, + totalAnnual: 960 + }, + planBenefits: [ + 'PayPal payments', + 'Logic Jumps', + 'File upload with 5GB storage', + 'Custom domain support', + 'Stripe integration' + ], + popular: false + }, + qandA: [ + { + question: 'Does my subscription automatically renew?', + ans: + 'Pastry pudding cookie toffee bonbon jujubes jujubes powder topping. Jelly beans gummi bears sweet roll bonbon muffin liquorice. Wafer lollipop sesame snaps. Brownie macaroon cookie muffin cupcake candy caramels tiramisu. Oat cake chocolate cake sweet jelly-o brownie biscuit marzipan. Jujubes donut marzipan chocolate bar. Jujubes sugar plum jelly beans tiramisu icing cheesecake.' + }, + { + question: 'Can I store the item on an intranet so everyone has access?', + ans: + 'Tiramisu marshmallow dessert halvah bonbon cake gingerbread. Jelly beans chocolate pie powder. Dessert pudding chocolate cake bonbon bear claw cotton candy cheesecake. Biscuit fruitcake macaroon carrot cake. Chocolate cake bear claw muffin chupa chups pudding.' + }, + { + question: 'Am I allowed to modify the item that I purchased?', + ans: + 'Tart gummies dragée lollipop fruitcake pastry oat cake. Cookie jelly jelly macaroon icing jelly beans soufflé cake sweet. Macaroon sesame snaps cheesecake tart cake sugar plum. Dessert jelly-o sweet muffin chocolate candy pie tootsie roll marzipan. Carrot cake marshmallow pastry. Bonbon biscuit pastry topping toffee dessert gummies. Topping apple pie pie croissant cotton candy dessert tiramisu.' + } + ] + } +} + +mock.onGet('/pricing/data').reply(() => [200, data.pricing]) diff --git a/src/@fake-db/pages/profile.js b/src/@fake-db/pages/profile.js new file mode 100644 index 0000000..7ccce38 --- /dev/null +++ b/src/@fake-db/pages/profile.js @@ -0,0 +1,314 @@ +import mock from '../mock' +const data = { + profileData: { + header: { + avatar: require('@src/assets/images/portrait/small/avatar-s-2.jpg').default, + username: 'Kitty Allanson', + designation: 'UI/UX Designer', + coverImg: require('@src/assets/images/profile/user-uploads/timeline.jpg').default + }, + userAbout: { + about: 'Tart I love sugar plum I love oat cake. Sweet ⭐️ roll caramels I love jujubes. Topping cake wafer.', + joined: 'November 15, 2015', + lives: 'New York, USA', + email: 'bucketful@fiendhead.org', + website: 'www.pixinvent.com' + }, + suggestedPages: [ + { + avatar: require('@src/assets/images/avatars/12-small.png').default, + username: 'Peter Reed', + subtitle: 'Company', + favorite: false + }, + { + avatar: require('@src/assets/images/avatars/1-small.png').default, + username: 'Harriett Adkins', + subtitle: 'Company', + favorite: false + }, + { + avatar: require('@src/assets/images/avatars/10-small.png').default, + username: 'Juan Weaver', + subtitle: 'Company', + favorite: false + }, + { + avatar: require('@src/assets/images/avatars/3-small.png').default, + username: 'Claudia Chandler', + subtitle: 'Company', + favorite: false + }, + { + avatar: require('@src/assets/images/avatars/5-small.png').default, + username: 'Earl Briggs', + subtitle: 'Company', + favorite: true + }, + { + avatar: require('@src/assets/images/avatars/6-small.png').default, + username: 'Jonathan Lyons', + subtitle: 'Beauty Store', + favorite: false + } + ], + twitterFeeds: [ + { + imgUrl: require('@src/assets/images/avatars/5-small.png').default, + title: 'Gertrude Stevens', + id: 'tiana59 ', + tags: '#design #fasion', + desc: 'I love cookie chupa chups sweet tart apple pie ⭐️ chocolate bar.', + favorite: false + }, + { + imgUrl: require('@src/assets/images/avatars/12-small.png').default, + title: 'Lura Jones', + id: 'tiana59 ', + tags: '#vuejs #code #coffeez', + desc: 'Halvah I love powder jelly I love cheesecake cotton candy. 😍', + favorite: true + }, + { + imgUrl: require('@src/assets/images/avatars/1-small.png').default, + title: 'Norman Gross', + id: 'tiana59 ', + tags: '#sketch #uiux #figma', + desc: 'Candy jelly beans powder brownie biscuit. Jelly marzipan oat cake cake.', + favorite: false + } + ], + post: [ + { + avatar: require('@src/assets/images/portrait/small/avatar-s-18.jpg').default, + username: 'Leeanna Alvord', + postTime: '12 Dec 2018 at 1:16 AM', + postText: + 'Wonderful Machine· A well-written bio allows viewers to get to know a photographer beyond the work. This can make the difference when presenting to clients who are looking for the perfect fit.', + postImg: require('@src/assets/images/profile/post-media/2.jpg').default, + likes: 1240, + youLiked: true, + comments: '1.25k', + share: '1.05k', + likedUsers: [ + { + avatar: require('@src/assets/images/portrait/small/avatar-s-1.jpg').default, + username: 'Trine Lynes' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-2.jpg').default, + username: 'Lilian Nenes' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-3.jpg').default, + username: 'Alberto Glotzbach' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-5.jpg').default, + username: 'George Nordic' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-4.jpg').default, + username: 'Vinnie Mostowy' + } + ], + likedCount: 140, + detailedComments: [ + { + avatar: require('@src/assets/images/portrait/small/avatar-s-6.jpg').default, + username: 'Kitty Allanson', + comment: 'Easy & smart fuzzy search🕵🏻 functionality which enables users to search quickly.', + commentsLikes: 34, + youLiked: false + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-8.jpg').default, + username: 'Jackey Potter', + comment: 'Unlimited color🖌 options allows you to set your application color as per your branding 🤪.', + commentsLikes: 61, + youLiked: true + } + ] + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-22.jpg').default, + username: 'Rosa Walters', + postTime: '11 Dec 2019 at 1:16 AM', + postText: + 'Wonderful Machine· A well-written bio allows viewers to get to know a photographer beyond the work. This can make the difference when presenting to clients who are looking for the perfect fit.', + postImg: require('@src/assets/images/profile/post-media/25.jpg').default, + likes: 1240, + youLiked: true, + comments: '1.25k', + share: '1.25k', + likedUsers: [ + { + avatar: require('@src/assets/images/portrait/small/avatar-s-1.jpg').default, + username: 'Kori Scargle' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-2.jpg').default, + username: 'Florinda Mollison' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-3.jpg').default, + username: 'Beltran Endley' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-5.jpg').default, + username: 'Kara Gerred' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-4.jpg').default, + username: 'Sophey Bru' + } + ], + likedCount: 271, + detailedComments: [ + { + avatar: require('@src/assets/images/portrait/small/avatar-s-3.jpg').default, + username: 'Kitty Allanson', + comment: 'Easy & smart fuzzy search🕵🏻 functionality which enables users to search quickly.', + commentsLikes: 34, + youLiked: false + } + ] + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-15.jpg').default, + username: 'Charles Watson', + postTime: '12 Dec 2019 at 1:16 AM', + postText: + 'Wonderful Machine· A well-written bio allows viewers to get to know a photographer beyond the work. This can make the difference when presenting to clients who are looking for the perfect fit.', + postVid: 'https://www.youtube.com/embed/6stlCkUDG_s', + likes: 1240, + youLiked: true, + comments: '1.25k', + share: '1.25k', + likedUsers: [ + { + avatar: require('@src/assets/images/portrait/small/avatar-s-1.jpg').default, + username: 'Dehlia Bolderson' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-2.jpg').default, + username: 'De Lamy' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-3.jpg').default, + username: 'Vallie Kingsley' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-5.jpg').default, + username: 'Nadia Armell' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-4.jpg').default, + username: 'Romonda Aseef' + } + ], + likedCount: 264, + detailedComments: [ + { + avatar: require('@src/assets/images/portrait/small/avatar-s-3.jpg').default, + username: 'Kitty Allanson', + comment: 'Easy & smart fuzzy search🕵🏻 functionality which enables users to search quickly.', + commentsLikes: 34, + youLiked: false + } + ] + } + ], + latestPhotos: [ + { img: require('@src/assets/images/profile/user-uploads/user-13.jpg').default }, + { img: require('@src/assets/images/profile/user-uploads/user-02.jpg').default }, + { img: require('@src/assets/images/profile/user-uploads/user-03.jpg').default }, + { img: require('@src/assets/images/profile/user-uploads/user-04.jpg').default }, + { img: require('@src/assets/images/profile/user-uploads/user-05.jpg').default }, + { img: require('@src/assets/images/profile/user-uploads/user-06.jpg').default }, + { img: require('@src/assets/images/profile/user-uploads/user-07.jpg').default }, + { img: require('@src/assets/images/profile/user-uploads/user-08.jpg').default }, + { img: require('@src/assets/images/profile/user-uploads/user-09.jpg').default } + ], + suggestions: [ + { + avatar: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + name: 'Peter Reed', + mutualFriend: '6 Mutual Friends' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-6.jpg').default, + name: 'Harriett Adkins', + mutualFriend: '3 Mutual Friends' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-7.jpg').default, + name: 'Juan Weaver', + mutualFriend: '1 Mutual Friends' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-8.jpg').default, + name: 'Claudia Chandler', + mutualFriend: '16 Mutual Friends' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-1.jpg').default, + name: 'Earl Briggs', + mutualFriend: '4 Mutual Friends' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-10.jpg').default, + name: 'Jonathan Lyons', + mutualFriend: '25 Mutual Friends' + } + ], + polls: [ + { + name: 'RDJ', + result: '82%', + votedUser: [ + { + img: require('@src/assets/images/portrait/small/avatar-s-12.jpg').default, + username: 'Tonia Seabold' + }, + { + img: require('@src/assets/images/portrait/small/avatar-s-5.jpg').default, + username: 'Carissa Dolle' + }, + { + img: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + username: 'Kelle Herrick' + }, + { + img: require('@src/assets/images/portrait/small/avatar-s-10.jpg').default, + username: 'Len Bregantini' + }, + { + img: require('@src/assets/images/portrait/small/avatar-s-11.jpg').default, + username: 'John Doe' + } + ] + }, + { + name: 'Chris Hemsworth', + result: '67%', + votedUser: [ + { + img: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + username: 'Tonia Seabold' + }, + { + img: require('@src/assets/images/portrait/small/avatar-s-1.jpg').default, + username: 'Carissa Dolle' + }, + { + img: require('@src/assets/images/portrait/small/avatar-s-8.jpg').default, + username: 'Jonathan Lyons' + } + ] + } + ] + } +} + +mock.onGet('/profile/data').reply(() => [200, data.profileData]) diff --git a/src/@fake-db/tables/datatables.js b/src/@fake-db/tables/datatables.js new file mode 100644 index 0000000..f129334 --- /dev/null +++ b/src/@fake-db/tables/datatables.js @@ -0,0 +1,1437 @@ +import mock from '../mock' +import { paginateArray } from '../utils' + +const data = [ + { + responsive_id: '', + id: 1, + avatar: '10.jpg', + full_name: "Korrie O'Crevy", + post: 'Nuclear Power Engineer', + email: 'kocrevy0@thetimes.co.uk', + city: 'Krasnosilka', + start_date: '09/23/2016', + salary: '$23896.35', + age: '61', + experience: '1 Year', + status: 2 + }, + { + responsive_id: '', + id: 2, + avatar: '1.jpg', + full_name: 'Bailie Coulman', + post: 'VP Quality Control', + email: 'bcoulman1@yolasite.com', + city: 'Hinigaran', + start_date: '05/20/2018', + salary: '$13633.69', + age: '63', + experience: '3 Years', + status: 2 + }, + { + responsive_id: '', + id: 3, + avatar: '9.jpg', + full_name: 'Stella Ganderton', + post: 'Operator', + email: 'sganderton2@tuttocitta.it', + city: 'Golcowa', + start_date: '03/24/2018', + salary: '$13076.28', + age: '66', + experience: '6 Years', + status: 5 + }, + { + responsive_id: '', + id: 4, + avatar: '10.jpg', + full_name: 'Dorolice Crossman', + post: 'Cost Accountant', + email: 'dcrossman3@google.co.jp', + city: 'Paquera', + start_date: '12/03/2017', + salary: '$12336.17', + age: '22', + experience: '2 Years', + status: 2 + }, + { + responsive_id: '', + id: 5, + avatar: '', + full_name: 'Harmonia Nisius', + post: 'Senior Cost Accountant', + email: 'hnisius4@gnu.org', + city: 'Lucan', + start_date: '08/25/2017', + salary: '$10909.52', + age: '33', + experience: '3 Years', + status: 2 + }, + { + responsive_id: '', + id: 6, + avatar: '', + full_name: 'Genevra Honeywood', + post: 'Geologist', + email: 'ghoneywood5@narod.ru', + city: 'Maofan', + start_date: '06/01/2017', + salary: '$17803.80', + age: '61', + experience: '1 Year', + status: 1 + }, + { + responsive_id: '', + id: 7, + avatar: '', + full_name: 'Eileen Diehn', + post: 'Environmental Specialist', + email: 'ediehn6@163.com', + city: 'Lampuyang', + start_date: '10/15/2017', + salary: '$18991.67', + age: '59', + experience: '9 Years', + status: 3 + }, + { + responsive_id: '', + id: 8, + avatar: '9.jpg', + full_name: 'Richardo Aldren', + post: 'Senior Sales Associate', + email: 'raldren7@mtv.com', + city: 'Skoghall', + start_date: '11/05/2016', + salary: '$19230.13', + age: '55', + experience: '5 Years', + status: 3 + }, + { + responsive_id: '', + id: 9, + avatar: '2.jpg', + full_name: 'Allyson Moakler', + post: 'Safety Technician', + email: 'amoakler8@shareasale.com', + city: 'Mogilany', + start_date: '12/29/2018', + salary: '$11677.32', + age: '39', + experience: '9 Years', + status: 5 + }, + { + responsive_id: '', + id: 10, + avatar: '9.jpg', + full_name: 'Merline Penhalewick', + post: 'Junior Executive', + email: 'mpenhalewick9@php.net', + city: 'Kanuma', + start_date: '04/19/2019', + salary: '$15939.52', + age: '23', + experience: '3 Years', + status: 2 + }, + { + responsive_id: '', + id: 11, + avatar: '', + full_name: 'De Falloon', + post: 'Sales Representative', + email: 'dfalloona@ifeng.com', + city: 'Colima', + start_date: '06/12/2018', + salary: '$19252.12', + age: '30', + experience: '0 Year', + status: 4 + }, + { + responsive_id: '', + id: 12, + avatar: '', + full_name: 'Cyrus Gornal', + post: 'Senior Sales Associate', + email: 'cgornalb@fda.gov', + city: 'Boro Utara', + start_date: '12/09/2017', + salary: '$16745.47', + age: '22', + experience: '2 Years', + status: 4 + }, + { + responsive_id: '', + id: 13, + avatar: '', + full_name: 'Tallou Balf', + post: 'Staff Accountant', + email: 'tbalfc@sina.com.cn', + city: 'Siliana', + start_date: '01/21/2016', + salary: '$15488.53', + age: '36', + experience: '6 Years', + status: 4 + }, + { + responsive_id: '', + id: 14, + avatar: '', + full_name: 'Othilia Extill', + post: 'Associate Professor', + email: 'oextilld@theatlantic.com', + city: 'Brzyska', + start_date: '02/01/2016', + salary: '$18442.34', + age: '43', + experience: '3 Years', + status: 2 + }, + { + responsive_id: '', + id: 15, + avatar: '', + full_name: 'Wilmar Bourton', + post: 'Administrative Assistant', + email: 'wbourtone@sakura.ne.jp', + city: 'Bích Động', + start_date: '04/25/2018', + salary: '$13304.45', + age: '19', + experience: '9 Years', + status: 5 + }, + { + responsive_id: '', + id: 16, + avatar: '4.jpg', + full_name: 'Robinson Brazenor', + post: 'General Manager', + email: 'rbrazenorf@symantec.com', + city: 'Gendiwu', + start_date: '12/23/2017', + salary: '$11953.08', + age: '66', + experience: '6 Years', + status: 5 + }, + { + responsive_id: '', + id: 17, + avatar: '', + full_name: 'Nadia Bettenson', + post: 'Environmental Tech', + email: 'nbettensong@joomla.org', + city: 'Chabařovice', + start_date: '07/11/2018', + salary: '$20484.44', + age: '64', + experience: '4 Years', + status: 1 + }, + { + responsive_id: '', + id: 18, + avatar: '', + full_name: 'Titus Hayne', + post: 'Web Designer', + email: 'thayneh@kickstarter.com', + city: 'Yangon', + start_date: '05/25/2019', + salary: '$16871.48', + age: '59', + experience: '9 Years', + status: 1 + }, + { + responsive_id: '', + id: 19, + avatar: '5.jpg', + full_name: 'Roxie Huck', + post: 'Administrative Assistant', + email: 'rhucki@ed.gov', + city: 'Polýkastro', + start_date: '04/04/2019', + salary: '$19653.56', + age: '41', + experience: '1 Year', + status: 4 + }, + { + responsive_id: '', + id: 20, + avatar: '7.jpg', + full_name: 'Latashia Lewtey', + post: 'Actuary', + email: 'llewteyj@sun.com', + city: 'Hougong', + start_date: '08/03/2017', + salary: '$18303.87', + age: '35', + experience: '5 Years', + status: 1 + }, + { + responsive_id: '', + id: 21, + avatar: '', + full_name: 'Natalina Tyne', + post: 'Software Engineer', + email: 'ntynek@merriam-webster.com', + city: 'Yanguan', + start_date: '03/16/2019', + salary: '$15256.40', + age: '30', + experience: '0 Year', + status: 2 + }, + { + responsive_id: '', + id: 22, + avatar: '', + full_name: 'Faun Josefsen', + post: 'Analog Circuit Design manager', + email: 'fjosefsenl@samsung.com', + city: 'Wengyang', + start_date: '07/08/2017', + salary: '$11209.16', + age: '40', + experience: '0 Year', + status: 3 + }, + { + responsive_id: '', + id: 23, + avatar: '9.jpg', + full_name: 'Rosmunda Steed', + post: 'Assistant Media Planner', + email: 'rsteedm@xing.com', + city: 'Manzanares', + start_date: '12/23/2017', + salary: '$13778.34', + age: '21', + experience: '1 Year', + status: 5 + }, + { + responsive_id: '', + id: 24, + avatar: '', + full_name: 'Scott Jiran', + post: 'Graphic Designer', + email: 'sjirann@simplemachines.org', + city: 'Pinglin', + start_date: '05/26/2016', + salary: '$23081.71', + age: '23', + experience: '3 Years', + status: 1 + }, + { + responsive_id: '', + id: 25, + avatar: '', + full_name: 'Carmita Medling', + post: 'Accountant', + email: 'cmedlingo@hp.com', + city: 'Bourges', + start_date: '07/31/2019', + salary: '$13602.24', + age: '47', + experience: '7 Years', + status: 3 + }, + { + responsive_id: '', + id: 26, + avatar: '2.jpg', + full_name: 'Morgen Benes', + post: 'Senior Sales Associate', + email: 'mbenesp@ted.com', + city: 'Cà Mau', + start_date: '04/10/2016', + salary: '$16969.63', + age: '42', + experience: '2 Years', + status: 4 + }, + { + responsive_id: '', + id: 27, + avatar: '', + full_name: 'Onfroi Doughton', + post: 'Civil Engineer', + email: 'odoughtonq@aboutads.info', + city: 'Utrecht (stad)', + start_date: '09/29/2018', + salary: '$23796.62', + age: '28', + experience: '8 Years', + status: 3 + }, + { + responsive_id: '', + id: 28, + avatar: '', + full_name: 'Kliment McGinney', + post: 'Chief Design Engineer', + email: 'kmcginneyr@paginegialle.it', + city: 'Xiaocheng', + start_date: '07/09/2018', + salary: '$24027.81', + age: '28', + experience: '8 Years', + status: 4 + }, + { + responsive_id: '', + id: 29, + avatar: '', + full_name: 'Devin Bridgland', + post: 'Tax Accountant', + email: 'dbridglands@odnoklassniki.ru', + city: 'Baoli', + start_date: '07/17/2016', + salary: '$13508.15', + age: '48', + experience: '8 Years', + status: 3 + }, + { + responsive_id: '', + id: 30, + avatar: '6.jpg', + full_name: 'Gilbert McFade', + post: 'Biostatistician', + email: 'gmcfadet@irs.gov', + city: 'Deje', + start_date: '08/28/2018', + salary: '$21632.30', + age: '20', + experience: '0 Year', + status: 2 + }, + { + responsive_id: '', + id: 31, + avatar: '', + full_name: 'Teressa Bleakman', + post: 'Senior Editor', + email: 'tbleakmanu@phpbb.com', + city: 'Žebrák', + start_date: '09/03/2016', + salary: '$24875.41', + age: '37', + experience: '7 Years', + status: 5 + }, + { + responsive_id: '', + id: 32, + avatar: '', + full_name: 'Marcelia Alleburton', + post: 'Safety Technician', + email: 'malleburtonv@amazon.com', + city: 'Basail', + start_date: '06/02/2016', + salary: '$23888.98', + age: '53', + experience: '3 Years', + status: 2 + }, + { + responsive_id: '', + id: 33, + avatar: '7.jpg', + full_name: 'Aili De Coursey', + post: 'Environmental Specialist', + email: 'adew@etsy.com', + city: 'Łazy', + start_date: '09/30/2016', + salary: '$14082.44', + age: '27', + experience: '7 Years', + status: 5 + }, + { + responsive_id: '', + id: 34, + avatar: '6.jpg', + full_name: 'Charlton Chatres', + post: 'Analyst Programmer', + email: 'cchatresx@goo.gl', + city: 'Reguengos de Monsaraz', + start_date: '04/07/2016', + salary: '$21386.52', + age: '22', + experience: '2 Years', + status: 3 + }, + { + responsive_id: '', + id: 35, + avatar: '1.jpg', + full_name: 'Nat Hugonnet', + post: 'Financial Advisor', + email: 'nhugonnety@wufoo.com', + city: 'Pimentel', + start_date: '09/11/2019', + salary: '$13835.97', + age: '46', + experience: '6 Years', + status: 4 + }, + { + responsive_id: '', + id: 36, + avatar: '', + full_name: 'Lorine Hearsum', + post: 'Payment Adjustment Coordinator', + email: 'lhearsumz@google.co.uk', + city: 'Shuiying', + start_date: '03/05/2019', + salary: '$22093.91', + age: '47', + experience: '7 Years', + status: 4 + }, + { + responsive_id: '', + id: 37, + avatar: '8.jpg', + full_name: 'Sheila-kathryn Haborn', + post: 'Environmental Specialist', + email: 'shaborn10@about.com', + city: 'Lewolang', + start_date: '11/10/2018', + salary: '$24624.23', + age: '51', + experience: '1 Year', + status: 3 + }, + { + responsive_id: '', + id: 38, + avatar: '3.jpg', + full_name: 'Alma Harvatt', + post: 'Administrative Assistant', + email: 'aharvatt11@addtoany.com', + city: 'Ulundi', + start_date: '11/04/2016', + salary: '$21782.82', + age: '41', + experience: '1 Year', + status: 1 + }, + { + responsive_id: '', + id: 39, + avatar: '2.jpg', + full_name: 'Beatrix Longland', + post: 'VP Quality Control', + email: 'blongland12@gizmodo.com', + city: 'Damu', + start_date: '07/18/2016', + salary: '$22794.60', + age: '62', + experience: '2 Years', + status: 2 + }, + { + responsive_id: '', + id: 40, + avatar: '4.jpg', + full_name: 'Hammad Condell', + post: 'Project Manager', + email: 'hcondell13@tiny.cc', + city: 'Bulung’ur', + start_date: '11/04/2018', + salary: '$10872.83', + age: '37', + experience: '7 Years', + status: 4 + }, + { + responsive_id: '', + id: 41, + avatar: '', + full_name: 'Parker Bice', + post: 'Technical Writer', + email: 'pbice14@ameblo.jp', + city: 'Shanlian', + start_date: '03/02/2016', + salary: '$17471.92', + age: '65', + experience: '5 Years', + status: 5 + }, + { + responsive_id: '', + id: 42, + avatar: '', + full_name: 'Lowrance Orsi', + post: 'Biostatistician', + email: 'lorsi15@wp.com', + city: 'Dengteke', + start_date: '12/10/2018', + salary: '$24719.51', + age: '64', + experience: '4 Years', + status: 1 + }, + { + responsive_id: '', + id: 43, + avatar: '10.jpg', + full_name: 'Ddene Chaplyn', + post: 'Environmental Tech', + email: 'dchaplyn16@nymag.com', + city: 'Lattes', + start_date: '01/23/2019', + salary: '$11958.33', + age: '38', + experience: '8 Years', + status: 2 + }, + { + responsive_id: '', + id: 44, + avatar: '', + full_name: 'Washington Bygraves', + post: 'Human Resources Manager', + email: 'wbygraves17@howstuffworks.com', + city: 'Zlaté Hory', + start_date: '09/07/2016', + salary: '$10552.43', + age: '37', + experience: '7 Years', + status: 1 + }, + { + responsive_id: '', + id: 45, + avatar: '7.jpg', + full_name: 'Meghann Bodechon', + post: 'Operator', + email: 'mbodechon18@1und1.de', + city: 'Itō', + start_date: '07/23/2018', + salary: '$23024.28', + age: '61', + experience: '1 Year', + status: 4 + }, + { + responsive_id: '', + id: 46, + avatar: '1.jpg', + full_name: 'Moshe De Ambrosis', + post: 'Recruiting Manager', + email: 'mde19@purevolume.com', + city: 'San Diego', + start_date: '02/10/2018', + salary: '$10409.90', + age: '47', + experience: '7 Years', + status: 5 + }, + { + responsive_id: '', + id: 47, + avatar: '5.jpg', + full_name: 'Had Chatelot', + post: 'Cost Accountant', + email: 'hchatelot1a@usatoday.com', + city: 'Mercedes', + start_date: '11/23/2016', + salary: '$11446.30', + age: '64', + experience: '4 Years', + status: 4 + }, + { + responsive_id: '', + id: 48, + avatar: '', + full_name: 'Georgia McCrum', + post: 'Registered Nurse', + email: 'gmccrum1b@icio.us', + city: 'Nggalak', + start_date: '04/19/2018', + salary: '$14002.31', + age: '63', + experience: '3 Years', + status: 1 + }, + { + responsive_id: '', + id: 49, + avatar: '8.jpg', + full_name: 'Krishnah Stilldale', + post: 'VP Accounting', + email: 'kstilldale1c@chronoengine.com', + city: 'Slavs’ke', + start_date: '03/18/2017', + salary: '$10704.29', + age: '56', + experience: '6 Years', + status: 1 + }, + { + responsive_id: '', + id: 50, + avatar: '4.jpg', + full_name: 'Mario Umbert', + post: 'Research Assistant', + email: 'mumbert1d@digg.com', + city: 'Chorotis', + start_date: '05/13/2019', + salary: '$21813.54', + age: '43', + experience: '3 Years', + status: 1 + }, + { + responsive_id: '', + id: 51, + avatar: '', + full_name: 'Edvard Dixsee', + post: 'Graphic Designer', + email: 'edixsee1e@unblog.fr', + city: 'Rancharia', + start_date: '04/23/2019', + salary: '$18053.11', + age: '46', + experience: '6 Years', + status: 3 + }, + { + responsive_id: '', + id: 52, + avatar: '9.jpg', + full_name: 'Tammie Davydoch', + post: 'VP Quality Control', + email: 'tdavydoch1f@examiner.com', + city: 'Mamedkala', + start_date: '04/19/2016', + salary: '$17617.08', + age: '47', + experience: '7 Years', + status: 3 + }, + { + responsive_id: '', + id: 53, + avatar: '', + full_name: 'Benito Rodolico', + post: 'Safety Technician', + email: 'brodolico1g@sciencedirect.com', + city: 'Wonosobo', + start_date: '10/06/2018', + salary: '$18866.55', + age: '21', + experience: '1 Year', + status: 5 + }, + { + responsive_id: '', + id: 54, + avatar: '', + full_name: 'Marco Pennings', + post: 'Compensation Analyst', + email: 'mpennings1h@bizjournals.com', + city: 'Umag', + start_date: '06/15/2017', + salary: '$13722.18', + age: '30', + experience: '0 Year', + status: 3 + }, + { + responsive_id: '', + id: 55, + avatar: '', + full_name: "Tommie O'Corr", + post: 'Quality Engineer', + email: 'tocorr1i@nyu.edu', + city: 'Olhos de Água', + start_date: '09/26/2018', + salary: '$15228.80', + age: '51', + experience: '1 Year', + status: 1 + }, + { + responsive_id: '', + id: 56, + avatar: '1.jpg', + full_name: 'Cybill Poyle', + post: 'Cost Accountant', + email: 'cpoyle1j@amazon.com', + city: 'Hamm', + start_date: '01/03/2016', + salary: '$13951.96', + age: '29', + experience: '9 Years', + status: 1 + }, + { + responsive_id: '', + id: 57, + avatar: '6.jpg', + full_name: 'Norry Stoller', + post: 'Human Resources Manager', + email: 'nstoller1k@noaa.gov', + city: 'Ruukki', + start_date: '02/04/2018', + salary: '$15100.00', + age: '27', + experience: '7 Years', + status: 4 + }, + { + responsive_id: '', + id: 58, + avatar: '', + full_name: 'Wendi Somerlie', + post: 'Systems Administrator', + email: 'wsomerlie1l@accuweather.com', + city: 'Meicheng', + start_date: '04/22/2016', + salary: '$20023.52', + age: '28', + experience: '9 Years', + status: 5 + }, + { + responsive_id: '', + id: 59, + avatar: '', + full_name: 'Ferdie Georgeon', + post: 'Geologist', + email: 'fgeorgeon1m@nhs.uk', + city: 'Tanahbeureum', + start_date: '04/08/2019', + salary: '$12630.26', + age: '28', + experience: '1 Year', + status: 2 + }, + { + responsive_id: '', + id: 60, + avatar: '', + full_name: 'Jules Auten', + post: 'Desktop Support Technician', + email: 'jauten1n@foxnews.com', + city: 'Mojo', + start_date: '08/13/2019', + salary: '$13870.62', + age: '48', + experience: '5 Years', + status: 4 + }, + { + responsive_id: '', + id: 61, + avatar: '3.jpg', + full_name: 'Nichole Dacres', + post: 'Mechanical Systems Engineer', + email: 'ndacres1o@apache.org', + city: 'Kimanuit', + start_date: '11/06/2017', + salary: '$18220.51', + age: '20', + experience: '0 Year', + status: 3 + }, + { + responsive_id: '', + id: 62, + avatar: '1.jpg', + full_name: 'Holly Edgworth', + post: 'Junior Executive', + email: 'hedgworth1p@craigslist.org', + city: 'Pedreira', + start_date: '08/05/2017', + salary: '$13999.88', + age: '37', + experience: '0 Year', + status: 5 + }, + { + responsive_id: '', + id: 63, + avatar: '9.jpg', + full_name: 'Henriette Croft', + post: 'Food Chemist', + email: 'hcroft1q@desdev.cn', + city: 'Taizhou', + start_date: '09/12/2019', + salary: '$11049.79', + age: '53', + experience: '1 Year', + status: 5 + }, + { + responsive_id: '', + id: 64, + avatar: '', + full_name: 'Annetta Glozman', + post: 'Staff Accountant', + email: 'aglozman1r@storify.com', + city: 'Pendawanbaru', + start_date: '08/25/2017', + salary: '$10745.32', + age: '27', + experience: '3 Years', + status: 5 + }, + { + responsive_id: '', + id: 65, + avatar: '', + full_name: 'Cletis Cervantes', + post: 'Health Coach', + email: 'ccervantes1s@de.vu', + city: 'Solnechnyy', + start_date: '05/24/2018', + salary: '$24769.08', + age: '22', + experience: '7 Years', + status: 1 + }, + { + responsive_id: '', + id: 66, + avatar: '9.jpg', + full_name: 'Christos Kiley', + post: 'Geologist', + email: 'ckiley1t@buzzfeed.com', + city: 'El Bolsón', + start_date: '02/27/2019', + salary: '$16053.15', + age: '46', + experience: '2 Years', + status: 1 + }, + { + responsive_id: '', + id: 67, + avatar: '7.jpg', + full_name: 'Silvain Siebert', + post: 'VP Sales', + email: 'ssiebert1u@domainmarket.com', + city: 'Cadiz', + start_date: '09/23/2017', + salary: '$23347.17', + age: '47', + experience: '8 Years', + status: 5 + }, + { + responsive_id: '', + id: 68, + avatar: '', + full_name: 'Sharla Ibberson', + post: 'Payment Adjustment Coordinator', + email: 'sibberson1v@virginia.edu', + city: 'Lamam', + start_date: '11/01/2016', + salary: '$15658.40', + age: '51', + experience: '8 Years', + status: 1 + }, + { + responsive_id: '', + id: 69, + avatar: '7.jpg', + full_name: 'Ripley Rentcome', + post: 'Physical Therapy Assistant', + email: 'rrentcome1w@youtu.be', + city: 'Dashkawka', + start_date: '07/15/2018', + salary: '$15396.66', + age: '41', + experience: '8 Years', + status: 2 + }, + { + responsive_id: '', + id: 70, + avatar: '', + full_name: 'Chrisse Birrane', + post: 'Chemical Engineer', + email: 'cbirrane1x@google.com.br', + city: 'Las Toscas', + start_date: '05/22/2016', + salary: '$15823.40', + age: '62', + experience: '0 Year', + status: 5 + }, + { + responsive_id: '', + id: 71, + avatar: '', + full_name: 'Georges Tesyro', + post: 'Human Resources Manager', + email: 'gtesyro1y@last.fm', + city: 'Gabao', + start_date: '01/27/2019', + salary: '$19051.25', + age: '37', + experience: '7 Years', + status: 1 + }, + { + responsive_id: '', + id: 72, + avatar: '', + full_name: 'Bondon Hazard', + post: 'Geological Engineer', + email: 'bhazard1z@over-blog.com', + city: 'Llano de Piedra', + start_date: '01/17/2019', + salary: '$11632.84', + age: '65', + experience: '3 Years', + status: 4 + }, + { + responsive_id: '', + id: 73, + avatar: '5.jpg', + full_name: 'Aliza MacElholm', + post: 'VP Sales', + email: 'amacelholm20@printfriendly.com', + city: 'Sosnovyy Bor', + start_date: '11/17/2017', + salary: '$16741.31', + age: '64', + experience: '7 Years', + status: 2 + }, + { + responsive_id: '', + id: 74, + avatar: '2.jpg', + full_name: 'Lucas Witherdon', + post: 'Senior Quality Engineer', + email: 'lwitherdon21@storify.com', + city: 'Staré Křečany', + start_date: '09/26/2016', + salary: '$19387.76', + age: '38', + experience: '2 Years', + status: 3 + }, + { + responsive_id: '', + id: 75, + avatar: '', + full_name: 'Pegeen Peasegod', + post: 'Web Designer', + email: 'ppeasegod22@slideshare.net', + city: 'Keda', + start_date: '05/21/2016', + salary: '$24014.04', + age: '59', + experience: '6 Years', + status: 3 + }, + { + responsive_id: '', + id: 76, + avatar: '', + full_name: 'Elyn Watkinson', + post: 'Structural Analysis Engineer', + email: 'ewatkinson23@blogspot.com', + city: 'Osan', + start_date: '09/30/2016', + salary: '$14493.51', + age: '55', + experience: '7 Years', + status: 1 + }, + { + responsive_id: '', + id: 77, + avatar: '10.jpg', + full_name: 'Babb Skirving', + post: 'Analyst Programmer', + email: 'bskirving24@cbsnews.com', + city: 'Balky', + start_date: '09/27/2016', + salary: '$24733.28', + age: '39', + experience: '1 Year', + status: 4 + }, + { + responsive_id: '', + id: 78, + avatar: '', + full_name: 'Shelli Ondracek', + post: 'Financial Advisor', + email: 'sondracek25@plala.or.jp', + city: 'Aoluguya Ewenke Minzu', + start_date: '03/28/2016', + salary: '$21922.17', + age: '23', + experience: '1 Year', + status: 3 + }, + { + responsive_id: '', + id: 79, + avatar: '9.jpg', + full_name: 'Stanislaw Melloy', + post: 'Sales Associate', + email: 'smelloy26@fastcompany.com', + city: 'Funafuti', + start_date: '04/13/2017', + salary: '$16944.42', + age: '30', + experience: '2 Years', + status: 2 + }, + { + responsive_id: '', + id: 80, + avatar: '', + full_name: 'Seamus Eisikovitsh', + post: 'Legal Assistant', + email: 'seisikovitsh27@usgs.gov', + city: 'Cangkringan', + start_date: '05/28/2018', + salary: '$21963.69', + age: '22', + experience: '7 Years', + status: 1 + }, + { + responsive_id: '', + id: 81, + avatar: '2.jpg', + full_name: 'Tammie Wattins', + post: 'Web Designer', + email: 'twattins28@statcounter.com', + city: 'Xilin', + start_date: '08/07/2018', + salary: '$16049.93', + age: '36', + experience: '5 Years', + status: 2 + }, + { + responsive_id: '', + id: 82, + avatar: '8.jpg', + full_name: 'Aila Quailadis', + post: 'Technical Writer', + email: 'aquail29@prlog.org', + city: 'Shuangchahe', + start_date: '02/11/2018', + salary: '$24137.29', + age: '43', + experience: '4 Years', + status: 4 + }, + { + responsive_id: '', + id: 83, + avatar: '', + full_name: 'Myrvyn Gilogly', + post: 'Research Associate', + email: 'mgilogly2a@elpais.com', + city: 'Prince Rupert', + start_date: '05/13/2018', + salary: '$10089.96', + age: '19', + experience: '8 Years', + status: 4 + }, + { + responsive_id: '', + id: 84, + avatar: '5.jpg', + full_name: 'Hanna Langthorne', + post: 'Analyst Programmer', + email: 'hlangthorne2b@stumbleupon.com', + city: 'Guaynabo', + start_date: '11/11/2018', + salary: '$14227.10', + age: '21', + experience: '7 Years', + status: 3 + }, + { + responsive_id: '', + id: 85, + avatar: '', + full_name: 'Ruby Gimblet', + post: 'Registered Nurse', + email: 'rgimblet2c@1688.com', + city: 'Nanyulinxi', + start_date: '03/28/2016', + salary: '$19562.59', + age: '30', + experience: '1 Year', + status: 2 + }, + { + responsive_id: '', + id: 86, + avatar: '4.jpg', + full_name: 'Louis Paszak', + post: 'Programmer', + email: 'lpaszak2d@behance.net', + city: 'Chiscas', + start_date: '04/25/2016', + salary: '$17178.86', + age: '51', + experience: '7 Years', + status: 5 + }, + { + responsive_id: '', + id: 87, + avatar: '', + full_name: 'Glennie Riolfi', + post: 'Computer Systems Analyst', + email: 'griolfi2e@drupal.org', + city: 'Taung', + start_date: '06/18/2018', + salary: '$15089.83', + age: '29', + experience: '4 Years', + status: 3 + }, + { + responsive_id: '', + id: 88, + avatar: '', + full_name: 'Jemimah Morgan', + post: 'Staff Accountant', + email: 'jmorgan2f@nifty.com', + city: 'La Esperanza', + start_date: '01/17/2016', + salary: '$18330.72', + age: '27', + experience: '3 Years', + status: 1 + }, + { + responsive_id: '', + id: 89, + avatar: '10.jpg', + full_name: 'Talya Brandon', + post: 'Food Chemist', + email: 'tbrandon2g@ucoz.com', + city: 'Zaječar', + start_date: '10/08/2018', + salary: '$16284.64', + age: '28', + experience: '6 Years', + status: 1 + }, + { + responsive_id: '', + id: 90, + avatar: '6.jpg', + full_name: 'Renate Shay', + post: 'Recruiter', + email: 'rshay2h@tumblr.com', + city: 'Pueblo Viejo', + start_date: '03/15/2017', + salary: '$18523.75', + age: '28', + experience: '3 Years', + status: 1 + }, + { + responsive_id: '', + id: 91, + avatar: '', + full_name: 'Julianne Bartosik', + post: 'Senior Cost Accountant', + email: 'jbartosik2i@state.gov', + city: 'Botlhapatlou', + start_date: '02/06/2017', + salary: '$17607.66', + age: '48', + experience: '6 Years', + status: 3 + }, + { + responsive_id: '', + id: 92, + avatar: '3.jpg', + full_name: 'Yvonne Emberton', + post: 'Recruiter', + email: 'yemberton2j@blog.com', + city: 'Nagcarlan', + start_date: '02/13/2017', + salary: '$17550.18', + age: '20', + experience: '1 Year', + status: 4 + }, + { + responsive_id: '', + id: 93, + avatar: '8.jpg', + full_name: 'Danya Faichnie', + post: 'Social Worker', + email: 'dfaichnie2k@weather.com', + city: 'Taling', + start_date: '07/29/2019', + salary: '$18469.35', + age: '37', + experience: '3 Years', + status: 4 + }, + { + responsive_id: '', + id: 94, + avatar: '', + full_name: 'Ronica Hasted', + post: 'Software Consultant', + email: 'rhasted2l@hexun.com', + city: 'Gangkou', + start_date: '07/04/2019', + salary: '$24866.66', + age: '53', + experience: '7 Years', + status: 4 + }, + { + responsive_id: '', + id: 95, + avatar: '2.jpg', + full_name: 'Edwina Ebsworth', + post: 'Human Resources Assistant', + email: 'eebsworth2m@sbwire.com', + city: 'Puzi', + start_date: '09/27/2018', + salary: '$19586.23', + age: '27', + experience: '2 Years', + status: 1 + }, + { + responsive_id: '', + id: 96, + avatar: '', + full_name: 'Alaric Beslier', + post: 'Tax Accountant', + email: 'abeslier2n@zimbio.com', + city: 'Ocucaje', + start_date: '04/16/2017', + salary: '$19366.53', + age: '22', + experience: '8 Years', + status: 4 + }, + { + responsive_id: '', + id: 97, + avatar: '', + full_name: 'Reina Peckett', + post: 'Quality Control Specialist', + email: 'rpeckett2o@timesonline.co.uk', + city: 'Anyang', + start_date: '05/20/2018', + salary: '$16619.40', + age: '46', + experience: '8 Years', + status: 4 + }, + { + responsive_id: '', + id: 98, + avatar: '7.jpg', + full_name: 'Olivette Gudgin', + post: 'Paralegal', + email: 'ogudgin2p@gizmodo.com', + city: 'Fujinomiya', + start_date: '04/09/2019', + salary: '$15211.60', + age: '47', + experience: '8 Years', + status: 2 + }, + { + responsive_id: '', + id: 99, + avatar: '10.jpg', + full_name: 'Evangelina Carnock', + post: 'Cost Accountant', + email: 'ecarnock2q@washington.edu', + city: 'Doushaguan', + start_date: '01/26/2017', + salary: '$23704.82', + age: '51', + experience: '0 Year', + status: 4 + }, + { + responsive_id: '', + id: 100, + avatar: '', + full_name: 'Glyn Giacoppo', + post: 'Software Test Engineer', + email: 'ggiacoppo2r@apache.org', + city: 'Butha-Buthe', + start_date: '04/15/2017', + salary: '$24973.48', + age: '41', + experience: '7 Years', + status: 2 + } +] + +mock.onGet('/api/datatables/initial-data').reply(config => { + return [200, data] +}) + +mock.onGet('/api/datatables/data').reply(config => { + // eslint-disable-next-line object-curly-newline + const { q = '', perPage = 10, page = 1 } = config + /* eslint-enable */ + + const queryLowered = q.toLowerCase() + const filteredData = data.filter( + item => + /* eslint-disable operator-linebreak, implicit-arrow-linebreak */ + item.full_name.toLowerCase().includes(queryLowered) || + item.post.toLowerCase().includes(queryLowered) || + item.email.toLowerCase().includes(queryLowered) || + item.age.toLowerCase().includes(queryLowered) || + item.salary.toLowerCase().includes(queryLowered) || + item.start_date.toLowerCase().includes(queryLowered) + ) + /* eslint-enable */ + + return [ + 200, + { + allData: data, + invoices: paginateArray(filteredData, perPage, page), + total: filteredData.length + } + ] +}) diff --git a/src/@fake-db/utils.js b/src/@fake-db/utils.js new file mode 100644 index 0000000..0013dbd --- /dev/null +++ b/src/@fake-db/utils.js @@ -0,0 +1,36 @@ +export const paginateArray = (array, perPage, page) => array.slice((page - 1) * perPage, page * perPage) + +export const sortCompare = key => (a, b) => { + const fieldA = a[key] + const fieldB = b[key] + + let comparison = 0 + if (fieldA > fieldB) { + comparison = 1 + } else if (fieldA < fieldB) { + comparison = -1 + } + return comparison +} + +export const getRandomInt = (min, max) => { + if (min > max) { + const temp = max + /* eslint-disable no-param-reassign */ + max = min + min = temp + /* eslint-enable */ + } + + if (min <= 0) { + return Math.floor(Math.random() * (max + Math.abs(min) + 1)) + min + } + return Math.floor(Math.random() * max) + min +} + +export const randomDate = (start, end) => { + const diff = end.getTime() - start.getTime() + const newDiff = diff * Math.random() + const date = new Date(start.getTime() + newDiff) + return date +} diff --git a/src/App.js b/src/App.js new file mode 100644 index 0000000..c719469 --- /dev/null +++ b/src/App.js @@ -0,0 +1,6 @@ +// ** Router Import +import Router from './router/Router' + +const App = props => + +export default App diff --git a/src/App.test.js b/src/App.test.js new file mode 100644 index 0000000..ac31590 --- /dev/null +++ b/src/App.test.js @@ -0,0 +1,8 @@ +import ReactDOM from 'react-dom' +import App from './App' + +it('renders without crashing', () => { + const div = document.createElement('div') + ReactDOM.render(, div) + ReactDOM.unmountComponentAtNode(div) +}) diff --git a/src/assets/data/locales/de.json b/src/assets/data/locales/de.json new file mode 100644 index 0000000..3252825 --- /dev/null +++ b/src/assets/data/locales/de.json @@ -0,0 +1,3 @@ +{ + "Dashboard": "Instrumententafel" +} diff --git a/src/assets/data/locales/en.json b/src/assets/data/locales/en.json new file mode 100644 index 0000000..745e59a --- /dev/null +++ b/src/assets/data/locales/en.json @@ -0,0 +1,3 @@ +{ + "Dashboard": "Dashboard" +} diff --git a/src/assets/data/locales/fr.json b/src/assets/data/locales/fr.json new file mode 100644 index 0000000..2224965 --- /dev/null +++ b/src/assets/data/locales/fr.json @@ -0,0 +1,3 @@ +{ + "Dashboard": "Tableau de bord" +} diff --git a/src/assets/data/locales/pt.json b/src/assets/data/locales/pt.json new file mode 100644 index 0000000..ca545db --- /dev/null +++ b/src/assets/data/locales/pt.json @@ -0,0 +1,3 @@ +{ + "Dashboard": "painel de controle" +} diff --git a/src/assets/images/avatars/1-small.png b/src/assets/images/avatars/1-small.png new file mode 100644 index 0000000..406d0ba Binary files /dev/null and b/src/assets/images/avatars/1-small.png differ diff --git a/src/assets/images/avatars/1.png b/src/assets/images/avatars/1.png new file mode 100644 index 0000000..eeb2fbb Binary files /dev/null and b/src/assets/images/avatars/1.png differ diff --git a/src/assets/images/avatars/10-small.png b/src/assets/images/avatars/10-small.png new file mode 100644 index 0000000..099a20d Binary files /dev/null and b/src/assets/images/avatars/10-small.png differ diff --git a/src/assets/images/avatars/10.png b/src/assets/images/avatars/10.png new file mode 100644 index 0000000..ff3d20a Binary files /dev/null and b/src/assets/images/avatars/10.png differ diff --git a/src/assets/images/avatars/11-small.png b/src/assets/images/avatars/11-small.png new file mode 100644 index 0000000..cc1b38e Binary files /dev/null and b/src/assets/images/avatars/11-small.png differ diff --git a/src/assets/images/avatars/11.png b/src/assets/images/avatars/11.png new file mode 100644 index 0000000..02fce4d Binary files /dev/null and b/src/assets/images/avatars/11.png differ diff --git a/src/assets/images/avatars/12-small.png b/src/assets/images/avatars/12-small.png new file mode 100644 index 0000000..4728bfa Binary files /dev/null and b/src/assets/images/avatars/12-small.png differ diff --git a/src/assets/images/avatars/12.png b/src/assets/images/avatars/12.png new file mode 100644 index 0000000..50e79ad Binary files /dev/null and b/src/assets/images/avatars/12.png differ diff --git a/src/assets/images/avatars/2-small.png b/src/assets/images/avatars/2-small.png new file mode 100644 index 0000000..523ee62 Binary files /dev/null and b/src/assets/images/avatars/2-small.png differ diff --git a/src/assets/images/avatars/2.png b/src/assets/images/avatars/2.png new file mode 100644 index 0000000..22945af Binary files /dev/null and b/src/assets/images/avatars/2.png differ diff --git a/src/assets/images/avatars/3-small.png b/src/assets/images/avatars/3-small.png new file mode 100644 index 0000000..d926412 Binary files /dev/null and b/src/assets/images/avatars/3-small.png differ diff --git a/src/assets/images/avatars/3.png b/src/assets/images/avatars/3.png new file mode 100644 index 0000000..0382f7d Binary files /dev/null and b/src/assets/images/avatars/3.png differ diff --git a/src/assets/images/avatars/4-small.png b/src/assets/images/avatars/4-small.png new file mode 100644 index 0000000..11248cc Binary files /dev/null and b/src/assets/images/avatars/4-small.png differ diff --git a/src/assets/images/avatars/4.png b/src/assets/images/avatars/4.png new file mode 100644 index 0000000..17c57d2 Binary files /dev/null and b/src/assets/images/avatars/4.png differ diff --git a/src/assets/images/avatars/5-small.png b/src/assets/images/avatars/5-small.png new file mode 100644 index 0000000..aba8b4a Binary files /dev/null and b/src/assets/images/avatars/5-small.png differ diff --git a/src/assets/images/avatars/5.png b/src/assets/images/avatars/5.png new file mode 100644 index 0000000..38505ed Binary files /dev/null and b/src/assets/images/avatars/5.png differ diff --git a/src/assets/images/avatars/6-small.png b/src/assets/images/avatars/6-small.png new file mode 100644 index 0000000..2f5fe51 Binary files /dev/null and b/src/assets/images/avatars/6-small.png differ diff --git a/src/assets/images/avatars/6.png b/src/assets/images/avatars/6.png new file mode 100644 index 0000000..6d91822 Binary files /dev/null and b/src/assets/images/avatars/6.png differ diff --git a/src/assets/images/avatars/7-small.png b/src/assets/images/avatars/7-small.png new file mode 100644 index 0000000..9ae7593 Binary files /dev/null and b/src/assets/images/avatars/7-small.png differ diff --git a/src/assets/images/avatars/7.png b/src/assets/images/avatars/7.png new file mode 100644 index 0000000..8874d68 Binary files /dev/null and b/src/assets/images/avatars/7.png differ diff --git a/src/assets/images/avatars/8-small.png b/src/assets/images/avatars/8-small.png new file mode 100644 index 0000000..e061c7a Binary files /dev/null and b/src/assets/images/avatars/8-small.png differ diff --git a/src/assets/images/avatars/8.png b/src/assets/images/avatars/8.png new file mode 100644 index 0000000..e264851 Binary files /dev/null and b/src/assets/images/avatars/8.png differ diff --git a/src/assets/images/avatars/9-small.png b/src/assets/images/avatars/9-small.png new file mode 100644 index 0000000..d23f1cb Binary files /dev/null and b/src/assets/images/avatars/9-small.png differ diff --git a/src/assets/images/avatars/9.png b/src/assets/images/avatars/9.png new file mode 100644 index 0000000..9c63a9a Binary files /dev/null and b/src/assets/images/avatars/9.png differ diff --git a/src/assets/images/avatars/avatar-blank.png b/src/assets/images/avatars/avatar-blank.png new file mode 100644 index 0000000..6d341bf Binary files /dev/null and b/src/assets/images/avatars/avatar-blank.png differ diff --git a/src/assets/images/backgrounds/chat-bg.svg b/src/assets/images/backgrounds/chat-bg.svg new file mode 100644 index 0000000..641e235 --- /dev/null +++ b/src/assets/images/backgrounds/chat-bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/banner/banner-1.jpg b/src/assets/images/banner/banner-1.jpg new file mode 100644 index 0000000..e38c209 Binary files /dev/null and b/src/assets/images/banner/banner-1.jpg differ diff --git a/src/assets/images/banner/banner-10.jpg b/src/assets/images/banner/banner-10.jpg new file mode 100644 index 0000000..99acc6f Binary files /dev/null and b/src/assets/images/banner/banner-10.jpg differ diff --git a/src/assets/images/banner/banner-11.jpg b/src/assets/images/banner/banner-11.jpg new file mode 100644 index 0000000..f7490ab Binary files /dev/null and b/src/assets/images/banner/banner-11.jpg differ diff --git a/src/assets/images/banner/banner-12.jpg b/src/assets/images/banner/banner-12.jpg new file mode 100644 index 0000000..ed79ecc Binary files /dev/null and b/src/assets/images/banner/banner-12.jpg differ diff --git a/src/assets/images/banner/banner-13.jpg b/src/assets/images/banner/banner-13.jpg new file mode 100644 index 0000000..4049add Binary files /dev/null and b/src/assets/images/banner/banner-13.jpg differ diff --git a/src/assets/images/banner/banner-14.jpg b/src/assets/images/banner/banner-14.jpg new file mode 100644 index 0000000..f349f06 Binary files /dev/null and b/src/assets/images/banner/banner-14.jpg differ diff --git a/src/assets/images/banner/banner-15.jpg b/src/assets/images/banner/banner-15.jpg new file mode 100644 index 0000000..abff088 Binary files /dev/null and b/src/assets/images/banner/banner-15.jpg differ diff --git a/src/assets/images/banner/banner-16.jpg b/src/assets/images/banner/banner-16.jpg new file mode 100644 index 0000000..3861439 Binary files /dev/null and b/src/assets/images/banner/banner-16.jpg differ diff --git a/src/assets/images/banner/banner-17.jpg b/src/assets/images/banner/banner-17.jpg new file mode 100644 index 0000000..cafbf6d Binary files /dev/null and b/src/assets/images/banner/banner-17.jpg differ diff --git a/src/assets/images/banner/banner-18.jpg b/src/assets/images/banner/banner-18.jpg new file mode 100644 index 0000000..4091c25 Binary files /dev/null and b/src/assets/images/banner/banner-18.jpg differ diff --git a/src/assets/images/banner/banner-19.jpg b/src/assets/images/banner/banner-19.jpg new file mode 100644 index 0000000..1c168d1 Binary files /dev/null and b/src/assets/images/banner/banner-19.jpg differ diff --git a/src/assets/images/banner/banner-2.jpg b/src/assets/images/banner/banner-2.jpg new file mode 100644 index 0000000..46f15dd Binary files /dev/null and b/src/assets/images/banner/banner-2.jpg differ diff --git a/src/assets/images/banner/banner-20.jpg b/src/assets/images/banner/banner-20.jpg new file mode 100644 index 0000000..32ce27b Binary files /dev/null and b/src/assets/images/banner/banner-20.jpg differ diff --git a/src/assets/images/banner/banner-21.jpg b/src/assets/images/banner/banner-21.jpg new file mode 100644 index 0000000..a785ba4 Binary files /dev/null and b/src/assets/images/banner/banner-21.jpg differ diff --git a/src/assets/images/banner/banner-22.jpg b/src/assets/images/banner/banner-22.jpg new file mode 100644 index 0000000..ad2e653 Binary files /dev/null and b/src/assets/images/banner/banner-22.jpg differ diff --git a/src/assets/images/banner/banner-23.jpg b/src/assets/images/banner/banner-23.jpg new file mode 100644 index 0000000..f5ab4e6 Binary files /dev/null and b/src/assets/images/banner/banner-23.jpg differ diff --git a/src/assets/images/banner/banner-24.jpg b/src/assets/images/banner/banner-24.jpg new file mode 100644 index 0000000..95a3dbc Binary files /dev/null and b/src/assets/images/banner/banner-24.jpg differ diff --git a/src/assets/images/banner/banner-25.jpg b/src/assets/images/banner/banner-25.jpg new file mode 100644 index 0000000..17ff045 Binary files /dev/null and b/src/assets/images/banner/banner-25.jpg differ diff --git a/src/assets/images/banner/banner-26.jpg b/src/assets/images/banner/banner-26.jpg new file mode 100644 index 0000000..d33d71d Binary files /dev/null and b/src/assets/images/banner/banner-26.jpg differ diff --git a/src/assets/images/banner/banner-27.jpg b/src/assets/images/banner/banner-27.jpg new file mode 100644 index 0000000..34bcab3 Binary files /dev/null and b/src/assets/images/banner/banner-27.jpg differ diff --git a/src/assets/images/banner/banner-28.jpg b/src/assets/images/banner/banner-28.jpg new file mode 100644 index 0000000..041ab93 Binary files /dev/null and b/src/assets/images/banner/banner-28.jpg differ diff --git a/src/assets/images/banner/banner-29.jpg b/src/assets/images/banner/banner-29.jpg new file mode 100644 index 0000000..a96d97e Binary files /dev/null and b/src/assets/images/banner/banner-29.jpg differ diff --git a/src/assets/images/banner/banner-3.jpg b/src/assets/images/banner/banner-3.jpg new file mode 100644 index 0000000..cfb3d2c Binary files /dev/null and b/src/assets/images/banner/banner-3.jpg differ diff --git a/src/assets/images/banner/banner-30.jpg b/src/assets/images/banner/banner-30.jpg new file mode 100644 index 0000000..1b948c1 Binary files /dev/null and b/src/assets/images/banner/banner-30.jpg differ diff --git a/src/assets/images/banner/banner-31.jpg b/src/assets/images/banner/banner-31.jpg new file mode 100644 index 0000000..f7f698f Binary files /dev/null and b/src/assets/images/banner/banner-31.jpg differ diff --git a/src/assets/images/banner/banner-32.jpg b/src/assets/images/banner/banner-32.jpg new file mode 100644 index 0000000..c769231 Binary files /dev/null and b/src/assets/images/banner/banner-32.jpg differ diff --git a/src/assets/images/banner/banner-33.jpg b/src/assets/images/banner/banner-33.jpg new file mode 100644 index 0000000..0076a95 Binary files /dev/null and b/src/assets/images/banner/banner-33.jpg differ diff --git a/src/assets/images/banner/banner-34.jpg b/src/assets/images/banner/banner-34.jpg new file mode 100644 index 0000000..23add9f Binary files /dev/null and b/src/assets/images/banner/banner-34.jpg differ diff --git a/src/assets/images/banner/banner-35.jpg b/src/assets/images/banner/banner-35.jpg new file mode 100644 index 0000000..ebd7c02 Binary files /dev/null and b/src/assets/images/banner/banner-35.jpg differ diff --git a/src/assets/images/banner/banner-36.jpg b/src/assets/images/banner/banner-36.jpg new file mode 100644 index 0000000..91ca005 Binary files /dev/null and b/src/assets/images/banner/banner-36.jpg differ diff --git a/src/assets/images/banner/banner-37.jpg b/src/assets/images/banner/banner-37.jpg new file mode 100644 index 0000000..cadb18c Binary files /dev/null and b/src/assets/images/banner/banner-37.jpg differ diff --git a/src/assets/images/banner/banner-38.jpg b/src/assets/images/banner/banner-38.jpg new file mode 100644 index 0000000..4d3c834 Binary files /dev/null and b/src/assets/images/banner/banner-38.jpg differ diff --git a/src/assets/images/banner/banner-39.jpg b/src/assets/images/banner/banner-39.jpg new file mode 100644 index 0000000..37f4055 Binary files /dev/null and b/src/assets/images/banner/banner-39.jpg differ diff --git a/src/assets/images/banner/banner-4.jpg b/src/assets/images/banner/banner-4.jpg new file mode 100644 index 0000000..bbcfe4a Binary files /dev/null and b/src/assets/images/banner/banner-4.jpg differ diff --git a/src/assets/images/banner/banner-40.jpg b/src/assets/images/banner/banner-40.jpg new file mode 100644 index 0000000..75244ba Binary files /dev/null and b/src/assets/images/banner/banner-40.jpg differ diff --git a/src/assets/images/banner/banner-5.jpg b/src/assets/images/banner/banner-5.jpg new file mode 100644 index 0000000..9dc5dc7 Binary files /dev/null and b/src/assets/images/banner/banner-5.jpg differ diff --git a/src/assets/images/banner/banner-6.jpg b/src/assets/images/banner/banner-6.jpg new file mode 100644 index 0000000..602d193 Binary files /dev/null and b/src/assets/images/banner/banner-6.jpg differ diff --git a/src/assets/images/banner/banner-7.jpg b/src/assets/images/banner/banner-7.jpg new file mode 100644 index 0000000..d274815 Binary files /dev/null and b/src/assets/images/banner/banner-7.jpg differ diff --git a/src/assets/images/banner/banner-8.jpg b/src/assets/images/banner/banner-8.jpg new file mode 100644 index 0000000..7c19f2d Binary files /dev/null and b/src/assets/images/banner/banner-8.jpg differ diff --git a/src/assets/images/banner/banner-9.jpg b/src/assets/images/banner/banner-9.jpg new file mode 100644 index 0000000..f0f16e2 Binary files /dev/null and b/src/assets/images/banner/banner-9.jpg differ diff --git a/src/assets/images/banner/banner.png b/src/assets/images/banner/banner.png new file mode 100644 index 0000000..cc8abeb Binary files /dev/null and b/src/assets/images/banner/banner.png differ diff --git a/src/assets/images/banner/parallax-4.jpg b/src/assets/images/banner/parallax-4.jpg new file mode 100644 index 0000000..205ba16 Binary files /dev/null and b/src/assets/images/banner/parallax-4.jpg differ diff --git a/src/assets/images/banner/upgrade.png b/src/assets/images/banner/upgrade.png new file mode 100644 index 0000000..3112dc9 Binary files /dev/null and b/src/assets/images/banner/upgrade.png differ diff --git a/src/assets/images/dropzone/spritemap.png b/src/assets/images/dropzone/spritemap.png new file mode 100644 index 0000000..d711b0f Binary files /dev/null and b/src/assets/images/dropzone/spritemap.png differ diff --git a/src/assets/images/dropzone/spritemap@2x.png b/src/assets/images/dropzone/spritemap@2x.png new file mode 100644 index 0000000..ed29b88 Binary files /dev/null and b/src/assets/images/dropzone/spritemap@2x.png differ diff --git a/src/assets/images/elements/apple-watch.png b/src/assets/images/elements/apple-watch.png new file mode 100644 index 0000000..e2dbef7 Binary files /dev/null and b/src/assets/images/elements/apple-watch.png differ diff --git a/src/assets/images/elements/beats-headphones.png b/src/assets/images/elements/beats-headphones.png new file mode 100644 index 0000000..a92b8b6 Binary files /dev/null and b/src/assets/images/elements/beats-headphones.png differ diff --git a/src/assets/images/elements/decore-left.png b/src/assets/images/elements/decore-left.png new file mode 100644 index 0000000..ee5e3b2 Binary files /dev/null and b/src/assets/images/elements/decore-left.png differ diff --git a/src/assets/images/elements/decore-right.png b/src/assets/images/elements/decore-right.png new file mode 100644 index 0000000..30bb2cc Binary files /dev/null and b/src/assets/images/elements/decore-right.png differ diff --git a/src/assets/images/elements/homepod.png b/src/assets/images/elements/homepod.png new file mode 100644 index 0000000..02bb1ec Binary files /dev/null and b/src/assets/images/elements/homepod.png differ diff --git a/src/assets/images/elements/ipad-pro.png b/src/assets/images/elements/ipad-pro.png new file mode 100644 index 0000000..8b261de Binary files /dev/null and b/src/assets/images/elements/ipad-pro.png differ diff --git a/src/assets/images/elements/iphone-x.png b/src/assets/images/elements/iphone-x.png new file mode 100644 index 0000000..225a7ea Binary files /dev/null and b/src/assets/images/elements/iphone-x.png differ diff --git a/src/assets/images/elements/jbl-speaker.png b/src/assets/images/elements/jbl-speaker.png new file mode 100644 index 0000000..3308a13 Binary files /dev/null and b/src/assets/images/elements/jbl-speaker.png differ diff --git a/src/assets/images/elements/macbook-pro.png b/src/assets/images/elements/macbook-pro.png new file mode 100644 index 0000000..8f65372 Binary files /dev/null and b/src/assets/images/elements/macbook-pro.png differ diff --git a/src/assets/images/elements/magic-mouse.png b/src/assets/images/elements/magic-mouse.png new file mode 100644 index 0000000..fcdca20 Binary files /dev/null and b/src/assets/images/elements/magic-mouse.png differ diff --git a/src/assets/images/ico/favicon.ico b/src/assets/images/ico/favicon.ico new file mode 100644 index 0000000..c072116 Binary files /dev/null and b/src/assets/images/ico/favicon.ico differ diff --git a/src/assets/images/icons/angular.svg b/src/assets/images/icons/angular.svg new file mode 100644 index 0000000..ec18c85 --- /dev/null +++ b/src/assets/images/icons/angular.svg @@ -0,0 +1,15 @@ + + + angular + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/icons/apple-safari.png b/src/assets/images/icons/apple-safari.png new file mode 100644 index 0000000..c388a19 Binary files /dev/null and b/src/assets/images/icons/apple-safari.png differ diff --git a/src/assets/images/icons/book.svg b/src/assets/images/icons/book.svg new file mode 100644 index 0000000..96beb5f --- /dev/null +++ b/src/assets/images/icons/book.svg @@ -0,0 +1,29 @@ + + + Book + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/icons/bootstrap.svg b/src/assets/images/icons/bootstrap.svg new file mode 100644 index 0000000..f1f0737 --- /dev/null +++ b/src/assets/images/icons/bootstrap.svg @@ -0,0 +1,18 @@ + + + bootstrap + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/icons/brush.svg b/src/assets/images/icons/brush.svg new file mode 100644 index 0000000..145e16f --- /dev/null +++ b/src/assets/images/icons/brush.svg @@ -0,0 +1,31 @@ + + + brush + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/icons/doc.png b/src/assets/images/icons/doc.png new file mode 100644 index 0000000..0c6f99b Binary files /dev/null and b/src/assets/images/icons/doc.png differ diff --git a/src/assets/images/icons/drive.png b/src/assets/images/icons/drive.png new file mode 100644 index 0000000..7d9867b Binary files /dev/null and b/src/assets/images/icons/drive.png differ diff --git a/src/assets/images/icons/dropbox.png b/src/assets/images/icons/dropbox.png new file mode 100644 index 0000000..113ad07 Binary files /dev/null and b/src/assets/images/icons/dropbox.png differ diff --git a/src/assets/images/icons/figma.svg b/src/assets/images/icons/figma.svg new file mode 100644 index 0000000..b843391 --- /dev/null +++ b/src/assets/images/icons/figma.svg @@ -0,0 +1,19 @@ + + + figma + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/icons/file-icons/doc.png b/src/assets/images/icons/file-icons/doc.png new file mode 100644 index 0000000..2b87843 Binary files /dev/null and b/src/assets/images/icons/file-icons/doc.png differ diff --git a/src/assets/images/icons/file-icons/onedrive (1).png b/src/assets/images/icons/file-icons/onedrive (1).png new file mode 100644 index 0000000..f8307c6 Binary files /dev/null and b/src/assets/images/icons/file-icons/onedrive (1).png differ diff --git a/src/assets/images/icons/file-icons/pdf.png b/src/assets/images/icons/file-icons/pdf.png new file mode 100644 index 0000000..a0a85a0 Binary files /dev/null and b/src/assets/images/icons/file-icons/pdf.png differ diff --git a/src/assets/images/icons/file-icons/psd.png b/src/assets/images/icons/file-icons/psd.png new file mode 100644 index 0000000..c23b160 Binary files /dev/null and b/src/assets/images/icons/file-icons/psd.png differ diff --git a/src/assets/images/icons/file-icons/sketch.png b/src/assets/images/icons/file-icons/sketch.png new file mode 100644 index 0000000..ef378b4 Binary files /dev/null and b/src/assets/images/icons/file-icons/sketch.png differ diff --git a/src/assets/images/icons/google-chrome.png b/src/assets/images/icons/google-chrome.png new file mode 100644 index 0000000..c74f4ea Binary files /dev/null and b/src/assets/images/icons/google-chrome.png differ diff --git a/src/assets/images/icons/icloud-1.png b/src/assets/images/icons/icloud-1.png new file mode 100644 index 0000000..1b08872 Binary files /dev/null and b/src/assets/images/icons/icloud-1.png differ diff --git a/src/assets/images/icons/icloud.png b/src/assets/images/icons/icloud.png new file mode 100644 index 0000000..574e2ff Binary files /dev/null and b/src/assets/images/icons/icloud.png differ diff --git a/src/assets/images/icons/internet-explorer.png b/src/assets/images/icons/internet-explorer.png new file mode 100644 index 0000000..b5255a6 Binary files /dev/null and b/src/assets/images/icons/internet-explorer.png differ diff --git a/src/assets/images/icons/internet.png b/src/assets/images/icons/internet.png new file mode 100644 index 0000000..06290e1 Binary files /dev/null and b/src/assets/images/icons/internet.png differ diff --git a/src/assets/images/icons/jpg.png b/src/assets/images/icons/jpg.png new file mode 100644 index 0000000..bbb619c Binary files /dev/null and b/src/assets/images/icons/jpg.png differ diff --git a/src/assets/images/icons/js.png b/src/assets/images/icons/js.png new file mode 100644 index 0000000..820262f Binary files /dev/null and b/src/assets/images/icons/js.png differ diff --git a/src/assets/images/icons/json.png b/src/assets/images/icons/json.png new file mode 100644 index 0000000..fee4528 Binary files /dev/null and b/src/assets/images/icons/json.png differ diff --git a/src/assets/images/icons/mozila-firefox.png b/src/assets/images/icons/mozila-firefox.png new file mode 100644 index 0000000..5634271 Binary files /dev/null and b/src/assets/images/icons/mozila-firefox.png differ diff --git a/src/assets/images/icons/onedrive.png b/src/assets/images/icons/onedrive.png new file mode 100644 index 0000000..d8e950d Binary files /dev/null and b/src/assets/images/icons/onedrive.png differ diff --git a/src/assets/images/icons/onedrivenew.png b/src/assets/images/icons/onedrivenew.png new file mode 100644 index 0000000..f8307c6 Binary files /dev/null and b/src/assets/images/icons/onedrivenew.png differ diff --git a/src/assets/images/icons/opera.png b/src/assets/images/icons/opera.png new file mode 100644 index 0000000..478d211 Binary files /dev/null and b/src/assets/images/icons/opera.png differ diff --git a/src/assets/images/icons/parachute.svg b/src/assets/images/icons/parachute.svg new file mode 100644 index 0000000..ceeaef7 --- /dev/null +++ b/src/assets/images/icons/parachute.svg @@ -0,0 +1,41 @@ + + + parachute + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/icons/pdf.png b/src/assets/images/icons/pdf.png new file mode 100644 index 0000000..a0a85a0 Binary files /dev/null and b/src/assets/images/icons/pdf.png differ diff --git a/src/assets/images/icons/psd.png b/src/assets/images/icons/psd.png new file mode 100644 index 0000000..c23b160 Binary files /dev/null and b/src/assets/images/icons/psd.png differ diff --git a/src/assets/images/icons/react.svg b/src/assets/images/icons/react.svg new file mode 100644 index 0000000..697088b --- /dev/null +++ b/src/assets/images/icons/react.svg @@ -0,0 +1,20 @@ + + + react + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/icons/rocket.svg b/src/assets/images/icons/rocket.svg new file mode 100644 index 0000000..71bae8a --- /dev/null +++ b/src/assets/images/icons/rocket.svg @@ -0,0 +1,47 @@ + + + rocket + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/icons/sketch.png b/src/assets/images/icons/sketch.png new file mode 100644 index 0000000..ef378b4 Binary files /dev/null and b/src/assets/images/icons/sketch.png differ diff --git a/src/assets/images/icons/speaker.svg b/src/assets/images/icons/speaker.svg new file mode 100644 index 0000000..863a947 --- /dev/null +++ b/src/assets/images/icons/speaker.svg @@ -0,0 +1,26 @@ + + + speaker + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/icons/star.svg b/src/assets/images/icons/star.svg new file mode 100644 index 0000000..cf6615d --- /dev/null +++ b/src/assets/images/icons/star.svg @@ -0,0 +1,24 @@ + + + star + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/icons/toolbox.svg b/src/assets/images/icons/toolbox.svg new file mode 100644 index 0000000..aa28129 --- /dev/null +++ b/src/assets/images/icons/toolbox.svg @@ -0,0 +1,28 @@ + + + toolbox + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/icons/txt.png b/src/assets/images/icons/txt.png new file mode 100644 index 0000000..080d5b5 Binary files /dev/null and b/src/assets/images/icons/txt.png differ diff --git a/src/assets/images/icons/unknown.png b/src/assets/images/icons/unknown.png new file mode 100644 index 0000000..2b87843 Binary files /dev/null and b/src/assets/images/icons/unknown.png differ diff --git a/src/assets/images/icons/vuejs.svg b/src/assets/images/icons/vuejs.svg new file mode 100644 index 0000000..2b1218b --- /dev/null +++ b/src/assets/images/icons/vuejs.svg @@ -0,0 +1,18 @@ + + + vuejs + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/icons/xls.png b/src/assets/images/icons/xls.png new file mode 100644 index 0000000..cde1c31 Binary files /dev/null and b/src/assets/images/icons/xls.png differ diff --git a/src/assets/images/illustration/Pot1.svg b/src/assets/images/illustration/Pot1.svg new file mode 100644 index 0000000..4d3b18c --- /dev/null +++ b/src/assets/images/illustration/Pot1.svg @@ -0,0 +1,20 @@ + + + Pot4 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/illustration/Pot2.svg b/src/assets/images/illustration/Pot2.svg new file mode 100644 index 0000000..e5bd082 --- /dev/null +++ b/src/assets/images/illustration/Pot2.svg @@ -0,0 +1,42 @@ + + + Pot1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/illustration/Pot3.svg b/src/assets/images/illustration/Pot3.svg new file mode 100644 index 0000000..ea2003c --- /dev/null +++ b/src/assets/images/illustration/Pot3.svg @@ -0,0 +1,56 @@ + + + Pot5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/illustration/api.svg b/src/assets/images/illustration/api.svg new file mode 100644 index 0000000..be7d364 --- /dev/null +++ b/src/assets/images/illustration/api.svg @@ -0,0 +1,145 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/illustration/badge.svg b/src/assets/images/illustration/badge.svg new file mode 100644 index 0000000..07cb957 --- /dev/null +++ b/src/assets/images/illustration/badge.svg @@ -0,0 +1,32 @@ + + + Badge + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/illustration/demand.svg b/src/assets/images/illustration/demand.svg new file mode 100644 index 0000000..6e4eed8 --- /dev/null +++ b/src/assets/images/illustration/demand.svg @@ -0,0 +1,99 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/illustration/email.svg b/src/assets/images/illustration/email.svg new file mode 100644 index 0000000..2896bfc --- /dev/null +++ b/src/assets/images/illustration/email.svg @@ -0,0 +1,140 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/illustration/faq-illustrations.svg b/src/assets/images/illustration/faq-illustrations.svg new file mode 100644 index 0000000..8980859 --- /dev/null +++ b/src/assets/images/illustration/faq-illustrations.svg @@ -0,0 +1,65 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/illustration/marketing.svg b/src/assets/images/illustration/marketing.svg new file mode 100644 index 0000000..7fd85c6 --- /dev/null +++ b/src/assets/images/illustration/marketing.svg @@ -0,0 +1,172 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/illustration/personalization.svg b/src/assets/images/illustration/personalization.svg new file mode 100644 index 0000000..8f0fb55 --- /dev/null +++ b/src/assets/images/illustration/personalization.svg @@ -0,0 +1,105 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/illustration/pricing-Illustration.svg b/src/assets/images/illustration/pricing-Illustration.svg new file mode 100644 index 0000000..b18ddaa --- /dev/null +++ b/src/assets/images/illustration/pricing-Illustration.svg @@ -0,0 +1,145 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/illustration/sales.svg b/src/assets/images/illustration/sales.svg new file mode 100644 index 0000000..9f50338 --- /dev/null +++ b/src/assets/images/illustration/sales.svg @@ -0,0 +1,159 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/jstree/themes/default-dark/32px.png b/src/assets/images/jstree/themes/default-dark/32px.png new file mode 100644 index 0000000..d6fd721 Binary files /dev/null and b/src/assets/images/jstree/themes/default-dark/32px.png differ diff --git a/src/assets/images/jstree/themes/default-dark/40px.png b/src/assets/images/jstree/themes/default-dark/40px.png new file mode 100644 index 0000000..4fc88e4 Binary files /dev/null and b/src/assets/images/jstree/themes/default-dark/40px.png differ diff --git a/src/assets/images/jstree/themes/default-dark/throbber.gif b/src/assets/images/jstree/themes/default-dark/throbber.gif new file mode 100644 index 0000000..cd75035 Binary files /dev/null and b/src/assets/images/jstree/themes/default-dark/throbber.gif differ diff --git a/src/assets/images/jstree/themes/default/32px.png b/src/assets/images/jstree/themes/default/32px.png new file mode 100644 index 0000000..0fb6b41 Binary files /dev/null and b/src/assets/images/jstree/themes/default/32px.png differ diff --git a/src/assets/images/jstree/themes/default/40px.png b/src/assets/images/jstree/themes/default/40px.png new file mode 100644 index 0000000..1959347 Binary files /dev/null and b/src/assets/images/jstree/themes/default/40px.png differ diff --git a/src/assets/images/jstree/themes/default/throbber.gif b/src/assets/images/jstree/themes/default/throbber.gif new file mode 100644 index 0000000..1b5b2fd Binary files /dev/null and b/src/assets/images/jstree/themes/default/throbber.gif differ diff --git a/src/assets/images/logo/favicon.ico b/src/assets/images/logo/favicon.ico new file mode 100644 index 0000000..c072116 Binary files /dev/null and b/src/assets/images/logo/favicon.ico differ diff --git a/src/assets/images/logo/logo-danger.png b/src/assets/images/logo/logo-danger.png new file mode 100644 index 0000000..e8f36ca Binary files /dev/null and b/src/assets/images/logo/logo-danger.png differ diff --git a/src/assets/images/logo/logo-dark.png b/src/assets/images/logo/logo-dark.png new file mode 100644 index 0000000..85a3af0 Binary files /dev/null and b/src/assets/images/logo/logo-dark.png differ diff --git a/src/assets/images/logo/logo-info.png b/src/assets/images/logo/logo-info.png new file mode 100644 index 0000000..6e1bd1d Binary files /dev/null and b/src/assets/images/logo/logo-info.png differ diff --git a/src/assets/images/logo/logo-primary.png b/src/assets/images/logo/logo-primary.png new file mode 100644 index 0000000..894f465 Binary files /dev/null and b/src/assets/images/logo/logo-primary.png differ diff --git a/src/assets/images/logo/logo-success.png b/src/assets/images/logo/logo-success.png new file mode 100644 index 0000000..6339f22 Binary files /dev/null and b/src/assets/images/logo/logo-success.png differ diff --git a/src/assets/images/logo/logo-warning.png b/src/assets/images/logo/logo-warning.png new file mode 100644 index 0000000..89b78f4 Binary files /dev/null and b/src/assets/images/logo/logo-warning.png differ diff --git a/src/assets/images/logo/logo.png b/src/assets/images/logo/logo.png new file mode 100644 index 0000000..1114eda Binary files /dev/null and b/src/assets/images/logo/logo.png differ diff --git a/src/assets/images/logo/logo.svg b/src/assets/images/logo/logo.svg new file mode 100644 index 0000000..b58355a --- /dev/null +++ b/src/assets/images/logo/logo.svg @@ -0,0 +1,43 @@ + diff --git a/src/assets/images/logo/logo2.png b/src/assets/images/logo/logo2.png new file mode 100644 index 0000000..f89b776 Binary files /dev/null and b/src/assets/images/logo/logo2.png differ diff --git a/src/assets/images/logo/old/favicon.ico b/src/assets/images/logo/old/favicon.ico new file mode 100644 index 0000000..c072116 Binary files /dev/null and b/src/assets/images/logo/old/favicon.ico differ diff --git a/src/assets/images/logo/old/logo-danger.png b/src/assets/images/logo/old/logo-danger.png new file mode 100644 index 0000000..e8f36ca Binary files /dev/null and b/src/assets/images/logo/old/logo-danger.png differ diff --git a/src/assets/images/logo/old/logo-dark.png b/src/assets/images/logo/old/logo-dark.png new file mode 100644 index 0000000..85a3af0 Binary files /dev/null and b/src/assets/images/logo/old/logo-dark.png differ diff --git a/src/assets/images/logo/old/logo-info.png b/src/assets/images/logo/old/logo-info.png new file mode 100644 index 0000000..6e1bd1d Binary files /dev/null and b/src/assets/images/logo/old/logo-info.png differ diff --git a/src/assets/images/logo/old/logo-primary.png b/src/assets/images/logo/old/logo-primary.png new file mode 100644 index 0000000..894f465 Binary files /dev/null and b/src/assets/images/logo/old/logo-primary.png differ diff --git a/src/assets/images/logo/old/logo-success.png b/src/assets/images/logo/old/logo-success.png new file mode 100644 index 0000000..6339f22 Binary files /dev/null and b/src/assets/images/logo/old/logo-success.png differ diff --git a/src/assets/images/logo/old/logo-warning.png b/src/assets/images/logo/old/logo-warning.png new file mode 100644 index 0000000..89b78f4 Binary files /dev/null and b/src/assets/images/logo/old/logo-warning.png differ diff --git a/src/assets/images/logo/old/logo.svg b/src/assets/images/logo/old/logo.svg new file mode 100644 index 0000000..b58355a --- /dev/null +++ b/src/assets/images/logo/old/logo.svg @@ -0,0 +1,43 @@ + diff --git a/src/assets/images/logo/old/logo1.png b/src/assets/images/logo/old/logo1.png new file mode 100644 index 0000000..f89b776 Binary files /dev/null and b/src/assets/images/logo/old/logo1.png differ diff --git a/src/assets/images/logo/old/vuexy-logo.png b/src/assets/images/logo/old/vuexy-logo.png new file mode 100644 index 0000000..c94b347 Binary files /dev/null and b/src/assets/images/logo/old/vuexy-logo.png differ diff --git a/src/assets/images/logo/vuexy-logo.png b/src/assets/images/logo/vuexy-logo.png new file mode 100644 index 0000000..c94b347 Binary files /dev/null and b/src/assets/images/logo/vuexy-logo.png differ diff --git a/src/assets/images/misc/leaf-green.png b/src/assets/images/misc/leaf-green.png new file mode 100644 index 0000000..6c24f60 Binary files /dev/null and b/src/assets/images/misc/leaf-green.png differ diff --git a/src/assets/images/misc/leaf-orange.png b/src/assets/images/misc/leaf-orange.png new file mode 100644 index 0000000..a8a8f58 Binary files /dev/null and b/src/assets/images/misc/leaf-orange.png differ diff --git a/src/assets/images/misc/leaf-red.png b/src/assets/images/misc/leaf-red.png new file mode 100644 index 0000000..2763505 Binary files /dev/null and b/src/assets/images/misc/leaf-red.png differ diff --git a/src/assets/images/misc/leaf-shadow.png b/src/assets/images/misc/leaf-shadow.png new file mode 100644 index 0000000..6b979fa Binary files /dev/null and b/src/assets/images/misc/leaf-shadow.png differ diff --git a/src/assets/images/pages/1-apex.png b/src/assets/images/pages/1-apex.png new file mode 100644 index 0000000..2918ed8 Binary files /dev/null and b/src/assets/images/pages/1-apex.png differ diff --git a/src/assets/images/pages/2-stack.png b/src/assets/images/pages/2-stack.png new file mode 100644 index 0000000..dfafe41 Binary files /dev/null and b/src/assets/images/pages/2-stack.png differ diff --git a/src/assets/images/pages/3-convex.png b/src/assets/images/pages/3-convex.png new file mode 100644 index 0000000..580c64a Binary files /dev/null and b/src/assets/images/pages/3-convex.png differ diff --git a/src/assets/images/pages/4-materialize.png b/src/assets/images/pages/4-materialize.png new file mode 100644 index 0000000..0620e57 Binary files /dev/null and b/src/assets/images/pages/4-materialize.png differ diff --git a/src/assets/images/pages/404.png b/src/assets/images/pages/404.png new file mode 100644 index 0000000..068d490 Binary files /dev/null and b/src/assets/images/pages/404.png differ diff --git a/src/assets/images/pages/500.png b/src/assets/images/pages/500.png new file mode 100644 index 0000000..6715144 Binary files /dev/null and b/src/assets/images/pages/500.png differ diff --git a/src/assets/images/pages/arrow-down.png b/src/assets/images/pages/arrow-down.png new file mode 100644 index 0000000..232d618 Binary files /dev/null and b/src/assets/images/pages/arrow-down.png differ diff --git a/src/assets/images/pages/auth-v1-bottom-bg.png b/src/assets/images/pages/auth-v1-bottom-bg.png new file mode 100644 index 0000000..2cb5fa1 Binary files /dev/null and b/src/assets/images/pages/auth-v1-bottom-bg.png differ diff --git a/src/assets/images/pages/auth-v1-top-bg.png b/src/assets/images/pages/auth-v1-top-bg.png new file mode 100644 index 0000000..786b10a Binary files /dev/null and b/src/assets/images/pages/auth-v1-top-bg.png differ diff --git a/src/assets/images/pages/calendar-illustration.png b/src/assets/images/pages/calendar-illustration.png new file mode 100644 index 0000000..988b8a1 Binary files /dev/null and b/src/assets/images/pages/calendar-illustration.png differ diff --git a/src/assets/images/pages/card-image-4.jpg b/src/assets/images/pages/card-image-4.jpg new file mode 100644 index 0000000..a2f2ddc Binary files /dev/null and b/src/assets/images/pages/card-image-4.jpg differ diff --git a/src/assets/images/pages/card-image-5.jpg b/src/assets/images/pages/card-image-5.jpg new file mode 100644 index 0000000..c889e66 Binary files /dev/null and b/src/assets/images/pages/card-image-5.jpg differ diff --git a/src/assets/images/pages/card-image-6.jpg b/src/assets/images/pages/card-image-6.jpg new file mode 100644 index 0000000..a8e0308 Binary files /dev/null and b/src/assets/images/pages/card-image-6.jpg differ diff --git a/src/assets/images/pages/card-img-overlay.jpg b/src/assets/images/pages/card-img-overlay.jpg new file mode 100644 index 0000000..0b3f256 Binary files /dev/null and b/src/assets/images/pages/card-img-overlay.jpg differ diff --git a/src/assets/images/pages/carousel/faq.jpg b/src/assets/images/pages/carousel/faq.jpg new file mode 100644 index 0000000..fb31ee7 Binary files /dev/null and b/src/assets/images/pages/carousel/faq.jpg differ diff --git a/src/assets/images/pages/carousel/login1.png b/src/assets/images/pages/carousel/login1.png new file mode 100644 index 0000000..c06baef Binary files /dev/null and b/src/assets/images/pages/carousel/login1.png differ diff --git a/src/assets/images/pages/carousel/logout.PNG b/src/assets/images/pages/carousel/logout.PNG new file mode 100644 index 0000000..d9a2d35 Binary files /dev/null and b/src/assets/images/pages/carousel/logout.PNG differ diff --git a/src/assets/images/pages/carousel/register.PNG b/src/assets/images/pages/carousel/register.PNG new file mode 100644 index 0000000..fa92ab8 Binary files /dev/null and b/src/assets/images/pages/carousel/register.PNG differ diff --git a/src/assets/images/pages/carousel/user.PNG b/src/assets/images/pages/carousel/user.PNG new file mode 100644 index 0000000..8b5bac1 Binary files /dev/null and b/src/assets/images/pages/carousel/user.PNG differ diff --git a/src/assets/images/pages/coming-soon-dark.svg b/src/assets/images/pages/coming-soon-dark.svg new file mode 100644 index 0000000..5b4acf2 --- /dev/null +++ b/src/assets/images/pages/coming-soon-dark.svg @@ -0,0 +1,263 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/coming-soon.svg b/src/assets/images/pages/coming-soon.svg new file mode 100644 index 0000000..ee51553 --- /dev/null +++ b/src/assets/images/pages/coming-soon.svg @@ -0,0 +1,263 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/content-img-1.jpg b/src/assets/images/pages/content-img-1.jpg new file mode 100644 index 0000000..84d3e3a Binary files /dev/null and b/src/assets/images/pages/content-img-1.jpg differ diff --git a/src/assets/images/pages/content-img-2.jpg b/src/assets/images/pages/content-img-2.jpg new file mode 100644 index 0000000..caebb05 Binary files /dev/null and b/src/assets/images/pages/content-img-2.jpg differ diff --git a/src/assets/images/pages/content-img-3.jpg b/src/assets/images/pages/content-img-3.jpg new file mode 100644 index 0000000..ab852c3 Binary files /dev/null and b/src/assets/images/pages/content-img-3.jpg differ diff --git a/src/assets/images/pages/content-img-4.jpg b/src/assets/images/pages/content-img-4.jpg new file mode 100644 index 0000000..cf3144d Binary files /dev/null and b/src/assets/images/pages/content-img-4.jpg differ diff --git a/src/assets/images/pages/eCommerce/1.png b/src/assets/images/pages/eCommerce/1.png new file mode 100644 index 0000000..da3754e Binary files /dev/null and b/src/assets/images/pages/eCommerce/1.png differ diff --git a/src/assets/images/pages/eCommerce/10.png b/src/assets/images/pages/eCommerce/10.png new file mode 100644 index 0000000..cbe272a Binary files /dev/null and b/src/assets/images/pages/eCommerce/10.png differ diff --git a/src/assets/images/pages/eCommerce/11.png b/src/assets/images/pages/eCommerce/11.png new file mode 100644 index 0000000..21ef2c5 Binary files /dev/null and b/src/assets/images/pages/eCommerce/11.png differ diff --git a/src/assets/images/pages/eCommerce/12.png b/src/assets/images/pages/eCommerce/12.png new file mode 100644 index 0000000..ff6d5a3 Binary files /dev/null and b/src/assets/images/pages/eCommerce/12.png differ diff --git a/src/assets/images/pages/eCommerce/13.png b/src/assets/images/pages/eCommerce/13.png new file mode 100644 index 0000000..ae9bf58 Binary files /dev/null and b/src/assets/images/pages/eCommerce/13.png differ diff --git a/src/assets/images/pages/eCommerce/14.png b/src/assets/images/pages/eCommerce/14.png new file mode 100644 index 0000000..85bad7d Binary files /dev/null and b/src/assets/images/pages/eCommerce/14.png differ diff --git a/src/assets/images/pages/eCommerce/15.png b/src/assets/images/pages/eCommerce/15.png new file mode 100644 index 0000000..d853420 Binary files /dev/null and b/src/assets/images/pages/eCommerce/15.png differ diff --git a/src/assets/images/pages/eCommerce/16.png b/src/assets/images/pages/eCommerce/16.png new file mode 100644 index 0000000..786058d Binary files /dev/null and b/src/assets/images/pages/eCommerce/16.png differ diff --git a/src/assets/images/pages/eCommerce/17.png b/src/assets/images/pages/eCommerce/17.png new file mode 100644 index 0000000..e7549e8 Binary files /dev/null and b/src/assets/images/pages/eCommerce/17.png differ diff --git a/src/assets/images/pages/eCommerce/18.png b/src/assets/images/pages/eCommerce/18.png new file mode 100644 index 0000000..e52030b Binary files /dev/null and b/src/assets/images/pages/eCommerce/18.png differ diff --git a/src/assets/images/pages/eCommerce/19.png b/src/assets/images/pages/eCommerce/19.png new file mode 100644 index 0000000..aa78730 Binary files /dev/null and b/src/assets/images/pages/eCommerce/19.png differ diff --git a/src/assets/images/pages/eCommerce/2.png b/src/assets/images/pages/eCommerce/2.png new file mode 100644 index 0000000..288cbf9 Binary files /dev/null and b/src/assets/images/pages/eCommerce/2.png differ diff --git a/src/assets/images/pages/eCommerce/20.png b/src/assets/images/pages/eCommerce/20.png new file mode 100644 index 0000000..e96eae4 Binary files /dev/null and b/src/assets/images/pages/eCommerce/20.png differ diff --git a/src/assets/images/pages/eCommerce/21.png b/src/assets/images/pages/eCommerce/21.png new file mode 100644 index 0000000..b51bc80 Binary files /dev/null and b/src/assets/images/pages/eCommerce/21.png differ diff --git a/src/assets/images/pages/eCommerce/22.png b/src/assets/images/pages/eCommerce/22.png new file mode 100644 index 0000000..e898ca5 Binary files /dev/null and b/src/assets/images/pages/eCommerce/22.png differ diff --git a/src/assets/images/pages/eCommerce/23.png b/src/assets/images/pages/eCommerce/23.png new file mode 100644 index 0000000..869f6c7 Binary files /dev/null and b/src/assets/images/pages/eCommerce/23.png differ diff --git a/src/assets/images/pages/eCommerce/24.png b/src/assets/images/pages/eCommerce/24.png new file mode 100644 index 0000000..25c11b1 Binary files /dev/null and b/src/assets/images/pages/eCommerce/24.png differ diff --git a/src/assets/images/pages/eCommerce/25.png b/src/assets/images/pages/eCommerce/25.png new file mode 100644 index 0000000..d9c7713 Binary files /dev/null and b/src/assets/images/pages/eCommerce/25.png differ diff --git a/src/assets/images/pages/eCommerce/26.png b/src/assets/images/pages/eCommerce/26.png new file mode 100644 index 0000000..185e595 Binary files /dev/null and b/src/assets/images/pages/eCommerce/26.png differ diff --git a/src/assets/images/pages/eCommerce/27.png b/src/assets/images/pages/eCommerce/27.png new file mode 100644 index 0000000..a17d5dd Binary files /dev/null and b/src/assets/images/pages/eCommerce/27.png differ diff --git a/src/assets/images/pages/eCommerce/3.png b/src/assets/images/pages/eCommerce/3.png new file mode 100644 index 0000000..49a1031 Binary files /dev/null and b/src/assets/images/pages/eCommerce/3.png differ diff --git a/src/assets/images/pages/eCommerce/4.png b/src/assets/images/pages/eCommerce/4.png new file mode 100644 index 0000000..2662d30 Binary files /dev/null and b/src/assets/images/pages/eCommerce/4.png differ diff --git a/src/assets/images/pages/eCommerce/5.png b/src/assets/images/pages/eCommerce/5.png new file mode 100644 index 0000000..f9236e2 Binary files /dev/null and b/src/assets/images/pages/eCommerce/5.png differ diff --git a/src/assets/images/pages/eCommerce/6.png b/src/assets/images/pages/eCommerce/6.png new file mode 100644 index 0000000..421093a Binary files /dev/null and b/src/assets/images/pages/eCommerce/6.png differ diff --git a/src/assets/images/pages/eCommerce/7.png b/src/assets/images/pages/eCommerce/7.png new file mode 100644 index 0000000..60f2e65 Binary files /dev/null and b/src/assets/images/pages/eCommerce/7.png differ diff --git a/src/assets/images/pages/eCommerce/8.png b/src/assets/images/pages/eCommerce/8.png new file mode 100644 index 0000000..fd90e29 Binary files /dev/null and b/src/assets/images/pages/eCommerce/8.png differ diff --git a/src/assets/images/pages/eCommerce/9.png b/src/assets/images/pages/eCommerce/9.png new file mode 100644 index 0000000..12f81f8 Binary files /dev/null and b/src/assets/images/pages/eCommerce/9.png differ diff --git a/src/assets/images/pages/eCommerce/alienware-laptop.jpg b/src/assets/images/pages/eCommerce/alienware-laptop.jpg new file mode 100644 index 0000000..d333024 Binary files /dev/null and b/src/assets/images/pages/eCommerce/alienware-laptop.jpg differ diff --git a/src/assets/images/pages/eCommerce/amazon-chromecast.jpg b/src/assets/images/pages/eCommerce/amazon-chromecast.jpg new file mode 100644 index 0000000..20ff0d1 Binary files /dev/null and b/src/assets/images/pages/eCommerce/amazon-chromecast.jpg differ diff --git a/src/assets/images/pages/eCommerce/amazon-echodot.jpg b/src/assets/images/pages/eCommerce/amazon-echodot.jpg new file mode 100644 index 0000000..a8c6e18 Binary files /dev/null and b/src/assets/images/pages/eCommerce/amazon-echodot.jpg differ diff --git a/src/assets/images/pages/eCommerce/amazon-firestick.jpg b/src/assets/images/pages/eCommerce/amazon-firestick.jpg new file mode 100644 index 0000000..3d70874 Binary files /dev/null and b/src/assets/images/pages/eCommerce/amazon-firestick.jpg differ diff --git a/src/assets/images/pages/eCommerce/amazon-google-home.jpg b/src/assets/images/pages/eCommerce/amazon-google-home.jpg new file mode 100644 index 0000000..4a2c847 Binary files /dev/null and b/src/assets/images/pages/eCommerce/amazon-google-home.jpg differ diff --git a/src/assets/images/pages/eCommerce/apple-Imac.jpg b/src/assets/images/pages/eCommerce/apple-Imac.jpg new file mode 100644 index 0000000..f26b37a Binary files /dev/null and b/src/assets/images/pages/eCommerce/apple-Imac.jpg differ diff --git a/src/assets/images/pages/eCommerce/apple-ear-pods.jpg b/src/assets/images/pages/eCommerce/apple-ear-pods.jpg new file mode 100644 index 0000000..cbedc62 Binary files /dev/null and b/src/assets/images/pages/eCommerce/apple-ear-pods.jpg differ diff --git a/src/assets/images/pages/eCommerce/apple-macbook.jpg b/src/assets/images/pages/eCommerce/apple-macbook.jpg new file mode 100644 index 0000000..a138e38 Binary files /dev/null and b/src/assets/images/pages/eCommerce/apple-macbook.jpg differ diff --git a/src/assets/images/pages/eCommerce/asus-desktop.jpg b/src/assets/images/pages/eCommerce/asus-desktop.jpg new file mode 100644 index 0000000..29b9073 Binary files /dev/null and b/src/assets/images/pages/eCommerce/asus-desktop.jpg differ diff --git a/src/assets/images/pages/eCommerce/bank.png b/src/assets/images/pages/eCommerce/bank.png new file mode 100644 index 0000000..e8ac725 Binary files /dev/null and b/src/assets/images/pages/eCommerce/bank.png differ diff --git a/src/assets/images/pages/eCommerce/bower-and-wilkins-speaker.jpg b/src/assets/images/pages/eCommerce/bower-and-wilkins-speaker.jpg new file mode 100644 index 0000000..437b8c5 Binary files /dev/null and b/src/assets/images/pages/eCommerce/bower-and-wilkins-speaker.jpg differ diff --git a/src/assets/images/pages/eCommerce/canon-camera.jpg b/src/assets/images/pages/eCommerce/canon-camera.jpg new file mode 100644 index 0000000..7c90c65 Binary files /dev/null and b/src/assets/images/pages/eCommerce/canon-camera.jpg differ diff --git a/src/assets/images/pages/eCommerce/dell-inspirion.jpg b/src/assets/images/pages/eCommerce/dell-inspirion.jpg new file mode 100644 index 0000000..cfddd07 Binary files /dev/null and b/src/assets/images/pages/eCommerce/dell-inspirion.jpg differ diff --git a/src/assets/images/pages/eCommerce/garmin-watch.jpg b/src/assets/images/pages/eCommerce/garmin-watch.jpg new file mode 100644 index 0000000..7a07027 Binary files /dev/null and b/src/assets/images/pages/eCommerce/garmin-watch.jpg differ diff --git a/src/assets/images/pages/eCommerce/garmin-watch2.jpg b/src/assets/images/pages/eCommerce/garmin-watch2.jpg new file mode 100644 index 0000000..253fd7a Binary files /dev/null and b/src/assets/images/pages/eCommerce/garmin-watch2.jpg differ diff --git a/src/assets/images/pages/eCommerce/phillips-smart-led.jpg b/src/assets/images/pages/eCommerce/phillips-smart-led.jpg new file mode 100644 index 0000000..71a4096 Binary files /dev/null and b/src/assets/images/pages/eCommerce/phillips-smart-led.jpg differ diff --git a/src/assets/images/pages/eCommerce/samsung-fridge.jpg b/src/assets/images/pages/eCommerce/samsung-fridge.jpg new file mode 100644 index 0000000..2798826 Binary files /dev/null and b/src/assets/images/pages/eCommerce/samsung-fridge.jpg differ diff --git a/src/assets/images/pages/eCommerce/sharp-50.jpg b/src/assets/images/pages/eCommerce/sharp-50.jpg new file mode 100644 index 0000000..a8599d9 Binary files /dev/null and b/src/assets/images/pages/eCommerce/sharp-50.jpg differ diff --git a/src/assets/images/pages/eCommerce/sony-75class-tv.jpg b/src/assets/images/pages/eCommerce/sony-75class-tv.jpg new file mode 100644 index 0000000..be8a1d2 Binary files /dev/null and b/src/assets/images/pages/eCommerce/sony-75class-tv.jpg differ diff --git a/src/assets/images/pages/eCommerce/sony-headphones.jpg b/src/assets/images/pages/eCommerce/sony-headphones.jpg new file mode 100644 index 0000000..e607b81 Binary files /dev/null and b/src/assets/images/pages/eCommerce/sony-headphones.jpg differ diff --git a/src/assets/images/pages/error-dark.svg b/src/assets/images/pages/error-dark.svg new file mode 100644 index 0000000..6ae1312 --- /dev/null +++ b/src/assets/images/pages/error-dark.svg @@ -0,0 +1,292 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/error.svg b/src/assets/images/pages/error.svg new file mode 100644 index 0000000..4370f5e --- /dev/null +++ b/src/assets/images/pages/error.svg @@ -0,0 +1,299 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/faq.jpg b/src/assets/images/pages/faq.jpg new file mode 100644 index 0000000..314210b Binary files /dev/null and b/src/assets/images/pages/faq.jpg differ diff --git a/src/assets/images/pages/forgot-password-v2-dark.svg b/src/assets/images/pages/forgot-password-v2-dark.svg new file mode 100644 index 0000000..571ae41 --- /dev/null +++ b/src/assets/images/pages/forgot-password-v2-dark.svg @@ -0,0 +1,200 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/forgot-password-v2.svg b/src/assets/images/pages/forgot-password-v2.svg new file mode 100644 index 0000000..10dd1c8 --- /dev/null +++ b/src/assets/images/pages/forgot-password-v2.svg @@ -0,0 +1,207 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/forgot-password.png b/src/assets/images/pages/forgot-password.png new file mode 100644 index 0000000..fd896af Binary files /dev/null and b/src/assets/images/pages/forgot-password.png differ diff --git a/src/assets/images/pages/graphic-1.png b/src/assets/images/pages/graphic-1.png new file mode 100644 index 0000000..6b06935 Binary files /dev/null and b/src/assets/images/pages/graphic-1.png differ diff --git a/src/assets/images/pages/graphic-2.png b/src/assets/images/pages/graphic-2.png new file mode 100644 index 0000000..e055b5d Binary files /dev/null and b/src/assets/images/pages/graphic-2.png differ diff --git a/src/assets/images/pages/graphic-3.png b/src/assets/images/pages/graphic-3.png new file mode 100644 index 0000000..fb3ee39 Binary files /dev/null and b/src/assets/images/pages/graphic-3.png differ diff --git a/src/assets/images/pages/graphic-4.png b/src/assets/images/pages/graphic-4.png new file mode 100644 index 0000000..5990f13 Binary files /dev/null and b/src/assets/images/pages/graphic-4.png differ diff --git a/src/assets/images/pages/graphic-5.png b/src/assets/images/pages/graphic-5.png new file mode 100644 index 0000000..2f6b981 Binary files /dev/null and b/src/assets/images/pages/graphic-5.png differ diff --git a/src/assets/images/pages/graphic-6.png b/src/assets/images/pages/graphic-6.png new file mode 100644 index 0000000..4910150 Binary files /dev/null and b/src/assets/images/pages/graphic-6.png differ diff --git a/src/assets/images/pages/kb-article.jpg b/src/assets/images/pages/kb-article.jpg new file mode 100644 index 0000000..0b3f256 Binary files /dev/null and b/src/assets/images/pages/kb-article.jpg differ diff --git a/src/assets/images/pages/kb-image.jpg b/src/assets/images/pages/kb-image.jpg new file mode 100644 index 0000000..17ff1ff Binary files /dev/null and b/src/assets/images/pages/kb-image.jpg differ diff --git a/src/assets/images/pages/knowledge-base-cover.jpg b/src/assets/images/pages/knowledge-base-cover.jpg new file mode 100644 index 0000000..0cc53d8 Binary files /dev/null and b/src/assets/images/pages/knowledge-base-cover.jpg differ diff --git a/src/assets/images/pages/lock-screen.png b/src/assets/images/pages/lock-screen.png new file mode 100644 index 0000000..b76d40a Binary files /dev/null and b/src/assets/images/pages/lock-screen.png differ diff --git a/src/assets/images/pages/login-v2-dark.svg b/src/assets/images/pages/login-v2-dark.svg new file mode 100644 index 0000000..1beabbe --- /dev/null +++ b/src/assets/images/pages/login-v2-dark.svg @@ -0,0 +1,544 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/login-v2.svg b/src/assets/images/pages/login-v2.svg new file mode 100644 index 0000000..cc1cb9d --- /dev/null +++ b/src/assets/images/pages/login-v2.svg @@ -0,0 +1,558 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/login.png b/src/assets/images/pages/login.png new file mode 100644 index 0000000..5482692 Binary files /dev/null and b/src/assets/images/pages/login.png differ diff --git a/src/assets/images/pages/login/facebook.svg b/src/assets/images/pages/login/facebook.svg new file mode 100644 index 0000000..6227a2e --- /dev/null +++ b/src/assets/images/pages/login/facebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/pages/login/github.svg b/src/assets/images/pages/login/github.svg new file mode 100644 index 0000000..13678df --- /dev/null +++ b/src/assets/images/pages/login/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/pages/login/google.svg b/src/assets/images/pages/login/google.svg new file mode 100644 index 0000000..2218d96 --- /dev/null +++ b/src/assets/images/pages/login/google.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/pages/login/twitter.svg b/src/assets/images/pages/login/twitter.svg new file mode 100644 index 0000000..9ac9e0b --- /dev/null +++ b/src/assets/images/pages/login/twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/pages/maintenance-2.png b/src/assets/images/pages/maintenance-2.png new file mode 100644 index 0000000..e790f29 Binary files /dev/null and b/src/assets/images/pages/maintenance-2.png differ diff --git a/src/assets/images/pages/maintenance.png b/src/assets/images/pages/maintenance.png new file mode 100644 index 0000000..6c186cf Binary files /dev/null and b/src/assets/images/pages/maintenance.png differ diff --git a/src/assets/images/pages/modern.jpg b/src/assets/images/pages/modern.jpg new file mode 100644 index 0000000..4943140 Binary files /dev/null and b/src/assets/images/pages/modern.jpg differ diff --git a/src/assets/images/pages/not-authorized-dark.svg b/src/assets/images/pages/not-authorized-dark.svg new file mode 100644 index 0000000..6e88b9c --- /dev/null +++ b/src/assets/images/pages/not-authorized-dark.svg @@ -0,0 +1,200 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/not-authorized.png b/src/assets/images/pages/not-authorized.png new file mode 100644 index 0000000..922b703 Binary files /dev/null and b/src/assets/images/pages/not-authorized.png differ diff --git a/src/assets/images/pages/not-authorized.svg b/src/assets/images/pages/not-authorized.svg new file mode 100644 index 0000000..a2f19d6 --- /dev/null +++ b/src/assets/images/pages/not-authorized.svg @@ -0,0 +1,207 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/pixinvent-logo.png b/src/assets/images/pages/pixinvent-logo.png new file mode 100644 index 0000000..f796184 Binary files /dev/null and b/src/assets/images/pages/pixinvent-logo.png differ diff --git a/src/assets/images/pages/register-v2-dark.svg b/src/assets/images/pages/register-v2-dark.svg new file mode 100644 index 0000000..ffb0933 --- /dev/null +++ b/src/assets/images/pages/register-v2-dark.svg @@ -0,0 +1,337 @@ + + + Group + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/register-v2.svg b/src/assets/images/pages/register-v2.svg new file mode 100644 index 0000000..48b7e97 --- /dev/null +++ b/src/assets/images/pages/register-v2.svg @@ -0,0 +1,351 @@ + + + Group + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/register.jpg b/src/assets/images/pages/register.jpg new file mode 100644 index 0000000..d59c86f Binary files /dev/null and b/src/assets/images/pages/register.jpg differ diff --git a/src/assets/images/pages/reset-password-v2-dark.svg b/src/assets/images/pages/reset-password-v2-dark.svg new file mode 100644 index 0000000..17af805 --- /dev/null +++ b/src/assets/images/pages/reset-password-v2-dark.svg @@ -0,0 +1,292 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/reset-password-v2.svg b/src/assets/images/pages/reset-password-v2.svg new file mode 100644 index 0000000..62f9976 --- /dev/null +++ b/src/assets/images/pages/reset-password-v2.svg @@ -0,0 +1,299 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/reset-password.png b/src/assets/images/pages/reset-password.png new file mode 100644 index 0000000..0bb4a09 Binary files /dev/null and b/src/assets/images/pages/reset-password.png differ diff --git a/src/assets/images/pages/rocket.png b/src/assets/images/pages/rocket.png new file mode 100644 index 0000000..291922b Binary files /dev/null and b/src/assets/images/pages/rocket.png differ diff --git a/src/assets/images/pages/search-result.jpg b/src/assets/images/pages/search-result.jpg new file mode 100644 index 0000000..39c5630 Binary files /dev/null and b/src/assets/images/pages/search-result.jpg differ diff --git a/src/assets/images/pages/under-maintenance-dark.svg b/src/assets/images/pages/under-maintenance-dark.svg new file mode 100644 index 0000000..5efd2b9 --- /dev/null +++ b/src/assets/images/pages/under-maintenance-dark.svg @@ -0,0 +1,178 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/under-maintenance.svg b/src/assets/images/pages/under-maintenance.svg new file mode 100644 index 0000000..8861fdc --- /dev/null +++ b/src/assets/images/pages/under-maintenance.svg @@ -0,0 +1,178 @@ + + + Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/pages/video-poster.jpg b/src/assets/images/pages/video-poster.jpg new file mode 100644 index 0000000..4e3a15f Binary files /dev/null and b/src/assets/images/pages/video-poster.jpg differ diff --git a/src/assets/images/pages/vuexy-login-bg.jpg b/src/assets/images/pages/vuexy-login-bg.jpg new file mode 100644 index 0000000..fc3a090 Binary files /dev/null and b/src/assets/images/pages/vuexy-login-bg.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-1.jpg b/src/assets/images/portrait/small/avatar-s-1.jpg new file mode 100644 index 0000000..a805eec Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-1.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-10.jpg b/src/assets/images/portrait/small/avatar-s-10.jpg new file mode 100644 index 0000000..a530830 Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-10.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-11.jpg b/src/assets/images/portrait/small/avatar-s-11.jpg new file mode 100644 index 0000000..87281ee Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-11.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-12.jpg b/src/assets/images/portrait/small/avatar-s-12.jpg new file mode 100644 index 0000000..7fe7185 Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-12.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-13.jpg b/src/assets/images/portrait/small/avatar-s-13.jpg new file mode 100644 index 0000000..a1ea7a6 Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-13.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-14.jpg b/src/assets/images/portrait/small/avatar-s-14.jpg new file mode 100644 index 0000000..fdb5338 Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-14.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-15.jpg b/src/assets/images/portrait/small/avatar-s-15.jpg new file mode 100644 index 0000000..2827784 Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-15.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-16.jpg b/src/assets/images/portrait/small/avatar-s-16.jpg new file mode 100644 index 0000000..5e0fdff Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-16.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-17.jpg b/src/assets/images/portrait/small/avatar-s-17.jpg new file mode 100644 index 0000000..c0fb00e Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-17.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-18.jpg b/src/assets/images/portrait/small/avatar-s-18.jpg new file mode 100644 index 0000000..662b82f Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-18.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-19.jpg b/src/assets/images/portrait/small/avatar-s-19.jpg new file mode 100644 index 0000000..066d8af Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-19.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-2.jpg b/src/assets/images/portrait/small/avatar-s-2.jpg new file mode 100644 index 0000000..f865a79 Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-2.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-20.jpg b/src/assets/images/portrait/small/avatar-s-20.jpg new file mode 100644 index 0000000..aef7381 Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-20.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-21.jpg b/src/assets/images/portrait/small/avatar-s-21.jpg new file mode 100644 index 0000000..a805eec Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-21.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-22.jpg b/src/assets/images/portrait/small/avatar-s-22.jpg new file mode 100644 index 0000000..f865a79 Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-22.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-23.jpg b/src/assets/images/portrait/small/avatar-s-23.jpg new file mode 100644 index 0000000..8b240d3 Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-23.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-24.jpg b/src/assets/images/portrait/small/avatar-s-24.jpg new file mode 100644 index 0000000..6a1882b Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-24.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-25.jpg b/src/assets/images/portrait/small/avatar-s-25.jpg new file mode 100644 index 0000000..35f3bfd Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-25.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-26.jpg b/src/assets/images/portrait/small/avatar-s-26.jpg new file mode 100644 index 0000000..a05d68c Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-26.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-3.jpg b/src/assets/images/portrait/small/avatar-s-3.jpg new file mode 100644 index 0000000..8b240d3 Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-3.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-4.jpg b/src/assets/images/portrait/small/avatar-s-4.jpg new file mode 100644 index 0000000..6a1882b Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-4.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-5.jpg b/src/assets/images/portrait/small/avatar-s-5.jpg new file mode 100644 index 0000000..35f3bfd Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-5.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-6.jpg b/src/assets/images/portrait/small/avatar-s-6.jpg new file mode 100644 index 0000000..a05d68c Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-6.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-7.jpg b/src/assets/images/portrait/small/avatar-s-7.jpg new file mode 100644 index 0000000..f6d6793 Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-7.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-8.jpg b/src/assets/images/portrait/small/avatar-s-8.jpg new file mode 100644 index 0000000..6cee846 Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-8.jpg differ diff --git a/src/assets/images/portrait/small/avatar-s-9.jpg b/src/assets/images/portrait/small/avatar-s-9.jpg new file mode 100644 index 0000000..042c2db Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-9.jpg differ diff --git a/src/assets/images/profile/pages/page-01.jpg b/src/assets/images/profile/pages/page-01.jpg new file mode 100644 index 0000000..cffe56c Binary files /dev/null and b/src/assets/images/profile/pages/page-01.jpg differ diff --git a/src/assets/images/profile/pages/page-02.jpg b/src/assets/images/profile/pages/page-02.jpg new file mode 100644 index 0000000..ca91e74 Binary files /dev/null and b/src/assets/images/profile/pages/page-02.jpg differ diff --git a/src/assets/images/profile/pages/page-03.jpg b/src/assets/images/profile/pages/page-03.jpg new file mode 100644 index 0000000..17bc4f7 Binary files /dev/null and b/src/assets/images/profile/pages/page-03.jpg differ diff --git a/src/assets/images/profile/pages/page-04.jpg b/src/assets/images/profile/pages/page-04.jpg new file mode 100644 index 0000000..5d8a4be Binary files /dev/null and b/src/assets/images/profile/pages/page-04.jpg differ diff --git a/src/assets/images/profile/pages/page-05.jpg b/src/assets/images/profile/pages/page-05.jpg new file mode 100644 index 0000000..2bb99d2 Binary files /dev/null and b/src/assets/images/profile/pages/page-05.jpg differ diff --git a/src/assets/images/profile/pages/page-06.jpg b/src/assets/images/profile/pages/page-06.jpg new file mode 100644 index 0000000..5873d59 Binary files /dev/null and b/src/assets/images/profile/pages/page-06.jpg differ diff --git a/src/assets/images/profile/pages/page-07.jpg b/src/assets/images/profile/pages/page-07.jpg new file mode 100644 index 0000000..c43a01b Binary files /dev/null and b/src/assets/images/profile/pages/page-07.jpg differ diff --git a/src/assets/images/profile/pages/page-08.jpg b/src/assets/images/profile/pages/page-08.jpg new file mode 100644 index 0000000..821d3ef Binary files /dev/null and b/src/assets/images/profile/pages/page-08.jpg differ diff --git a/src/assets/images/profile/pages/page-09.jpg b/src/assets/images/profile/pages/page-09.jpg new file mode 100644 index 0000000..c4533b3 Binary files /dev/null and b/src/assets/images/profile/pages/page-09.jpg differ diff --git a/src/assets/images/profile/post-media/2.jpg b/src/assets/images/profile/post-media/2.jpg new file mode 100644 index 0000000..10547d4 Binary files /dev/null and b/src/assets/images/profile/post-media/2.jpg differ diff --git a/src/assets/images/profile/post-media/25.jpg b/src/assets/images/profile/post-media/25.jpg new file mode 100644 index 0000000..6934803 Binary files /dev/null and b/src/assets/images/profile/post-media/25.jpg differ diff --git a/src/assets/images/profile/user-uploads/timeline.jpg b/src/assets/images/profile/user-uploads/timeline.jpg new file mode 100644 index 0000000..8b043b0 Binary files /dev/null and b/src/assets/images/profile/user-uploads/timeline.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-01.jpg b/src/assets/images/profile/user-uploads/user-01.jpg new file mode 100644 index 0000000..5761cf1 Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-01.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-02.jpg b/src/assets/images/profile/user-uploads/user-02.jpg new file mode 100644 index 0000000..7f38a7e Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-02.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-03.jpg b/src/assets/images/profile/user-uploads/user-03.jpg new file mode 100644 index 0000000..c979804 Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-03.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-04.jpg b/src/assets/images/profile/user-uploads/user-04.jpg new file mode 100644 index 0000000..7b1807b Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-04.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-05.jpg b/src/assets/images/profile/user-uploads/user-05.jpg new file mode 100644 index 0000000..6d7e3ad Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-05.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-06.jpg b/src/assets/images/profile/user-uploads/user-06.jpg new file mode 100644 index 0000000..5ac0e4c Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-06.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-07.jpg b/src/assets/images/profile/user-uploads/user-07.jpg new file mode 100644 index 0000000..e8f31ec Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-07.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-08.jpg b/src/assets/images/profile/user-uploads/user-08.jpg new file mode 100644 index 0000000..7af7c01 Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-08.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-09.jpg b/src/assets/images/profile/user-uploads/user-09.jpg new file mode 100644 index 0000000..05a4db1 Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-09.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-10.jpg b/src/assets/images/profile/user-uploads/user-10.jpg new file mode 100644 index 0000000..baf2dfd Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-10.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-11.jpg b/src/assets/images/profile/user-uploads/user-11.jpg new file mode 100644 index 0000000..282a20a Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-11.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-12.jpg b/src/assets/images/profile/user-uploads/user-12.jpg new file mode 100644 index 0000000..215e21a Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-12.jpg differ diff --git a/src/assets/images/profile/user-uploads/user-13.jpg b/src/assets/images/profile/user-uploads/user-13.jpg new file mode 100644 index 0000000..8355436 Binary files /dev/null and b/src/assets/images/profile/user-uploads/user-13.jpg differ diff --git a/src/assets/images/raty/star-half-2.png b/src/assets/images/raty/star-half-2.png new file mode 100644 index 0000000..3c19e90 Binary files /dev/null and b/src/assets/images/raty/star-half-2.png differ diff --git a/src/assets/images/raty/star-on-2.png b/src/assets/images/raty/star-on-2.png new file mode 100644 index 0000000..975fe7f Binary files /dev/null and b/src/assets/images/raty/star-on-2.png differ diff --git a/src/assets/images/slider/01.jpg b/src/assets/images/slider/01.jpg new file mode 100644 index 0000000..f85ef95 Binary files /dev/null and b/src/assets/images/slider/01.jpg differ diff --git a/src/assets/images/slider/02.jpg b/src/assets/images/slider/02.jpg new file mode 100644 index 0000000..c2ee9d9 Binary files /dev/null and b/src/assets/images/slider/02.jpg differ diff --git a/src/assets/images/slider/03.jpg b/src/assets/images/slider/03.jpg new file mode 100644 index 0000000..d23afe7 Binary files /dev/null and b/src/assets/images/slider/03.jpg differ diff --git a/src/assets/images/slider/04.jpg b/src/assets/images/slider/04.jpg new file mode 100644 index 0000000..391167b Binary files /dev/null and b/src/assets/images/slider/04.jpg differ diff --git a/src/assets/images/slider/05.jpg b/src/assets/images/slider/05.jpg new file mode 100644 index 0000000..8f8cae6 Binary files /dev/null and b/src/assets/images/slider/05.jpg differ diff --git a/src/assets/images/slider/06.jpg b/src/assets/images/slider/06.jpg new file mode 100644 index 0000000..6eafc26 Binary files /dev/null and b/src/assets/images/slider/06.jpg differ diff --git a/src/assets/images/slider/07.jpg b/src/assets/images/slider/07.jpg new file mode 100644 index 0000000..1064a19 Binary files /dev/null and b/src/assets/images/slider/07.jpg differ diff --git a/src/assets/images/slider/08.jpg b/src/assets/images/slider/08.jpg new file mode 100644 index 0000000..f2d5e10 Binary files /dev/null and b/src/assets/images/slider/08.jpg differ diff --git a/src/assets/images/slider/09.jpg b/src/assets/images/slider/09.jpg new file mode 100644 index 0000000..ea09f6c Binary files /dev/null and b/src/assets/images/slider/09.jpg differ diff --git a/src/assets/images/slider/10.jpg b/src/assets/images/slider/10.jpg new file mode 100644 index 0000000..731979e Binary files /dev/null and b/src/assets/images/slider/10.jpg differ diff --git a/src/assets/images/svg/google.svg b/src/assets/images/svg/google.svg new file mode 100644 index 0000000..5723bfd --- /dev/null +++ b/src/assets/images/svg/google.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/svg/map-marker-2.png b/src/assets/images/svg/map-marker-2.png new file mode 100644 index 0000000..07fc599 Binary files /dev/null and b/src/assets/images/svg/map-marker-2.png differ diff --git a/src/assets/images/svg/map-marker-3.png b/src/assets/images/svg/map-marker-3.png new file mode 100644 index 0000000..a0150da Binary files /dev/null and b/src/assets/images/svg/map-marker-3.png differ diff --git a/src/assets/images/svg/map-marker.png b/src/assets/images/svg/map-marker.png new file mode 100644 index 0000000..7c021dc Binary files /dev/null and b/src/assets/images/svg/map-marker.png differ diff --git a/src/assets/images/svg/transparent.svg b/src/assets/images/svg/transparent.svg new file mode 100644 index 0000000..103178d --- /dev/null +++ b/src/assets/images/svg/transparent.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/scss/style-rtl.scss b/src/assets/scss/style-rtl.scss new file mode 100644 index 0000000..7e523c4 --- /dev/null +++ b/src/assets/scss/style-rtl.scss @@ -0,0 +1,11 @@ +/*================================================================================ + Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template + Version: 2.0 + Author: PIXINVENT + Author URL: http://www.themeforest.net/user/pixinvent +================================================================================ + +NOTE: +------ +PLACE HERE YOUR OWN SCSS CODES AND IF NEEDED, OVERRIDE THE STYLES FROM THE OTHER STYLESHEETS. +WE WILL RELEASE FUTURE UPDATES SO IN ORDER TO NOT OVERWRITE YOUR STYLES IT'S BETTER LIKE THIS. */ diff --git a/src/assets/scss/style.scss b/src/assets/scss/style.scss new file mode 100644 index 0000000..533b7e6 --- /dev/null +++ b/src/assets/scss/style.scss @@ -0,0 +1,154 @@ +.tasklist-dashboard { + max-height: 370px; + + .scrollbar-container { + border-radius: 0; + } + + .todo-task-list-wrapper { + height: calc(100%); + } + + ul { + margin:0; + padding:0; + list-style-type: none; + + li { + margin-top: 5px; + } + + li:first-child { + margin-top: 0px; + } + + .todo-item { + padding-top: 5px; + padding-bottom: 5px; + } + + .todo-item:hover { + cursor: pointer; + background-color: #67d6f1; + } + + .custom-checkbox { + margin-left: 5px; + } + + .todo-title-wrapper { + display: flex; + justify-content: space-between; + } + + .todo-title-area { + display: flex; + align-items: center; + } + + .todo-title { + padding-left: 5px; + padding-right: 5px; + } + } + } + + /*======================================== + activity tree css + ========================================*/ + + /* the tree node's style */ + .tree-view { + overflow-y: hidden; + } + + .tree-view_item { + /* immediate child of .tree-view, for styling convenience */ + } + + /* style for the children nodes container */ + .tree-view_children { + margin-left: 16px; + } + + .tree-view_children-collapsed { + height: 0px; + } + + .tree-view_arrow { + cursor: pointer; + margin-right: 6px; + display: inline-block; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + + .tree-view_arrow:after { + content: '▾'; + } + + /* rotate the triangle to close it */ + .tree-view_arrow-collapsed { + -webkit-transform: rotate(-90deg); + -moz-transform: rotate(-90deg); + -ms-transform: rotate(-90deg); + transform: rotate(-90deg); + } + + .node { + -moz-transition: all 0.5s; + -o-transition: all 0.5s; + -ms-transition: all 0.5s; + -webkit-transition: all 0.5s; + transition: all 0.5s; + border-radius: 3px; + padding: 2px 10px 2px 5px; + display: inline-block; + } + + .node .folder-icon { + display: inline-block; + margin-right: 5px; + } + + .activity-btn { + background: none; + border: none; + color: inherit; + text-align: left; + } + + .activity-icon { + display: inline-block; + margin-right: 5px; + margin-left: 5px; + } + + .node:hover { + background-color: rgb(220, 245, 243); + cursor: pointer; + } + + .info, .node { + padding: 2px 10px 2px 5px; + font: 14px Helvetica, Arial, sans-serif; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + + .tree-view_arrow { + -moz-transition: all 0.1s; + -o-transition: all 0.1s; + -ms-transition: all 0.1s; + -webkit-transition: all 0.1s; + transition: all 0.1s; + } + + .tree-view_arrow-empty { + color: yellow; + } + \ No newline at end of file diff --git a/src/assets/scss/variables/_variables-components.scss b/src/assets/scss/variables/_variables-components.scss new file mode 100644 index 0000000..64cf550 --- /dev/null +++ b/src/assets/scss/variables/_variables-components.scss @@ -0,0 +1,3 @@ +// ================================================================================================ +// ? TIP: It is recommended to use this file for overriding component variables. +// ================================================================================================ diff --git a/src/assets/scss/variables/_variables.scss b/src/assets/scss/variables/_variables.scss new file mode 100644 index 0000000..7a659f9 --- /dev/null +++ b/src/assets/scss/variables/_variables.scss @@ -0,0 +1,3 @@ +// ================================================================================================ +// ? TIP: It is recommended to use this file for overriding bootstrap variables. +// ================================================================================================ diff --git a/src/auth/jwt/useJwt.js b/src/auth/jwt/useJwt.js new file mode 100644 index 0000000..696a7c1 --- /dev/null +++ b/src/auth/jwt/useJwt.js @@ -0,0 +1,6 @@ +// ** Core JWT Import +import useJwt from '@src/@core/auth/jwt/useJwt' + +const { jwt } = useJwt({}) + +export default jwt diff --git a/src/auth/utils.js b/src/auth/utils.js new file mode 100644 index 0000000..aa66aed --- /dev/null +++ b/src/auth/utils.js @@ -0,0 +1,27 @@ +import useJwt from '@src/@core/auth/jwt/useJwt' + +/** + * Return if user is logged in + * This is completely up to you and how you want to store the token in your frontend application + * e.g. If you are using cookies to store the application please update this function + */ +// eslint-disable-next-line arrow-body-style +export const isUserLoggedIn = () => { + return localStorage.getItem('userData') && localStorage.getItem(useJwt.jwtConfig.storageTokenKeyName) +} + +export const getUserData = () => JSON.parse(localStorage.getItem('userData')) + +/** + * This function is used for demo purpose route navigation + * In real app you won't need this function because your app will navigate to same route for each users regardless of ability + * Please note role field is just for showing purpose it's not used by anything in frontend + * We are checking role just for ease + * NOTE: If you have different pages to navigate based on user ability then this function can be useful. However, you need to update it. + * @param {String} userRole Role of user + */ +export const getHomeRouteForLoggedInUser = userRole => { + if (userRole === 'admin') return '/' + if (userRole === 'client') return { name: 'access-control' } + return { name: 'auth-login' } +} diff --git a/src/configs/acl/ability.js b/src/configs/acl/ability.js new file mode 100644 index 0000000..88803a1 --- /dev/null +++ b/src/configs/acl/ability.js @@ -0,0 +1,11 @@ +import { Ability } from '@casl/ability' +import { initialAbility } from './initialAbility' + +// Read ability from localStorage +// * Handles auto fetching previous abilities if already logged in user +// ? You can update this if you store user abilities to more secure place +// ! Anyone can update localStorage so be careful and please update this +const userData = JSON.parse(localStorage.getItem('userData')) +const existingAbility = userData ? userData.ability : null + +export default new Ability(existingAbility || initialAbility) diff --git a/src/configs/acl/initialAbility.js b/src/configs/acl/initialAbility.js new file mode 100644 index 0000000..a267da0 --- /dev/null +++ b/src/configs/acl/initialAbility.js @@ -0,0 +1,9 @@ +// ** Initial user ability +export const initialAbility = [ + { + action: 'read', + subject: 'Auth' + } +] + +export const _ = undefined diff --git a/src/configs/themeConfig.js b/src/configs/themeConfig.js new file mode 100644 index 0000000..311ed98 --- /dev/null +++ b/src/configs/themeConfig.js @@ -0,0 +1,32 @@ +// You can customize the template with the help of this file + +//Template config options +const themeConfig = { + app: { + appName: '', + appLogoImage: require('@src/assets/images/logo/logo.png').default + }, + layout: { + isRTL: false, + skin: 'light', // light, dark, bordered, semi-dark + routerTransition: 'fadeIn', // fadeIn, fadeInLeft, zoomIn, none or check this for more transition https://animate.style/ + type: 'horizontal', // vertical, horizontal + contentWidth: 'full', // full, boxed + menu: { + isHidden: false, + isCollapsed: false + }, + navbar: { + // ? For horizontal menu, navbar type will work for navMenu type + type: 'floating', // static , sticky , floating, hidden + backgroundColor: 'white' // BS color options [primary, success, etc] + }, + footer: { + type: 'static' // static, sticky, hidden + }, + // customizer: true, + scrollTop: true // Enable scroll to top button + } +} + +export default themeConfig diff --git a/src/history.js b/src/history.js new file mode 100644 index 0000000..8d6bfaf --- /dev/null +++ b/src/history.js @@ -0,0 +1,2 @@ +import { createBrowserHistory } from 'history' +export const history = createBrowserHistory() diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..2efe143 --- /dev/null +++ b/src/index.js @@ -0,0 +1,66 @@ +// ** React Imports +import { Suspense, lazy } from 'react' +import ReactDOM from 'react-dom' + +// ** Redux Imports +import { Provider } from 'react-redux' +import { store } from './redux/storeConfig/store' + +// ** Intl, CASL & ThemeColors Context +import ability from './configs/acl/ability' +import { ToastContainer } from 'react-toastify' +import { AbilityContext } from './utility/context/Can' +import { ThemeContext } from './utility/context/ThemeColors' +import { IntlProviderWrapper } from './utility/context/Internationalization' + +// ** Spinner (Splash Screen) +import Spinner from './@core/components/spinner/Fallback-spinner' + +// ** Ripple Button +import './@core/components/ripple-button' + +// ** Fake Database +import './@fake-db' + +// ** PrismJS +import 'prismjs' +import 'prismjs/themes/prism-tomorrow.css' +import 'prismjs/components/prism-jsx.min' + +// ** React Perfect Scrollbar +import 'react-perfect-scrollbar/dist/css/styles.css' + +// ** React Toastify +import '@styles/react/libs/toastify/toastify.scss' + +// ** Core styles +import './@core/assets/fonts/feather/iconfont.css' +import './@core/scss/core.scss' +import './assets/scss/style.scss' + +// ** Service Worker +import * as serviceWorker from './serviceWorker' + +// ** Lazy load app +const LazyApp = lazy(() => import('./App')) + +ReactDOM.render( + + }> + + + + + + + + + + , + document.getElementById('root') +) + +// If you want your app to work offline and load faster, you can change +// unregister() to register() below. Note this comes with some pitfalls. +// Learn more about service workers: https://bit.ly/CRA-PWA +serviceWorker.unregister() diff --git a/src/index.scss b/src/index.scss new file mode 100644 index 0000000..e43f458 --- /dev/null +++ b/src/index.scss @@ -0,0 +1,2 @@ +@import '../node_modules/prismjs/themes/prism-tomorrow'; +@import './assets/scss/app.scss'; diff --git a/src/layouts/HorizontalLayout.js b/src/layouts/HorizontalLayout.js new file mode 100644 index 0000000..6ec06d6 --- /dev/null +++ b/src/layouts/HorizontalLayout.js @@ -0,0 +1,20 @@ +// !Do not remove the Layout import +import Layout from '@layouts/HorizontalLayout' + +// ** Components +// import CustomMenu from './components/Menu' +// import CustomNavbar from './components/Navbar' +// import CustomFooter from './components/Footer' + +const HorizontalLayout = props => ( + } + // navbar={props => } + // footer={props => } + {...props} + > + {props.children} + +) + +export default HorizontalLayout diff --git a/src/layouts/components/Footer.js b/src/layouts/components/Footer.js new file mode 100644 index 0000000..375d6d2 --- /dev/null +++ b/src/layouts/components/Footer.js @@ -0,0 +1,6 @@ +const CustomFooter = props => { + console.log('Footer:', props) + return
    Custom Footer
    +} + +export default CustomFooter diff --git a/src/layouts/components/Menu.js b/src/layouts/components/Menu.js new file mode 100644 index 0000000..91e4e95 --- /dev/null +++ b/src/layouts/components/Menu.js @@ -0,0 +1,6 @@ +const CustomMenu = props => { + console.log('Menu:', props) + return
    Custom Menu
    +} + +export default CustomMenu diff --git a/src/layouts/components/Navbar.js b/src/layouts/components/Navbar.js new file mode 100644 index 0000000..f847441 --- /dev/null +++ b/src/layouts/components/Navbar.js @@ -0,0 +1,6 @@ +const CustomNavbar = props => { + console.log('Navbar:', props) + return
    Custom Navbar
    +} + +export default CustomNavbar diff --git a/src/navigation/horizontal/apps.js b/src/navigation/horizontal/apps.js new file mode 100644 index 0000000..a6c870a --- /dev/null +++ b/src/navigation/horizontal/apps.js @@ -0,0 +1,10 @@ +import { Edit, Mail, MessageSquare, CheckSquare, Calendar, FileText, Circle, ShoppingCart, User } from 'react-feather' + +export default [ + { + id: 'task', + title: 'All Tasks', + icon: , + navLink: '/apps/todo' + } +] diff --git a/src/navigation/horizontal/dashboards.js b/src/navigation/horizontal/dashboards.js new file mode 100644 index 0000000..37f167d --- /dev/null +++ b/src/navigation/horizontal/dashboards.js @@ -0,0 +1,10 @@ +import { Home, Activity, ShoppingCart } from 'react-feather' + +export default [ + { + id: 'home', + title: 'Home', + icon: , + navLink: '/home' + } +] diff --git a/src/navigation/horizontal/index.js b/src/navigation/horizontal/index.js new file mode 100644 index 0000000..ecb7e54 --- /dev/null +++ b/src/navigation/horizontal/index.js @@ -0,0 +1,7 @@ +// ** Navigation sections imports +import apps from './apps' +import dashboards from './dashboards' + + +// ** Merge & Export +export default [...dashboards, ...apps] diff --git a/src/redux/actions/auth/index.js b/src/redux/actions/auth/index.js new file mode 100644 index 0000000..097224d --- /dev/null +++ b/src/redux/actions/auth/index.js @@ -0,0 +1,34 @@ +// ** UseJWT import to get config +import useJwt from '@src/auth/jwt/useJwt' + +const config = useJwt.jwtConfig + +// ** Handle User Login +export const handleLogin = data => { + return dispatch => { + dispatch({ + type: 'LOGIN', + data, + config, + [config.storageTokenKeyName]: data[config.storageTokenKeyName], + [config.storageRefreshTokenKeyName]: data[config.storageRefreshTokenKeyName] + }) + + // ** Add to user, accessToken & refreshToken to localStorage + localStorage.setItem('userData', JSON.stringify(data)) + localStorage.setItem(config.storageTokenKeyName, JSON.stringify(data.accessToken)) + localStorage.setItem(config.storageRefreshTokenKeyName, JSON.stringify(data.refreshToken)) + } +} + +// ** Handle User Logout +export const handleLogout = () => { + return dispatch => { + dispatch({ type: 'LOGOUT', [config.storageTokenKeyName]: null, [config.storageRefreshTokenKeyName]: null }) + + // ** Remove user, accessToken & refreshToken from localStorage + localStorage.removeItem('userData') + localStorage.removeItem(config.storageTokenKeyName) + localStorage.removeItem(config.storageRefreshTokenKeyName) + } +} diff --git a/src/redux/actions/layout/index.js b/src/redux/actions/layout/index.js new file mode 100644 index 0000000..9d28e49 --- /dev/null +++ b/src/redux/actions/layout/index.js @@ -0,0 +1,11 @@ +// ** Handles Layout Content Width (full / boxed) +export const handleContentWidth = value => dispatch => dispatch({ type: 'HANDLE_CONTENT_WIDTH', value }) + +// ** Handles Menu Collapsed State (Bool) +export const handleMenuCollapsed = value => dispatch => dispatch({ type: 'HANDLE_MENU_COLLAPSED', value }) + +// ** Handles Menu Hidden State (Bool) +export const handleMenuHidden = value => dispatch => dispatch({ type: 'HANDLE_MENU_HIDDEN', value }) + +// ** Handles RTL (Bool) +export const handleRTL = value => dispatch => dispatch({ type: 'HANDLE_RTL', value }) diff --git a/src/redux/actions/navbar/index.js b/src/redux/actions/navbar/index.js new file mode 100644 index 0000000..800b344 --- /dev/null +++ b/src/redux/actions/navbar/index.js @@ -0,0 +1,26 @@ +import axios from 'axios' + +// ** Get Bookmarks Array from @fakeDB +export const getBookmarks = () => { + return dispatch => { + return axios.get('/api/bookmarks/data').then(response => { + dispatch({ + type: 'GET_BOOKMARKS', + data: response.data.suggestions, + bookmarks: response.data.bookmarks + }) + }) + } +} + +// ** Update & Get Updated Bookmarks Array +export const updateBookmarked = id => { + return dispatch => { + return axios.post('/api/bookmarks/update', { id }).then(() => { + dispatch({ type: 'UPDATE_BOOKMARKED', id }) + }) + } +} + +// ** Handle Bookmarks & Main Search Queries +export const handleSearchQuery = val => dispatch => dispatch({ type: 'HANDLE_SEARCH_QUERY', val }) diff --git a/src/redux/reducers/auth/index.js b/src/redux/reducers/auth/index.js new file mode 100644 index 0000000..ecaebe5 --- /dev/null +++ b/src/redux/reducers/auth/index.js @@ -0,0 +1,24 @@ +// ** Initial State +const initialState = { + userData: {} +} + +const authReducer = (state = initialState, action) => { + switch (action.type) { + case 'LOGIN': + return { + ...state, + userData: action.data, + [action.config.storageTokenKeyName]: action[action.config.storageTokenKeyName], + [action.config.storageRefreshTokenKeyName]: action[action.config.storageRefreshTokenKeyName] + } + case 'LOGOUT': + const obj = { ...action } + delete obj.type + return { ...state, userData: {}, ...obj } + default: + return state + } +} + +export default authReducer diff --git a/src/redux/reducers/layout/index.js b/src/redux/reducers/layout/index.js new file mode 100644 index 0000000..81cfe4b --- /dev/null +++ b/src/redux/reducers/layout/index.js @@ -0,0 +1,35 @@ +// ** ThemeConfig Import +import themeConfig from '@configs/themeConfig' + +// ** Returns Initial Menu Collapsed State +const initialMenuCollapsed = () => { + const item = window.localStorage.getItem('menuCollapsed') + //** Parse stored json or if none return initialValue + return item ? JSON.parse(item) : themeConfig.layout.menu.isCollapsed +} + +// ** Initial State +const initialState = { + isRTL: themeConfig.layout.isRTL, + menuCollapsed: initialMenuCollapsed(), + menuHidden: themeConfig.layout.menu.isHidden, + contentWidth: themeConfig.layout.contentWidth +} + +const layoutReducer = (state = initialState, action) => { + switch (action.type) { + case 'HANDLE_CONTENT_WIDTH': + return { ...state, contentWidth: action.value } + case 'HANDLE_MENU_COLLAPSED': + window.localStorage.setItem('menuCollapsed', action.value) + return { ...state, menuCollapsed: action.value } + case 'HANDLE_MENU_HIDDEN': + return { ...state, menuHidden: action.value } + case 'HANDLE_RTL': + return { ...state, isRTL: action.value } + default: + return state + } +} + +export default layoutReducer diff --git a/src/redux/reducers/navbar/index.js b/src/redux/reducers/navbar/index.js new file mode 100644 index 0000000..dd6cef7 --- /dev/null +++ b/src/redux/reducers/navbar/index.js @@ -0,0 +1,40 @@ +// ** Initial State +const initialState = { + suggestions: [], + bookmarks: [], + query: '' +} + +const navbarReducer = (state = initialState, action) => { + switch (action.type) { + case 'HANDLE_SEARCH_QUERY': + return { ...state, query: action.val } + case 'GET_BOOKMARKS': + return { ...state, suggestions: action.data, bookmarks: action.bookmarks } + case 'UPDATE_BOOKMARKED': + let objectToUpdate + + // ** find & update object + state.suggestions.find(item => { + if (item.id === action.id) { + item.isBookmarked = !item.isBookmarked + objectToUpdate = item + } + }) + + // ** Get index to add or remove bookmark from array + const bookmarkIndex = state.bookmarks.findIndex(x => x.id === action.id) + + if (bookmarkIndex === -1) { + state.bookmarks.push(objectToUpdate) + } else { + state.bookmarks.splice(bookmarkIndex, 1) + } + + return { ...state } + default: + return state + } +} + +export default navbarReducer diff --git a/src/redux/reducers/rootReducer.js b/src/redux/reducers/rootReducer.js new file mode 100644 index 0000000..d354fbe --- /dev/null +++ b/src/redux/reducers/rootReducer.js @@ -0,0 +1,23 @@ +// ** Redux Imports +import { combineReducers } from 'redux' + +// ** Reducers Imports +import auth from './auth' +import navbar from './navbar' +import layout from './layout' +import todo from '@src/views/apps/todo/store/reducer' +import users from '@src/views/apps/user/store/reducer' +import dataTables from '@src/views/tables/data-tables/store/reducer' +import account from '../../views/apps/company/store/reducer' + +const rootReducer = combineReducers({ + auth, + todo, + users, + navbar, + layout, + dataTables, + account +}) + +export default rootReducer diff --git a/src/redux/storeConfig/store.js b/src/redux/storeConfig/store.js new file mode 100644 index 0000000..1c213d4 --- /dev/null +++ b/src/redux/storeConfig/store.js @@ -0,0 +1,16 @@ +// ** Redux, Thunk & Root Reducer Imports +import thunk from 'redux-thunk' +import createDebounce from 'redux-debounced' +import rootReducer from '../reducers/rootReducer' +import { createStore, applyMiddleware, compose } from 'redux' + +// ** init middleware +const middleware = [thunk, createDebounce()] + +// ** Dev Tools +const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose + +// ** Create store +const store = createStore(rootReducer, {}, composeEnhancers(applyMiddleware(...middleware))) + +export { store } diff --git a/src/router/Router.js b/src/router/Router.js new file mode 100644 index 0000000..9acb43c --- /dev/null +++ b/src/router/Router.js @@ -0,0 +1,221 @@ +// ** React Imports +import { Suspense, useContext, lazy } from 'react' + +// ** Utils +import { isUserLoggedIn } from '@utils' +import { useLayout } from '@hooks/useLayout' +import { AbilityContext } from '@src/utility/context/Can' +import { useRouterTransition } from '@hooks/useRouterTransition' + +// ** Custom Components +// import Spinner from '@components/spinner/Loading-spinner' // Uncomment if your require content fallback +import LayoutWrapper from '@layouts/components/layout-wrapper' + +// ** Router Components +import { BrowserRouter as AppRouter, Route, Switch, Redirect } from 'react-router-dom' + +// ** Routes & Default Routes +import { DefaultRoute, Routes } from './routes' + +// ** Layouts +import BlankLayout from '@layouts/BlankLayout' +import HorizontalLayout from '@src/layouts/HorizontalLayout' + +const Router = () => { + // ** Hooks + const [layout, setLayout] = useLayout('HorizontalLayout') + const [transition, setTransition] = useRouterTransition() + + // ** ACL Ability Context + const ability = useContext(AbilityContext) + + // ** Default Layout + const DefaultLayout = 'HorizontalLayout' + + // ** All of the available layouts + const Layouts = { BlankLayout, HorizontalLayout } + + // ** Current Active Item + const currentActiveItem = null + + // ** Return Filtered Array of Routes & Paths + const LayoutRoutesAndPaths = layout => { + const LayoutRoutes = [] + const LayoutPaths = [] + + if (Routes) { + Routes.filter(route => { + // ** Checks if Route layout or Default layout matches current layout + if (route.layout === layout || (route.layout === undefined && DefaultLayout === layout)) { + LayoutRoutes.push(route) + LayoutPaths.push(route.path) + } + }) + } + + return { LayoutRoutes, LayoutPaths } + } + + const NotAuthorized = lazy(() => import('@src/views/pages/misc/NotAuthorized')) + + // ** Init Error Component + const Error = lazy(() => import('@src/views/pages/misc/Error')) + + /** + ** Final Route Component Checks for Login & User Role and then redirects to the route + */ + const FinalRoute = props => { + const route = props.route + let action, resource + + // ** Assign vars based on route meta + if (route.meta) { + action = route.meta.action ? route.meta.action : null + resource = route.meta.resource ? route.meta.resource : null + } + + if ( + (!isUserLoggedIn() && route.meta === undefined) || + (!isUserLoggedIn() && route.meta && !route.meta.authRoute && !route.meta.publicRoute) + ) { + /** + ** If user is not Logged in & route meta is undefined + ** OR + ** If user is not Logged in & route.meta.authRoute, !route.meta.publicRoute are undefined + ** Then redirect user to login + */ + + return + } else if (route.meta && route.meta.authRoute && isUserLoggedIn()) { + // ** If route has meta and authRole and user is Logged in then redirect user to home page (DefaultRoute) + + return + // } else if (isUserLoggedIn() && !ability.can(action || 'read', resource)) { + // // ** If user is Logged in and doesn't have ability to visit the page redirect the user to Not Authorized + // console.log(3) + // console.log(ability) + // console.log(props) + // return + } else { + // ** If none of the above render component + + // console.log(props) + return + } + } + + // ** Return Route to Render + const ResolveRoutes = () => { + return Object.keys(Layouts).map((layout, index) => { + // ** Convert Layout parameter to Layout Component + // ? Note: make sure to keep layout and component name equal + + const LayoutTag = Layouts[layout] + + // ** Get Routes and Paths of the Layout + const { LayoutRoutes, LayoutPaths } = LayoutRoutesAndPaths(layout) + + // ** We have freedom to display different layout for different route + // ** We have made LayoutTag dynamic based on layout, we can also replace it with the only layout component, + // ** that we want to implement like VerticalLayout or HorizontalLayout + // ** We segregated all the routes based on the layouts and Resolved all those routes inside layouts + + // ** RouterProps to pass them to Layouts + const routerProps = {} + + return ( + + + + {LayoutRoutes.map(route => { + return ( + { + // ** Assign props to routerProps + Object.assign(routerProps, { + ...props, + meta: route.meta + }) + + return ( + + {/* Layout Wrapper to add classes based on route's layout, appLayout and className */} + + + + + ) + }} + /> + ) + })} + + + + ) + }) + } + + return ( + + + {/* If user is logged in Redirect user to DefaultRoute else to login */} + { + return isUserLoggedIn() ? : + }} + /> + {/* Not Auth Route */} + ( + + + + )} + /> + {ResolveRoutes()} + + {/* NotFound Error page */} + + + + ) +} + +export default Router diff --git a/src/router/routes/Pages.js b/src/router/routes/Pages.js new file mode 100644 index 0000000..4df628d --- /dev/null +++ b/src/router/routes/Pages.js @@ -0,0 +1,136 @@ +import { lazy } from 'react' +import { Redirect } from 'react-router-dom' + +const PagesRoutes = [ + { + path: '/login', + component: lazy(() => import('../../views/pages/authentication/Login')), + layout: 'BlankLayout', + meta: { + authRoute: true + } + }, + { + path: '/register', + component: lazy(() => import('../../views/pages/authentication/Register')), + layout: 'BlankLayout', + meta: { + authRoute: true + } + }, + { + path: '/forgot-password', + component: lazy(() => import('../../views/pages/authentication/ForgotPassword')), + layout: 'BlankLayout', + meta: { + authRoute: true + } + }, + { + path: '/pages/reset-password-v1', + component: lazy(() => import('../../views/pages/authentication/ResetPasswordV1')), + layout: 'BlankLayout' + }, + { + path: '/pages/profile', + component: lazy(() => import('../../views/pages/profile')) + }, + { + path: '/pages/account-settings', + component: lazy(() => import('../../views/pages/account-settings')) + }, + { + path: '/misc/coming-soon', + component: lazy(() => import('../../views/pages/misc/ComingSoon')), + layout: 'BlankLayout', + meta: { + publicRoute: true + } + }, + { + path: '/misc/not-authorized', + component: lazy(() => import('../../views/pages/misc/NotAuthorized')), + layout: 'BlankLayout', + meta: { + publicRoute: true + } + }, + { + path: '/misc/maintenance', + component: lazy(() => import('../../views/pages/misc/Maintenance')), + layout: 'BlankLayout', + meta: { + publicRoute: true + } + }, + { + path: '/misc/error', + component: lazy(() => import('../../views/pages/misc/Error')), + layout: 'BlankLayout', + meta: { + publicRoute: true + } + }, + { + path: '/home', + component: lazy(() => import('../../views/apps/company/list')), + exact: true + }, + { + path: '/account/view/:id', + component: lazy(() => import('../../views/apps/account/AccountView')), + exact: true + }, + { + path: '/apps/todo', + exact: true, + appLayout: true, + className: 'todo-application', + component: lazy(() => import('../../views/apps/todo')) + }, + { + path: '/apps/todo/:filter', + appLayout: true, + exact: true, + className: 'todo-application', + component: lazy(() => import('../../views/apps/todo')), + meta: { + navLink: '/apps/todo' + } + }, + { + path: '/apps/todo/tag/:tag', + appLayout: true, + className: 'todo-application', + component: lazy(() => import('../../views/apps/todo')), + meta: { + navLink: '/apps/todo' + } + }, + { + path: '/account/edit', + exact: true, + component: () => + }, + { + path: '/account/edit/:id', + component: lazy(() => import('../../views/apps/user/edit')), + meta: { + navLink: '/account/edit' + } + }, + { + path: '/account/view', + exact: true, + component: () => + }, + { + path: '/account/view/:id', + component: lazy(() => import('../../views/apps/user/view')), + meta: { + navLink: '/account/view' + } + } +] + +export default PagesRoutes diff --git a/src/router/routes/index.js b/src/router/routes/index.js new file mode 100644 index 0000000..5e8df9c --- /dev/null +++ b/src/router/routes/index.js @@ -0,0 +1,15 @@ +// ** Routes Imports +import PagesRoutes from './Pages' + + +// ** Document title +const TemplateTitle = '%s - React Admin Template' + +// ** Default Route +const DefaultRoute = '/home' + +// ** Merge Routes +const Routes = [...PagesRoutes] + + +export { DefaultRoute, TemplateTitle, Routes } diff --git a/src/serviceWorker.js b/src/serviceWorker.js new file mode 100644 index 0000000..9a7f3d0 --- /dev/null +++ b/src/serviceWorker.js @@ -0,0 +1,129 @@ +/*eslint-disable */ +// This optional code is used to register a service worker. +// register() is not called by default. + +// This lets the app load faster on subsequent visits in production, and gives +// it offline capabilities. However, it also means that developers (and users) +// will only see deployed updates on subsequent visits to a page, after all the +// existing tabs open on the page have been closed, since previously cached +// resources are updated in the background. + +// To learn more about the benefits of this model and instructions on how to +// opt-in, read https://bit.ly/CRA-PWA + +const isLocalhost = Boolean( + window.location.hostname === 'localhost' || + // [::1] is the IPv6 localhost address. + window.location.hostname === '[::1]' || + // 127.0.0.1/8 is considered localhost for IPv4. + window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/) +) + +export function register(config) { + if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { + // The URL constructor is available in all browsers that support SW. + const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href) + if (publicUrl.origin !== window.location.origin) { + // Our service worker won't work if PUBLIC_URL is on a different origin + // from what our page is served on. This might happen if a CDN is used to + // serve assets see https://github.com/facebook/create-react-app/issues/2374 + return + } + + window.addEventListener('load', () => { + const swUrl = `${process.env.PUBLIC_URL}/service-worker.js` + + if (isLocalhost) { + // This is running on localhost. Let's check if a service worker still exists or not. + checkValidServiceWorker(swUrl, config) + + // Add some additional logging to localhost, pointing developers to the + // service worker/PWA documentation. + navigator.serviceWorker.ready.then(() => { + console.log( + 'This web app is being served cache-first by a service ' + + 'worker. To learn more, visit https://bit.ly/CRA-PWA' + ) + }) + } else { + // Is not localhost. Just register service worker + registerValidSW(swUrl, config) + } + }) + } +} + +function registerValidSW(swUrl, config) { + navigator.serviceWorker + .register(swUrl) + .then(registration => { + registration.onupdatefound = () => { + const installingWorker = registration.installing + if (installingWorker === null) { + return + } + installingWorker.onstatechange = () => { + if (installingWorker.state === 'installed') { + if (navigator.serviceWorker.controller) { + // At this point, the updated precached content has been fetched, + // but the previous service worker will still serve the older + // content until all client tabs are closed. + console.log( + 'New content is available and will be used when all ' + + 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' + ) + + // Execute callback + if (config && config.onUpdate) { + config.onUpdate(registration) + } + } else { + // At this point, everything has been precached. + // It's the perfect time to display a + // "Content is cached for offline use." message. + console.log('Content is cached for offline use.') + + // Execute callback + if (config && config.onSuccess) { + config.onSuccess(registration) + } + } + } + } + } + }) + .catch(error => { + console.error('Error during service worker registration:', error) + }) +} + +function checkValidServiceWorker(swUrl, config) { + // Check if the service worker can be found. If it can't reload the page. + fetch(swUrl) + .then(response => { + // Ensure service worker exists, and that we really are getting a JS file. + const contentType = response.headers.get('content-type') + if (response.status === 404 || (contentType !== null && contentType.indexOf('javascript') === -1)) { + // No service worker found. Probably a different app. Reload the page. + navigator.serviceWorker.ready.then(registration => { + registration.unregister().then(() => { + window.location.reload() + }) + }) + } else { + // Service worker found. Proceed as normal. + registerValidSW(swUrl, config) + } + }) + .catch(() => { + console.log('No internet connection found. App is running in offline mode.') + }) +} + +export function unregister() { + if ('serviceWorker' in navigator) { + navigator.serviceWorker.ready.then(registration => { + registration.unregister() + }) + } +} diff --git a/src/utility/Utils.js b/src/utility/Utils.js new file mode 100644 index 0000000..ffc4e75 --- /dev/null +++ b/src/utility/Utils.js @@ -0,0 +1,79 @@ +// ** Checks if an object is empty (returns boolean) +export const isObjEmpty = obj => Object.keys(obj).length === 0 + +// ** Returns K format from a number +export const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num) + +// ** Converts HTML to string +export const htmlToString = html => html.replace(/<\/?[^>]+(>|$)/g, '') + +// ** Checks if the passed date is today +const isToday = date => { + const today = new Date() + return ( + /* eslint-disable operator-linebreak */ + date.getDate() === today.getDate() && + date.getMonth() === today.getMonth() && + date.getFullYear() === today.getFullYear() + /* eslint-enable */ + ) +} + +/** + ** Format and return date in Humanize format + ** Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format + ** Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat + * @param {String} value date to format + * @param {Object} formatting Intl object to format with + */ +export const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => { + if (!value) return value + return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value)) +} + +// ** Returns short month of passed date +export const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => { + const date = new Date(value) + let formatting = { month: 'short', day: 'numeric' } + + if (toTimeForCurrentDay && isToday(date)) { + formatting = { hour: 'numeric', minute: 'numeric' } + } + + return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value)) +} + +/** + ** Return if user is logged in + ** This is completely up to you and how you want to store the token in your frontend application + * ? e.g. If you are using cookies to store the application please update this function + */ +export const isUserLoggedIn = () => localStorage.getItem('userData') +export const getUserData = () => JSON.parse(localStorage.getItem('userData')) + +/** + ** This function is used for demo purpose route navigation + ** In real app you won't need this function because your app will navigate to same route for each users regardless of ability + ** Please note role field is just for showing purpose it's not used by anything in frontend + ** We are checking role just for ease + * ? NOTE: If you have different pages to navigate based on user ability then this function can be useful. However, you need to update it. + * @param {String} userRole Role of user + */ +export const getHomeRouteForLoggedInUser = userRole => { + if (userRole === 'admin') return '/' + if (userRole === 'client') return '/access-control' + return '/login' +} + +// ** React Select Theme Colors +export const selectThemeColors = theme => ({ + ...theme, + colors: { + ...theme.colors, + primary25: '#7367f01a', // for option hover bg-color + primary: '#7367f0', // for selected option bg-color + neutral10: '#7367f0', // for tags bg-color + neutral20: '#ededed', // for input border-color + neutral30: '#ededed' // for input hover border-color + } +}) diff --git a/src/utility/context/Can.js b/src/utility/context/Can.js new file mode 100644 index 0000000..03727ea --- /dev/null +++ b/src/utility/context/Can.js @@ -0,0 +1,11 @@ +// ** Imports createContext function +import { createContext } from 'react' + +// ** Imports createContextualCan function +import { createContextualCan } from '@casl/react' + +// ** Create Context +export const AbilityContext = createContext() + +// ** Init Can Context +export const Can = createContextualCan(AbilityContext.Consumer) diff --git a/src/utility/context/Internationalization.js b/src/utility/context/Internationalization.js new file mode 100644 index 0000000..4235ea9 --- /dev/null +++ b/src/utility/context/Internationalization.js @@ -0,0 +1,50 @@ +// ** React Imports +import { useState, createContext } from 'react' + +// ** Intl Provider Import +import { IntlProvider } from 'react-intl' + +// ** Core Language Data +import messagesEn from '@assets/data/locales/en.json' +import messagesDe from '@assets/data/locales/de.json' +import messagesFr from '@assets/data/locales/fr.json' +import messagesPt from '@assets/data/locales/pt.json' + +// ** User Language Data +import userMessagesEn from '@src/assets/data/locales/en.json' +import userMessagesDe from '@src/assets/data/locales/de.json' +import userMessagesFr from '@src/assets/data/locales/fr.json' +import userMessagesPt from '@src/assets/data/locales/pt.json' + +// ** Menu msg obj +const menuMessages = { + en: { ...messagesEn, ...userMessagesEn }, + de: { ...messagesDe, ...userMessagesDe }, + fr: { ...messagesFr, ...userMessagesFr }, + pt: { ...messagesPt, ...userMessagesPt } +} + +// ** Create Context +const Context = createContext() + +const IntlProviderWrapper = ({ children }) => { + // ** States + const [locale, setLocale] = useState('en') + const [messages, setMessages] = useState(menuMessages['en']) + + // ** Switches Language + const switchLanguage = lang => { + setLocale(lang) + setMessages(menuMessages[lang]) + } + + return ( + + + {children} + + + ) +} + +export { IntlProviderWrapper, Context as IntlContext } diff --git a/src/utility/context/ThemeColors.js b/src/utility/context/ThemeColors.js new file mode 100644 index 0000000..cf0d25f --- /dev/null +++ b/src/utility/context/ThemeColors.js @@ -0,0 +1,56 @@ +// ** React Imports +import { useEffect, useState, createContext } from 'react' + +// ** Create Context +const ThemeColors = createContext() + +const ThemeContext = ({ children }) => { + // ** State + const [colors, setColors] = useState({}) + + //** ComponentDidMount + useEffect(() => { + if (window !== 'undefined') { + //** Get variable value + const getHex = color => window.getComputedStyle(document.body).getPropertyValue(color).trim() + + //** Colors obj + const obj = { + primary: { + light: getHex('--primary').concat('1a'), + main: getHex('--primary') + }, + secondary: { + light: getHex('--secondary').concat('1a'), + main: getHex('--secondary') + }, + success: { + light: getHex('--success').concat('1a'), + main: getHex('--success') + }, + danger: { + light: getHex('--danger').concat('1a'), + main: getHex('--danger') + }, + warning: { + light: getHex('--warning').concat('1a'), + main: getHex('--warning') + }, + info: { + light: getHex('--info').concat('1a'), + main: getHex('--info') + }, + dark: { + light: getHex('--dark').concat('1a'), + main: getHex('--dark') + } + } + + setColors({ ...obj }) + } + }, []) + + return {children} +} + +export { ThemeColors, ThemeContext } diff --git a/src/utility/hooks/useFooterType.js b/src/utility/hooks/useFooterType.js new file mode 100644 index 0000000..5663259 --- /dev/null +++ b/src/utility/hooks/useFooterType.js @@ -0,0 +1,34 @@ +// ** React Imports +import { useState } from 'react' + +// ** Configs +import themeConfig from '@configs/themeConfig' + +export const useFooterType = () => { + // ** State + const [footerType, setFooterType] = useState(() => { + try { + return themeConfig.layout.footer.type + } catch (error) { + // ** If error also initialValue + console.log(error) + return themeConfig.layout.footer.type + } + }) + + // ** Return a wrapped version of useState's setter function + const setValue = value => { + try { + // ** Allow value to be a function so we have same API as useState + const valueToStore = value instanceof Function ? value(footerType) : value + + // ** Set state + setFooterType(valueToStore) + } catch (error) { + // ** A more advanced implementation would handle the error case + console.log(error) + } + } + + return [footerType, setValue] +} diff --git a/src/utility/hooks/useLayout.js b/src/utility/hooks/useLayout.js new file mode 100644 index 0000000..973eafa --- /dev/null +++ b/src/utility/hooks/useLayout.js @@ -0,0 +1,57 @@ +//** React Imports +import { useState, useEffect } from 'react' + +// ** Configs +import themeConfig from '@configs/themeConfig' + +export const useLayout = () => { + // ** States + const [lastLayout, setLastLayout] = useState(null) + const [layout, setLayout] = useState(() => { + try { + return themeConfig.layout.type + } catch (error) { + // ** If error return initialValue + console.log(error) + return themeConfig.layout.type + } + }) + + // ** Return a wrapped version of useState's setter function + const setValue = value => { + try { + // ** Allow value to be a function so we have same API as useState + const valueToStore = value instanceof Function ? value(layout) : value + + // ** Set state + setLayout(valueToStore) + } catch (error) { + // ** A more advanced implementation would handle the error case + console.log(error) + } + } + + const handleLayout = () => { + // ** If layout is horizontal & screen size is equals to or below 1200 + if (layout === 'horizontal' && window.innerWidth <= 1200) { + setLayout('vertical') + setLastLayout('horizontal') + } + // ** If lastLayout is horizontal & screen size is equals to or above 1200 + if (lastLayout === 'horizontal' && window.innerWidth >= 1200) { + setLayout('horizontal') + } + } + + // ** ComponentDidMount + useEffect(() => { + handleLayout() + }, []) + + useEffect(() => { + // ** Window Resize Event + window.addEventListener('resize', handleLayout) + }, [layout, lastLayout]) + + return [layout, setValue] +} diff --git a/src/utility/hooks/useNavbarColor.js b/src/utility/hooks/useNavbarColor.js new file mode 100644 index 0000000..8074418 --- /dev/null +++ b/src/utility/hooks/useNavbarColor.js @@ -0,0 +1,34 @@ +//** React Imports +import { useState } from 'react' + +// ** Configs +import themeConfig from '@configs/themeConfig' + +export const useNavbarColor = () => { + // ** State + const [navbarColor, setNavbarColor] = useState(() => { + try { + return themeConfig.layout.navbar.backgroundColor + } catch (error) { + // ** If error return initialValue + console.log(error) + return themeConfig.layout.navbar.backgroundColor + } + }) + + // ** Return a wrapped version of useState's setter function + const setValue = value => { + try { + // ** Allow value to be a function so we have same API as useState + const valueToStore = value instanceof Function ? value(navbarColor) : value + + // ** Set state + setNavbarColor(valueToStore) + } catch (error) { + // ** A more advanced implementation would handle the error case + console.log(error) + } + } + + return [navbarColor, setValue] +} diff --git a/src/utility/hooks/useNavbarType.js b/src/utility/hooks/useNavbarType.js new file mode 100644 index 0000000..4a6718a --- /dev/null +++ b/src/utility/hooks/useNavbarType.js @@ -0,0 +1,34 @@ +//** React Imports +import { useState } from 'react' + +// ** Configs +import themeConfig from '@configs/themeConfig' + +export const useNavbarType = () => { + // ** State + const [navbarType, setNavbarType] = useState(() => { + try { + return themeConfig.layout.navbar.type + } catch (error) { + // ** If error return initialValue + console.log(error) + return themeConfig.layout.navbar.type + } + }) + + // ** Return a wrapped version of useState's setter function + const setValue = value => { + try { + // ** Allow value to be a function so we have same API as useState + const valueToStore = value instanceof Function ? value(navbarType) : value + + // ** Set state + setNavbarType(valueToStore) + } catch (error) { + // ** A more advanced implementation would handle the error case + console.log(error) + } + } + + return [navbarType, setValue] +} diff --git a/src/utility/hooks/useOnClickOutside.js b/src/utility/hooks/useOnClickOutside.js new file mode 100644 index 0000000..a4ef683 --- /dev/null +++ b/src/utility/hooks/useOnClickOutside.js @@ -0,0 +1,33 @@ +//** React Imports +import { useEffect } from 'react' + +export const useOnClickOutside = (ref, handler) => { + useEffect( + () => { + const listener = event => { + // ** Do nothing if clicking ref's element or descendent elements + if (!ref.current || ref.current.contains(event.target)) { + return + } + + // ** Call passed function on click outside + handler(event) + } + + document.addEventListener('mousedown', listener) + document.addEventListener('touchstart', listener) + + return () => { + document.removeEventListener('mousedown', listener) + document.removeEventListener('touchstart', listener) + } + }, + // ** Add ref and handler to effect dependencies + // ** It's worth noting that because passed in handler is a new ... + // ** ... function on every render that will cause this effect ... + // ** ... callback/cleanup to run every render. It's not a big deal ... + // ** ... but to optimize you can wrap handler in useCallback before ... + // ** ... passing it into this hook. + [ref, handler] + ) +} diff --git a/src/utility/hooks/useRTL.js b/src/utility/hooks/useRTL.js new file mode 100644 index 0000000..3e7842c --- /dev/null +++ b/src/utility/hooks/useRTL.js @@ -0,0 +1,38 @@ +//** React Imports +import { useEffect } from 'react' + +// ** Store & Actions +import { handleRTL } from '@store/actions/layout' +import { useDispatch, useSelector } from 'react-redux' + +export const useRTL = () => { + // ** Store Vars + const dispatch = useDispatch() + const isRtl = useSelector(state => state.layout.isRTL) + + // ** Return a wrapped version of useState's setter function + const setValue = value => { + try { + // ** Allow value to be a function so we have same API as useState + const valueToStore = value instanceof Function ? value(isRtl) : value + dispatch(handleRTL(valueToStore)) + } catch (error) { + // ** A more advanced implementation would handle the error case + console.log(error) + } + } + + useEffect(() => { + // ** Get HTML Tag + const element = document.getElementsByTagName('html')[0] + + // ** If isRTL then add attr dir='rtl' with HTML else attr dir='ltr' + if (isRtl) { + element.setAttribute('dir', 'rtl') + } else { + element.setAttribute('dir', 'ltr') + } + }, [isRtl]) + + return [isRtl, setValue] +} diff --git a/src/utility/hooks/useRouterTransition.js b/src/utility/hooks/useRouterTransition.js new file mode 100644 index 0000000..4a27358 --- /dev/null +++ b/src/utility/hooks/useRouterTransition.js @@ -0,0 +1,34 @@ +//** React Imports +import { useState } from 'react' + +// ** Configs +import themeConfig from '@configs/themeConfig' + +export const useRouterTransition = () => { + // ** State + const [transition, setTransition] = useState(() => { + try { + return themeConfig.layout.routerTransition + } catch (error) { + // ** If error return initialValue + console.log(error) + return themeConfig.layout.routerTransition + } + }) + + // ** Return a wrapped version of useState's setter function + const setValue = value => { + try { + // ** Allow value to be a function so we have same API as useState + const valueToStore = value instanceof Function ? value(transition) : value + + // ** Set state + setTransition(valueToStore) + } catch (error) { + // ** A more advanced implementation would handle the error case + console.log(error) + } + } + + return [transition, setValue] +} diff --git a/src/utility/hooks/useSkin.js b/src/utility/hooks/useSkin.js new file mode 100644 index 0000000..2b18e16 --- /dev/null +++ b/src/utility/hooks/useSkin.js @@ -0,0 +1,58 @@ +//** React Imports +import { useState, useEffect } from 'react' + +// ** Configs +import themeConfig from '@configs/themeConfig' + +export const useSkin = () => { + // ** State + const [skin, setSkin] = useState(() => { + try { + // ** Get from local storage by key + const item = window.localStorage.getItem('skin') + // ** Parse stored json or if none return initialValue + return item ? JSON.parse(item) : themeConfig.layout.skin + } catch (error) { + // ** If error also return initialValue + console.log(error) + return themeConfig.layout.skin + } + }) + + // ** Return a wrapped version of useState's setter function + const setValue = value => { + try { + // ** Allow value to be a function so we have same API as useState + const valueToStore = value instanceof Function ? value(skin) : value + // ** Set state + setSkin(valueToStore) + // ** Save to local storage + window.localStorage.setItem('skin', JSON.stringify(valueToStore)) + } catch (error) { + // ** A more advanced implementation would handle the error case + console.log(error) + } + } + + useEffect(() => { + // ** Get Body Tag + const element = window.document.body + + // ** Define classnames for skins + const classNames = { + dark: 'dark-layout', + bordered: 'bordered-layout', + 'semi-dark': 'semi-dark-layout' + } + + // ** Remove all classes from Body on mount + element.classList.remove(...element.classList) + + // ** If skin is not light add skin class + if (skin !== 'light') { + element.classList.add(classNames[skin]) + } + }, [skin]) + + return [skin, setValue] +} diff --git a/src/views/apps/account/AccountView.js b/src/views/apps/account/AccountView.js new file mode 100644 index 0000000..66a680e --- /dev/null +++ b/src/views/apps/account/AccountView.js @@ -0,0 +1,228 @@ +import { useContext, useState } from 'react' +import { kFormatter } from '@utils' +import Avatar from '@components/avatar' +import Timeline from './timeline' +import AvatarGroup from '@components/avatar-group' +import jsonImg from '@src/assets/images/icons/json.png' +import InvoiceList from '@src/views/apps/invoice/list' +import ceo from '@src/assets/images/portrait/small/avatar-s-9.jpg' +import { ThemeColors } from '@src/utility/context/ThemeColors' +import Sales from '@src/views/ui-elements/cards/analytics/Sales' +import AvgSessions from '@src/views/ui-elements/cards/analytics/AvgSessions' +import CardAppDesign from '@src/views/ui-elements/cards/advance/CardAppDesign' +import Contacts from './Contacts' +import Tasks from './Tasks' +import Notes from './Notes' +import TaskSidebar from './TaskSidebar' +import ContactSidebar from './ContactSidebar' +import ActivitySidebar from '../activityTree/ActivitySidebar' +import ActivityTree from '../activityTree/ActivityTree' +import SupportTracker from '@src/views/ui-elements/cards/analytics/SupportTracker' +import { + Row, + Col, + Media, + Card, + CardHeader, + CardTitle, + CardBody, + InputGroup, + CustomInput, + DropdownMenu, + DropdownItem, + InputGroupText, + DropdownToggle, + InputGroupAddon, + UncontrolledDropdown +} from 'reactstrap' +import { List, Menu, Search, MoreVertical } from 'react-feather' +import OrdersReceived from '@src/views/ui-elements/cards/statistics/OrdersReceived' +import CardCongratulations from '@src/views/ui-elements/cards/advance/CardCongratulations' +import SubscribersGained from '@src/views/ui-elements/cards/statistics/SubscribersGained' +import { useDispatch, useSelector } from 'react-redux' + +import '@styles/react/libs/charts/apex-charts.scss' + +function AccountView() { + const { colors } = useContext(ThemeColors), + trackBgColor = '#e9ecef' + const storeActivities = useSelector(state => state.activity) + const activities = [ + { + folder: '2021', + title: "Activity 1" + }, + { + folder: '2020' + }, + { + folder: '2019' + } + ] + const handleClick = () => { + console.log("clicked") + } + const [openTaskSidebar, setOpenTaskSidebar] = useState(false) + const [openActivitySidebar, setOpenActivitySidebar] = useState(false) + const [openContactSidebar, setOpenContactSidebar] = useState(false) + + const handleTaskSidebar = () => setOpenTaskSidebar(!openTaskSidebar) + const handleActivitySidebar = () => setOpenActivitySidebar(!openActivitySidebar) + const handleContactSidebar = () => setOpenContactSidebar(!openContactSidebar) + const avatarGroupArr = [ + { + title: 'Billy Hopkins', + img: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + placement: 'bottom', + imgHeight: 33, + imgWidth: 33 + }, + { + title: 'Amy Carson', + img: require('@src/assets/images/portrait/small/avatar-s-6.jpg').default, + placement: 'bottom', + imgHeight: 33, + imgWidth: 33 + }, + { + title: 'Brandon Miles', + img: require('@src/assets/images/portrait/small/avatar-s-8.jpg').default, + placement: 'bottom', + imgHeight: 33, + imgWidth: 33 + }, + { + title: 'Daisy Weber', + img: require('@src/assets/images/portrait/small/avatar-s-7.jpg').default, + placement: 'bottom', + imgHeight: 33, + imgWidth: 33 + }, + { + title: 'Jenny Looper', + img: require('@src/assets/images/portrait/small/avatar-s-20.jpg').default, + placement: 'bottom', + imgHeight: 33, + imgWidth: 33 + } + ], + data = [ + { + title: '12 Invoices have been paid', + content: 'Invoices have been paid to the company.', + meta: '', + metaClassName: 'mr-1', + customContent: ( + + data.json + + data.json + + + ) + }, + { + title: 'Client Meeting', + content: 'Project meeting with john @10:15am.', + meta: '', + metaClassName: 'mr-1', + color: 'warning', + customContent: ( + + + +
    John Doe (Client)
    + CEO of Infibeam +
    +
    + ) + }, + { + title: 'Create a new project for client', + content: 'Add files to new design folder', + color: 'info', + meta: '', + metaClassName: 'mr-1', + customContent: + }, + { + title: 'Create a new project for client', + content: 'Add files to new design folder', + color: 'danger', + meta: '', + metaClassName: 'mr-1' + } + ] + + return ( +
    + + + + + + + + Contacts + + + + + + Create New Contact + + + + + + + + + + + + +
    + + User Timeline +
    +
    + + + +
    + + + + +
    + Tasks +
    + + + + + + + Create new Task + + + +
    + +
    + +
    + + + +
    + ) +} +export default AccountView diff --git a/src/views/apps/account/ContactSidebar.js b/src/views/apps/account/ContactSidebar.js new file mode 100644 index 0000000..79095f7 --- /dev/null +++ b/src/views/apps/account/ContactSidebar.js @@ -0,0 +1,234 @@ +// ** React Imports +import { useState, Fragment } from 'react' + +// ** Third Party Components +import { X, Star, Trash } from 'react-feather' +import { Modal, ModalBody, Button, Form, FormGroup, Input, Label, CustomInput } from 'reactstrap' + +// ** Utils +import { isObjEmpty, selectThemeColors } from '@utils' + +// ** Modal Header +const selectedContact = {} +const ModalHeader = props => { + // ** Props + const { children, store, handleContactSidebar, setDeleted, deleted, deleteContact, dispatch } = + props + + // ** Function to delete task + const handleDeleteContact = () => { + setDeleted(!deleted) + dispatch(deleteContact(selectedContact.id)) + handleContactSidebar() + } + + return ( +
    +
    {children}
    +
    + {store && !isObjEmpty(selectedContact) ? ( + handleDeleteContact()} /> + ) : null} + +
    +
    + ) +} + +const ContactSidebar = props => { + // ** Props + const { open, handleContactSidebar, store, dispatch, addContact, updateContact, selectContact, deleteContact } = props + + const [firstName, setFirstName] = useState(''), + [lastName, setLastName] = useState(''), + [mobile, setMobile] = useState(''), + [email, setEmail] = useState(''), + [smsEnabled, setSmsEnabled] = useState(false), + [deleted, setDeleted] = useState(false) + + + // ** Returns sidebar title + const handleSidebarTitle = () => { + if (store && !isObjEmpty(selectedContact)) { + return 'Update Contact' + } else { + return 'Add Contact' + } + } + + // ** Function to run when sidebar opens + const handleSidebarOpened = () => { + const selectedContact = {} + if (!isObjEmpty(selectedContact)) { + setFirstName(selectedContact.firstName) + setLastName(selectedContact.lastName) + setMobile(selectedContact.mobile) + setEmail(selectedContact.email) + setSmsEnabled(selectedContact.smsEnabled) + setDeleted(selectedContact.isDeleted) + } + } + + // ** Function to run when sidebar closes + const handleSidebarClosed = () => { + setFirstName('') + setLastName('') + setMobile('') + setEmail('') + setSmsEnabled(false) + setDeleted(false) + } + + // ** Function to reset fileds + const handleResetFields = () => { + setFirstName(selectedContact.firstName) + setLastName(selectedContact.lastName) + setMobile(selectedContact.mobile) + setEmail(selectedContact.email) + setSmsEnabled(selectedContact.smsEnabled) + setDeleted(selectedContact.isDeleted) + } + + // ** Renders Footer Buttons + const renderFooterButtons = () => { + + const state = { + firstName, + lastName, + mobile, + email, + smsEnabled, + isDeleted: deleted + } + + if (store && !isObjEmpty(selectedContact)) { + return ( + + + + + ) + } else { + return ( + + + + + ) + } + } + + return ( + +
    e.preventDefault()}> + + {handleSidebarTitle()} + + + + + setFirstName(e.target.value)} + /> + + + + setLastName(e.target.value)} + /> + + + + setMobile(e.target.value)} + /> + + + + setSmsEnabled(e.target.checked)} + /> + + + + setEmail(e.target.value)} + /> + + {renderFooterButtons()} + +
    +
    + ) +} + +export default ContactSidebar diff --git a/src/views/apps/account/Contacts.js b/src/views/apps/account/Contacts.js new file mode 100644 index 0000000..daf6078 --- /dev/null +++ b/src/views/apps/account/Contacts.js @@ -0,0 +1,69 @@ +import Chart from 'react-apexcharts' +import Avatar from '@components/avatar' +import { MoreVertical } from 'react-feather' +import { Card, Badge, CardHeader, CardTitle, CardBody, Media, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const Contacts = ({ colors, trackBgColor }) => { + const employeesTasks = [ + { + avatar: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + title: 'Ryan Harrington', + email: 'email@email.com', + contact: '0123567890' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-20.jpg').default, + title: 'Louisa Norton', + email: 'email@email.com' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-1.jpg').default, + title: 'Jayden Duncan', + email: 'email@email.com', + contact: '0123567890' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-20.jpg').default, + title: 'Cynthia Howell', + email: 'email@email.com' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-16.jpg').default, + title: 'Helena Payne', + email: 'email@email.com' + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-13.jpg').default, + title: 'Troy Jensen', + email: 'email@email.com', + contact: '0123567890' + } + ] + + const renderTasks = () => { + return employeesTasks.map(task => { + const quickContactView = [task.email, task.contact].filter(Boolean).join(" | ") + return ( +
    + + + +
    {task.title}
    + {quickContactView} +
    +
    +
    + {task.email ? (Email) : ''}  + {task.contact ? (SMS) : ''} +
    +
    + ) + }) + } + + return ( + {renderTasks()} + ) +} + +export default Contacts diff --git a/src/views/apps/account/Notes.js b/src/views/apps/account/Notes.js new file mode 100644 index 0000000..b3ae8ee --- /dev/null +++ b/src/views/apps/account/Notes.js @@ -0,0 +1,109 @@ +import classnames from 'classnames' +import { useState, useEffect } from 'react' +import PerfectScrollbar from 'react-perfect-scrollbar' +import { Send } from 'react-feather' +import { Card, CardHeader, CardTitle, Form, InputGroup, Input, Button } from 'reactstrap' + +import '@styles/base/pages/app-chat-list.scss' + +const Notes = () => { + const [msg, setMsg] = useState('') + const [chatRef, setChatRef] = useState(null) + const userNotes = [ + { + message: "Test note here. Test note here. Test note here. Test note here. Test note here. Test note here. Test note here." + }, + { + message:"Test note here. Test note here. Test note here. Test note here. Test note here. Test note here. Test note here." + }, + { + message:"Small note text" + }, + { + message:"Test note here. Test note here. Test note here. Test note here. Test note here. Test note here. Test note here." + }, + { + message:"Test note here. Test note here. Test note here. Test note here. Test note here. Test note here. Test note here." + }, + { + message:"Another small note here" + }, + { + message:"Test note here. Test note here. Test note here. Test note here. Test note here. Test note here. Test note here" + } + ] + //** Renders notes + const renderChats = () => { + return userNotes.map((item, index) => { + return ( +
    +
    +
    +

    {item.message}

    +
    +
    +
    + ) + }) + } + + //** Scroll to bottom + const scrollToBottom = () => { + chatRef.scrollTop = Number.MAX_SAFE_INTEGER + } + + useEffect(() => { + if (chatRef !== null) { + scrollToBottom() + } + }, [userNotes.length]) + + const handleSendMsg = e => { + e.preventDefault() + if (msg.trim().length) { + const newMsg = { + message: msg, + time: new Date() + } + setMsg('') + } + } + + return ( + + + Notes + +
    + setChatRef(el)} + className='user-chats scroll-area' + options={{ wheelPropagation: false }} + > +
    {renderChats()}
    +
    +
    handleSendMsg(e)}> + + setMsg(e.target.value)} + placeholder='Type your note' + /> + + +
    +
    +
    + ) +} + +export default Notes diff --git a/src/views/apps/account/TaskSidebar.js b/src/views/apps/account/TaskSidebar.js new file mode 100644 index 0000000..853fca3 --- /dev/null +++ b/src/views/apps/account/TaskSidebar.js @@ -0,0 +1,407 @@ +// ** React Imports +import { useState, Fragment } from 'react' + +// ** Third Party Components +import classnames from 'classnames' +import Flatpickr from 'react-flatpickr' +import { Editor } from 'react-draft-wysiwyg' +import { X, Star, Trash } from 'react-feather' +import Select, { components } from 'react-select' +import { EditorState, ContentState } from 'draft-js' +import { Modal, ModalBody, Button, Form, FormGroup, Input, Label, Media } from 'reactstrap' + +// ** Utils +import { isObjEmpty, selectThemeColors } from '@utils' + +// ** Assignee Avatars +import img1 from '@src/assets/images/portrait/small/avatar-s-3.jpg' +import img2 from '@src/assets/images/portrait/small/avatar-s-1.jpg' +import img3 from '@src/assets/images/portrait/small/avatar-s-4.jpg' +import img4 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import img5 from '@src/assets/images/portrait/small/avatar-s-2.jpg' +import img6 from '@src/assets/images/portrait/small/avatar-s-11.jpg' + +// ** Styles Imports +import '@styles/react/libs/editor/editor.scss' +import '@styles/react/libs/react-select/_react-select.scss' +import '@styles/react/libs/flatpickr/flatpickr.scss' + +// ** Function to capitalize the first letter of string +const capitalize = string => string.charAt(0).toUpperCase() + string.slice(1) + +// ** Modal Header +const ModalHeader = props => { + // ** Props + const { children, store, handleTaskSidebar, setDeleted, deleted, important, setImportant, deleteTask, dispatch } = + props + + // ** Function to delete task + const handleDeleteTask = () => { + handleTaskSidebar() + } + const selectedTask = {} + return ( +
    +
    {children}
    +
    + {store && !isObjEmpty(selectedTask) ? ( + handleDeleteTask()} /> + ) : null} + + setImportant(!important)} + className={classnames({ + 'text-warning': important === true + })} + /> + + +
    +
    + ) +} + +const TaskSidebar = props => { + // ** Props + const { open, handleTaskSidebar, store, dispatch, updateTask, selectTask, addTask, deleteTask } = props + + // ** Users + const [title, setTitle] = useState(''), + [assignee, setAssignee] = useState({ value: 'pheobe', label: 'Pheobe Buffay', img: img1 }), + [tags, setTags] = useState([]), + [desc, setDesc] = useState(EditorState.createEmpty()), + [completed, setCompleted] = useState(false), + [important, setImportant] = useState(false), + [deleted, setDeleted] = useState(false), + [dueDate, setDueDate] = useState(new Date()), + [status, setStatus] = useState({ value: 'active', label: 'Active' }) + + // ** Assignee Select Options + const assigneeOptions = [ + { value: 'pheobe', label: 'Pheobe Buffay', img: img1 }, + { value: 'chandler', label: 'Chandler Bing', img: img2 }, + { value: 'ross', label: 'Ross Geller', img: img3 }, + { value: 'monica', label: 'Monica Geller', img: img4 }, + { value: 'joey', label: 'Joey Tribbiani', img: img5 }, + { value: 'Rachel', label: 'Rachel Green', img: img6 } + ] + + // ** Tag Select Options + const tagOptions = [ + { value: 'team', label: 'Team' }, + { value: 'low', label: 'Low' }, + { value: 'medium', label: 'Medium' }, + { value: 'high', label: 'High' }, + { value: 'update', label: 'Update' } + ] + + const statusOptions = [ + { value: 'active', label: 'Active' }, + { value: 'pending', label: 'Pending' }, + { value: 'inactive', label: 'Inactive' } + ] + + // ** Custom Assignee Component + const AssigneeComponent = ({ data, ...props }) => { + return ( + + + {data.label} + +

    {data.label}

    +
    +
    +
    + ) + } + + // ** Returns sidebar title + const handleSidebarTitle = () => { + if (store && !isObjEmpty(selectedTask)) { + return ( + setCompleted(!completed)} + color={completed === true ? 'success' : 'secondary'} + > + {completed === true ? 'Completed' : 'Mark Complete'} + + ) + } else { + return 'Add Task' + } + } + + // ** Function to run when sidebar opens + const handleSidebarOpened = () => { + const selectedTask = {} + if (!isObjEmpty(selectedTask)) { + setTitle(selectedTask.title) + setCompleted(selectedTask.isCompleted) + setImportant(selectedTask.isImportant) + setStatus({ + value: selectedTask.status, + label: statusOptions.find(item => item.value === selectedTask.status).label + }) + setAssignee([ + { + value: selectedTask.assignee.fullName, + label: selectedTask.assignee.fullName, + img: selectedTask.assignee.avatar + } + ]) + setDueDate(selectedTask.dueDate) + if (typeof selectedTask.description === 'string') { + setDesc(EditorState.createWithContent(ContentState.createFromText(selectedTask.description))) + } else { + const obj = selectedTask.description._immutable.currentContent.blockMap + const property = Object.keys(obj).map((val, key) => val) + + setDesc(EditorState.createWithContent(ContentState.createFromText(obj[property].text))) + } + + if (selectedTask.tags.length) { + const tags = [] + selectedTask.tags.map(tag => { + tags.push({ value: tag, label: capitalize(tag) }) + }) + setTags(tags) + } + } + } + + // ** Function to run when sidebar closes + const handleSidebarClosed = () => { + setTags([]) + setDesc('') + setTitle('') + setAssignee({ value: 'pheobe', label: 'Pheobe Buffay', img: img1 }) + setCompleted(false) + setImportant(false) + setDueDate(new Date()) + setStatus({ value: 'active', label: 'Active' }) + } + + // ** Function to reset fileds + const handleResetFields = () => { + setTitle(selectedTask.title) + setDesc(selectedTask.description) + setCompleted(selectedTask.isCompleted) + setImportant(selectedTask.isImportant) + setDeleted(selectedTask.isDeleted) + setDueDate(selectedTask.dueDate) + setStatus({ + value: selectedTask.status, + label: statusOptions.find(item => item.value === selectedTask.status).label + }) + if (selectedTask.assignee.fullName !== assignee.label) { + setAssignee({ + value: selectedTask.assignee.fullName, + label: selectedTask.assignee.fullName, + img: selectedTask.assignee.avatar + }) + } + if (selectedTask.tags.length) { + const tags = [] + selectedTask.tags.map(tag => { + tags.push({ value: tag, label: capitalize(tag) }) + }) + setTags(tags) + } + } + + // ** Renders Footer Buttons + const renderFooterButtons = () => { + const newTaskTag = [] + + // const doesInclude = !isObjEmpty(selectedTask) && assignee.label === selectedTask.assignee.fullName + + if (tags.length) { + tags.map(tag => newTaskTag.push(tag.value)) + } + + const newAssignee = { + fullName: assignee.label, + avatar: assignee.img + } + const state = { + title, + dueDate, + tags: newTaskTag, + description: desc, + isCompleted: completed, + isDeleted: deleted, + isImportant: important, + status: status.value, + assignee: "" + } + + if (store && !isObjEmpty(selectedTask)) { + return ( + + + + + ) + } else { + return ( + + + + + ) + } + } + + return ( + +
    e.preventDefault()}> + + {handleSidebarTitle()} + + + + + setTitle(e.target.value)} + /> + + + + setStatus(data)} + // components={{ Option: AssigneeComponent }} + /> + + + + setDueDate(date[0])} + value={dueDate} + options={{ dateFormat: 'Y-m-d' }} + /> + + + + setTitle(e.target.value)} + /> + + + + setAssignee(data)} + components={{ Option: AssigneeComponent }} + /> + + + + setDueDate(date[0])} + value={dueDate} + options={{ dateFormat: 'Y-m-d' }} + /> + + + + + + + Remove + + + + +
    + + + + + e.preventDefault()}> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + Permissions +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ModuleReadWriteCreateDelete
    Admin + + + + + + + +
    Staff + + + + + + + +
    Author + + + + + + + +
    Contributor + + + + + + + +
    User + + + + + + + +
    +
    + + + + Save Changes + + + Reset + + +
    + + + + ) +} +export default UserAccountTab diff --git a/src/views/apps/company/edit/Information.js b/src/views/apps/company/edit/Information.js new file mode 100644 index 0000000..34f0356 --- /dev/null +++ b/src/views/apps/company/edit/Information.js @@ -0,0 +1,260 @@ +// ** React Imports +import { useState } from 'react' + +// ** Third Party Components +import classnames from 'classnames' +import Cleave from 'cleave.js/react' +import Flatpickr from 'react-flatpickr' +import { User, MapPin } from 'react-feather' +import 'cleave.js/dist/addons/cleave-phone.us' +import { useForm, Controller } from 'react-hook-form' +import { Row, Col, Button, Label, FormGroup, Input, CustomInput, Form } from 'reactstrap' + +// ** Styles +import '@styles/react/libs/flatpickr/flatpickr.scss' + +const UserInfoTab = () => { + // ** State + const [data, setData] = useState(null) + + // ** React hook form vars + const { register, errors, handleSubmit, control, setValue, trigger } = useForm({ + defaultValues: { gender: 'gender-female', dob: null } + }) + return ( +
    { + trigger() + setData(data) + })} + > + + +

    + + Personal Information +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { + return ( + setValue('gender', 'male')} + /> + ) + }} + /> + { + return ( + setValue('gender', 'female')} + /> + ) + }} + /> + + + + + + + + + + + + + +
    + + +

    + + Address +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + ) +} +export default UserInfoTab diff --git a/src/views/apps/company/edit/Social.js b/src/views/apps/company/edit/Social.js new file mode 100644 index 0000000..547ca62 --- /dev/null +++ b/src/views/apps/company/edit/Social.js @@ -0,0 +1,118 @@ +// ** Third Party Components +import { + Form, + FormGroup, + Label, + Input, + Row, + Col, + Button, + InputGroup, + InputGroupAddon, + InputGroupText +} from 'reactstrap' +import { Twitter, Facebook, Instagram, GitHub, Codepen, Slack } from 'react-feather' + +const UserSocialTab = () => { + return ( +
    e.preventDefault()}> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + ) +} +export default UserSocialTab diff --git a/src/views/apps/company/edit/index.js b/src/views/apps/company/edit/index.js new file mode 100644 index 0000000..7db3757 --- /dev/null +++ b/src/views/apps/company/edit/index.js @@ -0,0 +1,85 @@ +// ** React Imports +import { useState, useEffect } from 'react' +import { useParams, Link } from 'react-router-dom' + +// ** User Edit Components +import SocialTab from './Social' +import AccountTab from './Account' +import InfoTab from './Information' + +// ** Store & Actions +import { getUser } from '../store/action' +import { useSelector, useDispatch } from 'react-redux' + +// ** Third Party Components +import { User, Info, Share2 } from 'react-feather' +import { Card, CardBody, Row, Col, Nav, NavItem, NavLink, TabContent, TabPane, Alert } from 'reactstrap' + +// ** Styles +import '@styles/react/apps/app-users.scss' + +const UserEdit = () => { + // ** States & Vars + const [activeTab, setActiveTab] = useState('1'), + store = useSelector(state => state.users), + dispatch = useDispatch(), + { id } = useParams() + + // ** Function to toggle tabs + const toggle = tab => setActiveTab(tab) + + // ** Function to get user on mount + useEffect(() => { + dispatch(getUser(parseInt(id))) + }, [dispatch]) + + return store.selectedUser !== null && store.selectedUser !== undefined ? ( + + + + + + + + + + + + + + + + + + + + + ) : ( + +

    User not found

    +
    + User with id: {id} doesn't exist. Check list of all Users: Users List +
    +
    + ) +} +export default UserEdit diff --git a/src/views/apps/company/list/Sidebar.js b/src/views/apps/company/list/Sidebar.js new file mode 100644 index 0000000..a8d5414 --- /dev/null +++ b/src/views/apps/company/list/Sidebar.js @@ -0,0 +1,120 @@ +// ** React Import +import { useEffect, useState } from 'react' + +// ** Custom Components +import Sidebar from '@components/sidebar' + +// ** Utils +import { isObjEmpty, selectThemeColors } from '@utils' + +// ** Third Party Components +import classnames from 'classnames' +import { useForm } from 'react-hook-form' +import Select, { components } from 'react-select' +import { Button, FormGroup, Label, FormText, Form, Input } from 'reactstrap' + +// ** Store & Actions +import { addUser } from '../store/action' +import { useDispatch } from 'react-redux' + +const SidebarNewUsers = ({ open, toggleSidebar }) => { + // ** States + const [role, setRole] = useState('subscriber') + const [plan, setPlan] = useState('basic') + + // ** Store Vars + const dispatch = useDispatch() + const handleTag = tag => { + dispatch(getTasks({ ...params, tag })) + } + // ** Vars + const { register, errors, handleSubmit } = useForm() + + + // ** Users + const [title, setTitle] = useState(''), + [tags, setTags] = useState([]) + + + // ** Tag Select Options + const tagOptions = [ + { value: 'team', label: 'Team' }, + { value: 'low', label: 'Low' }, + { value: 'medium', label: 'Medium' }, + { value: 'high', label: 'High' }, + { value: 'update', label: 'Update' } + ] + + // ** Function to handle form submit + const onSubmit = values => { + if (isObjEmpty(errors)) { + toggleSidebar() + dispatch( + addUser({ + fullName: values['full-name'], + company: values.company, + role, + username: values.username, + country: values.country, + contact: values.contact, + email: values.email, + currentPlan: plan, + status: 'active', + avatar: '' + }) + ) + } + } + + return ( + +
    + + + + + + + handleFilter(e.target.value)} /> +
    + + Add New User + + + +
    + ) +} + +const UsersList = () => { + // ** Store Vars + const dispatch = useDispatch() + const store = useSelector(state => state.users) + + // ** States + const [searchTerm, setSearchTerm] = useState('') + const [currentPage, setCurrentPage] = useState(1) + const [rowsPerPage, setRowsPerPage] = useState(10) + const [sidebarOpen, setSidebarOpen] = useState(false) + const [currentRole, setCurrentRole] = useState({ value: '', label: 'Select Role' }) + const [currentPlan, setCurrentPlan] = useState({ value: '', label: 'Select Plan' }) + const [currentStatus, setCurrentStatus] = useState({ value: '', label: 'Select Status', number: 0 }) + + // ** Function to toggle sidebar + const toggleSidebar = () => setSidebarOpen(!sidebarOpen) + + // ** Get data on mount + useEffect(() => { + dispatch(getAllData()) + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + role: currentRole.value, + currentPlan: currentPlan.value, + status: currentStatus.value, + q: searchTerm + }) + ) + }, [dispatch, store.data.length]) + + // ** User filter options + const roleOptions = [ + { value: '', label: 'Select Role' }, + { value: 'admin', label: 'Admin' }, + { value: 'author', label: 'Author' }, + { value: 'editor', label: 'Editor' }, + { value: 'maintainer', label: 'Maintainer' }, + { value: 'subscriber', label: 'Subscriber' } + ] + + const planOptions = [ + { value: '', label: 'Select Plan' }, + { value: 'basic', label: 'Basic' }, + { value: 'company', label: 'Company' }, + { value: 'enterprise', label: 'Enterprise' }, + { value: 'team', label: 'Team' } + ] + + const statusOptions = [ + { value: '', label: 'Select Status', number: 0 }, + { value: 'pending', label: 'Pending', number: 1 }, + { value: 'active', label: 'Active', number: 2 }, + { value: 'inactive', label: 'Inactive', number: 3 } + ] + + // ** Function in get data on page change + const handlePagination = page => { + dispatch( + getData({ + page: page.selected + 1, + perPage: rowsPerPage, + role: currentRole.value, + currentPlan: currentPlan.value, + status: currentStatus.value, + q: searchTerm + }) + ) + setCurrentPage(page.selected + 1) + } + + // ** Function in get data on rows per page + const handlePerPage = e => { + const value = parseInt(e.currentTarget.value) + dispatch( + getData({ + page: currentPage, + perPage: value, + role: currentRole.value, + currentPlan: currentPlan.value, + status: currentStatus.value, + q: searchTerm + }) + ) + setRowsPerPage(value) + } + + // ** Function in get data on search query change + const handleFilter = val => { + setSearchTerm(val) + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + role: currentRole.value, + currentPlan: currentPlan.value, + status: currentStatus.value, + q: val + }) + ) + } + + // ** Custom Pagination + const CustomPagination = () => { + const count = Number(Math.ceil(store.total / rowsPerPage)) + + return ( + handlePagination(page)} + pageClassName={'page-item'} + nextLinkClassName={'page-link'} + nextClassName={'page-item next'} + previousClassName={'page-item prev'} + previousLinkClassName={'page-link'} + pageLinkClassName={'page-link'} + containerClassName={'pagination react-paginate justify-content-end my-2 pr-1'} + /> + ) + } + + // ** Table data to render + const dataToRender = () => { + const filters = { + role: currentRole.value, + currentPlan: currentPlan.value, + status: currentStatus.value, + q: searchTerm + } + + const isFiltered = Object.keys(filters).some(function (k) { + return filters[k].length > 0 + }) + + if (store.data.length > 0) { + return store.data + } else if (store.data.length === 0 && isFiltered) { + return [] + } else { + return store.allData.slice(0, rowsPerPage) + } + } + + return ( + + + + Search Filter + + + + + + + + + + + + +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + +
    + ) +} + +export default AddActions diff --git a/src/views/apps/invoice/add/AddCard.js b/src/views/apps/invoice/add/AddCard.js new file mode 100644 index 0000000..8350cd0 --- /dev/null +++ b/src/views/apps/invoice/add/AddCard.js @@ -0,0 +1,477 @@ +// ** React Imports +import { Fragment, useState, useEffect } from 'react' + +// ** Custom Components +import Sidebar from '@components/sidebar' +import Repeater from '@components/repeater' + +// ** Third Party Components +import axios from 'axios' +import Flatpickr from 'react-flatpickr' +import { SlideDown } from 'react-slidedown' +import { X, Plus, Hash } from 'react-feather' +import Select, { components } from 'react-select' +import { selectThemeColors } from '@utils' +import { + Card, + CardBody, + CardText, + Row, + Col, + Form, + Input, + InputGroup, + InputGroupAddon, + InputGroupText, + FormGroup, + Label, + Button, + UncontrolledTooltip +} from 'reactstrap' + +// ** Styles +import 'react-slidedown/lib/slidedown.css' +import '@styles/react/libs/react-select/_react-select.scss' +import '@styles/react/libs/flatpickr/flatpickr.scss' +import '@styles/base/pages/app-invoice.scss' + +const AddCard = () => { + // ** States + const [count, setCount] = useState(1) + const [value, setValue] = useState({}) + const [open, setOpen] = useState(false) + const [clients, setClients] = useState(null) + const [selected, setSelected] = useState(null) + const [picker, setPicker] = useState(new Date()) + const [invoiceNumber, setInvoiceNumber] = useState(false) + const [dueDatepicker, setDueDatePicker] = useState(new Date()) + const [options, setOptions] = useState([ + { + value: 'add-new', + label: 'Add New Customer', + type: 'button', + color: 'flat-success' + } + ]) + + useEffect(() => { + // ** Get Clients + axios.get('/api/invoice/clients').then(response => { + const arr = options + response.data.map(item => arr.push({ value: item.name, label: item.name })) + setOptions([...arr]) + setClients(response.data) + }) + + // ** Get Invoices & Set Invoice Number + axios + .get('/apps/invoice/invoices', { + page: 1, + perPage: 10, + status: '', + q: '' + }) + .then(response => { + const lastInvoiceNumber = Math.max.apply( + Math, + response.data.allData.map(i => i.id) + ) + setInvoiceNumber(lastInvoiceNumber + 1) + }) + }, []) + + // ** Deletes form + const deleteForm = e => { + e.preventDefault() + e.target.closest('.repeater-wrapper').remove() + } + + // ** Function to toggle sidebar + const toggleSidebar = () => setOpen(!open) + + // ** Vars + const countryOptions = [ + { value: 'australia', label: 'Australia' }, + { value: 'canada', label: 'Canada' }, + { value: 'russia', label: 'Russia' }, + { value: 'saudi-arabia', label: 'Saudi Arabia' }, + { value: 'singapore', label: 'Singapore' }, + { value: 'sweden', label: 'Sweden' }, + { value: 'switzerland', label: 'Switzerland' }, + { value: 'united-kingdom', label: 'United Kingdom' }, + { value: 'united-arab-emirates', label: 'United Arab Emirates' }, + { value: 'united-states-of-america', label: 'United States of America' } + ] + + // ** Custom Options Component + const OptionComponent = ({ data, ...props }) => { + if (data.type === 'button') { + return ( + + ) + } else { + return {data.label} + } + } + + // ** Invoice To OnChange + const handleInvoiceToChange = data => { + setValue(data) + setSelected(clients.filter(i => i.name === data.value)[0]) + } + + const note = + 'It was a pleasure working with you and your team. We hope you will keep us in mind for future freelance projects. Thank You!' + + return ( + + + {/* Header */} + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +

    Vuexy

    +
    +

    Office 149, 450 South Brand Brooklyn

    +

    San Diego County, CA 91905, USA

    +

    +1 (123) 456 7891, +44 (876) 543 2198

    +
    +
    +
    +

    Invoice

    + + + + + + + + +
    +
    + Date: + setPicker(date)} + className='form-control invoice-edit-input date-picker' + /> +
    +
    + Due Date: + setDueDatePicker(date)} + className='form-control invoice-edit-input due-date-picker' + /> +
    +
    +
    +
    + {/* /Header */} + +
    + + {/* Address and Contact */} + + + +
    Invoice To:
    +
    + {clients !== null ? ( + + + + + + + + + + + Cost + +
    + Discount: 0% + + 0% + + + 0% + + Tax 1 + Tax 2 +
    + + + Qty + + + + Price + $24.00 + + +
    + +
    + + + + ) + }} + + + + setCount(count + 1)}> + + Add Item + + + + + + {/* /Product Details */} + + {/* Invoice Total */} + + + +
    + + +
    + + +
    +
    +

    Subtotal:

    +

    $1800

    +
    +
    +

    Discount:

    +

    $28

    +
    +
    +

    Tax:

    +

    21%

    +
    +
    +
    +

    Total:

    +

    $1690

    +
    +
    + +
    +
    + {/* /Invoice Total */} + +
    + + {/* Invoice Note */} + + + + + + + + + + + {/* /Invoice Note */} + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + ) +} + +export default AddCard diff --git a/src/views/apps/invoice/add/index.js b/src/views/apps/invoice/add/index.js new file mode 100644 index 0000000..a034cc0 --- /dev/null +++ b/src/views/apps/invoice/add/index.js @@ -0,0 +1,27 @@ +// ** Invoice Add Components +import AddCard from './AddCard' +import AddActions from './AddActions' + +// ** Third Party Components +import { Row, Col } from 'reactstrap' + +// ** Styles +import '@styles/react/libs/flatpickr/flatpickr.scss' +import '@styles/base/pages/app-invoice.scss' + +const InvoiceAdd = () => { + return ( +
    + + + + + + + + +
    + ) +} + +export default InvoiceAdd diff --git a/src/views/apps/invoice/edit/EditActions.js b/src/views/apps/invoice/edit/EditActions.js new file mode 100644 index 0000000..bd23bdc --- /dev/null +++ b/src/views/apps/invoice/edit/EditActions.js @@ -0,0 +1,63 @@ +// ** React Imports +import { Fragment } from 'react' +import { Link } from 'react-router-dom' + +// ** Third Party Components +import { Card, CardBody, Button, Input, CustomInput, Label } from 'reactstrap' + +const EditActions = ({ setSendSidebarOpen, setAddPaymentOpen }) => { + return ( + + + + setSendSidebarOpen(true)}> + Send Invoice + + + Preview + + + Save + + setAddPaymentOpen(true)}> + Add Payment + + + +
    +
    +

    Accept payments via

    + + + + + + + +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + ) +} + +export default EditActions diff --git a/src/views/apps/invoice/edit/EditCard.js b/src/views/apps/invoice/edit/EditCard.js new file mode 100644 index 0000000..05b0a6a --- /dev/null +++ b/src/views/apps/invoice/edit/EditCard.js @@ -0,0 +1,313 @@ +// ** React Imports +import { useState } from 'react' + +// ** Third Party Components +import { + Card, + CardBody, + CardText, + Row, + Col, + Input, + InputGroup, + InputGroupAddon, + InputGroupText, + UncontrolledTooltip, + FormGroup, + Label, + Button +} from 'reactstrap' +import Flatpickr from 'react-flatpickr' +import Repeater from '@components/repeater' +import { SlideDown } from 'react-slidedown' +import { X, Plus, Hash } from 'react-feather' + +// ** Styles +import 'react-slidedown/lib/slidedown.css' +import '@styles/react/libs/flatpickr/flatpickr.scss' +import '@styles/base/pages/app-invoice.scss' + +const InvoiceEditCard = ({ data }) => { + // ** States + const [count, setCount] = useState(1) + const [picker, setPicker] = useState(new Date(data.invoice.issuedDate)) + const [dueDatepicker, setDueDatePicker] = useState(new Date(data.invoice.dueDate)) + + // ** Deletes form + const deleteForm = e => { + e.preventDefault() + e.target.closest('.repeater-wrapper').remove() + } + + const note = + 'It was a pleasure working with you and your team. We hope you will keep us in mind for future freelance projects. Thank You!' + + return ( + + {/* Header */} + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +

    Vuexy

    +
    +

    Office 149, 450 South Brand Brooklyn

    +

    San Diego County, CA 91905, USA

    +

    +1 (123) 456 7891, +44 (876) 543 2198

    +
    +
    +
    +

    Invoice

    + + + + + + + + +
    +
    + Date: + setPicker(date)} + className='form-control invoice-edit-input date-picker' + /> +
    +
    + Due Date: + setDueDatePicker(date)} + className='form-control invoice-edit-input due-date-picker' + /> +
    +
    +
    +
    + {/* /Header */} + +
    + + {/* Address and Contact */} + + + +
    Invoice To:
    +
    {data.invoice.client.name}
    + {data.invoice.client.company} + {data.invoice.client.address} + {data.invoice.client.contact} + {data.invoice.client.companyEmail} + + +
    Payment Details:
    + + + + + + + + + + + + + + + + + + + + + + + +
    Total Due: + {data.paymentDetails.totalDue} +
    Bank name:{data.paymentDetails.bankName}
    Country:{data.paymentDetails.country}
    IBAN:{data.paymentDetails.iban}
    SWIFT code:{data.paymentDetails.swiftCode}
    + +
    +
    + {/* /Address and Contact */} + + {/* Product Details */} + + + {i => { + const Tag = i === 0 ? 'div' : SlideDown + return ( + + + + + + Item + + + + + + + + + + Cost + +
    + Discount: 0% + + 0% + + + 0% + + Tax 1 + Tax 2 +
    + + + Qty + + + + Price + $24.00 + +
    +
    + +
    + +
    +
    + ) + }} +
    + + + + setCount(count + 1)}> + + Add Item + + + +
    + {/* /Product Details */} + + {/* Invoice Total */} + + + +
    + + +
    + + +
    +
    +

    Subtotal:

    +

    $1800

    +
    +
    +

    Discount:

    +

    $28

    +
    +
    +

    Tax:

    +

    21%

    +
    +
    +
    +

    Total:

    +

    $1690

    +
    +
    + +
    +
    + {/* /Invoice Total */} + +
    + + {/* Invoice Note */} + + + + + + + + + + + {/* /Invoice Note */} +
    + ) +} + +export default InvoiceEditCard diff --git a/src/views/apps/invoice/edit/index.js b/src/views/apps/invoice/edit/index.js new file mode 100644 index 0000000..35f4a8b --- /dev/null +++ b/src/views/apps/invoice/edit/index.js @@ -0,0 +1,58 @@ +// ** React Imports +import { useEffect, useState } from 'react' +import { useParams, Link } from 'react-router-dom' + +// ** Third Party Components +import axios from 'axios' +import { Alert, Row, Col } from 'reactstrap' + +// ** Invoice Edit Components +import EditCard from './EditCard' +import EditActions from './EditActions' +import SendInvoiceSidebar from '../shared-sidebar/SidebarSendInvoice' +import AddPaymentSidebar from '../shared-sidebar/SidebarAddPayment' + +const InvoiceEdit = () => { + // ** Vars + const { id } = useParams() + + // ** States + const [data, setData] = useState(null) + const [sendSidebarOpen, setSendSidebarOpen] = useState(false) + const [addPaymentOpen, setAddPaymentOpen] = useState(false) + + // ** Functions to toggle add & send sidebar + const toggleSendSidebar = () => setSendSidebarOpen(!sendSidebarOpen) + const toggleAddSidebar = () => setAddPaymentOpen(!addPaymentOpen) + + // ** Get invoice on mount based on id + useEffect(() => { + axios.get(`/api/invoice/invoices/${id}`).then(response => { + setData(response.data) + }) + }, []) + + return data !== null && data.invoice !== undefined ? ( +
    + + + + + + + + + + +
    + ) : ( + +

    Invoice not found

    +
    + Invoice with id: {id} doesn't exist. Check list of all invoices: Invoice List +
    +
    + ) +} + +export default InvoiceEdit diff --git a/src/views/apps/invoice/list/SearchFilter.js b/src/views/apps/invoice/list/SearchFilter.js new file mode 100644 index 0000000..d910f00 --- /dev/null +++ b/src/views/apps/invoice/list/SearchFilter.js @@ -0,0 +1,172 @@ +// ** React Imports +import { useState, useEffect } from 'react' +import { Link } from 'react-router-dom' + +// ** Table Columns +import { columns } from './columns' + +// ** Third Party Components +import ReactPaginate from 'react-paginate' +import { ChevronDown } from 'react-feather' +import DataTable from 'react-data-table-component' +import { Button, Label, Input, CustomInput, Row, Col, Card } from 'reactstrap' + +// ** Store & Actions +import { getData } from '../store/actions' +import { useDispatch, useSelector } from 'react-redux' + +// ** Styles +import '@styles/react/apps/app-invoice.scss' +import '@styles/react/libs/tables/react-dataTable-component.scss' + +const CustomHeader = ({ handleFilter, value, handleStatusValue, statusValue, handlePerPage, rowsPerPage }) => { + return ( +
    + + +

    Search Filter

    + + + + + + + + + +
    +
    + ) +} + +const SearchFilter = () => { + const dispatch = useDispatch() + const store = useSelector(state => state.invoice) + + const [value, setValue] = useState('') + const [currentPage, setCurrentPage] = useState(1) + const [statusValue, setStatusValue] = useState('') + const [rowsPerPage, setRowsPerPage] = useState(10) + + useEffect(() => { + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + status: statusValue, + q: value + }) + ) + }, [dispatch, store.data.length]) + + const handleFilter = val => { + setValue(val) + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + status: statusValue, + q: val + }) + ) + } + + const handlePerPage = e => { + dispatch( + getData({ + page: currentPage, + perPage: parseInt(e.target.value), + status: statusValue, + q: value + }) + ) + setRowsPerPage(parseInt(e.target.value)) + } + + const handleStatusValue = e => { + setStatusValue(e.target.value) + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + status: e.target.value, + q: value + }) + ) + } + + const handlePagination = page => { + dispatch( + getData({ + page: page.selected + 1, + perPage: rowsPerPage, + status: statusValue, + q: value + }) + ) + setCurrentPage(page.selected + 1) + } + + const CustomPagination = () => { + const count = Number((store.total / rowsPerPage).toFixed(0)) + + return ( + handlePagination(page)} + pageClassName={'page-item'} + nextLinkClassName={'page-link'} + nextClassName={'page-item next'} + previousClassName={'page-item prev'} + previousLinkClassName={'page-link'} + pageLinkClassName={'page-link'} + containerClassName={'pagination react-paginate justify-content-end p-1'} + /> + ) + } + + const dataToRender = () => { + const filters = { + status: statusValue, + q: value + } + + const isFiltered = Object.keys(filters).some(function (k) { + return filters[k].length > 0 + }) + + if (store.data.length > 0) { + return store.data + } else if (store.data.length === 0 && isFiltered) { + return [] + } else { + return store.allData.slice(0, rowsPerPage) + } + } + + return ( +
    + +
    + +
    +
    +
    + ) +} + +export default SearchFilter diff --git a/src/views/apps/invoice/list/Sidebar.js b/src/views/apps/invoice/list/Sidebar.js new file mode 100644 index 0000000..7188d91 --- /dev/null +++ b/src/views/apps/invoice/list/Sidebar.js @@ -0,0 +1,158 @@ +// ** React Import +import { useState } from 'react' + +// ** Custom Components +import Sidebar from '@components/sidebar' + +// ** Utils +import { isObjEmpty } from '@utils' + +// ** Third Party Components +import classnames from 'classnames' +import { useForm } from 'react-hook-form' +import { Button, FormGroup, Label, FormText, Form, Input } from 'reactstrap' + +// ** Store & Actions +// import { addUser } from '../store/action' +import { useDispatch } from 'react-redux' + +const SidebarNewUsers = ({ open, toggleSidebar }) => { + // ** States + const [role, setRole] = useState('subscriber') + const [plan, setPlan] = useState('basic') + + // ** Store Vars + const dispatch = useDispatch() + + // ** Vars + // const { register, errors, handleSubmit } = useForm() + + // ** Function to handle form submit + const onSubmit = values => { + if (isObjEmpty(errors)) { + toggleSidebar() + dispatch( + addUser({ + fullName: values['full-name'], + company: values.company, + role, + username: values.username, + country: values.country, + contact: values.contact, + email: values.email, + currentPlan: plan, + status: 'active', + avatar: '' + }) + ) + } + } + + return ( + +
    + + + + + + + + + + + + You can use letters, numbers & periods + + + + + + + + + + + + + + + + setRole(e.target.value)}> + + + + + + + + setPlan(e.target.value)}> + + + + + + + + + + +
    +
    + ) +} + +export default SidebarNewUsers diff --git a/src/views/apps/invoice/list/columns.js b/src/views/apps/invoice/list/columns.js new file mode 100644 index 0000000..317599d --- /dev/null +++ b/src/views/apps/invoice/list/columns.js @@ -0,0 +1,190 @@ +// ** React Imports +import { Fragment } from 'react' + +import { Link } from 'react-router-dom' + +// ** Custom Components +import Avatar from '@components/avatar' + +// ** Store & Actions +import { deleteInvoice } from '../store/actions' +import { store } from '@store/storeConfig/store' + +// ** Third Party Components +import { + Badge, + UncontrolledDropdown, + DropdownMenu, + DropdownToggle, + DropdownItem, + UncontrolledTooltip +} from 'reactstrap' +import { + Eye, + TrendingUp, + Send, + MoreVertical, + Download, + Edit, + Trash, + Copy, + CheckCircle, + Save, + ArrowDownCircle, + Info, + PieChart +} from 'react-feather' + +// ** Vars +const invoiceStatusObj = { + Sent: { color: 'light-secondary', icon: Send }, + Paid: { color: 'light-success', icon: CheckCircle }, + Draft: { color: 'light-primary', icon: Save }, + Downloaded: { color: 'light-info', icon: ArrowDownCircle }, + 'Past Due': { color: 'light-danger', icon: Info }, + 'Partial Payment': { color: 'light-warning', icon: PieChart } +} + +// ** renders client column +const renderClient = row => { + const stateNum = Math.floor(Math.random() * 6), + states = ['light-success', 'light-danger', 'light-warning', 'light-info', 'light-primary', 'light-secondary'], + color = states[stateNum] + + if (row.avatar.length) { + return + } else { + return + } +} + +// ** Table columns +export const columns = [ + { + name: '#', + minWidth: '107px', + selector: 'id', + cell: row => {`#${row.id}`} + }, + { + name: , + minWidth: '102px', + selector: 'invoiceStatus', + sortable: true, + cell: row => { + const color = invoiceStatusObj[row.invoiceStatus] ? invoiceStatusObj[row.invoiceStatus].color : 'primary', + Icon = invoiceStatusObj[row.invoiceStatus] ? invoiceStatusObj[row.invoiceStatus].icon : Edit + return ( + + } id={`av-tooltip-${row.id}`} /> + + {row.invoiceStatus} +
    + Balance: {row.balance} +
    + Due Date: {row.dueDate} +
    +
    + ) + } + }, + { + name: 'Client', + minWidth: '350px', + selector: 'client', + sortable: true, + cell: row => { + const name = row.client ? row.client.name : 'John Doe', + email = row.client ? row.client.companyEmail : 'johnDoe@email.com' + return ( +
    + {renderClient(row)} +
    +
    {name}
    + {email} +
    +
    + ) + } + }, + { + name: 'Total', + selector: 'total', + sortable: true, + minWidth: '150px', + cell: row => ${row.total || 0} + }, + { + name: 'Issued Date', + selector: 'dueDate', + sortable: true, + minWidth: '200px', + cell: row => row.dueDate + }, + { + name: 'Balance', + selector: 'balance', + sortable: true, + minWidth: '164px', + cell: row => { + return row.balance !== 0 ? ( + {row.balance} + ) : ( + + Paid + + ) + } + }, + { + name: 'Action', + minWidth: '110px', + selector: '', + sortable: true, + cell: row => ( +
    + + + Send Mail + + + + + + Preview Invoice + + + + + + + e.preventDefault()}> + + Download + + + + Edit + + { + e.preventDefault() + store.dispatch(deleteInvoice(row.id)) + }} + > + + Delete + + e.preventDefault()}> + + Duplicate + + + +
    + ) + } +] diff --git a/src/views/apps/invoice/list/index.js b/src/views/apps/invoice/list/index.js new file mode 100644 index 0000000..a7871d0 --- /dev/null +++ b/src/views/apps/invoice/list/index.js @@ -0,0 +1,221 @@ +// ** React Imports +import { useState, useEffect } from 'react' +import { Link } from 'react-router-dom' + +// ** Table Columns +import { columns } from './columns' + +// ** Third Party Components +import ReactPaginate from 'react-paginate' +import { ChevronDown } from 'react-feather' +import DataTable from 'react-data-table-component' +import { Button, Label, Input, CustomInput, Row, Col, Card } from 'reactstrap' + +// ** Store & Actions +import { getData } from '../store/actions' +import { useDispatch, useSelector } from 'react-redux' + +// ** Styles +import '@styles/react/apps/app-invoice.scss' +import '@styles/react/libs/tables/react-dataTable-component.scss' + +const CustomHeader = ({ handleFilter, value, handleStatusValue, statusValue, handlePerPage, rowsPerPage }) => { + return ( +
    + + +
    + + + + + + +
    + + Add Record + + + +
    + + handleFilter(e.target.value)} + placeholder='Search Invoice' + /> +
    + + + + + + + + + + +
    +
    + ) +} + +const InvoiceList = () => { + const dispatch = useDispatch() + const store = useSelector(state => state.invoice) + + const [value, setValue] = useState('') + const [currentPage, setCurrentPage] = useState(1) + const [statusValue, setStatusValue] = useState('') + const [rowsPerPage, setRowsPerPage] = useState(10) + + useEffect(() => { + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + status: statusValue, + q: value + }) + ) + }, [dispatch, store.data.length]) + + const handleFilter = val => { + setValue(val) + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + status: statusValue, + q: val + }) + ) + } + + const handlePerPage = e => { + dispatch( + getData({ + page: currentPage, + perPage: parseInt(e.target.value), + status: statusValue, + q: value + }) + ) + setRowsPerPage(parseInt(e.target.value)) + } + + const handleStatusValue = e => { + setStatusValue(e.target.value) + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + status: e.target.value, + q: value + }) + ) + } + + const handlePagination = page => { + dispatch( + getData({ + page: page.selected + 1, + perPage: rowsPerPage, + status: statusValue, + q: value + }) + ) + setCurrentPage(page.selected + 1) + } + + const CustomPagination = () => { + const count = Number((store.total / rowsPerPage).toFixed(0)) + + return ( + handlePagination(page)} + pageClassName={'page-item'} + nextLinkClassName={'page-link'} + nextClassName={'page-item next'} + previousClassName={'page-item prev'} + previousLinkClassName={'page-link'} + pageLinkClassName={'page-link'} + containerClassName={'pagination react-paginate justify-content-end p-1'} + /> + ) + } + + const dataToRender = () => { + const filters = { + status: statusValue, + q: value + } + + const isFiltered = Object.keys(filters).some(function (k) { + return filters[k].length > 0 + }) + + if (store.data.length > 0) { + return store.data + } else if (store.data.length === 0 && isFiltered) { + return [] + } else { + return store.allData.slice(0, rowsPerPage) + } + } + + return ( +
    + +
    + } + className='react-dataTable' + defaultSortField='invoiceId' + paginationDefaultPage={currentPage} + paginationComponent={CustomPagination} + data={dataToRender()} + subHeaderComponent={ + + } + /> +
    +
    +
    + ) +} + +export default InvoiceList diff --git a/src/views/apps/invoice/preview/PreviewActions.js b/src/views/apps/invoice/preview/PreviewActions.js new file mode 100644 index 0000000..e219637 --- /dev/null +++ b/src/views/apps/invoice/preview/PreviewActions.js @@ -0,0 +1,39 @@ +// ** React Imports +import { Link } from 'react-router-dom' + +// ** Third Party Components +import { Card, CardBody, Button } from 'reactstrap' + +const PreviewActions = ({ id, setSendSidebarOpen, setAddPaymentOpen }) => { + return ( + + + setSendSidebarOpen(true)}> + Send Invoice + + + Download + + + Print + + + Edit + + setAddPaymentOpen(true)}> + Add Payment + + + + ) +} + +export default PreviewActions diff --git a/src/views/apps/invoice/preview/PreviewCard.js b/src/views/apps/invoice/preview/PreviewCard.js new file mode 100644 index 0000000..fbfd689 --- /dev/null +++ b/src/views/apps/invoice/preview/PreviewCard.js @@ -0,0 +1,229 @@ +// ** Third Party Components +import { Card, CardBody, CardText, Row, Col, Table } from 'reactstrap' + +const PreviewCard = ({ data }) => { + return data !== null ? ( + + + {/* Header */} +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +

    Vuexy

    +
    + Office 149, 450 South Brand Brooklyn + San Diego County, CA 91905, USA + +1 (123) 456 7891, +44 (876) 543 2198 +
    +
    +

    + Invoice #{data.invoice.id} +

    +
    +

    Date Issued:

    +

    {data.invoice.issuedDate}

    +
    +
    +

    Due Date:

    +

    {data.invoice.dueDate}

    +
    +
    +
    + {/* /Header */} +
    + +
    + + {/* Address and Contact */} + + + +
    Invoice To:
    +
    {data.invoice.client.name}
    + {data.invoice.client.company} + {data.invoice.client.address} + {data.invoice.client.contact} + {data.invoice.client.companyEmail} + + +
    Payment Details:
    + + + + + + + + + + + + + + + + + + + + + + + +
    Total Due: + {data.paymentDetails.totalDue} +
    Bank name:{data.paymentDetails.bankName}
    Country:{data.paymentDetails.country}
    IBAN:{data.paymentDetails.iban}
    SWIFT code:{data.paymentDetails.swiftCode}
    + +
    +
    + {/* /Address and Contact */} + + {/* Invoice Description */} + + + + + + + + + + + + + + + + + + + + + + + +
    Task descriptionRateHoursTotal
    +

    Native App Development

    +

    + Developed a full stack native app using React Native, Bootstrap & Python +

    +
    + $60.00 + + 30 + + $1,800.00 +
    +

    Ui Kit Design

    +

    Designed a UI kit for native app using Sketch, Figma & Adobe XD

    +
    + $60.00 + + 20 + + $1200.00 +
    + {/* /Invoice Description */} + + {/* Total & Sales Person */} + + + + + Salesperson: Alfie Solomons + + + +
    +
    +

    Subtotal:

    +

    $1800

    +
    +
    +

    Discount:

    +

    $28

    +
    +
    +

    Tax:

    +

    21%

    +
    +
    +
    +

    Total:

    +

    $1690

    +
    +
    + +
    +
    + {/* /Total & Sales Person */} + +
    + + {/* Invoice Note */} + + + + Note: + + It was a pleasure working with you and your team. We hope you will keep us in mind for future freelance + projects. Thank You! + + + + + {/* /Invoice Note */} +
    + ) : null +} + +export default PreviewCard diff --git a/src/views/apps/invoice/preview/index.js b/src/views/apps/invoice/preview/index.js new file mode 100644 index 0000000..8f85947 --- /dev/null +++ b/src/views/apps/invoice/preview/index.js @@ -0,0 +1,60 @@ +import { useEffect, useState } from 'react' +import { useParams, Link } from 'react-router-dom' + +// ** Third Party Components +import axios from 'axios' +import { Row, Col, Alert } from 'reactstrap' + +// ** Invoice Preview Components +import PreviewCard from './PreviewCard' +import PreviewActions from './PreviewActions' +import SendInvoiceSidebar from '../shared-sidebar/SidebarSendInvoice' +import AddPaymentSidebar from '../shared-sidebar/SidebarAddPayment' + +// ** Styles +import '@styles/base/pages/app-invoice.scss' + +const InvoicePreview = () => { + // ** Vars + const { id } = useParams() + + // ** States + const [data, setData] = useState(null) + const [sendSidebarOpen, setSendSidebarOpen] = useState(false) + const [addPaymentOpen, setAddPaymentOpen] = useState(false) + + // ** Functions to toggle add & send sidebar + const toggleSendSidebar = () => setSendSidebarOpen(!sendSidebarOpen) + const toggleAddSidebar = () => setAddPaymentOpen(!addPaymentOpen) + + // ** Get invoice on mount based on id + useEffect(() => { + axios.get(`/api/invoice/invoices/${id}`).then(response => { + setData(response.data) + }) + }, []) + + return data !== null && data.invoice !== undefined ? ( +
    + + + + + + + + + + +
    + ) : ( + +

    Invoice not found

    +
    + Invoice with id: {id} doesn't exist. Check list of all invoices: Invoice List +
    +
    + ) +} + +export default InvoicePreview diff --git a/src/views/apps/invoice/print/index.js b/src/views/apps/invoice/print/index.js new file mode 100644 index 0000000..5687a45 --- /dev/null +++ b/src/views/apps/invoice/print/index.js @@ -0,0 +1,218 @@ +// ** React Imports +import { useEffect } from 'react' + +// ** Third Party Components +import { Row, Col, Table } from 'reactstrap' + +// ** Styles +import '@styles/base/pages/app-invoice-print.scss' + +const Print = () => { + // ** Print on mount + useEffect(() => window.print(), []) + + return ( +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +

    Vuexy

    +
    +

    Office 149, 450 South Brand Brooklyn

    +

    San Diego County, CA 91905, USA

    +

    +1 (123) 456 7891, +44 (876) 543 2198

    +
    +
    +

    INVOICE #3492

    +
    + Date Issued: + 25/08/2020 +
    +
    + Due Date: + 29/08/2020 +
    +
    +
    + +
    + + + +
    Invoice To:
    +

    Thomas shelby

    +

    Shelby Company Limited

    +

    Small Heath, B10 0HF, UK

    +

    718-986-6062

    +

    peakyFBlinders@gmail.com

    + + +
    Payment Details:
    + + + + + + + + + + + + + + + + + + + + + + + +
    Total Due: + $12,110.55 +
    Bank name:American Bank
    Country:United States
    IBAN:ETD95476213874685
    SWIFT code:BR91905
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Task descriptionRateHoursTotal
    +

    Native App Development

    +

    + Developed a full stack native app using React Native, Bootstrap & Python +

    +
    + $60.00 + + 30 + + $1,800.00 +
    +

    Ui Kit Design

    +

    Designed a UI kit for native app using Sketch, Figma & Adobe XD

    +
    + $60.00 + + 20 + + $1200.00 +
    + + + +

    + Salesperson: Alfie Solomons +

    + + +
    +
    +

    Subtotal:

    +

    $1800

    +
    +
    +

    Discount:

    +

    $28

    +
    +
    +

    Tax:

    +

    21%

    +
    +
    +
    +

    Total:

    +

    $1690

    +
    +
    + +
    + +
    + + + + Note: + + It was a pleasure working with you and your team. We hope you will keep us in mind for future freelance + projects. Thank You! + + + +
    + ) +} + +export default Print diff --git a/src/views/apps/invoice/shared-sidebar/SidebarAddPayment.js b/src/views/apps/invoice/shared-sidebar/SidebarAddPayment.js new file mode 100644 index 0000000..117c6dc --- /dev/null +++ b/src/views/apps/invoice/shared-sidebar/SidebarAddPayment.js @@ -0,0 +1,78 @@ +// ** React Imports +import { useState } from 'react' + +// ** Third Party Components +import Flatpickr from 'react-flatpickr' +import { Form, FormGroup, Input, Label, Button } from 'reactstrap' + +// ** Custom Components +import Sidebar from '@components/sidebar' + +// ** Styles +import '@styles/react/libs/flatpickr/flatpickr.scss' +import '@styles/base/pages/app-invoice.scss' + +const SidebarAddPayment = ({ open, toggleSidebar }) => { + // ** States + const [picker, setPicker] = useState(new Date()) + + return ( + +
    + + + + + + + + + + setPicker(date)} className='form-control' /> + + + + + + + + + + + + + + + + + + + + +
    +
    + ) +} + +export default SidebarAddPayment diff --git a/src/views/apps/invoice/shared-sidebar/SidebarSendInvoice.js b/src/views/apps/invoice/shared-sidebar/SidebarSendInvoice.js new file mode 100644 index 0000000..d2badf2 --- /dev/null +++ b/src/views/apps/invoice/shared-sidebar/SidebarSendInvoice.js @@ -0,0 +1,79 @@ +// ** Custom Components +import Sidebar from '@components/sidebar' + +// ** Third Party Components +import { Link } from 'react-feather' +import { Form, FormGroup, Input, Label, Badge, Button } from 'reactstrap' + +const SidebarSendInvoice = ({ open, toggleSidebar }) => { + return ( + +
    + + + + + + + + + + + + + + + + + + + + Invoice Attached + + + + + + +
    +
    + ) +} + +export default SidebarSendInvoice diff --git a/src/views/apps/invoice/store/actions/index.js b/src/views/apps/invoice/store/actions/index.js new file mode 100644 index 0000000..6129db2 --- /dev/null +++ b/src/views/apps/invoice/store/actions/index.js @@ -0,0 +1,30 @@ +import axios from 'axios' + +// ** Get data +export const getData = params => { + return dispatch => { + axios.get('/apps/invoice/invoices', params).then(response => { + dispatch({ + type: 'GET_DATA', + allData: response.data.allData, + data: response.data.invoices, + totalPages: response.data.total, + params + }) + }) + } +} + +// ** Delete Invoice +export const deleteInvoice = id => { + return (dispatch, getStore) => { + axios + .delete('/apps/invoice/delete', { id }) + .then(response => { + dispatch({ + type: 'DELETE_INVOICE' + }) + }) + .then(() => dispatch(getData(getStore().invoice.params))) + } +} diff --git a/src/views/apps/invoice/store/reducer/index.js b/src/views/apps/invoice/store/reducer/index.js new file mode 100644 index 0000000..e081a02 --- /dev/null +++ b/src/views/apps/invoice/store/reducer/index.js @@ -0,0 +1,24 @@ +const initialState = { + data: [], + total: 1, + params: {}, + allData: [] +} + +const invoiceReducer = (state = initialState, action) => { + switch (action.type) { + case 'GET_DATA': + return { + ...state, + allData: action.allData, + data: action.data, + total: action.totalPages, + params: action.params + } + case 'DELETE_INVOICE': + return { ...state } + default: + return { ...state } + } +} +export default invoiceReducer diff --git a/src/views/apps/todo/Sidebar.js b/src/views/apps/todo/Sidebar.js new file mode 100644 index 0000000..e6b4b26 --- /dev/null +++ b/src/views/apps/todo/Sidebar.js @@ -0,0 +1,164 @@ +// ** React Imports +import { Link } from 'react-router-dom' + +// ** Third Party Components +import classnames from 'classnames' +import PerfectScrollbar from 'react-perfect-scrollbar' +import { Button, ListGroup, ListGroupItem } from 'reactstrap' +import { Mail, Star, Check, Trash, Plus } from 'react-feather' + +const TodoSidebar = props => { + // ** Props + const { handleTaskSidebar, setMainSidebar, mainSidebar, dispatch, getTasks, params } = props + + // ** Functions To Handle List Item Filter + const handleFilter = filter => { + dispatch(getTasks({ ...params, filter })) + } + + const handleTag = tag => { + dispatch(getTasks({ ...params, tag })) + } + + // ** Functions To Active List Item + const handleActiveItem = value => { + if ((params.filter && params.filter === value) || (params.tag && params.tag === value)) { + return true + } else { + return false + } + } + + // ** Functions To Handle Add Task Click + const handleAddClick = () => { + handleTaskSidebar() + setMainSidebar() + } + + return ( +
    +
    +
    +
    +
    + + Add Task + +
    + + + handleFilter('')} + > + + My Tasks + + handleFilter('important')} + action + > + + Important + + handleFilter('completed')} + action + > + + Completed + + handleFilter('deleted')} + action + > + + Deleted + + +
    +
    Tags
    + +
    + + handleTag('team')} + action + > + + Team + + handleTag('low')} + action + > + + Low + + handleTag('medium')} + action + > + + Medium + + handleTag('high')} + action + > + + High + + handleTag('update')} + action + > + + Update + + +
    +
    +
    +
    +
    + ) +} + +export default TodoSidebar diff --git a/src/views/apps/todo/TaskSidebar.js b/src/views/apps/todo/TaskSidebar.js new file mode 100644 index 0000000..cbf784d --- /dev/null +++ b/src/views/apps/todo/TaskSidebar.js @@ -0,0 +1,377 @@ +// ** React Imports +import { useState, Fragment } from 'react' + +// ** Third Party Components +import classnames from 'classnames' +import Flatpickr from 'react-flatpickr' +import { Editor } from 'react-draft-wysiwyg' +import { X, Star, Trash } from 'react-feather' +import Select, { components } from 'react-select' +import { EditorState, ContentState } from 'draft-js' +import { Modal, ModalBody, Button, Form, FormGroup, Input, Label, Media } from 'reactstrap' + +// ** Utils +import { isObjEmpty, selectThemeColors } from '@utils' + +// ** Assignee Avatars +import img1 from '@src/assets/images/portrait/small/avatar-s-3.jpg' +import img2 from '@src/assets/images/portrait/small/avatar-s-1.jpg' +import img3 from '@src/assets/images/portrait/small/avatar-s-4.jpg' +import img4 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import img5 from '@src/assets/images/portrait/small/avatar-s-2.jpg' +import img6 from '@src/assets/images/portrait/small/avatar-s-11.jpg' + +// ** Styles Imports +import '@styles/react/libs/editor/editor.scss' +import '@styles/react/libs/react-select/_react-select.scss' +import '@styles/react/libs/flatpickr/flatpickr.scss' + +// ** Function to capitalize the first letter of string +const capitalize = string => string.charAt(0).toUpperCase() + string.slice(1) + +// ** Modal Header +const ModalHeader = props => { + // ** Props + const { children, store, handleTaskSidebar, setDeleted, deleted, important, setImportant, deleteTask, dispatch } = + props + + // ** Function to delete task + const handleDeleteTask = () => { + setDeleted(!deleted) + dispatch(deleteTask(store.selectedTask.id)) + handleTaskSidebar() + } + + return ( +
    +
    {children}
    +
    + {store && !isObjEmpty(store.selectedTask) ? ( + handleDeleteTask()} /> + ) : null} + + setImportant(!important)} + className={classnames({ + 'text-warning': important === true + })} + /> + + +
    +
    + ) +} + +const TaskSidebar = props => { + // ** Props + const { open, handleTaskSidebar, store, dispatch, updateTask, selectTask, addTask, deleteTask } = props + + // ** Users + const [title, setTitle] = useState(''), + [assignee, setAssignee] = useState({ value: 'pheobe', label: 'Pheobe Buffay', img: img1 }), + [tags, setTags] = useState([]), + [desc, setDesc] = useState(EditorState.createEmpty()), + [completed, setCompleted] = useState(false), + [important, setImportant] = useState(false), + [deleted, setDeleted] = useState(false), + [dueDate, setDueDate] = useState(new Date()) + + // ** Assignee Select Options + const assigneeOptions = [ + { value: 'pheobe', label: 'Pheobe Buffay', img: img1 }, + { value: 'chandler', label: 'Chandler Bing', img: img2 }, + { value: 'ross', label: 'Ross Geller', img: img3 }, + { value: 'monica', label: 'Monica Geller', img: img4 }, + { value: 'joey', label: 'Joey Tribbiani', img: img5 }, + { value: 'Rachel', label: 'Rachel Green', img: img6 } + ] + + // ** Tag Select Options + const tagOptions = [ + { value: 'team', label: 'Team' }, + { value: 'low', label: 'Low' }, + { value: 'medium', label: 'Medium' }, + { value: 'high', label: 'High' }, + { value: 'update', label: 'Update' } + ] + + // ** Custom Assignee Component + const AssigneeComponent = ({ data, ...props }) => { + return ( + + + {data.label} + +

    {data.label}

    +
    +
    +
    + ) + } + + // ** Returns sidebar title + const handleSidebarTitle = () => { + if (store && !isObjEmpty(store.selectedTask)) { + return ( + setCompleted(!completed)} + color={completed === true ? 'success' : 'secondary'} + > + {completed === true ? 'Completed' : 'Mark Complete'} + + ) + } else { + return 'Add Task' + } + } + + // ** Function to run when sidebar opens + const handleSidebarOpened = () => { + const { selectedTask } = store + if (!isObjEmpty(selectedTask)) { + setTitle(selectedTask.title) + setCompleted(selectedTask.isCompleted) + setImportant(selectedTask.isImportant) + setAssignee([ + { + value: selectedTask.assignee.fullName, + label: selectedTask.assignee.fullName, + img: selectedTask.assignee.avatar + } + ]) + setDueDate(selectedTask.dueDate) + if (typeof selectedTask.description === 'string') { + setDesc(EditorState.createWithContent(ContentState.createFromText(selectedTask.description))) + } else { + const obj = selectedTask.description._immutable.currentContent.blockMap + const property = Object.keys(obj).map((val, key) => val) + + setDesc(EditorState.createWithContent(ContentState.createFromText(obj[property].text))) + } + + if (selectedTask.tags.length) { + const tags = [] + selectedTask.tags.map(tag => { + tags.push({ value: tag, label: capitalize(tag) }) + }) + setTags(tags) + } + } + } + + // ** Function to run when sidebar closes + const handleSidebarClosed = () => { + setTags([]) + setDesc('') + setTitle('') + setAssignee({ value: 'pheobe', label: 'Pheobe Buffay', img: img1 }) + setCompleted(false) + setImportant(false) + setDueDate(new Date()) + dispatch(selectTask({})) + } + + // ** Function to reset fileds + const handleResetFields = () => { + setTitle(store.selectedTask.title) + setDesc(store.selectedTask.description) + setCompleted(store.selectedTask.isCompleted) + setImportant(store.selectedTask.isImportant) + setDeleted(store.selectedTask.isDeleted) + setDueDate(store.selectedTask.dueDate) + if (store.selectedTask.assignee.fullName !== assignee.label) { + setAssignee({ + value: store.selectedTask.assignee.fullName, + label: store.selectedTask.assignee.fullName, + img: store.selectedTask.assignee.avatar + }) + } + if (store.selectedTask.tags.length) { + const tags = [] + store.selectedTask.tags.map(tag => { + tags.push({ value: tag, label: capitalize(tag) }) + }) + setTags(tags) + } + } + + // ** Renders Footer Buttons + const renderFooterButtons = () => { + const newTaskTag = [] + + const doesInclude = !isObjEmpty(store.selectedTask) && assignee.label === store.selectedTask.assignee.fullName + + if (tags.length) { + tags.map(tag => newTaskTag.push(tag.value)) + } + + const newAssignee = { + fullName: assignee.label, + avatar: assignee.img + } + const state = { + title, + dueDate, + tags: newTaskTag, + description: desc, + isCompleted: completed, + isDeleted: deleted, + isImportant: important, + assignee: doesInclude || assignee.label === undefined ? store.selectedTask.assignee : newAssignee + } + + if (store && !isObjEmpty(store.selectedTask)) { + return ( + + + + + ) + } else { + return ( + + + + + ) + } + } + + return ( + +
    e.preventDefault()}> + + {handleSidebarTitle()} + + + + + setTitle(e.target.value)} + /> + + + + { + setTags(data !== null ? [...data] : []) + }} + /> + + + + setDesc(data)} + /> + + {renderFooterButtons()} + +
    +
    + ) +} + +export default TaskSidebar diff --git a/src/views/apps/todo/Tasks.js b/src/views/apps/todo/Tasks.js new file mode 100644 index 0000000..4245470 --- /dev/null +++ b/src/views/apps/todo/Tasks.js @@ -0,0 +1,219 @@ +// ** React Imports +import { Link } from 'react-router-dom' + +// ** Custom Components +import Avatar from '@components/avatar' + +// ** Blank Avatar Image Import +import blankAvatar from '@src/assets/images/avatars/avatar-blank.png' + +// ** Third Party Components +import classnames from 'classnames' +import { ReactSortable } from 'react-sortablejs' +import PerfectScrollbar from 'react-perfect-scrollbar' +import { Menu, Search, MoreVertical } from 'react-feather' +import { + Input, + Badge, + InputGroup, + CustomInput, + DropdownMenu, + DropdownItem, + InputGroupText, + DropdownToggle, + InputGroupAddon, + UncontrolledDropdown +} from 'reactstrap' + +const Tasks = props => { + // ** Props + const { + query, + tasks, + params, + setSort, + dispatch, + getTasks, + setQuery, + updateTask, + selectTask, + reOrderTasks, + handleTaskSidebar, + handleMainSidebar + } = props + + // ** Function to selectTask on click + const handleTaskClick = obj => { + dispatch(selectTask(obj)) + handleTaskSidebar() + } + + // ** Returns avatar color based on task tag + const resolveAvatarVariant = tags => { + if (tags.includes('high')) return 'light-primary' + if (tags.includes('medium')) return 'light-warning' + if (tags.includes('low')) return 'light-success' + if (tags.includes('update')) return 'light-danger' + if (tags.includes('team')) return 'light-info' + return 'light-primary' + } + + // ** Renders task tags + const renderTags = arr => { + const badgeColor = { + team: 'light-primary', + low: 'light-success', + medium: 'light-warning', + high: 'light-danger', + update: 'light-info' + } + + return arr.map(item => ( + + {item} + + )) + } + + // ** Renders Avatar + const renderAvatar = obj => { + const item = obj.assignee + + if (item.avatar === undefined || item.avatar === null) { + return + } else if (item.avatar !== '') { + return + } else { + return + } + } + + const renderTasks = () => { + return ( + { + if (ref) { + ref._getBoundingClientRect = ref.getBoundingClientRect + + ref.getBoundingClientRect = () => { + const original = ref._getBoundingClientRect() + + return { ...original, height: Math.floor(original.height) } + } + } + }} + > + {tasks.length ? ( + dispatch(reOrderTasks(newState))} + > + {tasks.map(item => { + return ( +
  • handleTaskClick(item)} + className={classnames('todo-item', { + completed: item.isCompleted + })} + > +
    +
    + + dispatch(updateTask({ ...item, isCompleted: e.target.checked }))} + checked={item.isCompleted} + /> + {item.title} +
    +
    + {item.tags.length ?
    {renderTags(item.tags)}
    : null} + {item.dueDate ? ( + + {new Date(item.dueDate).toLocaleString('default', { month: 'short' })}{' '} + {new Date(item.dueDate).getDate().toString().padStart(2, '0')} + + ) : null} + {item.assignee ? renderAvatar(item) : null} +
    +
    +
  • + ) + })} +
    + ) : ( +
    +
    No Items Found
    +
    + )} +
    + ) + } + + // ** Function to getTasks based on search query + const handleFilter = e => { + setQuery(e.target.value) + dispatch(getTasks(params)) + } + + // ** Function to getTasks based on sort + const handleSort = (e, val) => { + e.preventDefault() + setSort(val) + dispatch(getTasks({ ...params })) + } + + return ( +
    +
    +
    + +
    +
    + + + + + + + + +
    + + e.preventDefault()}> + + + + handleSort(e, 'title-asc')}> + Sort A-Z + + handleSort(e, 'title-desc')}> + Sort Z-A + + handleSort(e, 'assignee')}> + Sort Assignee + + handleSort(e, 'due-date')}> + Sort Due Date + + handleSort(e, '')}> + Reset Sort + + + +
    + {renderTasks()} +
    + ) +} + +export default Tasks diff --git a/src/views/apps/todo/index.js b/src/views/apps/todo/index.js new file mode 100644 index 0000000..c686b4c --- /dev/null +++ b/src/views/apps/todo/index.js @@ -0,0 +1,116 @@ +// ** React Imports +import { Fragment, useState, useEffect } from 'react' +import { useParams } from 'react-router-dom' + +// ** Third Party Components +import classnames from 'classnames' + +// ** Todo App Components +import Tasks from './Tasks' +import Sidebar from './Sidebar' +import TaskSidebar from './TaskSidebar' + +// ** Store & Actions +import { useDispatch, useSelector } from 'react-redux' +import { getTasks, updateTask, selectTask, addTask, deleteTask, reOrderTasks } from './store/actions' + +// ** Styles +import '@styles/react/apps/app-todo.scss' + +const TODO = () => { + // ** States + const [sort, setSort] = useState('') + const [query, setQuery] = useState('') + const [mainSidebar, setMainSidebar] = useState(false) + const [openTaskSidebar, setOpenTaskSidebar] = useState(false) + + // ** Store Vars + const dispatch = useDispatch() + const store = useSelector(state => state.todo) + + // ** URL Params + const paramsURL = useParams() + const params = { + filter: paramsURL.filter || '', + q: query || '', + sortBy: sort || '', + tag: paramsURL.tag || '' + } + + // ** Function to handle Left sidebar & Task sidebar + const handleMainSidebar = () => setMainSidebar(!mainSidebar) + const handleTaskSidebar = () => setOpenTaskSidebar(!openTaskSidebar) + + // ** Get Tasks on mount & based on dependency change + useEffect(() => { + dispatch( + getTasks({ + filter: paramsURL.filter || '', + q: query || '', + sortBy: sort || '', + tag: paramsURL.tag || '' + }) + ) + }, [store.tasks.length, paramsURL.filter, paramsURL.tag, query, sort]) + + return ( + + +
    +
    +
    +
    + + {store ? ( + + ) : null} + + +
    +
    +
    +
    + ) +} + +export default TODO diff --git a/src/views/apps/todo/store/actions/index.js b/src/views/apps/todo/store/actions/index.js new file mode 100644 index 0000000..1c20079 --- /dev/null +++ b/src/views/apps/todo/store/actions/index.js @@ -0,0 +1,65 @@ +import axios from 'axios' + +// ** Get Tasks +export const getTasks = params => { + return dispatch => { + return axios.get('/apps/todo/tasks', { params }).then(res => { + dispatch({ + type: 'GET_TASKS', + tasks: res.data, + params + }) + }) + } +} + +// ** Re-order Tasks on drag +export const reOrderTasks = tasks => dispatch => dispatch({ type: 'REORDER_TASKS', tasks }) + +// ** ADD Task +export const addTask = task => { + return (dispatch, getState) => { + axios + .post('/apps/todo/add-tasks', { task }) + .then(res => { + dispatch({ + type: 'ADD_TASK', + task: res.data + }) + }) + .then(dispatch(getTasks(getState().todo.params))) + } +} + +// ** Update Tasks +export const updateTask = task => { + return (dispatch, getState) => { + axios + .post('/apps/todo/update-task', { task }) + .then(res => { + dispatch({ + type: 'UPDATE_TASK', + task: res.data + }) + }) + .then(dispatch(getTasks(getState().todo.params))) + } +} + +// ** Delete Task +export const deleteTask = taskId => { + return (dispatch, getState) => { + axios + .delete('/apps/todo/delete-task', { taskId }) + .then(res => { + dispatch({ + type: 'DELETE_TASK', + task: res.data + }) + }) + .then(() => dispatch(getTasks(getState().todo.params))) + } +} + +// ** Select Task +export const selectTask = task => dispatch => dispatch({ type: 'SELECT_TASK', task }) diff --git a/src/views/apps/todo/store/reducer/index.js b/src/views/apps/todo/store/reducer/index.js new file mode 100644 index 0000000..d8833ac --- /dev/null +++ b/src/views/apps/todo/store/reducer/index.js @@ -0,0 +1,27 @@ +// ** Initial State +const initialState = { + tasks: [], + selectedTask: {}, + params: { + filter: '', + q: '', + sort: '', + tag: '' + } +} + +const TodoReducer = (state = initialState, action) => { + switch (action.type) { + case 'GET_TASKS': + return { ...state, tasks: action.tasks, params: action.params } + case 'UPDATE_TASKS': + return { ...state } + case 'REORDER_TASKS': + return { ...state, tasks: action.tasks } + case 'SELECT_TASK': + return { ...state, selectedTask: action.task } + default: + return state + } +} +export default TodoReducer diff --git a/src/views/apps/user/edit/Account.js b/src/views/apps/user/edit/Account.js new file mode 100644 index 0000000..1169051 --- /dev/null +++ b/src/views/apps/user/edit/Account.js @@ -0,0 +1,264 @@ +// ** React Imports +import { useState, useEffect } from 'react' + +// ** Custom Components +import Avatar from '@components/avatar' + +// ** Third Party Components +import { Lock, Edit, Trash2 } from 'react-feather' +import { Media, Row, Col, Button, Form, Input, Label, FormGroup, Table, CustomInput } from 'reactstrap' + +const UserAccountTab = ({ selectedUser }) => { + // ** States + const [img, setImg] = useState(null) + const [userData, setUserData] = useState(null) + + // ** Function to change user image + const onChange = e => { + const reader = new FileReader(), + files = e.target.files + reader.onload = function () { + setImg(reader.result) + } + reader.readAsDataURL(files[0]) + } + + // ** Update user image on mount or change + useEffect(() => { + if (selectedUser !== null || (selectedUser !== null && userData !== null && selectedUser.id !== userData.id)) { + setUserData(selectedUser) + if (selectedUser.avatar.length) { + return setImg(selectedUser.avatar) + } else { + return setImg(null) + } + } + }, [selectedUser]) + + // ** Renders User + const renderUserAvatar = () => { + if (img === null) { + const stateNum = Math.floor(Math.random() * 6), + states = ['light-success', 'light-danger', 'light-warning', 'light-info', 'light-primary', 'light-secondary'], + color = states[stateNum] + return ( + + ) + } else { + return ( + user profile avatar + ) + } + } + + return ( + + + + {renderUserAvatar()} + +

    {selectedUser.fullName}

    +
    + + Change + + + + + + + Remove + + + + +
    +
    +
    + + +
    e.preventDefault()}> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + Permissions +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ModuleReadWriteCreateDelete
    Admin + + + + + + + +
    Staff + + + + + + + +
    Author + + + + + + + +
    Contributor + + + + + + + +
    User + + + + + + + +
    +
    + + + + Save Changes + + + Reset + + +
    +
    + +
    + ) +} +export default UserAccountTab diff --git a/src/views/apps/user/edit/Information.js b/src/views/apps/user/edit/Information.js new file mode 100644 index 0000000..34f0356 --- /dev/null +++ b/src/views/apps/user/edit/Information.js @@ -0,0 +1,260 @@ +// ** React Imports +import { useState } from 'react' + +// ** Third Party Components +import classnames from 'classnames' +import Cleave from 'cleave.js/react' +import Flatpickr from 'react-flatpickr' +import { User, MapPin } from 'react-feather' +import 'cleave.js/dist/addons/cleave-phone.us' +import { useForm, Controller } from 'react-hook-form' +import { Row, Col, Button, Label, FormGroup, Input, CustomInput, Form } from 'reactstrap' + +// ** Styles +import '@styles/react/libs/flatpickr/flatpickr.scss' + +const UserInfoTab = () => { + // ** State + const [data, setData] = useState(null) + + // ** React hook form vars + const { register, errors, handleSubmit, control, setValue, trigger } = useForm({ + defaultValues: { gender: 'gender-female', dob: null } + }) + return ( +
    { + trigger() + setData(data) + })} + > + + +

    + + Personal Information +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { + return ( + setValue('gender', 'male')} + /> + ) + }} + /> + { + return ( + setValue('gender', 'female')} + /> + ) + }} + /> + + + + + + + + + + + + + +
    + + +

    + + Address +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + ) +} +export default UserInfoTab diff --git a/src/views/apps/user/edit/Social.js b/src/views/apps/user/edit/Social.js new file mode 100644 index 0000000..547ca62 --- /dev/null +++ b/src/views/apps/user/edit/Social.js @@ -0,0 +1,118 @@ +// ** Third Party Components +import { + Form, + FormGroup, + Label, + Input, + Row, + Col, + Button, + InputGroup, + InputGroupAddon, + InputGroupText +} from 'reactstrap' +import { Twitter, Facebook, Instagram, GitHub, Codepen, Slack } from 'react-feather' + +const UserSocialTab = () => { + return ( +
    e.preventDefault()}> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + ) +} +export default UserSocialTab diff --git a/src/views/apps/user/edit/index.js b/src/views/apps/user/edit/index.js new file mode 100644 index 0000000..7db3757 --- /dev/null +++ b/src/views/apps/user/edit/index.js @@ -0,0 +1,85 @@ +// ** React Imports +import { useState, useEffect } from 'react' +import { useParams, Link } from 'react-router-dom' + +// ** User Edit Components +import SocialTab from './Social' +import AccountTab from './Account' +import InfoTab from './Information' + +// ** Store & Actions +import { getUser } from '../store/action' +import { useSelector, useDispatch } from 'react-redux' + +// ** Third Party Components +import { User, Info, Share2 } from 'react-feather' +import { Card, CardBody, Row, Col, Nav, NavItem, NavLink, TabContent, TabPane, Alert } from 'reactstrap' + +// ** Styles +import '@styles/react/apps/app-users.scss' + +const UserEdit = () => { + // ** States & Vars + const [activeTab, setActiveTab] = useState('1'), + store = useSelector(state => state.users), + dispatch = useDispatch(), + { id } = useParams() + + // ** Function to toggle tabs + const toggle = tab => setActiveTab(tab) + + // ** Function to get user on mount + useEffect(() => { + dispatch(getUser(parseInt(id))) + }, [dispatch]) + + return store.selectedUser !== null && store.selectedUser !== undefined ? ( + + + + + + + + + + + + + + + + + + + + + ) : ( + +

    User not found

    +
    + User with id: {id} doesn't exist. Check list of all Users: Users List +
    +
    + ) +} +export default UserEdit diff --git a/src/views/apps/user/list/Sidebar.js b/src/views/apps/user/list/Sidebar.js new file mode 100644 index 0000000..accda79 --- /dev/null +++ b/src/views/apps/user/list/Sidebar.js @@ -0,0 +1,165 @@ +// ** React Import +import { useState } from 'react' + +// ** Custom Components +import Sidebar from '@components/sidebar' + +// ** Utils +import { isObjEmpty } from '@utils' + +// ** Third Party Components +import classnames from 'classnames' +import { useForm } from 'react-hook-form' +import { Button, FormGroup, Label, FormText, Form, Input } from 'reactstrap' + +// ** Store & Actions +import { addUser } from '../store/action' +import { useDispatch } from 'react-redux' + +const SidebarNewUsers = ({ open, toggleSidebar }) => { + // ** States + const [role, setRole] = useState('subscriber') + const [plan, setPlan] = useState('basic') + + // ** Store Vars + const dispatch = useDispatch() + + // ** Vars + const { register, errors, handleSubmit } = useForm() + + // ** Function to handle form submit + const onSubmit = values => { + if (isObjEmpty(errors)) { + toggleSidebar() + dispatch( + addUser({ + fullName: values['full-name'], + company: values.company, + role, + username: values.username, + country: values.country, + contact: values.contact, + email: values.email, + currentPlan: plan, + status: 'active', + avatar: '' + }) + ) + } + } + + return ( + +
    + + + + + + + + + + + + You can use letters, numbers & periods + + + + + + + + + + + + + + + + setRole(e.target.value)}> + + + + + + + + setPlan(e.target.value)}> + + + + + + + + + + +
    +
    + ) +} + +export default SidebarNewUsers diff --git a/src/views/apps/user/list/Table.js b/src/views/apps/user/list/Table.js new file mode 100644 index 0000000..d49d78c --- /dev/null +++ b/src/views/apps/user/list/Table.js @@ -0,0 +1,336 @@ +// ** React Imports +import { Fragment, useState, useEffect } from 'react' + +// ** Invoice List Sidebar +import Sidebar from './Sidebar' + +// ** Columns +import { columns } from './columns' + +// ** Store & Actions +import { getAllData, getData } from '../store/action' +import { useDispatch, useSelector } from 'react-redux' + +// ** Third Party Components +import Select from 'react-select' +import ReactPaginate from 'react-paginate' +import { ChevronDown } from 'react-feather' +import DataTable from 'react-data-table-component' +import { selectThemeColors } from '@utils' +import { Card, CardHeader, CardTitle, CardBody, Input, Row, Col, Label, CustomInput, Button } from 'reactstrap' + +// ** Styles +import '@styles/react/libs/react-select/_react-select.scss' +import '@styles/react/libs/tables/react-dataTable-component.scss' + +// ** Table Header +const CustomHeader = ({ toggleSidebar, handlePerPage, rowsPerPage, handleFilter, searchTerm }) => { + return ( +
    + + +
    + + + + + + + +
    + + +
    + + handleFilter(e.target.value)} + /> +
    + + Add New User + + +
    +
    + ) +} + +const UsersList = () => { + // ** Store Vars + const dispatch = useDispatch() + const store = useSelector(state => state.users) + + // ** States + const [searchTerm, setSearchTerm] = useState('') + const [currentPage, setCurrentPage] = useState(1) + const [rowsPerPage, setRowsPerPage] = useState(10) + const [sidebarOpen, setSidebarOpen] = useState(false) + const [currentRole, setCurrentRole] = useState({ value: '', label: 'Select Role' }) + const [currentPlan, setCurrentPlan] = useState({ value: '', label: 'Select Plan' }) + const [currentStatus, setCurrentStatus] = useState({ value: '', label: 'Select Status', number: 0 }) + + // ** Function to toggle sidebar + const toggleSidebar = () => setSidebarOpen(!sidebarOpen) + + // ** Get data on mount + useEffect(() => { + dispatch(getAllData()) + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + role: currentRole.value, + currentPlan: currentPlan.value, + status: currentStatus.value, + q: searchTerm + }) + ) + }, [dispatch, store.data.length]) + + // ** User filter options + const roleOptions = [ + { value: '', label: 'Select Role' }, + { value: 'admin', label: 'Admin' }, + { value: 'author', label: 'Author' }, + { value: 'editor', label: 'Editor' }, + { value: 'maintainer', label: 'Maintainer' }, + { value: 'subscriber', label: 'Subscriber' } + ] + + const planOptions = [ + { value: '', label: 'Select Plan' }, + { value: 'basic', label: 'Basic' }, + { value: 'company', label: 'Company' }, + { value: 'enterprise', label: 'Enterprise' }, + { value: 'team', label: 'Team' } + ] + + const statusOptions = [ + { value: '', label: 'Select Status', number: 0 }, + { value: 'pending', label: 'Pending', number: 1 }, + { value: 'active', label: 'Active', number: 2 }, + { value: 'inactive', label: 'Inactive', number: 3 } + ] + + // ** Function in get data on page change + const handlePagination = page => { + dispatch( + getData({ + page: page.selected + 1, + perPage: rowsPerPage, + role: currentRole.value, + currentPlan: currentPlan.value, + status: currentStatus.value, + q: searchTerm + }) + ) + setCurrentPage(page.selected + 1) + } + + // ** Function in get data on rows per page + const handlePerPage = e => { + const value = parseInt(e.currentTarget.value) + dispatch( + getData({ + page: currentPage, + perPage: value, + role: currentRole.value, + currentPlan: currentPlan.value, + status: currentStatus.value, + q: searchTerm + }) + ) + setRowsPerPage(value) + } + + // ** Function in get data on search query change + const handleFilter = val => { + setSearchTerm(val) + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + role: currentRole.value, + currentPlan: currentPlan.value, + status: currentStatus.value, + q: val + }) + ) + } + + // ** Custom Pagination + const CustomPagination = () => { + const count = Number(Math.ceil(store.total / rowsPerPage)) + + return ( + handlePagination(page)} + pageClassName={'page-item'} + nextLinkClassName={'page-link'} + nextClassName={'page-item next'} + previousClassName={'page-item prev'} + previousLinkClassName={'page-link'} + pageLinkClassName={'page-link'} + containerClassName={'pagination react-paginate justify-content-end my-2 pr-1'} + /> + ) + } + + // ** Table data to render + const dataToRender = () => { + const filters = { + role: currentRole.value, + currentPlan: currentPlan.value, + status: currentStatus.value, + q: searchTerm + } + + const isFiltered = Object.keys(filters).some(function (k) { + return filters[k].length > 0 + }) + + if (store.data.length > 0) { + return store.data + } else if (store.data.length === 0 && isFiltered) { + return [] + } else { + return store.allData.slice(0, rowsPerPage) + } + } + + return ( + + + + Search Filter + + + + + { + setCurrentPlan(data) + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + role: currentRole.value, + currentPlan: data.value, + status: currentStatus.value, + q: searchTerm + }) + ) + }} + /> + + + + + + + + Copy! + + + + + + + + + + ) +} + +export default Clipboard diff --git a/src/views/extensions/drag-and-drop/DndCards.js b/src/views/extensions/drag-and-drop/DndCards.js new file mode 100644 index 0000000..41579a5 --- /dev/null +++ b/src/views/extensions/drag-and-drop/DndCards.js @@ -0,0 +1,53 @@ +import { useState } from 'react' +import { ReactSortable } from 'react-sortablejs' +import { Card, CardHeader, CardBody, CardTitle, CardText, Col } from 'reactstrap' + +const dragItems = [ + { + id: '1', + title: 'Draggable Card 1', + content: + 'Jelly beans sugar plum cheesecake cookie oat cake soufflé.Tootsie roll bonbon liquorice tiramisu pie powder.Donut sweet roll marzipan pastry cookie cake tootsie roll oat cake cookie.' + }, + { + id: '2', + title: 'Draggable Card 2', + content: + 'Jelly beans sugar plum cheesecake cookie oat cake soufflé.Tootsie roll bonbon liquorice tiramisu pie powder.Donut sweet roll marzipan pastry cookie cake tootsie roll oat cake cookie.' + }, + { + id: '3', + title: 'Draggable Card 3', + content: + 'Jelly beans sugar plum cheesecake cookie oat cake soufflé.Tootsie roll bonbon liquorice tiramisu pie powder.Donut sweet roll marzipan pastry cookie cake tootsie roll oat cake cookie.' + }, + { + id: '4', + title: 'Draggable Card 4', + content: + 'Jelly beans sugar plum cheesecake cookie oat cake soufflé.Tootsie roll bonbon liquorice tiramisu pie powder.Donut sweet roll marzipan pastry cookie cake tootsie roll oat cake cookie.' + } +] + +const DndCards = () => { + const [cardsArr, setCardsArr] = useState(dragItems) + + return ( + + {cardsArr.map(item => ( + + + + {item.title} + + + {item.content} + + + + ))} + + ) +} + +export default DndCards diff --git a/src/views/extensions/drag-and-drop/DndClone.js b/src/views/extensions/drag-and-drop/DndClone.js new file mode 100644 index 0000000..8e156f6 --- /dev/null +++ b/src/views/extensions/drag-and-drop/DndClone.js @@ -0,0 +1,112 @@ +import { useState } from 'react' +import { ReactSortable } from 'react-sortablejs' +import { Card, CardHeader, CardTitle, CardBody, CardText, Row, Col, Badge } from 'reactstrap' + +const DndClone = () => { + const source1 = [ + { + text: 'Youtube', + color: 'light-secondary' + }, + { + text: 'Facebook', + color: 'light-primary' + }, + { + text: 'Google', + color: 'light-success' + }, + { + text: 'Instagram', + color: 'light-danger' + }, + { + text: 'Twitter', + color: 'light-info' + }, + { + text: 'Discord', + color: 'light-warning' + } + ] + const source2 = [ + { + text: 'Github', + color: 'light-secondary' + }, + { + text: 'Gitlab', + color: 'light-primary' + }, + { + text: 'Slack', + color: 'light-success' + }, + { + text: 'Pinterest', + color: 'light-danger' + }, + { + text: 'Tinder', + color: 'light-info' + }, + { + text: 'Amazon', + color: 'light-warning' + } + ] + + const [list, setList] = useState(source1) + const [list2, setList2] = useState(source2) + + return ( + + + Clone List + + + + Add pull:clone with your group prop to clone items. + + + +

    Badge Source 1

    + + {list.map(item => { + return ( + + {item.text} + + ) + })} + + + +

    Badge Source 2

    + + {list2.map(item => { + return ( + + {item.text} + + ) + })} + + +
    +
    +
    + ) +} + +export default DndClone diff --git a/src/views/extensions/drag-and-drop/DndHandle.js b/src/views/extensions/drag-and-drop/DndHandle.js new file mode 100644 index 0000000..1c5f7af --- /dev/null +++ b/src/views/extensions/drag-and-drop/DndHandle.js @@ -0,0 +1,112 @@ +import { useState } from 'react' +import { ReactSortable } from 'react-sortablejs' +import { Card, CardHeader, CardTitle, CardBody, CardText, Row, Col, ListGroupItem } from 'reactstrap' + +const array = { + list1: [ + { + id: '1', + content: 'Cras justo odio' + }, + { + id: '2', + content: 'Dapibus ac facilisis in' + }, + { + id: '3', + content: 'Morbi leo risus' + }, + { + id: '4', + content: 'Porta ac consectetur ac' + }, + { + id: '5', + content: 'Vestibulum at eros' + } + ], + list2: [ + { + id: '6', + content: 'Cras justo odio' + }, + { + id: '7', + content: 'Dapibus ac facilisis in' + }, + { + id: '8', + content: 'Morbi leo risus' + }, + { + id: '9', + content: 'Porta ac consectetur ac' + }, + { + id: '10', + content: 'Vestibulum at eros' + } + ] +} + +const DndMultiple = () => { + const [listArr1, setListArr1] = useState(array.list1) + const [listArr2, setListArr2] = useState(array.list2) + + return ( + + + Drag And Drop With Handle + + + + Add handle to your items using handle prop. + + + +

    List One

    + + {listArr1.map(item => { + return ( + + + + {item.content} + + ) + })} + + + +

    People Group 2

    + + {listArr2.map(item => { + return ( + + + + {item.content} + + ) + })} + + +
    +
    +
    + ) +} + +export default DndMultiple diff --git a/src/views/extensions/drag-and-drop/DndListGroup.js b/src/views/extensions/drag-and-drop/DndListGroup.js new file mode 100644 index 0000000..c26c82a --- /dev/null +++ b/src/views/extensions/drag-and-drop/DndListGroup.js @@ -0,0 +1,83 @@ +import { useState } from 'react' +import { ReactSortable } from 'react-sortablejs' +import img1 from '@src/assets/images/portrait/small/avatar-s-12.jpg' +import img2 from '@src/assets/images/portrait/small/avatar-s-1.jpg' +import img3 from '@src/assets/images/portrait/small/avatar-s-2.jpg' +import img4 from '@src/assets/images/portrait/small/avatar-s-3.jpg' +import img5 from '@src/assets/images/portrait/small/avatar-s-4.jpg' +import { Card, CardHeader, CardTitle, CardBody, CardText, ListGroupItem, Media } from 'reactstrap' + +const listItems = [ + { + id: '1', + img: img1, + name: 'Mary S. Navarre', + content: 'Chupa chups tiramisu apple pie biscuit sweet roll bonbon macaroon toffee icing.' + }, + { + id: '2', + img: img2, + name: 'Samuel M. Ellis', + content: 'Toffee powder marzipan tiramisu. Cake cake dessert danish.' + }, + { + id: '3', + img: img3, + name: 'Sandra C. Toney', + content: 'Sugar plum fruitcake gummies marzipan liquorice tiramisu. Pastry liquorice chupa chupsake.' + }, + { + id: '4', + img: img4, + name: 'Cleveland C. Goins', + content: 'Toffee powder marzipan tiramisu. Cake cake dessert danish.' + }, + { + id: '5', + img: img5, + name: 'Linda M. English', + content: 'Chupa chups tiramisu apple pie biscuit sweet roll bonbon macaroon toffee icing.' + } +] + +const DndListGroup = () => { + const [listArr, setListArr] = useState(listItems) + return ( + + + Basic List Group Sortable + + + + The most basic list group is simply an unordered list with list items, and the proper classes. + + + {listArr.map(item => { + return ( + + + + + + +
    {item.name}
    + {item.content} +
    +
    +
    + ) + })} +
    +
    +
    + ) +} + +export default DndListGroup diff --git a/src/views/extensions/drag-and-drop/DndMultiDrag.js b/src/views/extensions/drag-and-drop/DndMultiDrag.js new file mode 100644 index 0000000..46f210b --- /dev/null +++ b/src/views/extensions/drag-and-drop/DndMultiDrag.js @@ -0,0 +1,173 @@ +import { useState } from 'react' +import img1 from '@src/assets/images/portrait/small/avatar-s-12.jpg' +import img2 from '@src/assets/images/portrait/small/avatar-s-1.jpg' +import img3 from '@src/assets/images/portrait/small/avatar-s-2.jpg' +import img4 from '@src/assets/images/portrait/small/avatar-s-3.jpg' +import img5 from '@src/assets/images/portrait/small/avatar-s-4.jpg' +import img6 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import img7 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import img8 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import img9 from '@src/assets/images/portrait/small/avatar-s-8.jpg' +import img10 from '@src/assets/images/portrait/small/avatar-s-9.jpg' +import { ReactSortable, Sortable, MultiDrag } from 'react-sortablejs' +import { Card, CardHeader, CardTitle, CardBody, CardText, Row, Col, ListGroupItem, Media } from 'reactstrap' + +const array = { + list1: [ + { + id: '1', + img: img1, + name: 'Mary S. Navarre', + content: 'Chupa chups tiramisu apple pie biscuit sweet roll bonbon macaroon toffee icing.' + }, + { + id: '2', + img: img2, + name: 'Samuel M. Ellis', + content: 'Toffee powder marzipan tiramisu. Cake cake dessert danish.' + }, + { + id: '3', + img: img3, + name: 'Sandra C. Toney', + content: 'Sugar plum fruitcake gummies marzipan liquorice tiramisu. Pastry liquorice chupa.' + }, + { + id: '4', + img: img4, + name: 'Cleveland C. Goins', + content: 'Toffee powder marzipan tiramisu. Cake cake dessert danish.' + }, + { + id: '5', + img: img5, + name: 'Linda M. English', + content: 'Chupa chups tiramisu apple pie biscuit sweet roll bonbon macaroon toffee icing.' + } + ], + list2: [ + { + id: '6', + img: img6, + name: 'Alexandria I. Smelser', + content: 'Toffee powder marzipan tiramisu. Cake cake dessert danish.' + }, + { + id: '7', + img: img7, + name: 'Oscar N. Pool', + content: 'Sugar plum fruitcake gummies marzipan liquorice tiramisu. Pastry liquorice chupsake.' + }, + { + id: '8', + img: img8, + name: 'Kathy A. Alvarado', + content: 'Chupa chups tiramisu apple pie biscuit sweet roll bonbon macaroon toffee icing.' + }, + { + id: '9', + img: img9, + name: 'James E. White', + content: 'Toffee powder marzipan tiramisu. Cake cake dessert danish.' + }, + { + id: '10', + img: img10, + name: 'Roberta R. Babin', + content: 'Chupa chups tiramisu apple pie biscuit sweet roll bonbon macaroon toffee icing.' + } + ] +} + +// Sortable.mount(new MultiDrag()) +const DndMultiDrag = () => { + const [listArr1, setListArr1] = useState(array.list1) + const [listArr2, setListArr2] = useState(array.list2) + + return ( + + + Multiple Drag + + + + Use MultiDrag prop to create a multiple drag list. + + + Use CTRL key to select multiple items. + + + +

    People Group 1

    + + {listArr1.map(item => { + return ( + + + + + + +
    {item.name}
    + {item.content} +
    +
    +
    + ) + })} +
    + + +

    People Group 2

    + + {listArr2.map(item => { + return ( + + + + + + +
    {item.name}
    + {item.content} +
    +
    +
    + ) + })} +
    + +
    +
    +
    + ) +} + +export default DndMultiDrag diff --git a/src/views/extensions/drag-and-drop/DndMultiple.js b/src/views/extensions/drag-and-drop/DndMultiple.js new file mode 100644 index 0000000..de66f54 --- /dev/null +++ b/src/views/extensions/drag-and-drop/DndMultiple.js @@ -0,0 +1,168 @@ +import { useState } from 'react' +import { ReactSortable } from 'react-sortablejs' +import img1 from '@src/assets/images/portrait/small/avatar-s-12.jpg' +import img2 from '@src/assets/images/portrait/small/avatar-s-1.jpg' +import img3 from '@src/assets/images/portrait/small/avatar-s-2.jpg' +import img4 from '@src/assets/images/portrait/small/avatar-s-3.jpg' +import img5 from '@src/assets/images/portrait/small/avatar-s-4.jpg' +import img6 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import img7 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import img8 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import img9 from '@src/assets/images/portrait/small/avatar-s-8.jpg' +import img10 from '@src/assets/images/portrait/small/avatar-s-9.jpg' +import { Card, CardHeader, CardTitle, CardBody, CardText, Row, Col, ListGroupItem, Media } from 'reactstrap' + +const array = { + list1: [ + { + id: '1', + img: img1, + name: 'Mary S. Navarre', + content: 'Chupa chups tiramisu apple pie biscuit sweet roll bonbon macaroon toffee icing.' + }, + { + id: '2', + img: img2, + name: 'Samuel M. Ellis', + content: 'Toffee powder marzipan tiramisu. Cake cake dessert danish.' + }, + { + id: '3', + img: img3, + name: 'Sandra C. Toney', + content: 'Sugar plum fruitcake gummies marzipan liquorice tiramisu. Pastry liquorice chupa.' + }, + { + id: '4', + img: img4, + name: 'Cleveland C. Goins', + content: 'Toffee powder marzipan tiramisu. Cake cake dessert danish.' + }, + { + id: '5', + img: img5, + name: 'Linda M. English', + content: 'Chupa chups tiramisu apple pie biscuit sweet roll bonbon macaroon toffee icing.' + } + ], + list2: [ + { + id: '6', + img: img6, + name: 'Alexandria I. Smelser', + content: 'Toffee powder marzipan tiramisu. Cake cake dessert danish.' + }, + { + id: '7', + img: img7, + name: 'Oscar N. Pool', + content: 'Sugar plum fruitcake gummies marzipan liquorice tiramisu. Pastry liquorice chupsake.' + }, + { + id: '8', + img: img8, + name: 'Kathy A. Alvarado', + content: 'Chupa chups tiramisu apple pie biscuit sweet roll bonbon macaroon toffee icing.' + }, + { + id: '9', + img: img9, + name: 'James E. White', + content: 'Toffee powder marzipan tiramisu. Cake cake dessert danish.' + }, + { + id: '10', + img: img10, + name: 'Roberta R. Babin', + content: 'Chupa chups tiramisu apple pie biscuit sweet roll bonbon macaroon toffee icing.' + } + ] +} + +const DndMultiple = () => { + const [listArr1, setListArr1] = useState(array.list1) + const [listArr2, setListArr2] = useState(array.list2) + + return ( + + + Multiple Lists + + + + Use group prop to create a multiple list Drag & Drop. + + + +

    People Group 1

    + + {listArr1.map(item => { + return ( + + + + + + +
    {item.name}
    + {item.content} +
    +
    +
    + ) + })} +
    + + +

    People Group 2

    + + {listArr2.map(item => { + return ( + + + + + + +
    {item.name}
    + {item.content} +
    +
    +
    + ) + })} +
    + +
    +
    +
    + ) +} + +export default DndMultiple diff --git a/src/views/extensions/drag-and-drop/index.js b/src/views/extensions/drag-and-drop/index.js new file mode 100644 index 0000000..320b0a0 --- /dev/null +++ b/src/views/extensions/drag-and-drop/index.js @@ -0,0 +1,45 @@ +import { Fragment } from 'react' +import DndClone from './DndClone' +import DndCards from './DndCards' +import DndHandle from './DndHandle' +import { Row, Col } from 'reactstrap' +import DndMultiple from './DndMultiple' +import DndMultiDrag from './DndMultiDrag' +import DndListGroup from './DndListGroup' +import ExtensionsHeader from '@components/extensions-header' + +import '@styles/react/libs/drag-and-drop/drag-and-drop.scss' + +const DragAndDrop = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default DragAndDrop diff --git a/src/views/extensions/i18n/index.js b/src/views/extensions/i18n/index.js new file mode 100644 index 0000000..d258dc8 --- /dev/null +++ b/src/views/extensions/i18n/index.js @@ -0,0 +1,81 @@ +import { Fragment, useContext } from 'react' +import { Row, Col, Card, CardHeader, CardTitle, CardBody, CustomInput } from 'reactstrap' +import ExtensionsHeader from '@components/extensions-header' +import { IntlContext } from '../../../utility/context/Internationalization' +import { FormattedMessage } from 'react-intl' +const I18nExtension = () => { + const context = useContext(IntlContext) + return ( + + + + + + + + Change Locale + + +
    + { + context.switchLanguage('en') + }} + label='English' + className='mb-1' + defaultChecked={context.locale === 'en'} + /> + { + context.switchLanguage('fr') + }} + label='French' + className='mb-1' + defaultChecked={context.locale === 'fr'} + /> + { + context.switchLanguage('de') + }} + label='German' + className='mb-1' + defaultChecked={context.locale === 'de'} + /> + { + context.switchLanguage('pt') + }} + label='Portuguese' + className='mb-1' + defaultChecked={context.locale === 'pt'} + /> +
    +
    +
    Title
    + +
    +
    +
    + +
    +
    + ) +} + +export default I18nExtension diff --git a/src/views/extensions/import-export/Export.js b/src/views/extensions/import-export/Export.js new file mode 100644 index 0000000..29b0715 --- /dev/null +++ b/src/views/extensions/import-export/Export.js @@ -0,0 +1,245 @@ +import { Fragment, useState, useRef } from 'react' +import ExtensionsHeader from '@components/extensions-header' +import XLSX from 'xlsx' +import * as FileSaver from 'file-saver' +import { + Row, + Col, + Card, + CardBody, + Button, + Table, + Modal, + ModalHeader, + ModalBody, + ModalFooter, + Input, + FormGroup, + CustomInput, + Label +} from 'reactstrap' + +const initialData = [ + { + id: 1, + name: 'Leanne Graham', + username: 'Bret', + email: 'Sincere@april.biz', + website: 'hildegard.org' + }, + { + id: 2, + name: 'Ervin Howell', + username: 'Antonette', + email: 'Shanna@melissa.tv', + website: 'anastasia.net' + }, + { + id: 3, + name: 'Clementine Bauch', + username: 'Samantha', + email: 'Nathan@yesenia.net', + website: 'ramiro.info' + }, + { + id: 4, + name: 'Patricia Lebsack', + username: 'Karianne', + email: 'Julianne.OConner@kory.org', + website: 'kale.biz' + }, + { + id: 5, + name: 'Chelsey Dietrich', + username: 'Kamren', + email: 'Lucio_Hettinger@annie.ca', + website: 'demarco.info' + }, + { + id: 6, + name: 'Mrs. Dennis Schulist', + username: 'Leopoldo_Corkery', + email: 'Karley_Dach@jasper.info', + website: 'ola.org' + }, + { + id: 7, + name: 'Kurtis Weissnat', + username: 'Elwyn.Skiles', + email: 'Telly.Hoeger@billy.biz', + website: 'elvis.io' + }, + { + id: 8, + name: 'Nicholas Runolfsdottir V', + username: 'Maxime_Nienow', + email: 'Sherwood@rosamond.me', + website: 'jacynthe.com' + }, + { + id: 9, + name: 'Glenna Reichert', + username: 'Delphine', + email: 'Chaim_McDermott@dana.io', + website: 'conrad.com' + }, + { + id: 10, + name: 'Clementina DuBuque', + username: 'Moriah.Stanton', + email: 'Rey.Padberg@karina.biz', + website: 'ambrose.net' + } +] + +const Export = () => { + const tableRef = useRef() + + const [data] = useState(initialData) + const [filteredData, setFilteredData] = useState([]) + const [value, setValue] = useState('') + const [modal, setModal] = useState(false) + const [fileName, setFileName] = useState('') + const [fileFormat, setFileFormat] = useState('xlsx') + + const toggleModal = () => { + setModal(!modal) + } + + const handleFilter = e => { + const dataArr = data + let filteredData = [] + const value = e.target.value + setValue(value) + if (value.length) { + filteredData = dataArr.filter(col => { + const startsWithCondition = + col.name.toLowerCase().startsWith(value.toLowerCase()) || + col.email.toLowerCase().startsWith(value.toLowerCase()) || + col.website.toLowerCase().startsWith(value.toLowerCase()) || + col.id.toString().toLowerCase().startsWith(value.toLowerCase()) + + const includesCondition = + col.name.toLowerCase().includes(value.toLowerCase()) || + col.email.toLowerCase().includes(value.toLowerCase()) || + col.website.toLowerCase().includes(value.toLowerCase()) || + col.id.toString().toLowerCase().includes(value.toLowerCase()) + + if (startsWithCondition) return startsWithCondition + else if (!startsWithCondition && includesCondition) return includesCondition + else return null + }) + setFilteredData(filteredData) + setValue(value) + } + } + + const handleExport = () => { + toggleModal() + const bookType = fileFormat + const wb = XLSX.utils.table_to_book(tableRef.current, { sheet: 'Sheet JS' }) + const wbout = XLSX.write(wb, { bookType, bookSST: true, type: 'binary' }) + + const s2ab = s => { + const buf = new ArrayBuffer(s.length) + const view = new Uint8Array(buf) + for (let i = 0; i < s.length; i++) view[i] = s.charCodeAt(i) & 0xff + return buf + } + const file = fileName.length ? `${fileName}.${fileFormat}` : `excel-sheet.${fileFormat}` + + return FileSaver.saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), file) + } + + const array = value ? filteredData : data + const renderTableData = array.map(col => { + return ( + + {col.email} + {col.name} + {col.website} + {col.id} + + ) + }) + return ( + + + + + + +
    + toggleModal()}> + Export + +
    + + handleFilter(e)} /> +
    +
    +
    + + + + + + + + + + {renderTableData} +
    EmailNameWebsiteRank
    +
    + +
    + toggleModal()} + className='modal-dialog-centered' + onClosed={() => setFileName('')} + > + toggleModal()}>Export To Excel + + + setFileName(e.target.value)} + placeholder='Enter File Name' + /> + + + setFileFormat(e.target.value)} + > + + + + + + + + + + + +
    + ) +} + +export default Export diff --git a/src/views/extensions/import-export/ExportSelected.js b/src/views/extensions/import-export/ExportSelected.js new file mode 100644 index 0000000..55944b7 --- /dev/null +++ b/src/views/extensions/import-export/ExportSelected.js @@ -0,0 +1,295 @@ +import { Fragment, useState } from 'react' +import ExtensionsHeader from '@components/extensions-header' +import { + Row, + Col, + Card, + CardBody, + Button, + Table, + Modal, + ModalHeader, + ModalBody, + ModalFooter, + Input, + FormGroup, + CustomInput, + Label +} from 'reactstrap' +import classnames from 'classnames' +import XLSX from 'xlsx' + +const initialData = [ + { + id: 1, + name: 'Leanne Graham', + username: 'Bret', + email: 'Sincere@april.biz', + website: 'hildegard.org' + }, + { + id: 2, + name: 'Ervin Howell', + username: 'Antonette', + email: 'Shanna@melissa.tv', + website: 'anastasia.net' + }, + { + id: 3, + name: 'Clementine Bauch', + username: 'Samantha', + email: 'Nathan@yesenia.net', + website: 'ramiro.info' + }, + { + id: 4, + name: 'Patricia Lebsack', + username: 'Karianne', + email: 'Julianne.OConner@kory.org', + website: 'kale.biz' + }, + { + id: 5, + name: 'Chelsey Dietrich', + username: 'Kamren', + email: 'Lucio_Hettinger@annie.ca', + website: 'demarco.info' + }, + { + id: 6, + name: 'Mrs. Dennis Schulist', + username: 'Leopoldo_Corkery', + email: 'Karley_Dach@jasper.info', + website: 'ola.org' + }, + { + id: 7, + name: 'Kurtis Weissnat', + username: 'Elwyn.Skiles', + email: 'Telly.Hoeger@billy.biz', + website: 'elvis.io' + }, + { + id: 8, + name: 'Nicholas Runolfsdottir V', + username: 'Maxime_Nienow', + email: 'Sherwood@rosamond.me', + website: 'jacynthe.com' + }, + { + id: 9, + name: 'Glenna Reichert', + username: 'Delphine', + email: 'Chaim_McDermott@dana.io', + website: 'conrad.com' + }, + { + id: 10, + name: 'Clementina DuBuque', + username: 'Moriah.Stanton', + email: 'Rey.Padberg@karina.biz', + website: 'ambrose.net' + } +] + +const ExportSelected = () => { + const [data] = useState(initialData) + const [filteredData, setFilteredData] = useState([]) + const [dataToExport, setDataToExport] = useState([]) + const [value, setValue] = useState('') + const [modal, setModal] = useState(false) + const [fileName, setFileName] = useState('') + const [fileFormat, setFileFormat] = useState('xlsx') + const [selectedRows, setSelectedRows] = useState([]) + + const toggleModal = () => setModal(!modal) + + const handleFilter = e => { + let filteredData = [] + const value = e.target.value + setValue(value) + if (value.length) { + filteredData = data.filter(col => { + const startsWithCondition = + col.name.toLowerCase().startsWith(value.toLowerCase()) || + col.email.toLowerCase().startsWith(value.toLowerCase()) || + col.website.toLowerCase().startsWith(value.toLowerCase()) || + col.id.toString().toLowerCase().startsWith(value.toLowerCase()) + + const includesCondition = + col.name.toLowerCase().includes(value.toLowerCase()) || + col.email.toLowerCase().includes(value.toLowerCase()) || + col.website.toLowerCase().includes(value.toLowerCase()) || + col.id.toString().toLowerCase().includes(value.toLowerCase()) + + if (startsWithCondition) return startsWithCondition + else if (!startsWithCondition && includesCondition) return includesCondition + else return null + }) + setValue(value) + setFilteredData(filteredData) + } + } + + const handleExport = () => { + const exportArr = dataToExport + data.map(item => { + if (selectedRows.includes(item.id)) { + return exportArr.push(item) + } else { + return null + } + }) + setDataToExport([...exportArr]) + const name = fileName.length ? `${fileName}.${fileFormat}` : `excel-sheet.${fileFormat}` + const wb = XLSX.utils.json_to_sheet(dataToExport) + const wbout = XLSX.utils.book_new() + XLSX.utils.book_append_sheet(wbout, wb, 'test') + XLSX.writeFile(wbout, name) + toggleModal() + } + + const handleSelect = id => { + const selectedRowsArr = selectedRows + if (!selectedRowsArr.includes(id)) { + selectedRowsArr.push(id) + } else if (selectedRowsArr.includes(id)) { + selectedRowsArr.splice(selectedRowsArr.indexOf(id), 1) + } else { + return null + } + setSelectedRows([...selectedRowsArr]) + } + + const handleSelectAll = () => { + let selectedRowsArr = selectedRows + if (selectedRowsArr.length < data.length) { + const ids = data.map(i => i.id) + selectedRowsArr = ids + } else if (selectedRowsArr.length === data.length) { + selectedRowsArr = [] + } else { + return null + } + + setSelectedRows(selectedRowsArr) + } + + const array = value ? filteredData : data + const renderTableData = array.map(col => { + return ( + + + handleSelect(col.id)} + /> + + {col.email} + {col.name} + {col.website} + {col.id} + + ) + }) + + return ( + + + + + + +
    + toggleModal()}> + Export Selected + +
    + + handleFilter(e)} /> +
    +
    +
    + + + + + + + + + + + {renderTableData} +
    + handleSelectAll()} + /> + EmailNameWebsiteRank
    +
    + +
    + toggleModal()} + className='modal-dialog-centered' + onClosed={() => setFileName('')} + > + toggleModal()}>Export To Excel + + + setFileName(e.target.value)} + placeholder='Enter File Name' + /> + + + { + setFileFormat(e.target.value) + }} + > + + + + + + + + + + + +
    + ) +} + +export default ExportSelected diff --git a/src/views/extensions/import-export/Import.js b/src/views/extensions/import-export/Import.js new file mode 100644 index 0000000..c4480f2 --- /dev/null +++ b/src/views/extensions/import-export/Import.js @@ -0,0 +1,170 @@ +import { Fragment, useState } from 'react' +import XLSX from 'xlsx' +import Uppy from '@uppy/core' +import { X } from 'react-feather' +import { DragDrop } from '@uppy/react' +import Avatar from '@components/avatar' +import { toast } from 'react-toastify' +import ExtensionsHeader from '@components/extensions-header' +import { Row, Col, Card, CardBody, Table, CardHeader, CardTitle, Input, Label } from 'reactstrap' + +import 'uppy/dist/uppy.css' +import '@uppy/status-bar/dist/style.css' +import '@styles/react/libs/file-uploader/file-uploader.scss' + +const ErrorToast = () => ( + +
    +
    + } /> +
    Error!
    +
    + a second ago +
    +
    + + 👋 You can only upload .xlsx,{' '} + .xls & .csv Files!. + +
    +
    +) + +const Import = () => { + const [tableData, setTableData] = useState([]) + const [filteredData, setFilteredData] = useState([]) + const [value, setValue] = useState('') + const [name, setName] = useState('') + + const uppy = new Uppy({ + restrictions: { maxNumberOfFiles: 1 }, + autoProceed: true + }) + + const getTableData = (arr, name) => { + setTableData(arr) + setName(name) + } + + uppy.on('complete', result => { + const reader = new FileReader() + reader.onload = function () { + const fileData = reader.result + const wb = XLSX.read(fileData, { type: 'binary' }) + + wb.SheetNames.forEach(function (sheetName) { + const rowObj = XLSX.utils.sheet_to_row_object_array(wb.Sheets[sheetName]) + getTableData(rowObj, result.successful[0].data.name) + }) + } + if (result.successful[0].extension === 'xlsx') { + reader.readAsBinaryString(result.successful[0].data) + } else { + toast.error(, { hideProgressBar: true }) + } + }) + + const handleFilter = e => { + const data = tableData + let filteredData = [] + const value = e.target.value + setValue(value) + + if (value.length) { + filteredData = data.filter(col => { + const keys = Object.keys(col) + + const startsWithCondition = keys.filter(key => { + return col[key].toString().toLowerCase().startsWith(value.toLowerCase()) + }) + + const includesCondition = keys.filter(key => col[key].toString().toLowerCase().includes(value.toLowerCase())) + + if (startsWithCondition.length) return col[startsWithCondition] + else if (!startsWithCondition && includesCondition.length) return col[includesCondition] + else return null + }) + setFilteredData(filteredData) + setValue(value) + } else { + return null + } + } + /*eslint-disable */ + const headArr = tableData.length + ? tableData.map((col, index) => { + if (index === 0) return [...Object.keys(col)] + else return null + }) + : [] + /*eslint-enable */ + const dataArr = value.length ? filteredData : tableData.length && !value.length ? tableData : null + + const renderTableBody = () => { + if (dataArr !== null && dataArr.length) { + return dataArr.map((col, index) => { + const keys = Object.keys(col) + const renderTd = keys.map((key, index) => {col[key]}) + return {renderTd} + }) + } else { + return null + } + } + + const renderTableHead = () => { + if (headArr.length) { + return headArr[0].map((head, index) => { + return {head} + }) + } else { + return null + } + } + + return ( + + + + + + + + + + + + + + + {tableData.length ? ( + + + + {name} +
    + + handleFilter(e)} /> +
    +
    + + + {renderTableHead()} + + {renderTableBody()} +
    +
    + + ) : null} +
    +
    + ) +} + +export default Import diff --git a/src/views/extensions/pagination/BasicPagination.js b/src/views/extensions/pagination/BasicPagination.js new file mode 100644 index 0000000..3c431eb --- /dev/null +++ b/src/views/extensions/pagination/BasicPagination.js @@ -0,0 +1,32 @@ +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import ReactPaginate from 'react-paginate' +const BasicPagination = () => { + return ( + + + Basic + + + + + + ) +} +export default BasicPagination diff --git a/src/views/extensions/pagination/PaginationDanger.js b/src/views/extensions/pagination/PaginationDanger.js new file mode 100644 index 0000000..088ed67 --- /dev/null +++ b/src/views/extensions/pagination/PaginationDanger.js @@ -0,0 +1,33 @@ +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import ReactPaginate from 'react-paginate' + +const PaginationDanger = () => { + return ( + + + Danger + + + + + + ) +} +export default PaginationDanger diff --git a/src/views/extensions/pagination/PaginationIcon.js b/src/views/extensions/pagination/PaginationIcon.js new file mode 100644 index 0000000..4741132 --- /dev/null +++ b/src/views/extensions/pagination/PaginationIcon.js @@ -0,0 +1,33 @@ +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import ReactPaginate from 'react-paginate' + +const IconPagination = () => { + return ( + + + Icon Only + + + + + + ) +} +export default IconPagination diff --git a/src/views/extensions/pagination/PaginationIconText.js b/src/views/extensions/pagination/PaginationIconText.js new file mode 100644 index 0000000..3380d2b --- /dev/null +++ b/src/views/extensions/pagination/PaginationIconText.js @@ -0,0 +1,41 @@ +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import ReactPaginate from 'react-paginate' + +const Previous = () => { + return Prev +} + +const Next = () => { + return Next +} + +const IconTextPagination = () => { + return ( + + + With icon and text + + + } + breakLabel={'...'} + pageRangeDisplayed={5} + marginPagesDisplayed={2} + activeClassName={'active'} + pageClassName={'page-item'} + previousLabel={} + nextLinkClassName={'page-link'} + nextClassName={'page-item next'} + previousClassName={'page-item prev'} + previousLinkClassName={'page-link'} + pageLinkClassName={'page-link'} + breakClassName='page-item' + breakLinkClassName='page-link' + containerClassName={'pagination react-paginate'} + /> + + + ) +} +export default IconTextPagination diff --git a/src/views/extensions/pagination/PaginationInfo.js b/src/views/extensions/pagination/PaginationInfo.js new file mode 100644 index 0000000..6d7df8c --- /dev/null +++ b/src/views/extensions/pagination/PaginationInfo.js @@ -0,0 +1,33 @@ +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import ReactPaginate from 'react-paginate' + +const PaginationInfo = () => { + return ( + + + Info + + + + + + ) +} +export default PaginationInfo diff --git a/src/views/extensions/pagination/PaginationPositions.js b/src/views/extensions/pagination/PaginationPositions.js new file mode 100644 index 0000000..33b6457 --- /dev/null +++ b/src/views/extensions/pagination/PaginationPositions.js @@ -0,0 +1,74 @@ +import { Card, CardHeader, CardTitle, CardBody, Row, Col } from 'reactstrap' +import ReactPaginate from 'react-paginate' + +const PaginationPositions = () => { + return ( + + + Positions + {' '} + + + +
    Left Aligned
    + + + +
    Center Aligned
    + + + +
    Right Aligned
    + + +
    +
    +
    + ) +} +export default PaginationPositions diff --git a/src/views/extensions/pagination/PaginationSizes.js b/src/views/extensions/pagination/PaginationSizes.js new file mode 100644 index 0000000..f3f34ad --- /dev/null +++ b/src/views/extensions/pagination/PaginationSizes.js @@ -0,0 +1,71 @@ +import { Card, CardHeader, CardTitle, CardBody, Row, Col } from 'reactstrap' +import ReactPaginate from 'react-paginate' + +const PaginationSizes = () => { + return ( + + + Sizes + + + + + + + + + + + + + + + + ) +} +export default PaginationSizes diff --git a/src/views/extensions/pagination/PaginationSuccess.js b/src/views/extensions/pagination/PaginationSuccess.js new file mode 100644 index 0000000..dac83b1 --- /dev/null +++ b/src/views/extensions/pagination/PaginationSuccess.js @@ -0,0 +1,33 @@ +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import ReactPaginate from 'react-paginate' + +const PaginationSuccess = () => { + return ( + + + Success + + + + + + ) +} +export default PaginationSuccess diff --git a/src/views/extensions/pagination/PaginationWarning.js b/src/views/extensions/pagination/PaginationWarning.js new file mode 100644 index 0000000..af97caf --- /dev/null +++ b/src/views/extensions/pagination/PaginationWarning.js @@ -0,0 +1,33 @@ +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import ReactPaginate from 'react-paginate' + +const PaginationWarning = () => { + return ( + + + Warning + + + + + + ) +} +export default PaginationWarning diff --git a/src/views/extensions/pagination/SepratedPagination.js b/src/views/extensions/pagination/SepratedPagination.js new file mode 100644 index 0000000..d18ab71 --- /dev/null +++ b/src/views/extensions/pagination/SepratedPagination.js @@ -0,0 +1,32 @@ +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import ReactPaginate from 'react-paginate' +const SeparatedPagination = () => { + return ( + + + Separated + + + + + + ) +} +export default SeparatedPagination diff --git a/src/views/extensions/pagination/index.js b/src/views/extensions/pagination/index.js new file mode 100644 index 0000000..edf3c88 --- /dev/null +++ b/src/views/extensions/pagination/index.js @@ -0,0 +1,60 @@ +import { Fragment } from 'react' +import ExtensionsHeader from '@components/extensions-header' +import { Row, Col } from 'reactstrap' +import BasicPagination from './BasicPagination' +import SepratedPagination from './SepratedPagination' +import PaginationIconText from './PaginationIconText' +import PaginationIcon from './PaginationIcon' +import PaginationSuccess from './PaginationSuccess' +import PaginationDanger from './PaginationDanger' +import PaginationInfo from './PaginationInfo' +import PaginationWarning from './PaginationWarning' +import PaginationPositions from './PaginationPositions' +import PaginationSizes from './PaginationSizes' + +const ReactPaginate = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default ReactPaginate diff --git a/src/views/extensions/ratings/RatingBasic.js b/src/views/extensions/ratings/RatingBasic.js new file mode 100644 index 0000000..571c2f0 --- /dev/null +++ b/src/views/extensions/ratings/RatingBasic.js @@ -0,0 +1,23 @@ +import Rating from 'react-rating' +import { Star } from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const RatingBasic = ({ filledColor, dir }) => { + return ( + + + Basic + + + } + fullSymbol={} + initialRating={2} + direction={dir} + /> + + + ) +} + +export default RatingBasic diff --git a/src/views/extensions/ratings/RatingControlled.js b/src/views/extensions/ratings/RatingControlled.js new file mode 100644 index 0000000..a2147f9 --- /dev/null +++ b/src/views/extensions/ratings/RatingControlled.js @@ -0,0 +1,38 @@ +import { useState } from 'react' +import Rating from 'react-rating' +import { Star } from 'react-feather' +import { Card, Button, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const RatingControlled = ({ filledColor, dir }) => { + const [value, setValue] = useState(0) + + return ( + + + Controlled Ratings + + + } + fullSymbol={} + initialRating={value} + onChange={e => setValue(e)} + direction={dir} + /> +
    + + + +
    +
    +
    + ) +} + +export default RatingControlled diff --git a/src/views/extensions/ratings/RatingCustomSvg.js b/src/views/extensions/ratings/RatingCustomSvg.js new file mode 100644 index 0000000..39998bc --- /dev/null +++ b/src/views/extensions/ratings/RatingCustomSvg.js @@ -0,0 +1,28 @@ +import Rating from 'react-rating' +import { Sun, Cloud, CloudLightning, CloudSnow, CloudDrizzle } from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const RatingCustomSvg = ({ emptyColor, dir }) => { + return ( + + + Custom SVG + + + } + fullSymbol={[ + , + , + , + + ]} + stop={4} + direction={dir} + /> + + + ) +} + +export default RatingCustomSvg diff --git a/src/views/extensions/ratings/RatingEvents.js b/src/views/extensions/ratings/RatingEvents.js new file mode 100644 index 0000000..ec189a5 --- /dev/null +++ b/src/views/extensions/ratings/RatingEvents.js @@ -0,0 +1,33 @@ +import Rating from 'react-rating' +import { Star } from 'react-feather' +import RatingsHover from './RatingsHover' +import { Card, CardHeader, CardTitle, CardBody, CardText, Row, Col } from 'reactstrap' + +const RatingEvents = ({ filledColor, dir }) => { + return ( + + + Events + + + + + On Change + } + fullSymbol={} + onChange={rate => alert(rate)} + direction={dir} + /> + + + On Hover + + + + + + ) +} + +export default RatingEvents diff --git a/src/views/extensions/ratings/RatingFractional.js b/src/views/extensions/ratings/RatingFractional.js new file mode 100644 index 0000000..b0c9185 --- /dev/null +++ b/src/views/extensions/ratings/RatingFractional.js @@ -0,0 +1,24 @@ +import Rating from 'react-rating' +import { Star } from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const RatingFractional = ({ filledColor, dir }) => { + return ( + + + Fractional + + + } + fullSymbol={} + fractions={2} + initialRating={2.5} + direction={dir} + /> + + + ) +} + +export default RatingFractional diff --git a/src/views/extensions/ratings/RatingNumbers.js b/src/views/extensions/ratings/RatingNumbers.js new file mode 100644 index 0000000..2574bca --- /dev/null +++ b/src/views/extensions/ratings/RatingNumbers.js @@ -0,0 +1,23 @@ +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import Rating from 'react-rating' + +const RatingNumbers = props => { + return ( + + + Numbers + + + -} + fullSymbol={[1, 2, 3, 4, 5].map(n => ( + {n} + ))} + direction={props.dir} + /> + + + ) +} + +export default RatingNumbers diff --git a/src/views/extensions/ratings/RatingReadOnly.js b/src/views/extensions/ratings/RatingReadOnly.js new file mode 100644 index 0000000..deacba8 --- /dev/null +++ b/src/views/extensions/ratings/RatingReadOnly.js @@ -0,0 +1,24 @@ +import Rating from 'react-rating' +import { Star } from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const RatingReadOnly = ({ filledColor, dir }) => { + return ( + + + Readonly + + + } + fullSymbol={} + readonly + initialRating={2} + direction={dir} + /> + + + ) +} + +export default RatingReadOnly diff --git a/src/views/extensions/ratings/RatingSizes.js b/src/views/extensions/ratings/RatingSizes.js new file mode 100644 index 0000000..1329e99 --- /dev/null +++ b/src/views/extensions/ratings/RatingSizes.js @@ -0,0 +1,35 @@ +import Rating from 'react-rating' +import { Star } from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const RatingSizes = ({ filledColor, dir }) => { + return ( + + + Sizes + + +
    Large
    + } + fullSymbol={} + /> +
    Default
    + } + fullSymbol={} + /> +
    Small
    + } + fullSymbol={} + /> +
    +
    + ) +} + +export default RatingSizes diff --git a/src/views/extensions/ratings/RatingsHover.js b/src/views/extensions/ratings/RatingsHover.js new file mode 100644 index 0000000..b88bc8b --- /dev/null +++ b/src/views/extensions/ratings/RatingsHover.js @@ -0,0 +1,32 @@ +import { useState, Fragment } from 'react' +import Rating from 'react-rating' +import { Star } from 'react-feather' + +const RatingsHover = ({ filledColor, dir }) => { + const [value, setValue] = useState(0) + + const onHover = rate => { + if (rate !== undefined) { + setValue(rate) + } + } + + return ( + + } + fullSymbol={} + onHover={rate => onHover(rate)} + onChange={rate => setValue(rate)} + direction={dir} + /> +
    + Ratings: {value} +
    +
    + ) +} + +export default RatingsHover diff --git a/src/views/extensions/ratings/index.js b/src/views/extensions/ratings/index.js new file mode 100644 index 0000000..3928889 --- /dev/null +++ b/src/views/extensions/ratings/index.js @@ -0,0 +1,55 @@ +import { Fragment, useContext } from 'react' +import { Row, Col } from 'reactstrap' +import { useRTL } from '@hooks/useRTL' +import RatingBasic from './RatingBasic' +import RatingSizes from './RatingSizes' +import RatingEvents from './RatingEvents' +import RatingNumbers from './RatingNumbers' +import RatingReadOnly from './RatingReadOnly' +import RatingCustomSvg from './RatingCustomSvg' +import RatingFractional from './RatingFractional' +import RatingControlled from './RatingControlled' +import ExtensionsHeader from '@components/extensions-header' +import { ThemeColors } from '@src/utility/context/ThemeColors' + +const Rating = () => { + const [isRtl, setIsRtl] = useRTL() + const themeColors = useContext(ThemeColors) + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default Rating diff --git a/src/views/extensions/react-player/MediaPlayerAudio.js b/src/views/extensions/react-player/MediaPlayerAudio.js new file mode 100644 index 0000000..6fc532d --- /dev/null +++ b/src/views/extensions/react-player/MediaPlayerAudio.js @@ -0,0 +1,186 @@ +import { useState, useEffect, useRef } from 'react' +import { Card, CardTitle, CardHeader, CardBody, Row, Col, Table, Button, Progress, CustomInput } from 'reactstrap' +import Prism from 'prismjs' +import ReactPlayer from 'react-player' + +const pad = string => { + return `0${string}`.slice(-2) +} +const format = seconds => { + const date = new Date(seconds * 1000) + const hh = date.getUTCHours() + const mm = date.getUTCMinutes() + const ss = pad(date.getUTCSeconds()) + if (hh) { + return `${hh}:${pad(mm)}:${ss}` + } + return `${mm}:${ss}` +} + +const MediaPlayerAudio = () => { + useEffect(() => { + Prism.highlightAll() + }) + + const audioRef = useRef(null) + + const urlLink = 'https://soundcloud.com/2ghost/we-will-rock-you' + const [url, setUrl] = useState(urlLink) + const [playing, setPlaying] = useState(false) + const [volume, setVolume] = useState(0.75) + const [muted, setMuted] = useState(false) + const [played, setPlayed] = useState(0) + const [loaded, setLoaded] = useState(0) + const [duration, setDuration] = useState(0) + const [seeking, setSeeking] = useState(null) + + const load = url => { + setUrl(url) + setPlayed(0) + setLoaded(0) + } + const handlePlayPause = () => setPlaying(!playing) + const handleStop = () => { + setPlaying(false) + setUrl(null) + } + const handleVolumeChange = e => setVolume(parseFloat(e.target.value)) + const handleToggleMuted = () => setMuted(!muted) + const handlePlay = () => setPlaying(true) + const handlePause = () => setPlaying(false) + const handleSeekMouseDown = () => setSeeking(true) + const handleSeekChange = e => { + setPlayed(parseFloat(e.target.value)) + } + const handleSeekMouseUp = e => { + setSeeking(false) + audioRef.current.seekTo(parseFloat(e.target.value)) + } + const handleProgress = state => { + if (!seeking) { + setPlayed(state.played) + setLoaded(state.loaded) + } + } + const handleDuration = duration => setDuration(duration) + useEffect(() => { + if (url === null) { + load(urlLink) + } + }) + + // for duration, elapsed and remaining time + const Duration = ({ className, seconds }) => { + return ( + + ) + } + const preDuration = + const preElapsed = + const preRemaining = + + return ( + + + Audio + + + + + console.log('onSeek', e)} + onProgress={handleProgress} + onDuration={handleDuration} + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Controls + + +
    Seek + +
    Volume + +
    Muted + +
    Played + +
    Loaded + +
    + + +
    +              
    +                {`state={
    +  playing: ${playing},
    +  volume: ${volume.toFixed(2)},
    +  played: ${played.toFixed(2)},
    +  loaded: ${loaded.toFixed(2)},
    +  duration: ${format(preDuration.props.seconds)},
    +  elapsed: ${format(preElapsed.props.seconds)},
    +  remaining: ${format(preRemaining.props.seconds)}
    +}
    +`}
    +              
    +            
    + +
    +
    +
    + ) +} + +export default MediaPlayerAudio diff --git a/src/views/extensions/react-player/MediaPlayerControlled.js b/src/views/extensions/react-player/MediaPlayerControlled.js new file mode 100644 index 0000000..b6a66ec --- /dev/null +++ b/src/views/extensions/react-player/MediaPlayerControlled.js @@ -0,0 +1,256 @@ +import { useState, useEffect, useRef } from 'react' +import { findDOMNode } from 'react-dom' +import { Card, CardTitle, CardHeader, CardBody, Row, Col, Table, Button, Progress, CustomInput } from 'reactstrap' +import Prism from 'prismjs' +import ReactPlayer from 'react-player' +import screenfull from 'screenfull' + +const pad = string => { + return `0${string}`.slice(-2) +} +const format = seconds => { + const date = new Date(seconds * 1000) + const hh = date.getUTCHours() + const mm = date.getUTCMinutes() + const ss = pad(date.getUTCSeconds()) + if (hh) { + return `${hh}:${pad(mm)}:${ss}` + } + return `${mm}:${ss}` +} + +const MediaPlayerControlledVideo = () => { + useEffect(() => { + Prism.highlightAll() + }) + + const videoRef = useRef(null) + + const urlLink = 'http://youtube.com/watch?v=FCPdIvXo2rU' + const [url, setUrl] = useState(urlLink) + const [playing, setPlaying] = useState(false) + const [controls, setControls] = useState(false) + const [volume, setVolume] = useState(0.75) + const [muted, setMuted] = useState(false) + const [played, setPlayed] = useState(0) + const [loaded, setLoaded] = useState(0) + const [duration, setDuration] = useState(0) + const [playbackRate, setPlaybackRate] = useState(1.0) + const [loop, setLoop] = useState(false) + const [seeking, setSeeking] = useState(null) + + const load = url => { + setUrl(url) + setPlayed(0) + setLoaded(0) + } + const handlePlayPause = () => setPlaying(!playing) + const handleStop = () => { + setPlaying(false) + setUrl(null) + } + const handleToggleControls = () => { + setControls(!controls) + setUrl(null) + } + useEffect(() => { + if (url === null) { + load(urlLink) + } + }) + const handleToggleLoop = () => setLoop(!loop) + const handleVolumeChange = e => setVolume(parseFloat(e.target.value)) + const handleToggleMuted = () => setMuted(!muted) + const handlePlaybackRate = e => setPlaybackRate(parseFloat(e.target.value)) + const handlePlay = () => setPlaying(true) + const handlePause = () => setPlaying(false) + const handleSeekMouseDown = () => setSeeking(true) + const handleSeekChange = e => { + setPlayed(parseFloat(e.target.value)) + } + const handleSeekMouseUp = e => { + setSeeking(false) + videoRef.current.seekTo(parseFloat(e.target.value)) + } + const handleProgress = state => { + if (!seeking) { + setPlayed(state.played) + setLoaded(state.loaded) + } + } + const handleEnded = () => setPlaying(loop) + const handleDuration = duration => setDuration(duration) + const handleFullscreen = () => { + screenfull.request(findDOMNode(videoRef.current)) + } + + // for duration, elapsed and remaining time + const Duration = ({ className, seconds }) => { + return ( + + ) + } + const preDuration = + const preElapsed = + const preRemaining = + + return ( + + + Controlled Video + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Controls + + + +
    Speed + + + +
    Seek + +
    Volume + +
    Controls + +
    Muted + +
    Loop + +
    Played + +
    Loaded + +
    + + + + +
    +              
    +                {`state={
    +  playing: ${playing},
    +  volume: ${volume.toFixed(2)},
    +  played: ${played.toFixed(2)},
    +  loaded: ${loaded.toFixed(2)},
    +  duration: ${format(preDuration.props.seconds)},
    +  elapsed: ${format(preElapsed.props.seconds)},
    +  remaining: ${format(preRemaining.props.seconds)}
    +}
    +`}
    +              
    +            
    + +
    +
    +
    + ) +} + +export default MediaPlayerControlledVideo diff --git a/src/views/extensions/react-player/MediaPlayerVideo.js b/src/views/extensions/react-player/MediaPlayerVideo.js new file mode 100644 index 0000000..773b0b8 --- /dev/null +++ b/src/views/extensions/react-player/MediaPlayerVideo.js @@ -0,0 +1,22 @@ +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import ReactPlayer from 'react-player' + +const MediaPlayerVideo = () => { + return ( + + + Video + + + + + + ) +} + +export default MediaPlayerVideo diff --git a/src/views/extensions/react-player/index.js b/src/views/extensions/react-player/index.js new file mode 100644 index 0000000..38718e5 --- /dev/null +++ b/src/views/extensions/react-player/index.js @@ -0,0 +1,31 @@ +import { Fragment } from 'react' +import { Row, Col } from 'reactstrap' +import MediaPlayerVideo from './MediaPlayerVideo' +import MediaPlayerAudio from './MediaPlayerAudio' +import MediaPlayerControlled from './MediaPlayerControlled' +import ExtensionsHeader from '@components/extensions-header' + +const ReactPlayer = () => { + return ( + + + + + + + + + + + + + + + ) +} + +export default ReactPlayer diff --git a/src/views/extensions/sliders/SliderBehaviour.js b/src/views/extensions/sliders/SliderBehaviour.js new file mode 100644 index 0000000..e7932a9 --- /dev/null +++ b/src/views/extensions/sliders/SliderBehaviour.js @@ -0,0 +1,60 @@ +import Nouislider from 'nouislider-react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const SliderBehaviour = ({ direction }) => { + return ( + + + Slider Behaviour + + +
    Tap
    + +
    Drag
    + +
    Fixed dragging
    + +
    Combined options
    + +
    +
    + ) +} + +export default SliderBehaviour diff --git a/src/views/extensions/sliders/SliderColors.js b/src/views/extensions/sliders/SliderColors.js new file mode 100644 index 0000000..96d58a8 --- /dev/null +++ b/src/views/extensions/sliders/SliderColors.js @@ -0,0 +1,51 @@ +import Nouislider from 'nouislider-react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const SliderValues = ({ direction }) => { + const colorOptions = { + start: [40, 60], + connect: true, + behaviour: 'drag', + step: 10, + tooltips: true, + range: { + min: 0, + max: 100 + }, + pips: { + mode: 'steps', + stepped: true, + density: 5 + }, + direction + } + + return ( + + + Colors + + +
    Default / Primary Color Slider
    + + +
    Secondary Color Slider
    + + +
    Success Color Slider
    + + +
    Danger Color Slider
    + + +
    warning Color Slider
    + + +
    info Color Slider
    + +
    +
    + ) +} + +export default SliderValues diff --git a/src/views/extensions/sliders/SliderConnectUpper.js b/src/views/extensions/sliders/SliderConnectUpper.js new file mode 100644 index 0000000..807272e --- /dev/null +++ b/src/views/extensions/sliders/SliderConnectUpper.js @@ -0,0 +1,29 @@ +import Nouislider from 'nouislider-react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const SliderConnectUpper = ({ direction }) => { + return ( + + + Connect to upper + + + + + + ) +} + +export default SliderConnectUpper diff --git a/src/views/extensions/sliders/SliderScalePips.js b/src/views/extensions/sliders/SliderScalePips.js new file mode 100644 index 0000000..6b656e4 --- /dev/null +++ b/src/views/extensions/sliders/SliderScalePips.js @@ -0,0 +1,32 @@ +import Nouislider from 'nouislider-react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const SliderScalePips = ({ direction }) => { + return ( + + + Slider Scales / Pips + + + + + + ) +} + +export default SliderScalePips diff --git a/src/views/extensions/sliders/SliderValues.js b/src/views/extensions/sliders/SliderValues.js new file mode 100644 index 0000000..20890a3 --- /dev/null +++ b/src/views/extensions/sliders/SliderValues.js @@ -0,0 +1,34 @@ +import Nouislider from 'nouislider-react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const SliderValues = ({ direction }) => { + return ( + + + Slider Values + + +
    Handles
    + +
    Snapping between steps
    + +
    +
    + ) +} + +export default SliderValues diff --git a/src/views/extensions/sliders/SliderVertical.js b/src/views/extensions/sliders/SliderVertical.js new file mode 100644 index 0000000..c66312b --- /dev/null +++ b/src/views/extensions/sliders/SliderVertical.js @@ -0,0 +1,28 @@ +import Nouislider from 'nouislider-react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const SliderVertical = ({ direction }) => { + return ( + + + Vertical Default + + + + + + ) +} + +export default SliderVertical diff --git a/src/views/extensions/sliders/SliderVerticalLimit.js b/src/views/extensions/sliders/SliderVerticalLimit.js new file mode 100644 index 0000000..f41865a --- /dev/null +++ b/src/views/extensions/sliders/SliderVerticalLimit.js @@ -0,0 +1,31 @@ +import Nouislider from 'nouislider-react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const SliderLimit = ({ direction }) => { + return ( + + + Limit + + + + + + ) +} + +export default SliderLimit diff --git a/src/views/extensions/sliders/SliderVerticalTooltips.js b/src/views/extensions/sliders/SliderVerticalTooltips.js new file mode 100644 index 0000000..df4e4b3 --- /dev/null +++ b/src/views/extensions/sliders/SliderVerticalTooltips.js @@ -0,0 +1,37 @@ +import Nouislider from 'nouislider-react' +import wNumb from 'wnumb' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const SliderTooltips = ({ direction }) => { + return ( + + + Tooltips + + + + + + ) +} + +export default SliderTooltips diff --git a/src/views/extensions/sliders/SliderWithInput.js b/src/views/extensions/sliders/SliderWithInput.js new file mode 100644 index 0000000..c00a973 --- /dev/null +++ b/src/views/extensions/sliders/SliderWithInput.js @@ -0,0 +1,178 @@ +import { useState } from 'react' +import Nouislider from 'nouislider-react' +import { Card, CardHeader, CardTitle, CardBody, Input, Row, Col } from 'reactstrap' + +const SliderWithInput = ({ direction }) => { + const [upperConnect, setUpperConnect] = useState(10) + const [lowerConnect, setLowerConnect] = useState(30.0) + + return ( + + + Slider With Input + + + + + + setUpperConnect(e.target.value)} + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + setLowerConnect(e.target.value)} + /> + + + + + ) +} + +export default SliderWithInput diff --git a/src/views/extensions/sliders/SlidersBootstrap.js b/src/views/extensions/sliders/SlidersBootstrap.js new file mode 100644 index 0000000..5771823 --- /dev/null +++ b/src/views/extensions/sliders/SlidersBootstrap.js @@ -0,0 +1,23 @@ +import { Card, CardHeader, CardTitle, CardBody, FormGroup, Input, Label } from 'reactstrap' + +const SlidersBootstrap = () => { + return ( + + + Default Bootstrap 4 slider + + + + + + + + + + + + + ) +} + +export default SlidersBootstrap diff --git a/src/views/extensions/sliders/index.js b/src/views/extensions/sliders/index.js new file mode 100644 index 0000000..e2724e1 --- /dev/null +++ b/src/views/extensions/sliders/index.js @@ -0,0 +1,67 @@ +import { Fragment } from 'react' +import { Row, Col } from 'reactstrap' +import { useRTL } from '@hooks/useRTL' +import SliderColors from './SliderColors' +import SliderValues from './SliderValues' +import SliderVertical from './SliderVertical' +import SliderBehaviour from './SliderBehaviour' +import SliderScalePips from './SliderScalePips' +import SliderWithInput from './SliderWithInput' +import SliderBootstrap from './SlidersBootstrap' +import SliderConnectUpper from './SliderConnectUpper' +import SliderVerticalLimit from './SliderVerticalLimit' +import SliderVerticalTooltip from './SliderVerticalTooltips' +import ExtensionsHeader from '@components/extensions-header' + +import '@styles/react/libs/noui-slider/noui-slider.scss' + +const Slider = () => { + const [isRtl, setIsRtl] = useRTL() + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default Slider diff --git a/src/views/extensions/sweet-alert/SweetAlertAnimations.js b/src/views/extensions/sweet-alert/SweetAlertAnimations.js new file mode 100644 index 0000000..32977f3 --- /dev/null +++ b/src/views/extensions/sweet-alert/SweetAlertAnimations.js @@ -0,0 +1,104 @@ +import Swal from 'sweetalert2' +import withReactContent from 'sweetalert2-react-content' +import { Card, CardHeader, CardBody, CardTitle, Button, CardText } from 'reactstrap' + +const MySwal = withReactContent(Swal) + +const AnimatedSweetAlert = () => { + const handleBounceIn = () => { + return MySwal.fire({ + title: 'Bounce In Animation', + customClass: { + confirmButton: 'btn btn-primary' + }, + showClass: { + popup: 'animate__animated animate__bounceIn' + }, + buttonsStyling: false + }) + } + + const handleFadeIn = () => { + return MySwal.fire({ + title: 'Fade In Animation', + customClass: { + confirmButton: 'btn btn-primary' + }, + showClass: { + popup: 'animate__animated animate__fadeIn' + }, + buttonsStyling: false + }) + } + + const handleFlipIn = () => { + return MySwal.fire({ + title: 'Flip In Animation', + customClass: { + confirmButton: 'btn btn-primary' + }, + showClass: { + popup: 'animate__animated animate__flipInX' + }, + buttonsStyling: false + }) + } + + const handleTada = () => { + return MySwal.fire({ + title: 'Tada Animation', + customClass: { + confirmButton: 'btn btn-primary' + }, + showClass: { + popup: 'animate__animated animate__tada' + }, + buttonsStyling: false + }) + } + + const handleShake = () => { + return MySwal.fire({ + title: 'Shake Animation', + customClass: { + confirmButton: 'btn btn-primary' + }, + showClass: { + popup: 'animate__animated animate__shakeX' + }, + buttonsStyling: false + }) + } + + return ( + + + Animations + + + + Use popup inside showClass parameter to add animation to your alert. + +
    + + + + + +
    +
    +
    + ) +} + +export default AnimatedSweetAlert diff --git a/src/views/extensions/sweet-alert/SweetAlertBasic.js b/src/views/extensions/sweet-alert/SweetAlertBasic.js new file mode 100644 index 0000000..ec5f54c --- /dev/null +++ b/src/views/extensions/sweet-alert/SweetAlertBasic.js @@ -0,0 +1,98 @@ +import Swal from 'sweetalert2' +import { ThumbsUp, ThumbsDown } from 'react-feather' +import withReactContent from 'sweetalert2-react-content' +import { Card, CardHeader, CardBody, CardTitle, Button, CardText } from 'reactstrap' + +const MySwal = withReactContent(Swal) + +const BasicSweetAlert = () => { + const handleBasicTitleAlert = () => { + return MySwal.fire({ + title: 'Any fool can use a computer', + customClass: { + confirmButton: 'btn btn-primary' + }, + buttonsStyling: false + }) + } + + const handleTitleAlert = () => { + return MySwal.fire({ + title: 'The Internet?,', + text: 'That thing is still around?', + customClass: { + confirmButton: 'btn btn-primary' + }, + buttonsStyling: false + }) + } + + const handleFooterAlert = () => { + return MySwal.fire({ + icon: 'error', + title: 'Oops...', + text: 'Something went wrong!', + footer: 'Why do I have this issue?', + customClass: { + confirmButton: 'btn btn-primary' + }, + buttonsStyling: false + }) + } + + const handleHTMLAlert = () => { + return MySwal.fire({ + title: 'HTML example', + icon: 'info', + html: + 'You can use bold text, ' + + 'links ' + + 'and other HTML tags', + showCloseButton: true, + showCancelButton: true, + focusConfirm: false, + confirmButtonText: ( + + + Great! + + ), + cancelButtonText: , + customClass: { + confirmButton: 'btn btn-primary', + cancelButton: 'btn btn-outline-danger ml-1' + }, + buttonsStyling: false + }) + } + + return ( + + + Basic + + + + SweetAlert automatically centers itself on the page and looks great no matter if you're using a desktop + computer, mobile or tablet. It's even highly customizable, as you can see below! + +
    + + + + +
    +
    +
    + ) +} + +export default BasicSweetAlert diff --git a/src/views/extensions/sweet-alert/SweetAlertCallback.js b/src/views/extensions/sweet-alert/SweetAlertCallback.js new file mode 100644 index 0000000..dcc8425 --- /dev/null +++ b/src/views/extensions/sweet-alert/SweetAlertCallback.js @@ -0,0 +1,95 @@ +import { Card, CardHeader, CardBody, CardTitle, Button, Row, Col } from 'reactstrap' +import Swal from 'sweetalert2' +import withReactContent from 'sweetalert2-react-content' + +const MySwal = withReactContent(Swal) + +const BasicSweetCallback = () => { + const handleConfirmText = () => { + return MySwal.fire({ + title: 'Are you sure?', + text: "You won't be able to revert this!", + icon: 'warning', + showCancelButton: true, + confirmButtonText: 'Yes, delete it!', + customClass: { + confirmButton: 'btn btn-primary', + cancelButton: 'btn btn-outline-danger ml-1' + }, + buttonsStyling: false + }).then(function (result) { + if (result.value) { + MySwal.fire({ + icon: 'success', + title: 'Deleted!', + text: 'Your file has been deleted.', + customClass: { + confirmButton: 'btn btn-success' + } + }) + } + }) + } + + const handleConfirmCancel = () => { + return MySwal.fire({ + title: 'Are you sure?', + text: "You won't be able to revert this!", + icon: 'warning', + showCancelButton: true, + confirmButtonText: 'Yes, delete it!', + customClass: { + confirmButton: 'btn btn-primary', + cancelButton: 'btn btn-danger ml-1' + }, + buttonsStyling: false + }).then(function (result) { + if (result.value) { + MySwal.fire({ + icon: 'success', + title: 'Deleted!', + text: 'Your file has been deleted.', + customClass: { + confirmButton: 'btn btn-success' + } + }) + } else if (result.dismiss === MySwal.DismissReason.cancel) { + MySwal.fire({ + title: 'Cancelled', + text: 'Your imaginary file is safe :)', + icon: 'error', + customClass: { + confirmButton: 'btn btn-success' + } + }) + } + }) + } + + return ( + + + Callback + + + + +
    Confirm Button Text
    + + + + +
    Confirm Button Color
    + + +
    +
    +
    + ) +} + +export default BasicSweetCallback diff --git a/src/views/extensions/sweet-alert/SweetAlertOptions.js b/src/views/extensions/sweet-alert/SweetAlertOptions.js new file mode 100644 index 0000000..f5f47d4 --- /dev/null +++ b/src/views/extensions/sweet-alert/SweetAlertOptions.js @@ -0,0 +1,147 @@ +import { Card, CardHeader, CardBody, CardTitle, Button } from 'reactstrap' +import Swal from 'sweetalert2' +import withReactContent from 'sweetalert2-react-content' +import alertImg from '@src/assets/images/slider/04.jpg' + +const MySwal = withReactContent(Swal) + +const SweetAlertOptions = () => { + const handleImageAlert = () => { + return MySwal.fire({ + title: 'Sweet!', + text: 'Modal with a custom image.', + imageUrl: alertImg, + imageWidth: 400, + imageHeight: 200, + imageAlt: 'Custom image', + customClass: { confirmButton: 'btn btn-primary' }, + buttonsStyling: false + }) + } + + const handleTimeoutAlert = () => { + let timerInterval + Swal.fire({ + title: 'Auto close alert!', + html: 'I will close in seconds.', + timer: 2000, + onBeforeOpen() { + Swal.showLoading() + timerInterval = setInterval(function () { + Swal.getContent().querySelector('strong').textContent = Swal.getTimerLeft() + }, 100) + }, + onClose() { + clearInterval(timerInterval) + } + }).then(function (result) { + if (result.dismiss === Swal.DismissReason.timer) { + console.log('I was closed by the timer') + } + }) + } + + const handleClickOutside = () => { + return MySwal.fire({ + title: 'Click outside to close!', + text: 'This is a cool message!', + allowOutsideClick: true, + customClass: { confirmButton: 'btn btn-primary' }, + buttonsStyling: false + }) + } + + const handleQuestions = () => { + return MySwal.mixin({ + input: 'text', + confirmButtonText: 'Next →', + showCancelButton: true, + progressSteps: ['1', '2', '3'], + buttonsStyling: false, + customClass: { + confirmButton: 'btn btn-primary', + cancelButton: 'btn btn-danger ml-1' + } + }) + .queue(['Question 1', 'Question 2', 'Question 3']) + .then(function (result) { + if (result.value) { + MySwal.fire({ + title: 'All done!', + html: `Your answers:
    ${JSON.stringify(result.value)}
    `, + confirmButtonText: 'Lovely!', + customClass: { confirmButton: 'btn btn-primary' } + }) + } + }) + } + + const handleAjax = () => { + MySwal.fire({ + title: 'Search for a user', + input: 'text', + customClass: { + confirmButton: 'btn btn-primary', + cancelButton: 'btn btn-danger ml-1' + }, + buttonsStyling: false, + inputAttributes: { + autocapitalize: 'off' + }, + showCancelButton: true, + confirmButtonText: 'Look up', + showLoaderOnConfirm: true, + preConfirm(login) { + return fetch(`//api.github.com/users/${login}`) + .then(function (response) { + if (!response.ok) { + throw new Error(response.statusText) + } + return response.json() + }) + .catch(function (error) { + MySwal.showValidationMessage(`Request failed: ${error}`) + }) + } + }).then(function (result) { + if (result.value) { + MySwal.fire({ + title: `${result.value.login}'s avatar`, + imageUrl: result.value.avatar_url, + customClass: { + confirmButton: 'btn btn-primary' + } + }) + } + }) + } + + return ( + + + Options + + +
    + + + + + +
    +
    +
    + ) +} + +export default SweetAlertOptions diff --git a/src/views/extensions/sweet-alert/SweetAlertPositions.js b/src/views/extensions/sweet-alert/SweetAlertPositions.js new file mode 100644 index 0000000..b4cea37 --- /dev/null +++ b/src/views/extensions/sweet-alert/SweetAlertPositions.js @@ -0,0 +1,80 @@ +import { Card, CardHeader, CardBody, CardTitle, Button, CardText } from 'reactstrap' +import Swal from 'sweetalert2' +import withReactContent from 'sweetalert2-react-content' + +const MySwal = withReactContent(Swal) + +const SweetAlertPositions = () => { + const handleTopStart = () => { + return MySwal.fire({ + position: 'top-start', + icon: 'success', + title: 'Your work has been saved', + showConfirmButton: false, + timer: 1500 + }) + } + + const handleTopEnd = () => { + return MySwal.fire({ + position: 'top-end', + icon: 'success', + title: 'Your work has been saved', + showConfirmButton: false, + timer: 1500 + }) + } + + const handleBottomStart = () => { + return MySwal.fire({ + position: 'bottom-start', + icon: 'success', + title: 'Your work has been saved', + showConfirmButton: false, + timer: 1500 + }) + } + + const handleBottomEnd = () => { + return MySwal.fire({ + position: 'bottom-end', + icon: 'success', + title: 'Your work has been saved', + showConfirmButton: false, + timer: 1500 + }) + } + + return ( + + + Position + + + + You can specify position of your alert with + {'position : top-start | top-end | bottom-start | bottom-end '}{' '} + +
    + + + + + + + +
    +
    +
    + ) +} + +export default SweetAlertPositions diff --git a/src/views/extensions/sweet-alert/SweetAlertTypes.js b/src/views/extensions/sweet-alert/SweetAlertTypes.js new file mode 100644 index 0000000..5d2bcad --- /dev/null +++ b/src/views/extensions/sweet-alert/SweetAlertTypes.js @@ -0,0 +1,85 @@ +import { Card, CardHeader, CardBody, CardTitle, Button, CardText } from 'reactstrap' +import Swal from 'sweetalert2' +import withReactContent from 'sweetalert2-react-content' + +const MySwal = withReactContent(Swal) + +const SweetAlertTypes = () => { + const handleSuccess = () => { + return MySwal.fire({ + title: 'Good job!', + text: 'You clicked the button!', + icon: 'success', + customClass: { + confirmButton: 'btn btn-primary' + }, + buttonsStyling: false + }) + } + + const handleInfo = () => { + return MySwal.fire({ + title: 'Info!', + text: 'You clicked the button!', + icon: 'info', + customClass: { + confirmButton: 'btn btn-primary' + }, + buttonsStyling: false + }) + } + + const handleWarning = () => { + return MySwal.fire({ + title: 'Warning!', + text: ' You clicked the button!', + icon: 'warning', + customClass: { + confirmButton: 'btn btn-primary' + }, + buttonsStyling: false + }) + } + + const handleError = () => { + return MySwal.fire({ + title: 'Error!', + text: ' You clicked the button!', + icon: 'error', + customClass: { + confirmButton: 'btn btn-primary' + }, + buttonsStyling: false + }) + } + + return ( + + + Types + + + + SweetAlert comes with 4 built-in types which will show a corresponding icon animation: "warning", "error", + "success" and "info". + +
    + + + + +
    +
    +
    + ) +} + +export default SweetAlertTypes diff --git a/src/views/extensions/sweet-alert/index.js b/src/views/extensions/sweet-alert/index.js new file mode 100644 index 0000000..458c69c --- /dev/null +++ b/src/views/extensions/sweet-alert/index.js @@ -0,0 +1,46 @@ +import { Fragment } from 'react' +import ExtensionsHeader from '@components/extensions-header' +import { Row, Col } from 'reactstrap' +import SweetAlertBasic from './SweetAlertBasic' +import SweetAlertPositions from './SweetAlertPositions' +import SweetAlertAnimations from './SweetAlertAnimations' +import SweetAlertTypes from './SweetAlertTypes' +import SweetAlertOptions from './SweetAlertOptions' +import SweetAlertCallback from './SweetAlertCallback' + +import 'animate.css/animate.css' +import '@styles/base/plugins/extensions/ext-component-sweet-alerts.scss' + +const SweetAlert = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default SweetAlert diff --git a/src/views/extensions/swiper/3DEffect.js b/src/views/extensions/swiper/3DEffect.js new file mode 100644 index 0000000..d6e8736 --- /dev/null +++ b/src/views/extensions/swiper/3DEffect.js @@ -0,0 +1,45 @@ +import SwiperCore, { EffectCube, Pagination } from 'swiper' +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-21.jpg' +import img2 from '@src/assets/images/banner/banner-22.jpg' +import img3 from '@src/assets/images/banner/banner-23.jpg' +import img4 from '@src/assets/images/banner/banner-24.jpg' + +const params = { + effect: 'cube', + className: 'swiper-cube-effect', + pagination: { + clickable: true + } +} + +SwiperCore.use([EffectCube, Pagination]) + +const SwiperThreeD = ({ isRtl }) => { + return ( + + + 3D Cube Effect + + + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + + + ) +} + +export default SwiperThreeD diff --git a/src/views/extensions/swiper/CenteredSlidesStyle1.js b/src/views/extensions/swiper/CenteredSlidesStyle1.js new file mode 100644 index 0000000..475c30d --- /dev/null +++ b/src/views/extensions/swiper/CenteredSlidesStyle1.js @@ -0,0 +1,48 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import { Play, DollarSign, HelpCircle, FileText, Archive } from 'react-feather' + +const SwiperCenterSlidesStyle = ({ isRtl }) => { + const params = { + className: 'swiper-centered-slides p-1', + slidesPerView: 'auto', + spaceBetween: 30, + centeredSlides: true, + navigation: true, + slideToClickedSlide: true + } + + return ( + + + Centered Slides option-1 + + + + + +

    Getting Started

    +
    + + +

    Pricing & Plans

    +
    + + +

    Sales Questions

    +
    + + +

    User Guides

    +
    + + +

    General Guides

    +
    +
    +
    +
    + ) +} + +export default SwiperCenterSlidesStyle diff --git a/src/views/extensions/swiper/CenteredSlidesStyle2.js b/src/views/extensions/swiper/CenteredSlidesStyle2.js new file mode 100644 index 0000000..6373aab --- /dev/null +++ b/src/views/extensions/swiper/CenteredSlidesStyle2.js @@ -0,0 +1,47 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import { Play, DollarSign, HelpCircle, FileText, Archive } from 'react-feather' + +const SwiperCenterSlidesStyle = ({ isRtl }) => { + const params = { + className: 'swiper-centered-slides-2 p-1', + slidesPerView: 'auto', + spaceBetween: 30, + centeredSlides: true, + slideToClickedSlide: true + } + + return ( + + + Centered Slides option-2 + + + + + + Getting Started + + + + Pricing & Plans + + + + Sales Questions + + + + User Guides + + + + General Guides + + + + + ) +} + +export default SwiperCenterSlidesStyle diff --git a/src/views/extensions/swiper/SwiperAutoplay.js b/src/views/extensions/swiper/SwiperAutoplay.js new file mode 100644 index 0000000..6ac9b9f --- /dev/null +++ b/src/views/extensions/swiper/SwiperAutoplay.js @@ -0,0 +1,55 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-20.jpg' +import img2 from '@src/assets/images/banner/banner-7.jpg' +import img3 from '@src/assets/images/banner/banner-8.jpg' +import img4 from '@src/assets/images/banner/banner-9.jpg' +import img5 from '@src/assets/images/banner/banner-10.jpg' +import img6 from '@src/assets/images/banner/banner-11.jpg' + +const params = { + spaceBetween: 30, + centeredSlides: true, + autoplay: { + delay: 2500, + disableOnInteraction: false + }, + pagination: { + clickable: true + }, + navigation: true +} + +const SwiperAutoplay = ({ isRtl }) => { + return ( + + + Autoplay + + + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + swiper 5 + + + swiper 6 + + + + + ) +} + +export default SwiperAutoplay diff --git a/src/views/extensions/swiper/SwiperCoverflow.js b/src/views/extensions/swiper/SwiperCoverflow.js new file mode 100644 index 0000000..b43ea33 --- /dev/null +++ b/src/views/extensions/swiper/SwiperCoverflow.js @@ -0,0 +1,71 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-35.jpg' +import img2 from '@src/assets/images/banner/banner-39.jpg' +import img3 from '@src/assets/images/banner/banner-38.jpg' +import img4 from '@src/assets/images/banner/banner-37.jpg' +import img5 from '@src/assets/images/banner/banner-36.jpg' +import img6 from '@src/assets/images/banner/banner-34.jpg' +import img7 from '@src/assets/images/banner/banner-33.jpg' +import img8 from '@src/assets/images/banner/banner-32.jpg' +import img9 from '@src/assets/images/banner/banner-31.jpg' + +const params = { + effect: 'coverflow', + className: 'swiper-coverflow', + slidesPerView: 'auto', + centeredSlides: true, + pagination: { + clickable: true + }, + coverflowEffect: { + rotate: 50, + stretch: 0, + depth: 100, + modifier: 1, + slideShadows: true + } +} + +const SwiperFade = ({ isRtl }) => { + return ( + + + 3d Effect Coverflow Effect + + + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + swiper 5 + + + swiper 6 + + + swiper 7 + + + swiper 8 + + + swiper 9 + + + + + ) +} + +export default SwiperFade diff --git a/src/views/extensions/swiper/SwiperDefault.js b/src/views/extensions/swiper/SwiperDefault.js new file mode 100644 index 0000000..b392271 --- /dev/null +++ b/src/views/extensions/swiper/SwiperDefault.js @@ -0,0 +1,38 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-1.jpg' +import img2 from '@src/assets/images/banner/banner-2.jpg' +import img3 from '@src/assets/images/banner/banner-4.jpg' +import img4 from '@src/assets/images/banner/banner-13.jpg' +import img5 from '@src/assets/images/banner/banner-7.jpg' + +const SwiperDefault = ({ isRtl }) => { + return ( + + + Default + + + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + swiper 5 + + + + + ) +} + +export default SwiperDefault diff --git a/src/views/extensions/swiper/SwiperFade.js b/src/views/extensions/swiper/SwiperFade.js new file mode 100644 index 0000000..c37f585 --- /dev/null +++ b/src/views/extensions/swiper/SwiperFade.js @@ -0,0 +1,46 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-20.jpg' +import img2 from '@src/assets/images/banner/banner-19.jpg' +import img3 from '@src/assets/images/banner/banner-18.jpg' +import img4 from '@src/assets/images/banner/banner-17.jpg' +import img5 from '@src/assets/images/banner/banner-16.jpg' + +const params = { + effect: 'fade', + navigation: true, + pagination: { + clickable: true + } +} + +const SwiperFade = () => { + return ( + + + Fade + + + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + swiper 5 + + + + + ) +} + +export default SwiperFade diff --git a/src/views/extensions/swiper/SwiperGallery.js b/src/views/extensions/swiper/SwiperGallery.js new file mode 100644 index 0000000..19f9233 --- /dev/null +++ b/src/views/extensions/swiper/SwiperGallery.js @@ -0,0 +1,83 @@ +import { useState } from 'react' +import SwiperCore, { Thumbs } from 'swiper' +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-11.jpg' +import img2 from '@src/assets/images/banner/banner-12.jpg' +import img3 from '@src/assets/images/banner/banner-13.jpg' +import img4 from '@src/assets/images/banner/banner-14.jpg' +import img5 from '@src/assets/images/banner/banner-15.jpg' + +SwiperCore.use([Thumbs]) + +const SwiperGallery = ({ isRtl }) => { + const [thumbsSwiper, setThumbsSwiper] = useState(null) + + const params = { + className: 'swiper-gallery', + spaceBetween: 10, + navigation: true, + pagination: { + clickable: true + }, + thumbs: { swiper: thumbsSwiper } + } + + const paramsThumbs = { + className: 'gallery-thumbs', + spaceBetween: 10, + slidesPerView: 4, + freeMode: true, + watchSlidesVisibility: true, + watchSlidesProgress: true, + onSwiper: setThumbsSwiper + } + + return ( + + + Gallery + + +
    + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + swiper 5 + + + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + swiper 5 + + +
    +
    +
    + ) +} + +export default SwiperGallery diff --git a/src/views/extensions/swiper/SwiperLazyload.js b/src/views/extensions/swiper/SwiperLazyload.js new file mode 100644 index 0000000..f11f2f6 --- /dev/null +++ b/src/views/extensions/swiper/SwiperLazyload.js @@ -0,0 +1,56 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-9.jpg' +import img2 from '@src/assets/images/banner/banner-8.jpg' +import img3 from '@src/assets/images/banner/banner-7.jpg' +import img4 from '@src/assets/images/banner/banner-20.jpg' +import img5 from '@src/assets/images/banner/banner-5.jpg' +import img6 from '@src/assets/images/banner/banner-4.jpg' + +const params = { + lazy: true, + navigation: true, + pagination: { + clickable: true + } +} + +const SwiperLazyLoad = ({ isRtl }) => { + return ( + + + Lazy Loading + + + + + swiper 1 +
    +
    + + swiper 2 +
    +
    + + swiper 3 +
    +
    + + swiper 4 +
    +
    + + swiper 5 +
    +
    + + swiper 6 +
    +
    +
    +
    +
    + ) +} + +export default SwiperLazyLoad diff --git a/src/views/extensions/swiper/SwiperMultiSlides.js b/src/views/extensions/swiper/SwiperMultiSlides.js new file mode 100644 index 0000000..216bc51 --- /dev/null +++ b/src/views/extensions/swiper/SwiperMultiSlides.js @@ -0,0 +1,46 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-31.jpg' +import img2 from '@src/assets/images/banner/banner-32.jpg' +import img3 from '@src/assets/images/banner/banner-33.jpg' +import img4 from '@src/assets/images/banner/banner-34.jpg' +import img5 from '@src/assets/images/banner/banner-35.jpg' + +const params = { + slidesPerView: 3, + spaceBetween: 30, + pagination: { + clickable: true + } +} + +const SwiperMultiSlides = () => { + return ( + + + Multi Slides Per View + + + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + swiper 5 + + + + + ) +} + +export default SwiperMultiSlides diff --git a/src/views/extensions/swiper/SwiperNavigation.js b/src/views/extensions/swiper/SwiperNavigation.js new file mode 100644 index 0000000..f78dc67 --- /dev/null +++ b/src/views/extensions/swiper/SwiperNavigation.js @@ -0,0 +1,42 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-7.jpg' +import img2 from '@src/assets/images/banner/banner-4.jpg' +import img3 from '@src/assets/images/banner/banner-14.jpg' +import img4 from '@src/assets/images/banner/banner-3.jpg' +import img5 from '@src/assets/images/banner/banner-2.jpg' + +const params = { + navigation: true +} + +const SwiperNavigation = ({ isRtl }) => { + return ( + + + Navigation + + + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + swiper 5 + + + + + ) +} + +export default SwiperNavigation diff --git a/src/views/extensions/swiper/SwiperPagination.js b/src/views/extensions/swiper/SwiperPagination.js new file mode 100644 index 0000000..e30b956 --- /dev/null +++ b/src/views/extensions/swiper/SwiperPagination.js @@ -0,0 +1,44 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-12.jpg' +import img2 from '@src/assets/images/banner/banner-9.jpg' +import img3 from '@src/assets/images/banner/banner-8.jpg' +import img4 from '@src/assets/images/banner/banner-7.jpg' +import img5 from '@src/assets/images/banner/banner-20.jpg' + +const params = { + pagination: { + clickable: true + } +} + +const SwiperPagination = ({ isRtl }) => { + return ( + + + Pagination + + + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + swiper 5 + + + + + ) +} + +export default SwiperPagination diff --git a/src/views/extensions/swiper/SwiperProgress.js b/src/views/extensions/swiper/SwiperProgress.js new file mode 100644 index 0000000..16f2c2f --- /dev/null +++ b/src/views/extensions/swiper/SwiperProgress.js @@ -0,0 +1,45 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-8.jpg' +import img2 from '@src/assets/images/banner/banner-7.jpg' +import img3 from '@src/assets/images/banner/banner-20.jpg' +import img4 from '@src/assets/images/banner/banner-5.jpg' +import img5 from '@src/assets/images/banner/banner-4.jpg' + +const params = { + navigation: true, + pagination: { + type: 'progressbar' + } +} + +const SwiperProgress = () => { + return ( + + + Progress + + + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + swiper 5 + + + + + ) +} + +export default SwiperProgress diff --git a/src/views/extensions/swiper/SwiperResponsive.js b/src/views/extensions/swiper/SwiperResponsive.js new file mode 100644 index 0000000..094c598 --- /dev/null +++ b/src/views/extensions/swiper/SwiperResponsive.js @@ -0,0 +1,80 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-30.jpg' +import img2 from '@src/assets/images/banner/banner-31.jpg' +import img3 from '@src/assets/images/banner/banner-32.jpg' +import img4 from '@src/assets/images/banner/banner-33.jpg' +import img5 from '@src/assets/images/banner/banner-34.jpg' +import img6 from '@src/assets/images/banner/banner-35.jpg' +import img7 from '@src/assets/images/banner/banner-36.jpg' +import img8 from '@src/assets/images/banner/banner-37.jpg' +import img9 from '@src/assets/images/banner/banner-38.jpg' + +const params = { + slidesPerView: 5, + spaceBetween: 50, + pagination: { + clickable: true + }, + breakpoints: { + 1024: { + slidesPerView: 4, + spaceBetween: 40 + }, + 768: { + slidesPerView: 3, + spaceBetween: 30 + }, + 640: { + slidesPerView: 2, + spaceBetween: 20 + }, + 320: { + slidesPerView: 1, + spaceBetween: 10 + } + } +} + +const SwiperResponsive = ({ isRtl }) => { + return ( + + + Responsive + + + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + swiper 5 + + + swiper 6 + + + swiper 7 + + + swiper 8 + + + swiper 9 + + + + + ) +} + +export default SwiperResponsive diff --git a/src/views/extensions/swiper/SwiperRows.js b/src/views/extensions/swiper/SwiperRows.js new file mode 100644 index 0000000..c51444d --- /dev/null +++ b/src/views/extensions/swiper/SwiperRows.js @@ -0,0 +1,68 @@ +import { Swiper, SwiperSlide } from 'swiper/react' +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import img1 from '@src/assets/images/banner/banner-26.jpg' +import img2 from '@src/assets/images/banner/banner-39.jpg' +import img3 from '@src/assets/images/banner/banner-28.jpg' +import img4 from '@src/assets/images/banner/banner-29.jpg' +import img5 from '@src/assets/images/banner/banner-30.jpg' +import img6 from '@src/assets/images/banner/banner-31.jpg' +import img7 from '@src/assets/images/banner/banner-32.jpg' +import img8 from '@src/assets/images/banner/banner-33.jpg' +import img9 from '@src/assets/images/banner/banner-34.jpg' +import img10 from '@src/assets/images/banner/banner-35.jpg' + +const params = { + slidesPerView: 3, + slidesPerColumn: 2, + spaceBetween: 30, + slidesPerColumnFill: 'row', + pagination: { + clickable: true + } +} + +const SwiperMultiSlides = ({ isRtl }) => { + return ( + + + Multi Row Slides Layout + + + + + swiper 1 + + + swiper 2 + + + swiper 3 + + + swiper 4 + + + swiper 5 + + + swiper 6 + + + swiper 7 + + + swiper 8 + + + swiper 9 + + + swiper 10 + + + + + ) +} + +export default SwiperMultiSlides diff --git a/src/views/extensions/swiper/SwiperVirtual.js b/src/views/extensions/swiper/SwiperVirtual.js new file mode 100644 index 0000000..0276c48 --- /dev/null +++ b/src/views/extensions/swiper/SwiperVirtual.js @@ -0,0 +1,58 @@ +import { Card, CardHeader, CardTitle, CardBody, Button } from 'reactstrap' +import { Swiper, SwiperSlide } from 'swiper/react' + +const SwiperVirtual = ({ isRtl }) => { + const slides = [] + for (let i = 0; i < 10; i += 1) { + slides.push(Slide {i + 1}) + } + + let instance = null + + const appendSlide = () => { + if (instance !== null) { + slides.push(Slide {slides.length + 1}) + instance.update(true) + } + } + + const removeSlide = () => { + if (instance !== null) { + instance.removeAllSlides() + slides.length = 0 + } + } + + return ( + + + Virtual + + + (instance = swiper.virtual)} + virtual + > + {slides} + + +
    + + +
    +
    +
    + ) +} + +export default SwiperVirtual diff --git a/src/views/extensions/swiper/index.js b/src/views/extensions/swiper/index.js new file mode 100644 index 0000000..c45aaa6 --- /dev/null +++ b/src/views/extensions/swiper/index.js @@ -0,0 +1,100 @@ +import { Fragment } from 'react' +import { useRTL } from '@hooks/useRTL' +import SwiperCore, { + Navigation, + Pagination, + EffectFade, + EffectCube, + EffectCoverflow, + Autoplay, + Lazy, + Virtual +} from 'swiper' +import SwiperDefault from './SwiperDefault' +import SwiperNavigation from './SwiperNavigation' +import SwiperPagination from './SwiperPagination' +import SwiperProgress from './SwiperProgress' +import SwiperMultiSlides from './SwiperMultiSlides' +import SwiperRows from './SwiperRows' +import CenterSlidesStyle1 from './CenteredSlidesStyle1' +import CenterSlidesStyle2 from './CenteredSlidesStyle2' +import SwiperFade from './SwiperFade' +import SwiperCube from './3DEffect' +import SwiperCoverflow from './SwiperCoverflow' +import SwiperAutoplay from './SwiperAutoplay' +import SwiperGallery from './SwiperGallery' +import SwiperLazy from './SwiperLazyload' +import SwiperResponsive from './SwiperResponsive' +import SwiperVirtual from './SwiperVirtual' +import ExtensionsHeader from '@components/extensions-header' +import { Row, Col } from 'reactstrap' + +import '@styles/react/libs/swiper/swiper.scss' + +SwiperCore.use([Navigation, Pagination, EffectFade, EffectCube, EffectCoverflow, Autoplay, Lazy, Virtual]) + +const Slider = () => { + const [isRtl, setIsRtl] = useRTL() + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default Slider diff --git a/src/views/extensions/toastify/ToastPositions.js b/src/views/extensions/toastify/ToastPositions.js new file mode 100644 index 0000000..ae49693 --- /dev/null +++ b/src/views/extensions/toastify/ToastPositions.js @@ -0,0 +1,92 @@ +import { Fragment } from 'react' +import { Info } from 'react-feather' +import { toast } from 'react-toastify' +import Avatar from '@components/avatar' +import { Card, CardHeader, CardBody, CardTitle, Button, Row, Col } from 'reactstrap' + +const InfoToast = ({ title }) => ( + +
    +
    + } /> +
    {title}
    +
    + 11 Min Ago +
    +
    + I do not think that word means what you think it means. +
    +
    +) + +const ToastPositions = () => { + const notifyTopLeft = () => toast.info(, { + position: toast.POSITION.TOP_LEFT, + hideProgressBar: true + }) + const notifyTopCenter = () => toast.info(, { + position: toast.POSITION.TOP_CENTER, + hideProgressBar: true + }) + const notifyTopRight = () => toast.info(, { + position: toast.POSITION.TOP_RIGHT, + hideProgressBar: true + }) + + const notifyBottomLeft = () => toast.info(, { + position: toast.POSITION.BOTTOM_LEFT, + hideProgressBar: true + }) + const notifyBottomCenter = () => toast.info(, { + position: toast.POSITION.BOTTOM_CENTER, + hideProgressBar: true + }) + const notifyBottomRight = () => toast.info(, { + position: toast.POSITION.BOTTOM_RIGHT, + hideProgressBar: true + }) + + return ( + + + Positions + + + + +
    Top Positions
    +
    + + Top Left + + + Top Center + + + Top Right + +
    + + +
    Bottom Positions
    +
    + + Bottom Left + + + + Bottom Center + + + + Bottom Right + +
    + +
    +
    +
    + ) +} + +export default ToastPositions diff --git a/src/views/extensions/toastify/ToastTypes.js b/src/views/extensions/toastify/ToastTypes.js new file mode 100644 index 0000000..5f64a60 --- /dev/null +++ b/src/views/extensions/toastify/ToastTypes.js @@ -0,0 +1,148 @@ +import { Fragment } from 'react' +import { toast } from 'react-toastify' +import Avatar from '@components/avatar' +import { Bell, Check, X, AlertTriangle, Info } from 'react-feather' +import { Card, CardHeader, CardBody, CardTitle, Button } from 'reactstrap' + +const PrimaryToast = () => ( + +
    +
    + } /> +
    Default!
    +
    + 11 Min Ago +
    +
    + + 👋 Jelly-o macaroon brownie tart ice cream croissant jelly-o apple pie. + +
    +
    +) + +const SuccessToast = () => ( + +
    +
    + } /> +
    Success!
    +
    + 11 Min Ago +
    +
    + + 👋 Jelly-o macaroon brownie tart ice cream croissant jelly-o apple pie. + +
    +
    +) + +const ErrorToast = () => ( + +
    +
    + } /> +
    Error!
    +
    + 11 Min Ago +
    +
    + + 👋 Jelly-o macaroon brownie tart ice cream croissant jelly-o apple pie. + +
    +
    +) + +const WarningToast = () => ( + +
    +
    + } /> +
    Warning!
    +
    + 11 Min Ago +
    +
    + + 👋 Jelly-o macaroon brownie tart ice cream croissant jelly-o apple pie. + +
    +
    +) + +const InfoToast = () => ( + +
    +
    + } /> +
    Info!
    +
    + 11 Min Ago +
    +
    + + 👋 Jelly-o macaroon brownie tart ice cream croissant jelly-o apple pie. + +
    +
    +) + +const SuccessProgressToast = () => ( + +
    +
    + } /> +
    Progress Bar!
    +
    + 11 Min Ago +
    +
    + + 👋 Jelly-o macaroon brownie tart ice cream croissant jelly-o apple pie. + +
    +
    +) + +const ToastTypes = () => { + const notifyDefault = () => toast(, { hideProgressBar: true }) + const notifySuccess = () => toast.success(, { hideProgressBar: true }) + const notifyError = () => toast.error(, { hideProgressBar: true }) + const notifyWarning = () => toast.warning(, { hideProgressBar: true }) + const notifyInfo = () => toast.info(, { hideProgressBar: true }) + const notifySuccessProgress = () => toast.success() + + return ( + + + Types + + +
    + + Default + + + Success + + + Error + + + Warning + + + Info + + + Success Progress Bar + +
    +
    +
    + ) +} + +export default ToastTypes diff --git a/src/views/extensions/toastify/ToastifyOptions.js b/src/views/extensions/toastify/ToastifyOptions.js new file mode 100644 index 0000000..8c55f20 --- /dev/null +++ b/src/views/extensions/toastify/ToastifyOptions.js @@ -0,0 +1,81 @@ +import { Fragment } from 'react' +import Avatar from '@components/avatar' +import { X, Loader, Info } from 'react-feather' +import { toast } from 'react-toastify' +import { Card, CardHeader, CardBody, CardTitle, Button } from 'reactstrap' + +const ErrorToast = () => ( + +
    +
    + } /> +
    Delayed
    +
    + 11 Min Ago +
    +
    + Candy jelly-o apple pie chocolate bar croissant gummies tiramisu macaroon. +
    +
    +) + +const AutoCloseToast = () => ( + +
    +
    + } /> +
    Auto Close
    +
    + 11 Min Ago +
    +
    + Candy jelly-o apple pie chocolate bar croissant gummies tiramisu macaroon. +
    +
    +) + +const InfoToast = () => ( + +
    +
    + } /> +
    Sticky Toast!
    +
    + 11 Min Ago +
    +
    + Candy jelly-o apple pie chocolate bar croissant gummies tiramisu macaroon. +
    +
    +) + +const Toastr = () => { + const notifyDelay = () => toast.error(, { autoClose: 10000, hideProgressBar: true }) + const notifyAutoClose = () => toast.success(, { autoClose: 3000, hideProgressBar: true }) + const notifySticky = () => toast.info(, { autoClose: false, hideProgressBar: true }) + + return ( + + + Options + + +
    + + Delay + + + + AutoClose + + + + Sticky + +
    +
    +
    + ) +} + +export default Toastr diff --git a/src/views/extensions/toastify/ToastrAnimations.js b/src/views/extensions/toastify/ToastrAnimations.js new file mode 100644 index 0000000..6ff2d23 --- /dev/null +++ b/src/views/extensions/toastify/ToastrAnimations.js @@ -0,0 +1,101 @@ +import { Fragment } from 'react' +import Avatar from '@components/avatar' +import { toast, Slide, Zoom, Flip, Bounce } from 'react-toastify' +import { Check, X, AlertTriangle, Info } from 'react-feather' +import { Card, CardHeader, CardBody, CardTitle, Button } from 'reactstrap' + +const SuccessToast = () => ( + +
    +
    + } /> +
    Bounce!
    +
    + 11 Min Ago +
    +
    + I do not think that word means what you think it means. +
    +
    +) + +const WarningToast = () => ( + +
    +
    + } /> +
    Flip!
    +
    + 11 Min Ago +
    +
    + I do not think that word means what you think it means. +
    +
    +) + +const ErrorToast = () => ( + +
    +
    + } /> +
    Zoom!
    +
    + 11 Min Ago +
    +
    + I do not think that word means what you think it means. +
    +
    +) + +const InfoToast = () => ( + +
    +
    + } /> +
    Slide!
    +
    + 11 Min Ago +
    +
    + I do not think that word means what you think it means. +
    +
    +) + +const ToastAnimations = () => { + const notifyBounce = () => toast.success(, { transition: Bounce, hideProgressBar: true }) + const notifyFlip = () => toast.warning(, { transition: Flip, hideProgressBar: true }) + const notifyZoom = () => toast.error(, { transition: Zoom, hideProgressBar: true }) + const notifySlide = () => toast.info(, { transition: Slide, hideProgressBar: true }) + + return ( + + + Animations + + +
    + + Bounce + + + + Flip + + + + Zoom + + + + Slide + +
    +
    +
    + ) +} + +export default ToastAnimations diff --git a/src/views/extensions/toastify/index.js b/src/views/extensions/toastify/index.js new file mode 100644 index 0000000..a132f14 --- /dev/null +++ b/src/views/extensions/toastify/index.js @@ -0,0 +1,36 @@ +import { Fragment } from 'react' +import ExtensionsHeader from '@components/extensions-header' +import { Row, Col } from 'reactstrap' +import ToastrTypes from './ToastTypes' +import ToastrPositions from './ToastPositions' +import ToastrAnimations from './ToastrAnimations' +import ToastrOptions from './ToastifyOptions' + +const Toastr = () => { + return ( + + + + + + + + + + + + + + + + + + + ) +} + +export default Toastr diff --git a/src/views/extensions/tour/index.js b/src/views/extensions/tour/index.js new file mode 100644 index 0000000..cfe1ff9 --- /dev/null +++ b/src/views/extensions/tour/index.js @@ -0,0 +1,127 @@ +import { Fragment, useContext } from 'react' +import ExtensionsHeader from '@components/extensions-header' +import { Row, Col, Card, CardHeader, CardTitle, CardBody, Button } from 'reactstrap' +import { ShepherdTour, ShepherdTourContext } from 'react-shepherd' + +import 'shepherd.js/dist/css/shepherd.css' +import '@styles/react/libs/shepherd-tour/shepherd-tour.scss' + +const backBtnClass = 'btn btn-sm btn-outline-primary', + nextBtnClass = 'btn btn-sm btn-primary btn-next' + +let instance = null + +const steps = [ + { + id: 'navbar', + title: 'Navbar', + text: 'This is your navbar', + attachTo: { element: '.navbar', on: 'bottom' }, + cancelIcon: { + enabled: true + }, + buttons: [ + { + action: () => instance.cancel(), + classes: backBtnClass, + text: 'Skip' + }, + { + text: 'Next', + classes: nextBtnClass, + action: () => instance.next() + } + ] + }, + { + id: 'card', + title: 'Card', + text: 'This is a card', + attachTo: { element: '#basic-tour .card', on: 'top' }, + cancelIcon: { + enabled: true + }, + buttons: [ + { + text: 'Skip', + classes: backBtnClass, + action: () => instance.cancel() + }, + { + text: 'Back', + classes: backBtnClass, + action: () => instance.back() + }, + { + text: 'Next', + classes: nextBtnClass, + action: () => instance.next() + } + ] + }, + { + id: 'footer', + title: 'Footer', + text: 'This is the footer', + attachTo: { element: '.footer', on: 'top' }, + cancelIcon: { + enabled: true + }, + buttons: [ + { + text: 'Back', + classes: backBtnClass, + action: () => instance.back() + }, + { + text: 'Finish', + classes: nextBtnClass, + action: () => instance.cancel() + } + ] + } +] + +const Content = () => { + const tour = useContext(ShepherdTourContext) + instance = tour + + return ( + + ) +} + +const TourComponent = () => { + return ( + + + + + + + Tour + + + + + + + + + + + ) +} + +export default TourComponent diff --git a/src/views/pages/account-settings/GeneralTabContent.js b/src/views/pages/account-settings/GeneralTabContent.js new file mode 100644 index 0000000..b499749 --- /dev/null +++ b/src/views/pages/account-settings/GeneralTabContent.js @@ -0,0 +1,138 @@ +import { Fragment, useState } from 'react' +import classnames from 'classnames' +import { useForm, Controller } from 'react-hook-form' +import { Button, Media, Label, Row, Col, Input, FormGroup, Alert, Form } from 'reactstrap' + +const GeneralTabs = ({ data }) => { + const { register, errors, handleSubmit, control, setValue, trigger } = useForm() + + const [avatar, setAvatar] = useState(data.avatar ? data.avatar : '') + + const onChange = e => { + const reader = new FileReader(), + files = e.target.files + reader.onload = function () { + setAvatar(reader.result) + } + reader.readAsDataURL(files[0]) + } + + const onSubmit = data => trigger() + + return ( + + + + + + + + Upload + + + + Reset + +

    Allowed JPG, GIF or PNG. Max size of 800kB

    +
    +
    +
    + + + + + setValue('username', e.target.value)} + className={classnames({ + 'is-invalid': errors.username + })} + /> + + + + + + setValue('fullName', e.target.value)} + className={classnames({ + 'is-invalid': errors.fullName + })} + /> + + + + + + setValue('email', e.target.value)} + className={classnames({ + 'is-invalid': errors.email + })} + /> + + + + + + setValue('company', e.target.value)} + className={classnames({ + 'is-invalid': errors.company + })} + /> + + + + +

    Your email is not confirmed. Please check your inbox.

    + +
    + + + + Save changes + + + Cancel + + +
    +
    +
    + ) +} + +export default GeneralTabs diff --git a/src/views/pages/account-settings/InfoTabContent.js b/src/views/pages/account-settings/InfoTabContent.js new file mode 100644 index 0000000..7142b99 --- /dev/null +++ b/src/views/pages/account-settings/InfoTabContent.js @@ -0,0 +1,113 @@ +import classnames from 'classnames' +import Flatpickr from 'react-flatpickr' +import { useForm, Controller } from 'react-hook-form' +import { Label, Input, FormGroup, Row, Col, Button, Form } from 'reactstrap' + +import '@styles/react/libs/flatpickr/flatpickr.scss' + +const InfoTabContent = ({ data }) => { + const { register, errors, handleSubmit, control, trigger } = useForm({ + defaultValues: { dob: data.dob || new Date() } + }) + + const onSubmit = data => trigger() + + return ( +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Save changes + + + Cancel + + + +
    + ) +} + +export default InfoTabContent diff --git a/src/views/pages/account-settings/NotificationsTabContent.js b/src/views/pages/account-settings/NotificationsTabContent.js new file mode 100644 index 0000000..46904fb --- /dev/null +++ b/src/views/pages/account-settings/NotificationsTabContent.js @@ -0,0 +1,88 @@ +import { useState } from 'react' +import { Row, Col, CustomInput, Button } from 'reactstrap' + +const NotificationsTabContent = ({ data }) => { + const [followMe, setFollowMe] = useState(data.followMe) + const [blogDigest, setBlogDigest] = useState(data.blogDigest) + const [answerOnForm, setAnswerOnForm] = useState(data.answerOnForm) + const [productUpdates, setProductUpdates] = useState(data.productUpdates) + const [newAnnouncements, setNewAnnouncements] = useState(data.newAnnouncements) + const [commentOnArticle, setCommentOnArticle] = useState(data.commentOnArticle) + + return ( + +
    Activity
    + + setCommentOnArticle(e.target.checked)} + name='customSwitch' + label='Email me when someone comments on my article' + /> + + + setAnswerOnForm(e.target.checked)} + name='customSwitch' + label='Email me when someone answers on my form' + /> + + + setFollowMe(e.target.checked)} + name='customSwitch' + label='Email me when someone follows me' + /> + +
    Application
    + + setNewAnnouncements(e.target.checked)} + name='customSwitch' + label='News and announcements' + /> + + + setProductUpdates(e.target.checked)} + name='customSwitch' + label='Weekly product updates' + /> + + + setBlogDigest(e.target.checked)} + name='customSwitch' + label='Weekly blog digest' + /> + + + + Save changes + + + Cancel + + +
    + ) +} + +export default NotificationsTabContent diff --git a/src/views/pages/account-settings/PasswordTabContent.js b/src/views/pages/account-settings/PasswordTabContent.js new file mode 100644 index 0000000..4f52442 --- /dev/null +++ b/src/views/pages/account-settings/PasswordTabContent.js @@ -0,0 +1,81 @@ +import * as yup from 'yup' +import classnames from 'classnames' +import { useForm } from 'react-hook-form' +import { yupResolver } from '@hookform/resolvers/yup' +import { Form, FormGroup, Row, Col, Button } from 'reactstrap' +import InputPasswordToggle from '@components/input-password-toggle' + +const PasswordTabContent = () => { + const SignupSchema = yup.object().shape({ + 'old-password': yup.string().required(), + 'new-password': yup.string().required(), + 'retype-new-password': yup + .string() + .required() + .oneOf([yup.ref(`new-password`), null], 'Passwords must match') + }) + + const { register, errors, handleSubmit, trigger } = useForm({ + resolver: yupResolver(SignupSchema) + }) + + const onSubmit = () => trigger() + + return ( +
    + + + + + + + + + + + + + + + + + + + + + Save changes + + + Cancel + + + +
    + ) +} + +export default PasswordTabContent diff --git a/src/views/pages/account-settings/SocialTabContent.js b/src/views/pages/account-settings/SocialTabContent.js new file mode 100644 index 0000000..540aa11 --- /dev/null +++ b/src/views/pages/account-settings/SocialTabContent.js @@ -0,0 +1,205 @@ +import { useState, Fragment } from 'react' +import { isObjEmpty } from '@utils' +import Avatar from '@components/avatar' +import { Link, User } from 'react-feather' +import { Form, Label, Input, Button, Row, Col, FormGroup } from 'reactstrap' + +const SocialTabContent = ({ data }) => { + const [twitter, setTwitter] = useState(data.socialLinks.twitter ? data.socialLinks.twitter : '') + const [facebook, setFacebook] = useState(data.socialLinks.facebook ? data.socialLinks.facebook : '') + const [google, setGoogle] = useState(data.socialLinks.google ? data.socialLinks.google : '') + const [linkedIn, setLinkedIn] = useState(data.socialLinks.linkedIn ? data.socialLinks.linkedIn : '') + const [instagram, setInstagram] = useState(data.socialLinks.instagram ? data.socialLinks.instagram : '') + const [quora, setQuora] = useState(data.socialLinks.quora ? data.socialLinks.quora : '') + + const renderTwitterConnection = () => { + if (!isObjEmpty(data.connections.twitter)) { + return ( + + +

    @{data.connections.twitter.id}

    + e.preventDefault()}> + Disconnect + +
    + ) + } else { + return ( + + Connect + + ) + } + } + + const renderFacebookConnection = () => { + if (!isObjEmpty(data.connections.facebook)) { + return ( + + +

    @{data.connections.facebook.id}

    + e.preventDefault()}> + Disconnect + +
    + ) + } else { + return ( + + Connect + + ) + } + } + + const renderGoogleConnection = () => { + if (!isObjEmpty(data.connections.google)) { + return ( + + +

    @{data.connections.google.id}

    + e.preventDefault()}> + Disconnect + +
    + ) + } else { + return ( + + Connect + + ) + } + } + + const renderGithubConnection = () => { + if (!isObjEmpty(data.connections.github)) { + return ( + + +

    @{data.connections.github.id}

    + e.preventDefault()}> + Disconnect + +
    + ) + } else { + return ( + + Connect + + ) + } + } + + return ( +
    e.preventDefault()}> + + +
    + +

    Social Links

    +
    + + + + + setTwitter(e.target.value)} + placeholder='Add Link' + /> + + + + + + setFacebook(e.target.value)} + placeholder='Add Link' + /> + + + + + + setGoogle(e.target.value)} + placeholder='Add Link' + /> + + + + + + setLinkedIn(e.target.value)} + placeholder='Add Link' + /> + + + + + + setInstagram(e.target.value)} + placeholder='Add Link' + /> + + + + + + setQuora(e.target.value)} placeholder='Add Link' /> + + + +
    + + +
    + +

    Profile Connections

    +
    + + +

    Your Twitter

    + {renderTwitterConnection()} + + +

    Your Facebook

    + {renderFacebookConnection()} + + +

    Your Google

    + {renderGoogleConnection()} + + +

    Your Github

    + {renderGithubConnection()} + +
    + + + + Save changes + + + Cancel + + +
    +
    + ) +} + +export default SocialTabContent diff --git a/src/views/pages/account-settings/Tabs.js b/src/views/pages/account-settings/Tabs.js new file mode 100644 index 0000000..95af593 --- /dev/null +++ b/src/views/pages/account-settings/Tabs.js @@ -0,0 +1,41 @@ +import { Nav, NavItem, NavLink } from 'reactstrap' +import { User, Lock, Info, Link, Bell } from 'react-feather' + +const Tabs = ({ activeTab, toggleTab }) => { + return ( + + ) +} + +export default Tabs diff --git a/src/views/pages/account-settings/index.js b/src/views/pages/account-settings/index.js new file mode 100644 index 0000000..d4853cb --- /dev/null +++ b/src/views/pages/account-settings/index.js @@ -0,0 +1,63 @@ +import { Fragment, useState, useEffect } from 'react' +import Tabs from './Tabs' +import axios from 'axios' +import InfoTabContent from './InfoTabContent' +import Breadcrumbs from '@components/breadcrumbs' +import SocialTabContent from './SocialTabContent' +import GeneralTabContent from './GeneralTabContent' +import PasswordTabContent from './PasswordTabContent' +import NotificationsTabContent from './NotificationsTabContent' +import { Row, Col, TabContent, TabPane, Card, CardBody } from 'reactstrap' + +import '@styles/react/libs/flatpickr/flatpickr.scss' +import '@styles/react/pages/page-account-settings.scss' + +const AccountSettings = () => { + const [activeTab, setActiveTab] = useState('1'), + [data, setData] = useState(null) + + const toggleTab = tab => { + setActiveTab(tab) + } + + useEffect(() => { + axios.get('/account-setting/data').then(response => setData(response.data)) + }, []) + + return ( + + {data !== null ? ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) : null} + + ) +} + +export default AccountSettings diff --git a/src/views/pages/authentication/ForgotPassword.js b/src/views/pages/authentication/ForgotPassword.js new file mode 100644 index 0000000..f88a53e --- /dev/null +++ b/src/views/pages/authentication/ForgotPassword.js @@ -0,0 +1,109 @@ +import { isUserLoggedIn } from '@utils' +import { useSkin } from '@hooks/useSkin' +import { ChevronLeft } from 'react-feather' +import { Link, Redirect } from 'react-router-dom' +import { Row, Col, CardTitle, CardText, Form, FormGroup, Label, Input, Button } from 'reactstrap' +import '@styles/base/pages/page-auth.scss' + +const ForgotPassword = () => { + const [skin, setSkin] = useSkin() + + const illustration = skin === 'dark' ? 'forgot-password-v2-dark.svg' : 'forgot-password-v2.svg', + source = require(`@src/assets/images/pages/${illustration}`).default + + if (!isUserLoggedIn()) { + return ( +
    + + e.preventDefault()}> + + + + + + + + + + + + + + + + + + + + + + + +

    Vuexy

    + + +
    + Login V2 +
    + + + + + Forgot Password? 🔒 + + + Enter your email and we'll send you instructions to reset your password + +
    e.preventDefault()}> + + + + + + Send reset link + +
    +

    + + + Back to login + +

    + + +
    +
    + ) + } else { + return + } +} + +export default ForgotPassword diff --git a/src/views/pages/authentication/Login.js b/src/views/pages/authentication/Login.js new file mode 100644 index 0000000..0adaa9c --- /dev/null +++ b/src/views/pages/authentication/Login.js @@ -0,0 +1,186 @@ +import { useState, useContext, Fragment } from 'react' +import classnames from 'classnames' +import Avatar from '@components/avatar' +import { useSkin } from '@hooks/useSkin' +import useJwt from '@src/auth/jwt/useJwt' +import { useDispatch } from 'react-redux' +import { useForm } from 'react-hook-form' +import { toast, Slide } from 'react-toastify' +import { handleLogin } from '@store/actions/auth' +import { AbilityContext } from '@src/utility/context/Can' +import { Link, useHistory } from 'react-router-dom' +import InputPasswordToggle from '@components/input-password-toggle' +import { getHomeRouteForLoggedInUser, isObjEmpty } from '@utils' +import { Facebook, Twitter, Mail, GitHub, HelpCircle, Coffee } from 'react-feather' +import { + Alert, + Row, + Col, + CardTitle, + CardText, + Form, + Input, + FormGroup, + Label, + CustomInput, + Button, + UncontrolledTooltip +} from 'reactstrap' + +import '@styles/base/pages/page-auth.scss' + +const ToastContent = ({ name, role }) => ( + +
    +
    + } /> +
    Welcome, {name}
    +
    +
    +
    + You have successfully logged in as an {role} user to Vuexy. Now you can start to explore. Enjoy! +
    +
    +) + +const Login = props => { + const [skin, setSkin] = useSkin() + const ability = useContext(AbilityContext) + const dispatch = useDispatch() + const history = useHistory() + const [email, setEmail] = useState('') + const [password, setPassword] = useState('') + + const { register, errors, handleSubmit } = useForm() + const illustration = skin === 'dark' ? 'login-v2-dark.svg' : 'login-v2.svg', + source = require(`@src/assets/images/pages/${illustration}`).default + + const onSubmit = data => { + if (isObjEmpty(errors)) { + useJwt + .login({ email, password }) + .then(res => { + const data = { ...res.data.userData, accessToken: res.data.accessToken, refreshToken: res.data.refreshToken } + dispatch(handleLogin(data)) + ability.update(res.data.userData.ability) + history.push(getHomeRouteForLoggedInUser(data.role)) + toast.success( + , + { transition: Slide, hideProgressBar: true, autoClose: 2000 } + ) + }) + .catch(err => console.log(err)) + } + } + + return ( +
    + + e.preventDefault()}> + + +
    + Login V2 +
    + + + + + Please sign-in to your account and start the adventure + +
    +

    + + Admin: admin@demo.com | admin + +

    +

    + + Client: client@demo.com | client + +

    +
    + + + This is just for ACL demo purpose. + +
    +
    + + + setEmail(e.target.value)} + className={classnames({ 'is-invalid': errors['login-email'] })} + innerRef={register({ required: true, validate: value => value !== '' })} + /> + + +
    + + + Forgot Password? + +
    + setPassword(e.target.value)} + className={classnames({ 'is-invalid': errors['login-password'] })} + innerRef={register({ required: true, validate: value => value !== '' })} + /> +
    + + + + + Sign in + +
    +

    + New on our platform? + + Create an account + +

    +
    +
    or
    +
    +
    + + + + + + + + + + + + +
    + + +
    +
    + ) +} + +export default Login diff --git a/src/views/pages/authentication/Register.js b/src/views/pages/authentication/Register.js new file mode 100644 index 0000000..f949d86 --- /dev/null +++ b/src/views/pages/authentication/Register.js @@ -0,0 +1,252 @@ +import { Fragment, useState, useContext } from 'react' +import { isObjEmpty } from '@utils' +import classnames from 'classnames' +import { useSkin } from '@hooks/useSkin' +import useJwt from '@src/auth/jwt/useJwt' +import { useDispatch } from 'react-redux' +import { useForm } from 'react-hook-form' +import { handleLogin } from '@store/actions/auth' +import { Link, useHistory } from 'react-router-dom' +import { AbilityContext } from '@src/utility/context/Can' +import InputPasswordToggle from '@components/input-password-toggle' +import { Facebook, Twitter, Mail, GitHub } from 'react-feather' +import { Row, Col, CardTitle, CardText, FormGroup, Label, Button, Form, Input, CustomInput } from 'reactstrap' + +import '@styles/base/pages/page-auth.scss' + +const Register = () => { + const ability = useContext(AbilityContext) + + const [skin, setSkin] = useSkin() + + const history = useHistory() + + const dispatch = useDispatch() + + const { register, errors, handleSubmit, trigger } = useForm() + + const [email, setEmail] = useState('') + const [valErrors, setValErrors] = useState({}) + const [username, setUsername] = useState('') + const [password, setPassword] = useState('') + const [terms, setTerms] = useState(false) + + const illustration = skin === 'dark' ? 'register-v2-dark.svg' : 'register-v2.svg', + source = require(`@src/assets/images/pages/${illustration}`).default + + const Terms = () => { + return ( + + I agree to + e.preventDefault()}> + privacy policy & terms + + + ) + } + + const onSubmit = () => { + if (isObjEmpty(errors)) { + useJwt + .register({ username, email, password }) + .then(res => { + if (res.data.error) { + const arr = {} + for (const property in res.data.error) { + if (res.data.error[property] !== null) arr[property] = res.data.error[property] + } + setValErrors(arr) + if (res.data.error.email !== null) console.error(res.data.error.email) + if (res.data.error.username !== null) console.error(res.data.error.username) + } else { + setValErrors({}) + const data = { ...res.data.user, accessToken: res.data.accessToken } + ability.update(res.data.user.ability) + dispatch(handleLogin(data)) + history.push('/') + } + }) + .catch(err => console.log(err)) + } + } + + const handleUsernameChange = e => { + const errs = valErrors + if (errs.username) delete errs.username + setUsername(e.target.value) + setValErrors(errs) + } + + const handleEmailChange = e => { + const errs = valErrors + if (errs.email) delete errs.email + setEmail(e.target.value) + setValErrors(errs) + } + + return ( +
    + + e.preventDefault()}> + + + + + + + + + + + + + + + + + + + + + + + +

    Vuexy

    + + +
    + Login V2 +
    + + + + + Adventure starts here 🚀 + + Make your app management easy and fun! + +
    + + + value !== '' })} + /> + {Object.keys(valErrors).length && valErrors.username ? ( + {valErrors.username} + ) : null} + + + + value !== '' })} + /> + {Object.keys(valErrors).length && valErrors.email ? ( + {valErrors.email} + ) : null} + + + + setPassword(e.target.value)} + className={classnames({ 'is-invalid': errors['register-password'] })} + innerRef={register({ required: true, validate: value => value !== '' })} + /> + + + } + className='custom-control-Primary' + innerRef={register({ required: true })} + onChange={e => setTerms(e.target.checked)} + invalid={errors.terms && true} + /> + + + Sign up + +
    +

    + Already have an account? + + Sign in instead + +

    +
    +
    or
    +
    +
    + + + + + + + + + + + + +
    + + +
    +
    + ) +} + +export default Register diff --git a/src/views/pages/authentication/ResetPasswordV1.js b/src/views/pages/authentication/ResetPasswordV1.js new file mode 100644 index 0000000..557d6c1 --- /dev/null +++ b/src/views/pages/authentication/ResetPasswordV1.js @@ -0,0 +1,98 @@ +import { Link } from 'react-router-dom' +import { ChevronLeft } from 'react-feather' +import InputPassword from '@components/input-password-toggle' +import { Card, CardBody, CardTitle, CardText, Form, FormGroup, Label, Button } from 'reactstrap' +import '@styles/base/pages/page-auth.scss' + +const ResetPasswordV1 = () => { + return ( +
    +
    + + + e.preventDefault()}> + + + + + + + + + + + + + + + + + + + + + + + +

    Vuexy

    + + + Reset Password 🔒 + + Your new password must be different from previously used passwords +
    e.preventDefault()}> + + + + + + + + + + Set New Password + +
    +

    + + + Back to login + +

    +
    +
    +
    +
    + ) +} + +export default ResetPasswordV1 diff --git a/src/views/pages/faq/FaqContact.js b/src/views/pages/faq/FaqContact.js new file mode 100644 index 0000000..d758291 --- /dev/null +++ b/src/views/pages/faq/FaqContact.js @@ -0,0 +1,41 @@ +import { Row, Col, Card, CardBody } from 'reactstrap' +import { PhoneCall, Mail } from 'react-feather' + +const FaqContact = () => { + return ( +
    + + +

    You still have a question?

    +

    + If you cannot find a question in our FAQ, you can always contact us. We will answer to you shortly! +

    + + + + +
    + +
    +

    + (810) 2548 2568

    + We are always happy to help! +
    +
    + + + + +
    + +
    +

    hello@help.com

    + Best way to get answer faster! +
    +
    + +
    +
    + ) +} + +export default FaqContact diff --git a/src/views/pages/faq/FaqFilter.js b/src/views/pages/faq/FaqFilter.js new file mode 100644 index 0000000..98db310 --- /dev/null +++ b/src/views/pages/faq/FaqFilter.js @@ -0,0 +1,37 @@ +import { Search } from 'react-feather' +import { Card, CardBody, CardText, Form, Input, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap' + +const FaqFilter = ({ searchTerm, setSearchTerm, getFAQData }) => { + const handleFaqFilter = e => { + setSearchTerm(e.target.value) + getFAQData(e.target.value) + } + + return ( +
    + + +

    Let's answer some questions

    + or choose a category to quickly find the help you need +
    e.preventDefault()}> + + + + + + + handleFaqFilter(e)} placeholder='search faq...' /> + +
    +
    +
    +
    + ) +} + +export default FaqFilter diff --git a/src/views/pages/faq/Faqs.js b/src/views/pages/faq/Faqs.js new file mode 100644 index 0000000..b2a47d6 --- /dev/null +++ b/src/views/pages/faq/Faqs.js @@ -0,0 +1,87 @@ +import { useState } from 'react' +import * as Icon from 'react-feather' +import AppCollapse from '@components/app-collapse' +import illustration from '@src/assets/images/illustration/faq-illustrations.svg' +import { Nav, NavItem, NavLink, Row, Col, TabContent, TabPane } from 'reactstrap' + +const Faqs = ({ data }) => { + const dataToRender = [] + + const [activeTab, setActiveTab] = useState('Payment') + + const toggleTab = tab => setActiveTab(tab) + + Object.entries(data).forEach(([key, val]) => { + dataToRender.push(val) + }) + + const renderTabs = () => { + return dataToRender.map(item => { + const IconTag = Icon[item.icon] + return ( + + toggleTab(item.title)}> + + {item.title} + + + ) + }) + } + + const renderTabContent = () => { + return dataToRender.map(item => { + const IconTag = Icon[item.icon] + + return ( + +
    +
    + +
    +
    +

    {item.title}

    + {item.subtitle} +
    +
    + +
    + ) + }) + } + + return ( +
    + + +
    + + illustration +
    + + + {renderTabContent()} + +
    +
    + ) +} + +export default Faqs diff --git a/src/views/pages/faq/index.js b/src/views/pages/faq/index.js new file mode 100644 index 0000000..c72d507 --- /dev/null +++ b/src/views/pages/faq/index.js @@ -0,0 +1,34 @@ +import { Fragment, useState, useEffect } from 'react' +import axios from 'axios' +import Faqs from './Faqs' +import FaqFilter from './FaqFilter' +import FaqContact from './FaqContact' +import Breadcrumbs from '@components/breadcrumbs' + +import '@styles/base/pages/page-faq.scss' + +const Faq = () => { + const [data, setData] = useState(null), + [searchTerm, setSearchTerm] = useState('') + + const getFAQData = query => { + return axios.get('/faq/data', { params: { q: query } }).then(response => { + setData(response.data) + }) + } + + useEffect(() => { + getFAQData(searchTerm) + }, []) + + return ( + + + + {data !== null ? : null} + + + ) +} + +export default Faq diff --git a/src/views/pages/misc/ComingSoon.js b/src/views/pages/misc/ComingSoon.js new file mode 100644 index 0000000..64a6a50 --- /dev/null +++ b/src/views/pages/misc/ComingSoon.js @@ -0,0 +1,76 @@ +import { Button, Form, Input, Row, Col } from 'reactstrap' +import comingSoonImg from '@src/assets/images/pages/coming-soon.svg' + +import '@styles/base/pages/page-misc.scss' + +const ComingSoon = () => { + return ( +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    Vuexy

    +
    +
    +
    +

    We are launching soon 🚀

    +

    We're creating something awesome. Please subscribe to get notified when it's ready!

    +
    e.preventDefault()}> + + +
    + Coming soon page +
    +
    +
    + ) +} +export default ComingSoon diff --git a/src/views/pages/misc/Error.js b/src/views/pages/misc/Error.js new file mode 100644 index 0000000..42d1c01 --- /dev/null +++ b/src/views/pages/misc/Error.js @@ -0,0 +1,26 @@ +import { Button } from 'reactstrap' +import { Link } from 'react-router-dom' +import errorImg from '@src/assets/images/pages/error.svg' + +import '@styles/base/pages/page-misc.scss' +import { useEffect } from 'react' + +const Error = () => { + return ( +
    + + +
    +
    +

    Page Not Found 🕵🏻‍♀️

    +

    Oops! 😖 The requested URL was not found on this server.

    + + Not authorized page +
    +
    +
    + ) +} +export default Error diff --git a/src/views/pages/misc/Maintenance.js b/src/views/pages/misc/Maintenance.js new file mode 100644 index 0000000..7eefeff --- /dev/null +++ b/src/views/pages/misc/Maintenance.js @@ -0,0 +1,76 @@ +import { Button, Form, Input, Row, Col } from 'reactstrap' +import maintenanceImg from '@src/assets/images/pages/under-maintenance.svg' + +import '@styles/base/pages/page-misc.scss' + +const Maintenance = () => { + return ( +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    Vuexy

    +
    +
    +
    +

    Under Maintenance 🛠

    +

    Sorry for the inconvenience but we're performing some maintenance at the moment

    +
    e.preventDefault()}> + + +
    + Under maintenance page +
    +
    +
    + ) +} +export default Maintenance diff --git a/src/views/pages/misc/NotAuthorized.js b/src/views/pages/misc/NotAuthorized.js new file mode 100644 index 0000000..23088a1 --- /dev/null +++ b/src/views/pages/misc/NotAuthorized.js @@ -0,0 +1,77 @@ +import { Button } from 'reactstrap' +import { Link } from 'react-router-dom' +import notAuthImg from '@src/assets/images/pages/not-authorized.svg' + +import '@styles/base/pages/page-misc.scss' + +const NotAuthorized = () => { + return ( +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    Vuexy

    +
    +
    +
    +

    You are not authorized! 🔐

    +

    + The Webtrends Marketing Lab website in IIS uses the default IUSR account credentials to access the web pages + it serves. +

    + + Not authorized page +
    +
    +
    + ) +} +export default NotAuthorized diff --git a/src/views/pages/profile/ProfileAbout.js b/src/views/pages/profile/ProfileAbout.js new file mode 100644 index 0000000..7f5c1a8 --- /dev/null +++ b/src/views/pages/profile/ProfileAbout.js @@ -0,0 +1,30 @@ +import { Card, CardBody, CardText } from 'reactstrap' + +const ProfileAbout = ({ data }) => { + return ( + + +
    About
    + {data.about} +
    +
    Joined:
    + {data.joined} +
    +
    +
    Lives:
    + {data.lives} +
    +
    +
    Email:
    + {data.email} +
    +
    +
    Website:
    + {data.website} +
    +
    +
    + ) +} + +export default ProfileAbout diff --git a/src/views/pages/profile/ProfileFriendsSuggestions.js b/src/views/pages/profile/ProfileFriendsSuggestions.js new file mode 100644 index 0000000..583247b --- /dev/null +++ b/src/views/pages/profile/ProfileFriendsSuggestions.js @@ -0,0 +1,42 @@ +import classnames from 'classnames' +import Avatar from '@components/avatar' +import { UserPlus } from 'react-feather' +import { Card, CardBody, Button } from 'reactstrap' + +const ProfileFriendsSuggestions = ({ data }) => { + const renderSuggestion = () => { + return data.map((suggestion, index) => { + return ( +
    + +
    +
    {suggestion.name}
    + {suggestion.mutualFriend} +
    +
    + + + +
    +
    + ) + }) + } + + return ( + + +
    Suggestions
    + {renderSuggestion()} +
    +
    + ) +} + +export default ProfileFriendsSuggestions diff --git a/src/views/pages/profile/ProfileHeader.js b/src/views/pages/profile/ProfileHeader.js new file mode 100644 index 0000000..2390bb6 --- /dev/null +++ b/src/views/pages/profile/ProfileHeader.js @@ -0,0 +1,69 @@ +import { useState } from 'react' +import { AlignJustify, Rss, Info, Image, Users, Edit } from 'react-feather' +import { Card, CardImg, Collapse, Navbar, Nav, NavItem, NavLink, Button } from 'reactstrap' + +const ProfileHeader = ({ data }) => { + const [isOpen, setIsOpen] = useState(false) + + const toggle = () => setIsOpen(!isOpen) + + return ( + + +
    +
    +
    + Card image +
    +
    +

    {data.username}

    +

    {data.designation}

    +
    +
    +
    +
    + + + +
    + + +
    +
    +
    +
    +
    + ) +} + +export default ProfileHeader diff --git a/src/views/pages/profile/ProfileLatestPhotos.js b/src/views/pages/profile/ProfileLatestPhotos.js new file mode 100644 index 0000000..efac754 --- /dev/null +++ b/src/views/pages/profile/ProfileLatestPhotos.js @@ -0,0 +1,26 @@ +import { Card, CardBody, Row, Col } from 'reactstrap' + +const ProfileLatestPhotos = ({ data }) => { + const renderPhotos = () => { + return data.map((item, index) => { + return ( + + e.preventDefault()}> + latest-photo + + + ) + }) + } + + return ( + + +
    Latest Photos
    + {renderPhotos()} +
    +
    + ) +} + +export default ProfileLatestPhotos diff --git a/src/views/pages/profile/ProfilePolls.js b/src/views/pages/profile/ProfilePolls.js new file mode 100644 index 0000000..6e06efe --- /dev/null +++ b/src/views/pages/profile/ProfilePolls.js @@ -0,0 +1,54 @@ +import { Fragment } from 'react' +import Avatar from '@components/avatar' +import { Card, CardBody, CardText, Progress, CustomInput, UncontrolledTooltip } from 'reactstrap' + +const ProfilePolls = ({ data }) => { + const renderOptions = () => { + return data.map(option => { + return ( +
    +
    + +
    {option.result}
    +
    + +
    + {option.votedUser.map(user => { + return ( + + + + {user.username} + + + ) + })} +
    +
    + ) + }) + } + + return ( + + +
    Polls
    + Who is the best actor in Marvel Cinematic Universe? + {renderOptions()} +
    +
    + ) +} + +export default ProfilePolls diff --git a/src/views/pages/profile/ProfilePosts.js b/src/views/pages/profile/ProfilePosts.js new file mode 100644 index 0000000..ce9b7b6 --- /dev/null +++ b/src/views/pages/profile/ProfilePosts.js @@ -0,0 +1,112 @@ +import { Fragment } from 'react' +import classnames from 'classnames' +import Avatar from '@components/avatar' +import { Heart, MessageSquare, Share2 } from 'react-feather' +import { Card, CardBody, CardText, Row, Col, UncontrolledTooltip, Input, Label, Button } from 'reactstrap' + +const ProfilePosts = ({ data }) => { + const renderPosts = () => { + return data.map(post => { + return ( + + +
    + +
    +
    {post.username}
    + {post.postTime} +
    +
    + {post.postText} + {post.postImg ? ( + {post.username} + ) : post.postVid ? ( + + ) : null} + + +
    + + {post.likes} +
    +
    +
    + {post.likedUsers.map(user => { + return ( + + + + {user.username} + + + ) + })} +
    + e.preventDefault()}> + +140 more + +
    + + + e.preventDefault()}> + + {post.comments} + + e.preventDefault()}> + + {post.share} + + +
    + {post.detailedComments.map(comment => ( +
    + +
    + + {comment.comment} +
    +
    + ))} +
    + + +
    + + Post Comment + +
    +
    + ) + }) + } + return renderPosts() +} +export default ProfilePosts diff --git a/src/views/pages/profile/ProfileSuggestedPages.js b/src/views/pages/profile/ProfileSuggestedPages.js new file mode 100644 index 0000000..6bbbdb0 --- /dev/null +++ b/src/views/pages/profile/ProfileSuggestedPages.js @@ -0,0 +1,44 @@ +import classnames from 'classnames' +import { Star } from 'react-feather' +import Avatar from '@components/avatar' +import { Card, CardBody } from 'reactstrap' + +const ProfileSuggestedPages = ({ data }) => { + const renderSuggestions = () => { + return data.map((suggestion, index) => { + return ( +
    + +
    +
    {suggestion.username}
    + {suggestion.subtitle} +
    +
    + +
    +
    + ) + }) + } + + return ( + + +
    Suggested Pages
    + {renderSuggestions()} +
    +
    + ) +} + +export default ProfileSuggestedPages diff --git a/src/views/pages/profile/ProfileTwitterFeeds.js b/src/views/pages/profile/ProfileTwitterFeeds.js new file mode 100644 index 0000000..ef04655 --- /dev/null +++ b/src/views/pages/profile/ProfileTwitterFeeds.js @@ -0,0 +1,54 @@ +import classnames from 'classnames' +import Avatar from '@components/avatar' +import { CheckCircle, Star } from 'react-feather' +import { Card, CardBody, CardText } from 'reactstrap' + +const ProfileTwitterFeeds = ({ data }) => { + const renderFeeds = () => { + return data.map((feed, index) => { + return ( + + ) + }) + } + + return ( + + +
    Twitter Feeds
    + {renderFeeds()} +
    +
    + ) +} + +export default ProfileTwitterFeeds diff --git a/src/views/pages/profile/index.js b/src/views/pages/profile/index.js new file mode 100644 index 0000000..f593bde --- /dev/null +++ b/src/views/pages/profile/index.js @@ -0,0 +1,73 @@ +import { Fragment, useState, useEffect } from 'react' +import axios from 'axios' +import UILoader from '@components/ui-loader' +import ProfilePoll from './ProfilePolls' +import ProfileAbout from './ProfileAbout' +import ProfilePosts from './ProfilePosts' +import ProfileHeader from './ProfileHeader' +import { Row, Col, Button } from 'reactstrap' +import ProfileTwitterFeeds from './ProfileTwitterFeeds' +import ProfileLatestPhotos from './ProfileLatestPhotos' +import ProfileSuggestedPages from './ProfileSuggestedPages' +import ProfileFriendsSuggestions from './ProfileFriendsSuggestions' +import Breadcrumbs from '@components/breadcrumbs' + +import '@styles/react/pages/page-profile.scss' + +const Profile = () => { + const [data, setData] = useState(null) + const [block, setBlock] = useState(false) + + const handleBlock = () => { + setBlock(true) + setTimeout(() => { + setBlock(false) + }, 2000) + } + + useEffect(() => { + axios.get('/profile/data').then(response => setData(response.data)) + }, []) + return ( + + + {data !== null ? ( +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + +
    +
    + ) : null} +
    + ) +} + +export default Profile diff --git a/src/views/tables/data-tables/advance/TableAdvSearch.js b/src/views/tables/data-tables/advance/TableAdvSearch.js new file mode 100644 index 0000000..cc725d0 --- /dev/null +++ b/src/views/tables/data-tables/advance/TableAdvSearch.js @@ -0,0 +1,336 @@ +// ** React Imports +import { useState, Fragment } from 'react' + +// ** Table Columns +import { data, advSearchColumns } from '../data' + +// ** Third Party Components +import Flatpickr from 'react-flatpickr' +import ReactPaginate from 'react-paginate' +import { ChevronDown } from 'react-feather' +import DataTable from 'react-data-table-component' +import { Card, CardHeader, CardBody, CardTitle, Input, Label, FormGroup, Row, Col } from 'reactstrap' + +// ** Styles +import '@styles/react/libs/flatpickr/flatpickr.scss' + +const DataTableAdvSearch = () => { + // ** States + const [Picker, setPicker] = useState('') + const [searchName, setSearchName] = useState('') + const [searchPost, setSearchPost] = useState('') + const [searchCity, setSearchCity] = useState('') + const [currentPage, setCurrentPage] = useState(0) + const [searchEmail, setSearchEmail] = useState('') + const [searchSalary, setSearchSalary] = useState('') + const [filteredData, setFilteredData] = useState([]) + + // ** Function to handle Pagination + const handlePagination = page => setCurrentPage(page.selected) + + // ** Table data to render + const dataToRender = () => { + if ( + searchName.length || + searchPost.length || + searchEmail.length || + searchCity.length || + searchSalary.length || + Picker.length + ) { + return filteredData + } else { + return data + } + } + + // ** Custom Pagination + const CustomPagination = () => ( + handlePagination(page)} + pageCount={dataToRender().length / 7 || 1} + breakLabel={'...'} + pageRangeDisplayed={2} + marginPagesDisplayed={2} + activeClassName={'active'} + pageClassName={'page-item'} + nextLinkClassName={'page-link'} + nextClassName={'page-item next'} + previousClassName={'page-item prev'} + previousLinkClassName={'page-link'} + pageLinkClassName={'page-link'} + breakClassName='page-item' + breakLinkClassName='page-link' + containerClassName={'pagination react-paginate separated-pagination pagination-sm justify-content-end pr-1 mt-1'} + /> + ) + + // ** Function to handle name filter + const handleNameFilter = e => { + const value = e.target.value + let updatedData = [] + const dataToFilter = () => { + if (searchEmail.length || searchPost.length || searchCity.length || searchSalary.length || Picker.length) { + return filteredData + } else { + return data + } + } + + setSearchName(value) + if (value.length) { + updatedData = dataToFilter().filter(item => { + const startsWith = item.full_name.toLowerCase().startsWith(value.toLowerCase()) + + const includes = item.full_name.toLowerCase().includes(value.toLowerCase()) + + if (startsWith) { + return startsWith + } else if (!startsWith && includes) { + return includes + } else return null + }) + setFilteredData([...updatedData]) + setSearchName(value) + } + } + + // ** Function to handle email filter + const handleEmailFilter = e => { + const value = e.target.value + let updatedData = [] + const dataToFilter = () => { + if (searchName.length || searchPost.length || searchCity.length || searchSalary.length || Picker.length) { + return filteredData + } else { + return data + } + } + + setSearchEmail(value) + if (value.length) { + updatedData = dataToFilter().filter(item => { + const startsWith = item.email.toLowerCase().startsWith(value.toLowerCase()) + + const includes = item.email.toLowerCase().includes(value.toLowerCase()) + + if (startsWith) { + return startsWith + } else if (!startsWith && includes) { + return includes + } else return null + }) + setFilteredData([...updatedData]) + setSearchEmail(value) + } + } + + // ** Function to handle post filter + const handlePostFilter = e => { + const value = e.target.value + let updatedData = [] + const dataToFilter = () => { + if (searchEmail.length || searchName.length || searchCity.length || searchSalary.length || Picker.length) { + return filteredData + } else { + return data + } + } + + setSearchPost(value) + if (value.length) { + updatedData = dataToFilter().filter(item => { + const startsWith = item.post.toLowerCase().startsWith(value.toLowerCase()) + + const includes = item.post.toLowerCase().includes(value.toLowerCase()) + + if (startsWith) { + return startsWith + } else if (!startsWith && includes) { + return includes + } else return null + }) + setFilteredData([...updatedData]) + setSearchPost(value) + } + } + + // ** Function to handle city filter + const handleCityFilter = e => { + const value = e.target.value + let updatedData = [] + const dataToFilter = () => { + if (searchEmail.length || searchName.length || searchPost.length || searchSalary.length || Picker.length) { + return filteredData + } else { + return data + } + } + + setSearchCity(value) + if (value.length) { + updatedData = dataToFilter().filter(item => { + const startsWith = item.city.toLowerCase().startsWith(value.toLowerCase()) + + const includes = item.city.toLowerCase().includes(value.toLowerCase()) + + if (startsWith) { + return startsWith + } else if (!startsWith && includes) { + return includes + } else return null + }) + setFilteredData([...updatedData]) + setSearchCity(value) + } + } + + // ** Function to handle salary filter + const handleSalaryFilter = e => { + const value = e.target.value + let updatedData = [] + const dataToFilter = () => { + if (searchEmail.length || searchName.length || searchPost.length || searchCity.length || Picker.length) { + return filteredData + } else { + return data + } + } + + setSearchSalary(value) + if (value.length) { + updatedData = dataToFilter().filter(item => { + const startsWith = item.salary.toLowerCase().startsWith(value.toLowerCase()) + + const includes = item.salary.toLowerCase().includes(value.toLowerCase()) + + if (startsWith) { + return startsWith + } else if (!startsWith && includes) { + return includes + } else return null + }) + setFilteredData([...updatedData]) + setSearchSalary(value) + } + } + + // ** Function to handle date filter + const handleDateFilter = range => { + const arr = [] + let updatedData = [] + const dataToFilter = () => { + if (searchEmail.length || searchName.length || searchPost.length || searchCity.length || searchSalary.length) { + return filteredData + } else { + return data + } + } + + range.map(i => { + const date = new Date(i) + + const year = date.getFullYear() + + let month = (1 + date.getMonth()).toString() + month = month.length > 1 ? month : `0${month}` + + let day = date.getDate().toString() + day = day.length > 1 ? day : `0${day}` + + arr.push(`${month}/${day}/${year}`) + return true + }) + + setPicker(range) + + if (range.length) { + updatedData = dataToFilter().filter(item => { + return ( + new Date(item.start_date).getTime() >= new Date(arr[0]).getTime() && + new Date(item.start_date).getTime() <= new Date(arr[1]).getTime() + ) + }) + setFilteredData([...updatedData]) + setPicker(range) + } + } + + return ( + + + + Advance Search + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + handleDateFilter(date)} + /> + + + + + + + + + + + } + paginationDefaultPage={currentPage + 1} + paginationComponent={CustomPagination} + data={dataToRender()} + /> + + + ) +} + +export default DataTableAdvSearch diff --git a/src/views/tables/data-tables/advance/TableServerSide.js b/src/views/tables/data-tables/advance/TableServerSide.js new file mode 100644 index 0000000..a1f7919 --- /dev/null +++ b/src/views/tables/data-tables/advance/TableServerSide.js @@ -0,0 +1,180 @@ +// ** React Imports +import { Fragment, useState, useEffect, memo } from 'react' + +// ** Table Columns +import { serverSideColumns } from '../data' + +// ** Store & Actions +import { getData } from '../store/actions' +import { useSelector, useDispatch } from 'react-redux' + +// ** Third Party Components +import ReactPaginate from 'react-paginate' +import { ChevronDown } from 'react-feather' +import DataTable from 'react-data-table-component' +import { Card, CardHeader, CardTitle, Input, Label, Row, Col } from 'reactstrap' + +const DataTableServerSide = () => { + // ** Store Vars + const dispatch = useDispatch() + const store = useSelector(state => state.dataTables) + + // ** States + const [currentPage, setCurrentPage] = useState(1) + const [rowsPerPage, setRowsPerPage] = useState(7) + const [searchValue, setSearchValue] = useState('') + + // ** Get data on mount + useEffect(() => { + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + q: searchValue + }) + ) + }, [dispatch]) + + // ** Function to handle filter + const handleFilter = e => { + setSearchValue(e.target.value) + + dispatch( + getData({ + page: currentPage, + perPage: rowsPerPage, + q: e.target.value + }) + ) + } + + // ** Function to handle Pagination and get data + const handlePagination = page => { + dispatch( + getData({ + page: page.selected + 1, + perPage: rowsPerPage, + q: searchValue + }) + ) + setCurrentPage(page.selected + 1) + } + + // ** Function to handle per page + const handlePerPage = e => { + dispatch( + getData({ + page: currentPage, + perPage: parseInt(e.target.value), + q: searchValue + }) + ) + setRowsPerPage(parseInt(e.target.value)) + } + + // ** Custom Pagination + const CustomPagination = () => { + const count = Number((store.total / rowsPerPage).toFixed(0)) + + return ( + handlePagination(page)} + pageClassName={'page-item'} + nextLinkClassName={'page-link'} + nextClassName={'page-item next'} + previousClassName={'page-item prev'} + previousLinkClassName={'page-link'} + pageLinkClassName={'page-link'} + breakClassName='page-item' + breakLinkClassName='page-link' + containerClassName={ + 'pagination react-paginate separated-pagination pagination-sm justify-content-end pr-1 mt-1' + } + /> + ) + } + + // ** Table data to render + const dataToRender = () => { + const filters = { + q: searchValue + } + + const isFiltered = Object.keys(filters).some(function (k) { + return filters[k].length > 0 + }) + + if (store.data.length > 0) { + return store.data + } else if (store.data.length === 0 && isFiltered) { + return [] + } else { + return store.allData.slice(0, rowsPerPage) + } + } + + return ( + + + + Server Side + + + +
    + + handlePerPage(e)} + > + + + + + + + + +
    + + + + + +
    + } + paginationComponent={CustomPagination} + data={dataToRender()} + /> +
    +
    + ) +} + +export default memo(DataTableServerSide) diff --git a/src/views/tables/data-tables/advance/index.js b/src/views/tables/data-tables/advance/index.js new file mode 100644 index 0000000..0ba475d --- /dev/null +++ b/src/views/tables/data-tables/advance/index.js @@ -0,0 +1,33 @@ +// ** React Imports +import { Fragment } from 'react' + +// ** Custom Components +import Breadcrumbs from '@components/breadcrumbs' + +// ** Third Party Components +import { Row, Col } from 'reactstrap' + +// ** Tables +import TableServerSide from './TableServerSide' +import TableAdvSearch from './TableAdvSearch' + +// ** Styles +import '@styles/react/libs/tables/react-dataTable-component.scss' + +const Tables = () => { + return ( + + + + + + + + + + + + ) +} + +export default Tables diff --git a/src/views/tables/data-tables/basic/AddNewModal.js b/src/views/tables/data-tables/basic/AddNewModal.js new file mode 100644 index 0000000..379282e --- /dev/null +++ b/src/views/tables/data-tables/basic/AddNewModal.js @@ -0,0 +1,108 @@ +// ** React Imports +import { useState } from 'react' + +// ** Third Party Components +import Flatpickr from 'react-flatpickr' +import { User, Briefcase, Mail, Calendar, DollarSign, X } from 'react-feather' +import { + Button, + Modal, + ModalHeader, + ModalBody, + FormGroup, + InputGroup, + InputGroupAddon, + InputGroupText, + Input, + Label +} from 'reactstrap' + +// ** Styles +import '@styles/react/libs/flatpickr/flatpickr.scss' + +const AddNewModal = ({ open, handleModal }) => { + // ** State + const [Picker, setPicker] = useState(new Date()) + + // ** Custom close btn + const CloseBtn = + + return ( + + +
    New Record
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + setPicker(date)} /> + + + + + + + + + + + + + + + + +
    + ) +} + +export default AddNewModal diff --git a/src/views/tables/data-tables/basic/TableExpandable.js b/src/views/tables/data-tables/basic/TableExpandable.js new file mode 100644 index 0000000..2374674 --- /dev/null +++ b/src/views/tables/data-tables/basic/TableExpandable.js @@ -0,0 +1,69 @@ +// ** React Imports +import { useState } from 'react' + +// ** Table columns & Expandable Data +import ExpandableTable, { data, columns } from '../data' + +// ** Third Party Components +import ReactPaginate from 'react-paginate' +import { ChevronDown } from 'react-feather' +import DataTable from 'react-data-table-component' +import { Card, CardHeader, CardTitle } from 'reactstrap' + +const DataTableWithButtons = () => { + // ** State + const [currentPage, setCurrentPage] = useState(0) + + // ** Function to handle filter + const handlePagination = page => { + setCurrentPage(page.selected) + } + + // ** Custom Pagination + const CustomPagination = () => ( + handlePagination(page)} + pageCount={10} + breakLabel={'...'} + pageRangeDisplayed={2} + marginPagesDisplayed={2} + activeClassName={'active'} + pageClassName={'page-item'} + nextLinkClassName={'page-link'} + nextClassName={'page-item next'} + previousClassName={'page-item prev'} + previousLinkClassName={'page-link'} + pageLinkClassName={'page-link'} + breakClassName='page-item' + breakLinkClassName='page-link' + containerClassName={'pagination react-paginate separated-pagination pagination-sm justify-content-end pr-1'} + /> + ) + + return ( + + + Expandable Row + + } + paginationDefaultPage={currentPage + 1} + expandableRowsComponent={} + paginationRowsPerPageOptions={[10, 25, 50, 100]} + paginationComponent={CustomPagination} + /> + + ) +} + +export default DataTableWithButtons diff --git a/src/views/tables/data-tables/basic/TableMultilingual.js b/src/views/tables/data-tables/basic/TableMultilingual.js new file mode 100644 index 0000000..d117801 --- /dev/null +++ b/src/views/tables/data-tables/basic/TableMultilingual.js @@ -0,0 +1,158 @@ +// ** React Imports +import { Fragment, useState } from 'react' + +// ** Table Columns +import { data, multiLingColumns } from '../data' + +// ** Third Party Components +import ReactPaginate from 'react-paginate' +import { ChevronDown } from 'react-feather' +import { FormattedMessage } from 'react-intl' +import DataTable from 'react-data-table-component' +import { Card, CardHeader, CardTitle, CardFooter, CardText, Input, Label, Row, Col } from 'reactstrap' + +const DataTableWithButtons = () => { + // ** State + const [currentPage, setCurrentPage] = useState(0) + const [searchValue, setSearchValue] = useState('') + const [filteredData, setFilteredData] = useState([]) + + // ** Function to handle pagination + const handlePagination = page => { + setCurrentPage(page.selected) + } + + // ** Function to handle filter + const handleFilter = e => { + const value = e.target.value + let updatedData = [] + setSearchValue(value) + + const status = { + 1: { title: 'Current', color: 'light-primary' }, + 2: { title: 'Professional', color: 'light-success' }, + 3: { title: 'Rejected', color: 'light-danger' }, + 4: { title: 'Resigned', color: 'light-warning' }, + 5: { title: 'Applied', color: 'light-info' } + } + + if (value.length) { + updatedData = data.filter(item => { + const startsWith = + item.full_name.toLowerCase().startsWith(value.toLowerCase()) || + item.post.toLowerCase().startsWith(value.toLowerCase()) || + item.email.toLowerCase().startsWith(value.toLowerCase()) || + item.age.toLowerCase().startsWith(value.toLowerCase()) || + item.salary.toLowerCase().startsWith(value.toLowerCase()) || + item.start_date.toLowerCase().startsWith(value.toLowerCase()) || + status[item.status].title.toLowerCase().startsWith(value.toLowerCase()) + + const includes = + item.full_name.toLowerCase().includes(value.toLowerCase()) || + item.post.toLowerCase().includes(value.toLowerCase()) || + item.email.toLowerCase().includes(value.toLowerCase()) || + item.age.toLowerCase().includes(value.toLowerCase()) || + item.salary.toLowerCase().includes(value.toLowerCase()) || + item.start_date.toLowerCase().includes(value.toLowerCase()) || + status[item.status].title.toLowerCase().includes(value.toLowerCase()) + + if (startsWith) { + return startsWith + } else if (!startsWith && includes) { + return includes + } else return null + }) + setFilteredData(updatedData) + setSearchValue(value) + } + } + + // ** Pagination Previous Component + const Previous = () => { + return ( + + + + + + ) + } + + // ** Pagination Next Component + const Next = () => { + return ( + + + + + + ) + } + + // ** Custom Pagination Component + const CustomPagination = () => ( + } + nextLabel={} + forcePage={currentPage} + onPageChange={page => handlePagination(page)} + pageCount={searchValue.length ? filteredData.length / 7 : data.length / 7 || 1} + breakLabel={'...'} + pageRangeDisplayed={2} + marginPagesDisplayed={2} + activeClassName={'active'} + pageClassName={'page-item'} + nextLinkClassName={'page-link'} + nextClassName={'page-item next'} + previousClassName={'page-item prev'} + previousLinkClassName={'page-link'} + pageLinkClassName={'page-link'} + breakClassName='page-item' + breakLinkClassName='page-link' + containerClassName={'pagination react-paginate pagination-sm justify-content-end pr-1 mt-1'} + /> + ) + + return ( + + + Multilingual + + + + + + + + } + paginationDefaultPage={currentPage + 1} + paginationComponent={CustomPagination} + data={searchValue.length ? filteredData : data} + /> + + + Note:{' '} + Use Intl Dropdown in Navbar to change table language + + + + ) +} + +export default DataTableWithButtons diff --git a/src/views/tables/data-tables/basic/TableWithButtons.js b/src/views/tables/data-tables/basic/TableWithButtons.js new file mode 100644 index 0000000..ebd1d48 --- /dev/null +++ b/src/views/tables/data-tables/basic/TableWithButtons.js @@ -0,0 +1,241 @@ +// ** React Imports +import { Fragment, useState, forwardRef } from 'react' + +// ** Table Data & Columns +import { data, columns } from '../data' + +// ** Add New Modal Component +import AddNewModal from './AddNewModal' + +// ** Third Party Components +import ReactPaginate from 'react-paginate' +import DataTable from 'react-data-table-component' +import { ChevronDown, Share, Printer, FileText, File, Grid, Copy, Plus } from 'react-feather' +import { + Card, + CardHeader, + CardTitle, + Button, + UncontrolledButtonDropdown, + DropdownToggle, + DropdownMenu, + DropdownItem, + Input, + Label, + Row, + Col +} from 'reactstrap' + +// ** Bootstrap Checkbox Component +const BootstrapCheckbox = forwardRef(({ onClick, ...rest }, ref) => ( +
    + +
    +)) + +const DataTableWithButtons = () => { + // ** States + const [modal, setModal] = useState(false) + const [currentPage, setCurrentPage] = useState(0) + const [searchValue, setSearchValue] = useState('') + const [filteredData, setFilteredData] = useState([]) + + // ** Function to handle Modal toggle + const handleModal = () => setModal(!modal) + + // ** Function to handle filter + const handleFilter = e => { + const value = e.target.value + let updatedData = [] + setSearchValue(value) + + const status = { + 1: { title: 'Current', color: 'light-primary' }, + 2: { title: 'Professional', color: 'light-success' }, + 3: { title: 'Rejected', color: 'light-danger' }, + 4: { title: 'Resigned', color: 'light-warning' }, + 5: { title: 'Applied', color: 'light-info' } + } + + if (value.length) { + updatedData = data.filter(item => { + const startsWith = + item.full_name.toLowerCase().startsWith(value.toLowerCase()) || + item.post.toLowerCase().startsWith(value.toLowerCase()) || + item.email.toLowerCase().startsWith(value.toLowerCase()) || + item.age.toLowerCase().startsWith(value.toLowerCase()) || + item.salary.toLowerCase().startsWith(value.toLowerCase()) || + item.start_date.toLowerCase().startsWith(value.toLowerCase()) || + status[item.status].title.toLowerCase().startsWith(value.toLowerCase()) + + const includes = + item.full_name.toLowerCase().includes(value.toLowerCase()) || + item.post.toLowerCase().includes(value.toLowerCase()) || + item.email.toLowerCase().includes(value.toLowerCase()) || + item.age.toLowerCase().includes(value.toLowerCase()) || + item.salary.toLowerCase().includes(value.toLowerCase()) || + item.start_date.toLowerCase().includes(value.toLowerCase()) || + status[item.status].title.toLowerCase().includes(value.toLowerCase()) + + if (startsWith) { + return startsWith + } else if (!startsWith && includes) { + return includes + } else return null + }) + setFilteredData(updatedData) + setSearchValue(value) + } + } + + // ** Function to handle Pagination + const handlePagination = page => { + setCurrentPage(page.selected) + } + + // ** Custom Pagination + const CustomPagination = () => ( + handlePagination(page)} + pageCount={searchValue.length ? filteredData.length / 7 : data.length / 7 || 1} + breakLabel='...' + pageRangeDisplayed={2} + marginPagesDisplayed={2} + activeClassName='active' + pageClassName='page-item' + breakClassName='page-item' + breakLinkClassName='page-link' + nextLinkClassName='page-link' + nextClassName='page-item next' + previousClassName='page-item prev' + previousLinkClassName='page-link' + pageLinkClassName='page-link' + breakClassName='page-item' + breakLinkClassName='page-link' + containerClassName='pagination react-paginate separated-pagination pagination-sm justify-content-end pr-1 mt-1' + /> + ) + + // ** Converts table to CSV + function convertArrayOfObjectsToCSV(array) { + let result + + const columnDelimiter = ',' + const lineDelimiter = '\n' + const keys = Object.keys(data[0]) + + result = '' + result += keys.join(columnDelimiter) + result += lineDelimiter + + array.forEach(item => { + let ctr = 0 + keys.forEach(key => { + if (ctr > 0) result += columnDelimiter + + result += item[key] + + ctr++ + }) + result += lineDelimiter + }) + + return result + } + + // ** Downloads CSV + function downloadCSV(array) { + const link = document.createElement('a') + let csv = convertArrayOfObjectsToCSV(array) + if (csv === null) return + + const filename = 'export.csv' + + if (!csv.match(/^data:text\/csv/i)) { + csv = `data:text/csv;charset=utf-8,${csv}` + } + + link.setAttribute('href', encodeURI(csv)) + link.setAttribute('download', filename) + link.click() + } + + return ( + + + + DataTable with Buttons +
    + + + + Export + + + + + Print + + downloadCSV(data)}> + + CSV + + + + Excel + + + + PDF + + + + Copy + + + + +
    +
    + + + + + + + } + paginationDefaultPage={currentPage + 1} + paginationComponent={CustomPagination} + data={searchValue.length ? filteredData : data} + selectableRowsComponent={BootstrapCheckbox} + /> +
    + +
    + ) +} + +export default DataTableWithButtons diff --git a/src/views/tables/data-tables/basic/TableZeroConfig.js b/src/views/tables/data-tables/basic/TableZeroConfig.js new file mode 100644 index 0000000..45f4d42 --- /dev/null +++ b/src/views/tables/data-tables/basic/TableZeroConfig.js @@ -0,0 +1,28 @@ +// ** Table Columns +import { data, basicColumns } from '../data' + +// ** Third Party Components +import { ChevronDown } from 'react-feather' +import DataTable from 'react-data-table-component' +import { Card, CardHeader, CardTitle } from 'reactstrap' + +const DataTablesBasic = () => { + return ( + + + Zero Configuration + + } + paginationRowsPerPageOptions={[10, 25, 50, 100]} + /> + + ) +} + +export default DataTablesBasic diff --git a/src/views/tables/data-tables/basic/index.js b/src/views/tables/data-tables/basic/index.js new file mode 100644 index 0000000..7af8ebc --- /dev/null +++ b/src/views/tables/data-tables/basic/index.js @@ -0,0 +1,41 @@ +// ** React Imports +import { Fragment } from 'react' + +// ** Custom Components +import Breadcrumbs from '@components/breadcrumbs' + +// ** Third Party Components +import { Row, Col } from 'reactstrap' + +// ** Tables +import TableExpandable from './TableExpandable' +import TableZeroConfig from './TableZeroConfig' +import TableWithButtons from './TableWithButtons' +import TableMultilingual from './TableMultilingual' + +// ** Styles +import '@styles/react/libs/tables/react-dataTable-component.scss' + +const Tables = () => { + return ( + + + + + + + + + + + + + + + + + + ) +} + +export default Tables diff --git a/src/views/tables/data-tables/data.js b/src/views/tables/data-tables/data.js new file mode 100644 index 0000000..16fc944 --- /dev/null +++ b/src/views/tables/data-tables/data.js @@ -0,0 +1,334 @@ +// ** Custom Components +import Avatar from '@components/avatar' + +// ** Third Party Components +import axios from 'axios' +import { MoreVertical, Edit, FileText, Archive, Trash } from 'react-feather' +import { Badge, UncontrolledDropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap' + +// ** Vars +const states = ['success', 'danger', 'warning', 'info', 'dark', 'primary', 'secondary'] + +const status = { + 1: { title: 'Current', color: 'light-primary' }, + 2: { title: 'Professional', color: 'light-success' }, + 3: { title: 'Rejected', color: 'light-danger' }, + 4: { title: 'Resigned', color: 'light-warning' }, + 5: { title: 'Applied', color: 'light-info' } +} + +export let data + +// ** Get initial Data +axios.get('/api/datatables/initial-data').then(response => { + data = response.data +}) + +// ** Table Zero Config Column +export const basicColumns = [ + { + name: 'ID', + selector: 'id', + sortable: true, + maxWidth: '100px' + }, + { + name: 'Name', + selector: 'full_name', + sortable: true, + minWidth: '225px' + }, + { + name: 'Email', + selector: 'email', + sortable: true, + minWidth: '310px' + }, + { + name: 'Position', + selector: 'post', + sortable: true, + minWidth: '250px' + }, + { + name: 'Age', + selector: 'age', + sortable: true, + minWidth: '100px' + }, + { + name: 'Salary', + selector: 'salary', + sortable: true, + minWidth: '175px' + } +] + +// ** Expandable table component +const ExpandableTable = ({ data }) => { + return ( +
    +

    + City: {data.city} +

    +

    + Experience: {data.experience} +

    +

    + Post: {data.post} +

    +
    + ) +} + +// ** Table Common Column +export const columns = [ + { + name: 'Name', + selector: 'full_name', + sortable: true, + minWidth: '250px', + cell: row => ( +
    + {row.avatar === '' ? ( + + ) : ( + + )} +
    + {row.full_name} + {row.post} +
    +
    + ) + }, + { + name: 'Email', + selector: 'email', + sortable: true, + minWidth: '250px' + }, + { + name: 'Date', + selector: 'start_date', + sortable: true, + minWidth: '150px' + }, + + { + name: 'Salary', + selector: 'salary', + sortable: true, + minWidth: '150px' + }, + { + name: 'Age', + selector: 'age', + sortable: true, + minWidth: '100px' + }, + { + name: 'Status', + selector: 'status', + sortable: true, + minWidth: '150px', + cell: row => { + return ( + + {status[row.status].title} + + ) + } + }, + { + name: 'Actions', + allowOverflow: true, + cell: row => { + return ( +
    + + + + + + e.preventDefault()}> + + Details + + e.preventDefault()}> + + Archive + + e.preventDefault()}> + + Delete + + + + +
    + ) + } + } +] + +// ** Table Intl Column +export const multiLingColumns = [ + { + name: 'Name', + selector: 'full_name', + sortable: true, + minWidth: '200px' + }, + { + name: 'Position', + selector: 'post', + sortable: true, + minWidth: '250px' + }, + { + name: 'Email', + selector: 'email', + sortable: true, + minWidth: '250px' + }, + { + name: 'Date', + selector: 'start_date', + sortable: true, + minWidth: '150px' + }, + + { + name: 'Salary', + selector: 'salary', + sortable: true, + minWidth: '150px' + }, + { + name: 'Status', + selector: 'status', + sortable: true, + minWidth: '150px', + cell: row => { + return ( + + {status[row.status].title} + + ) + } + }, + { + name: 'Actions', + allowOverflow: true, + cell: row => { + return ( +
    + + + + + + + + Details + + + + Archive + + + + Delete + + + + +
    + ) + } + } +] + +// ** Table Server Side Column +export const serverSideColumns = [ + { + name: 'Full Name', + selector: 'full_name', + sortable: true, + minWidth: '225px' + }, + { + name: 'Email', + selector: 'email', + sortable: true, + minWidth: '250px' + }, + { + name: 'Position', + selector: 'post', + sortable: true, + minWidth: '250px' + }, + { + name: 'Office', + selector: 'city', + sortable: true, + minWidth: '150px' + }, + { + name: 'Start Date', + selector: 'start_date', + sortable: true, + minWidth: '150px' + }, + { + name: 'Salary', + selector: 'salary', + sortable: true, + minWidth: '150px' + } +] + +// ** Table Adv Search Column +export const advSearchColumns = [ + { + name: 'Name', + selector: 'full_name', + sortable: true, + minWidth: '200px' + }, + { + name: 'Email', + selector: 'email', + sortable: true, + minWidth: '250px' + }, + { + name: 'Post', + selector: 'post', + sortable: true, + minWidth: '250px' + }, + { + name: 'City', + selector: 'city', + sortable: true, + minWidth: '150px' + }, + { + name: 'Date', + selector: 'start_date', + sortable: true, + minWidth: '150px' + }, + + { + name: 'Salary', + selector: 'salary', + sortable: true, + minWidth: '100px' + } +] + +export default ExpandableTable diff --git a/src/views/tables/data-tables/store/actions/index.js b/src/views/tables/data-tables/store/actions/index.js new file mode 100644 index 0000000..a2fbaec --- /dev/null +++ b/src/views/tables/data-tables/store/actions/index.js @@ -0,0 +1,16 @@ +import axios from 'axios' + +// ** Get table Data +export const getData = params => { + return async dispatch => { + await axios.get('/api/datatables/data', params).then(response => { + dispatch({ + type: 'GET_DATA', + allData: response.data.allData, + data: response.data.invoices, + totalPages: response.data.total, + params + }) + }) + } +} diff --git a/src/views/tables/data-tables/store/reducer/index.js b/src/views/tables/data-tables/store/reducer/index.js new file mode 100644 index 0000000..92c1df4 --- /dev/null +++ b/src/views/tables/data-tables/store/reducer/index.js @@ -0,0 +1,24 @@ +// ** Initial State +const initialState = { + data: [], + total: 1, + params: {}, + allData: [] +} + +const DataTablesReducer = (state = initialState, action) => { + switch (action.type) { + case 'GET_DATA': + return { + ...state, + allData: action.allData, + data: action.data, + total: action.totalPages, + params: action.params + } + default: + return state + } +} + +export default DataTablesReducer diff --git a/src/views/tables/reactstrap/TableBasic.js b/src/views/tables/reactstrap/TableBasic.js new file mode 100644 index 0000000..7da42ea --- /dev/null +++ b/src/views/tables/reactstrap/TableBasic.js @@ -0,0 +1,234 @@ +import AvatarGroup from '@components/avatar-group' +import react from '@src/assets/images/icons/react.svg' +import vuejs from '@src/assets/images/icons/vuejs.svg' +import angular from '@src/assets/images/icons/angular.svg' +import bootstrap from '@src/assets/images/icons/bootstrap.svg' +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import { MoreVertical, Edit, Trash } from 'react-feather' +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const avatarGroupData1 = [ + { + title: 'Lilian', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Alberto', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Bruce', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData2 = [ + { + title: 'Diana', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Rey', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'James', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData3 = [ + { + title: 'Lee', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Mario', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Oswald', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData4 = [ + { + title: 'Christie', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Barnes', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Arthur', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const TableBasic = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableBasic diff --git a/src/views/tables/reactstrap/TableBordered.js b/src/views/tables/reactstrap/TableBordered.js new file mode 100644 index 0000000..4e461d8 --- /dev/null +++ b/src/views/tables/reactstrap/TableBordered.js @@ -0,0 +1,234 @@ +import AvatarGroup from '@components/avatar-group' +import react from '@src/assets/images/icons/react.svg' +import vuejs from '@src/assets/images/icons/vuejs.svg' +import angular from '@src/assets/images/icons/angular.svg' +import bootstrap from '@src/assets/images/icons/bootstrap.svg' +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import { MoreVertical, Edit, Trash } from 'react-feather' +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const avatarGroupData1 = [ + { + title: 'Leslie', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Quinn', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Quinn', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData2 = [ + { + title: 'Felicia', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Brent', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Patricia', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData3 = [ + { + title: 'Breanna', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Peter', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Cherokee', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData4 = [ + { + title: 'Martina', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Butcher', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Noel', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const TableBordered = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableBordered diff --git a/src/views/tables/reactstrap/TableBorderless.js b/src/views/tables/reactstrap/TableBorderless.js new file mode 100644 index 0000000..c5835c3 --- /dev/null +++ b/src/views/tables/reactstrap/TableBorderless.js @@ -0,0 +1,234 @@ +import AvatarGroup from '@components/avatar-group' +import react from '@src/assets/images/icons/react.svg' +import vuejs from '@src/assets/images/icons/vuejs.svg' +import angular from '@src/assets/images/icons/angular.svg' +import bootstrap from '@src/assets/images/icons/bootstrap.svg' +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import { MoreVertical, Edit, Trash } from 'react-feather' +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const avatarGroupData1 = [ + { + title: 'Sarah', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Ainsley', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Charissa', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData2 = [ + { + title: 'Vanna', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Inga', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Patricia', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData3 = [ + { + title: 'Justina', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Lamar', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Briar', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData4 = [ + { + title: 'Jenette', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Francis', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Isaac', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const TableBorderless = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableBorderless diff --git a/src/views/tables/reactstrap/TableContextual.js b/src/views/tables/reactstrap/TableContextual.js new file mode 100644 index 0000000..094760c --- /dev/null +++ b/src/views/tables/reactstrap/TableContextual.js @@ -0,0 +1,541 @@ +import AvatarGroup from '@components/avatar-group' +import react from '@src/assets/images/icons/react.svg' +import figma from '@src/assets/images/icons/figma.svg' +import vuejs from '@src/assets/images/icons/vuejs.svg' +import angular from '@src/assets/images/icons/angular.svg' +import bootstrap from '@src/assets/images/icons/bootstrap.svg' +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import { MoreVertical, Edit, Trash } from 'react-feather' +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const avatarGroupData1 = [ + { + title: 'Illiana', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Wyatt', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Troy', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData2 = [ + { + title: 'Mufutau', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Denton', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Carol', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData3 = [ + { + title: 'Kyla', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Hop', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Yvonne', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData4 = [ + { + title: 'Lunea', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Francis', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Kameko', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData5 = [ + { + title: 'Blair', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Aspen', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Tyler', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData6 = [ + { + title: 'Florence', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Kieran', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Anthony', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData7 = [ + { + title: 'Lysandra', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Russell', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Curran', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData8 = [ + { + title: 'Britanney', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Avye', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Castor', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData9 = [ + { + title: 'Charissa', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Elijah', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Giacomo', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData10 = [ + { + title: 'Chaim', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Virginia', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Kristen', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const TableContextual = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProjectClientUsersStatusActions
    + figma + Figma Project + Ronnie Shane + {' '} + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + angular + Angular Project + Peter Charls + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + figma + Figma Project + Janne Ale + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Custom + Ted Richer + + + + Schedule + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Latest Bootstrap + Perry Parker + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + angular + Angular UI + Ana Bell + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap UI + Jerry Milton + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableContextual diff --git a/src/views/tables/reactstrap/TableDark.js b/src/views/tables/reactstrap/TableDark.js new file mode 100644 index 0000000..ad9305e --- /dev/null +++ b/src/views/tables/reactstrap/TableDark.js @@ -0,0 +1,234 @@ +import AvatarGroup from '@components/avatar-group' +import react from '@src/assets/images/icons/react.svg' +import vuejs from '@src/assets/images/icons/vuejs.svg' +import angular from '@src/assets/images/icons/angular.svg' +import bootstrap from '@src/assets/images/icons/bootstrap.svg' +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import { MoreVertical, Edit, Trash } from 'react-feather' +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const avatarGroupData1 = [ + { + title: 'Levi', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Nina', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Brynn', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData2 = [ + { + title: 'Liberty', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Fallon', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Minerva', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData3 = [ + { + title: 'Palmer', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Tana', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Evangeline', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData4 = [ + { + title: 'Winter', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Carl', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Andrew', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const TableDark = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableDark diff --git a/src/views/tables/reactstrap/TableHover.js b/src/views/tables/reactstrap/TableHover.js new file mode 100644 index 0000000..32932d0 --- /dev/null +++ b/src/views/tables/reactstrap/TableHover.js @@ -0,0 +1,234 @@ +import AvatarGroup from '@components/avatar-group' +import react from '@src/assets/images/icons/react.svg' +import vuejs from '@src/assets/images/icons/vuejs.svg' +import angular from '@src/assets/images/icons/angular.svg' +import bootstrap from '@src/assets/images/icons/bootstrap.svg' +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import { MoreVertical, Edit, Trash } from 'react-feather' +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const avatarGroupData1 = [ + { + title: 'Griffith', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Hu', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Felicia', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData2 = [ + { + title: 'Quinlan', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Patrick', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Castor', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData3 = [ + { + title: 'Mohammad', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Isabella', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Michael', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData4 = [ + { + title: 'Lavinia', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Nelle', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Virginia', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const TableHover = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableHover diff --git a/src/views/tables/reactstrap/TableHoverAnimation.js b/src/views/tables/reactstrap/TableHoverAnimation.js new file mode 100644 index 0000000..8b4286d --- /dev/null +++ b/src/views/tables/reactstrap/TableHoverAnimation.js @@ -0,0 +1,234 @@ +import AvatarGroup from '@components/avatar-group' +import react from '@src/assets/images/icons/react.svg' +import vuejs from '@src/assets/images/icons/vuejs.svg' +import angular from '@src/assets/images/icons/angular.svg' +import bootstrap from '@src/assets/images/icons/bootstrap.svg' +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import { MoreVertical, Edit, Trash } from 'react-feather' +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const avatarGroupData1 = [ + { + title: 'Yoshi', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Kevyn', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Louis', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData2 = [ + { + title: 'Aileen', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Karleigh', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Elmo', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData3 = [ + { + title: 'Blossom', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Jescie', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Gemma', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData4 = [ + { + title: 'Thor', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Jack', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Reece', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const TableHoverAnimation = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableHoverAnimation diff --git a/src/views/tables/reactstrap/TableResponsive.js b/src/views/tables/reactstrap/TableResponsive.js new file mode 100644 index 0000000..5011efe --- /dev/null +++ b/src/views/tables/reactstrap/TableResponsive.js @@ -0,0 +1,122 @@ +import { Table } from 'reactstrap' + +const TableResponsive = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + # + + Heading 1 + + Heading 2 + + Heading 3 + + Heading 4 + + Heading 5 + + Heading 6 + + Heading 7 + + Heading 8 + + Heading 9 + + Heading 10 + + Heading 11 + + Heading 12 + + Heading 13 +
    1Table cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cell
    2Table cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cell
    3Table cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cell
    4Table cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cell
    + ) +} + +export default TableResponsive diff --git a/src/views/tables/reactstrap/TableSmall.js b/src/views/tables/reactstrap/TableSmall.js new file mode 100644 index 0000000..1f39c30 --- /dev/null +++ b/src/views/tables/reactstrap/TableSmall.js @@ -0,0 +1,234 @@ +import AvatarGroup from '@components/avatar-group' +import react from '@src/assets/images/icons/react.svg' +import vuejs from '@src/assets/images/icons/vuejs.svg' +import angular from '@src/assets/images/icons/angular.svg' +import bootstrap from '@src/assets/images/icons/bootstrap.svg' +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import { MoreVertical, Edit, Trash } from 'react-feather' +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const avatarGroupData1 = [ + { + title: 'Melissa', + img: avatar1, + imgHeight: 22, + imgWidth: 22 + }, + { + title: 'Jana', + img: avatar2, + imgHeight: 22, + imgWidth: 22 + }, + { + title: 'Halla', + img: avatar3, + imgHeight: 22, + imgWidth: 22 + } +] + +const avatarGroupData2 = [ + { + title: 'Wing', + img: avatar1, + imgHeight: 22, + imgWidth: 22 + }, + { + title: 'Octavia', + img: avatar2, + imgHeight: 22, + imgWidth: 22 + }, + { + title: 'Benedict', + img: avatar3, + imgHeight: 22, + imgWidth: 22 + } +] + +const avatarGroupData3 = [ + { + title: 'Jade', + img: avatar1, + imgHeight: 22, + imgWidth: 22 + }, + { + title: 'Alisa', + img: avatar2, + imgHeight: 22, + imgWidth: 22 + }, + { + title: 'Alisa', + img: avatar3, + imgHeight: 22, + imgWidth: 22 + } +] + +const avatarGroupData4 = [ + { + title: 'Alexa', + img: avatar1, + imgHeight: 22, + imgWidth: 22 + }, + { + title: 'Lee', + img: avatar2, + imgHeight: 22, + imgWidth: 22 + }, + { + title: 'Shellie', + img: avatar3, + imgHeight: 22, + imgWidth: 22 + } +] + +const TableSmall = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableSmall diff --git a/src/views/tables/reactstrap/TableSourceCode.js b/src/views/tables/reactstrap/TableSourceCode.js new file mode 100644 index 0000000..40fd5cb --- /dev/null +++ b/src/views/tables/reactstrap/TableSourceCode.js @@ -0,0 +1,3084 @@ +export const tableBasic = ( +
    +    {`
    +import AvatarGroup from '@components/avatar-group'
    +import react from '@src/assets/images/icons/react.svg'
    +import vuejs from '@src/assets/images/icons/vuejs.svg'
    +import angular from '@src/assets/images/icons/angular.svg'
    +import bootstrap from '@src/assets/images/icons/bootstrap.svg'
    +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg'
    +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg'
    +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg'
    +import { MoreVertical, Edit, Trash } from 'react-feather'
    +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap'
    +
    +const avatarGroupData1 = [
    +  {
    +    title: 'Lilian',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Alberto',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Bruce',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData2 = [
    +  {
    +    title: 'Diana',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Rey',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'James',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData3 = [
    +  {
    +    title: 'Lee',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Mario',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Oswald',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData4 = [
    +  {
    +    title: 'Christie',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Barnes',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Arthur',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const TableBasic = () => {
    +  return (
    +    
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +    
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableBasic +`}
    +
    +) + +export const tableDark = ( +
    +    {`
    +import AvatarGroup from '@components/avatar-group'
    +import react from '@src/assets/images/icons/react.svg'
    +import vuejs from '@src/assets/images/icons/vuejs.svg'
    +import angular from '@src/assets/images/icons/angular.svg'
    +import bootstrap from '@src/assets/images/icons/bootstrap.svg'
    +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg'
    +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg'
    +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg'
    +import { MoreVertical, Edit, Trash } from 'react-feather'
    +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap'
    +
    +const avatarGroupData1 = [
    +  {
    +    title: 'Levi',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Nina',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Brynn',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData2 = [
    +  {
    +    title: 'Liberty',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Fallon',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Minerva',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData3 = [
    +  {
    +    title: 'Palmer',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Tana',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Evangeline',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData4 = [
    +  {
    +    title: 'Winter',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Carl',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Andrew',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const TableDark = () => {
    +  return (
    +    
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +    
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableDark +`}
    +
    +) + +export const tableTheadOptions = ( +
    +    {`
    +import AvatarGroup from '@components/avatar-group'
    +import react from '@src/assets/images/icons/react.svg'
    +import vuejs from '@src/assets/images/icons/vuejs.svg'
    +import angular from '@src/assets/images/icons/angular.svg'
    +import bootstrap from '@src/assets/images/icons/bootstrap.svg'
    +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg'
    +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg'
    +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg'
    +import { MoreVertical, Edit, Trash } from 'react-feather'
    +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap'
    +
    +const avatarGroupData1 = [
    +  {
    +    title: 'Adara',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Kalia ',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Oliver',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData2 = [
    +  {
    +    title: 'Tyler',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Hanae',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Brynn',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData3 = [
    +  {
    +    title: 'Tate',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Norman',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Lana',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData4 = [
    +  {
    +    title: 'Emerald',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Sebastian',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Jamal',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +// Change class to thead-light for light variant
    +const TableTheadDark = () => {
    +  return (
    +    
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +    
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableTheadDark`}
    +
    +) + +export const tableStriped = ( +
    +    {`
    +import AvatarGroup from '@components/avatar-group'
    +import react from '@src/assets/images/icons/react.svg'
    +import vuejs from '@src/assets/images/icons/vuejs.svg'
    +import angular from '@src/assets/images/icons/angular.svg'
    +import bootstrap from '@src/assets/images/icons/bootstrap.svg'
    +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg'
    +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg'
    +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg'
    +import { MoreVertical, Edit, Trash } from 'react-feather'
    +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap'
    +
    +const avatarGroupData1 = [
    +  {
    +    title: 'Gretchen',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Hunter',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Allistair',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData2 = [
    +  {
    +    title: 'Macy',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Eve',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Damian',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData3 = [
    +  {
    +    title: 'Jade',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Destiny',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Cade',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData4 = [
    +  {
    +    title: 'Bruno',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Griffin',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Anthony',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const TableStriped = () => {
    +  return (
    +    
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +    
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableStriped +`}
    +
    +) + +export const tableStripedDark = ( +
    +    {`
    +import AvatarGroup from '@components/avatar-group'
    +import react from '@src/assets/images/icons/react.svg'
    +import vuejs from '@src/assets/images/icons/vuejs.svg'
    +import angular from '@src/assets/images/icons/angular.svg'
    +import bootstrap from '@src/assets/images/icons/bootstrap.svg'
    +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg'
    +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg'
    +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg'
    +import { MoreVertical, Edit, Trash } from 'react-feather'
    +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap'
    +
    +const avatarGroupData1 = [
    +  {
    +    title: 'Galvin',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Malcolm',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Leo',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData2 = [
    +  {
    +    title: 'Nola',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Brett',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Harper',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData3 = [
    +  {
    +    title: 'Jamalia',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Arden',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Laith',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData4 = [
    +  {
    +    title: 'Kirby',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Forrest',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Jordan',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +const TableStripedDark = () => {
    +  return (
    +    
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +    
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableStripedDark +`}
    +
    +) + +export const tableBorderless = ( +
    +    {`
    +import AvatarGroup from '@components/avatar-group'
    +import react from '@src/assets/images/icons/react.svg'
    +import vuejs from '@src/assets/images/icons/vuejs.svg'
    +import angular from '@src/assets/images/icons/angular.svg'
    +import bootstrap from '@src/assets/images/icons/bootstrap.svg'
    +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg'
    +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg'
    +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg'
    +import { MoreVertical, Edit, Trash } from 'react-feather'
    +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap'
    +
    +const avatarGroupData1 = [
    +  {
    +    title: 'Sarah',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Ainsley',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Charissa',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData2 = [
    +  {
    +    title: 'Vanna',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Inga',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Patricia',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData3 = [
    +  {
    +    title: 'Justina',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Lamar',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Briar',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData4 = [
    +  {
    +    title: 'Jenette',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Francis',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Isaac',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const TableBorderless = () => {
    +  return (
    +    
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +    
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableBorderless +`}
    +
    +) + +export const tableBordered = ( +
    +    {`
    +import AvatarGroup from '@components/avatar-group'
    +import react from '@src/assets/images/icons/react.svg'
    +import vuejs from '@src/assets/images/icons/vuejs.svg'
    +import angular from '@src/assets/images/icons/angular.svg'
    +import bootstrap from '@src/assets/images/icons/bootstrap.svg'
    +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg'
    +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg'
    +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg'
    +import { MoreVertical, Edit, Trash } from 'react-feather'
    +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap'
    +
    +const avatarGroupData1 = [
    +  {
    +    title: 'Leslie',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Quinn',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Quinn',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData2 = [
    +  {
    +    title: 'Felicia',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Brent',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Patricia',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData3 = [
    +  {
    +    title: 'Breanna',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Peter',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Cherokee',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData4 = [
    +  {
    +    title: 'Martina',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Butcher',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Noel',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const TableBordered = () => {
    +  return (
    +    
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +    
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableBordered +`}
    +
    +) + +export const tableHover = ( +
    +    {`
    +import AvatarGroup from '@components/avatar-group'
    +import react from '@src/assets/images/icons/react.svg'
    +import vuejs from '@src/assets/images/icons/vuejs.svg'
    +import angular from '@src/assets/images/icons/angular.svg'
    +import bootstrap from '@src/assets/images/icons/bootstrap.svg'
    +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg'
    +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg'
    +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg'
    +import { MoreVertical, Edit, Trash } from 'react-feather'
    +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap'
    +
    +const avatarGroupData1 = [
    +  {
    +    title: 'Griffith',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Hu',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Felicia',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData2 = [
    +  {
    +    title: 'Quinlan',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Patrick',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Castor',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData3 = [
    +  {
    +    title: 'Mohammad',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Isabella',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Michael',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData4 = [
    +  {
    +    title: 'Lavinia',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Nelle',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Virginia',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const TableHover = () => {
    +  return (
    +    
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +    
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableHover +`}
    +
    +) + +export const tableSmall = ( +
    +    {`
    +import AvatarGroup from '@components/avatar-group'
    +import react from '@src/assets/images/icons/react.svg'
    +import vuejs from '@src/assets/images/icons/vuejs.svg'
    +import angular from '@src/assets/images/icons/angular.svg'
    +import bootstrap from '@src/assets/images/icons/bootstrap.svg'
    +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg'
    +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg'
    +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg'
    +import { MoreVertical, Edit, Trash } from 'react-feather'
    +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap'
    +
    +const avatarGroupData1 = [
    +  {
    +    title: 'Melissa',
    +    img: avatar1,
    +    imgHeight: 22,
    +    imgWidth: 22
    +  },
    +  {
    +    title: 'Jana',
    +    img: avatar2,
    +    imgHeight: 22,
    +    imgWidth: 22
    +  },
    +  {
    +    title: 'Halla',
    +    img: avatar3,
    +    imgHeight: 22,
    +    imgWidth: 22
    +  }
    +]
    +
    +const avatarGroupData2 = [
    +  {
    +    title: 'Wing',
    +    img: avatar1,
    +    imgHeight: 22,
    +    imgWidth: 22
    +  },
    +  {
    +    title: 'Octavia',
    +    img: avatar2,
    +    imgHeight: 22,
    +    imgWidth: 22
    +  },
    +  {
    +    title: 'Benedict',
    +    img: avatar3,
    +    imgHeight: 22,
    +    imgWidth: 22
    +  }
    +]
    +
    +const avatarGroupData3 = [
    +  {
    +    title: 'Jade',
    +    img: avatar1,
    +    imgHeight: 22,
    +    imgWidth: 22
    +  },
    +  {
    +    title: 'Alisa',
    +    img: avatar2,
    +    imgHeight: 22,
    +    imgWidth: 22
    +  },
    +  {
    +    title: 'Alisa',
    +    img: avatar3,
    +    imgHeight: 22,
    +    imgWidth: 22
    +  }
    +]
    +
    +const avatarGroupData4 = [
    +  {
    +    title: 'Alexa',
    +    img: avatar1,
    +    imgHeight: 22,
    +    imgWidth: 22
    +  },
    +  {
    +    title: 'Lee',
    +    img: avatar2,
    +    imgHeight: 22,
    +    imgWidth: 22
    +  },
    +  {
    +    title: 'Shellie',
    +    img: avatar3,
    +    imgHeight: 22,
    +    imgWidth: 22
    +  }
    +]
    +
    +const TableSmall = () => {
    +  return (
    +    
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +    
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableSmall +`}
    +
    +) + +export const tableContextual = ( +
    +    {`
    +import AvatarGroup from '@components/avatar-group'
    +import react from '@src/assets/images/icons/react.svg'
    +import figma from '@src/assets/images/icons/figma.svg'
    +import vuejs from '@src/assets/images/icons/vuejs.svg'
    +import angular from '@src/assets/images/icons/angular.svg'
    +import bootstrap from '@src/assets/images/icons/bootstrap.svg'
    +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg'
    +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg'
    +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg'
    +import { MoreVertical, Edit, Trash } from 'react-feather'
    +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap'
    +
    +const avatarGroupData1 = [
    +  {
    +    title: 'Illiana',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Wyatt',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Troy',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData2 = [
    +  {
    +    title: 'Mufutau',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Denton',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Carol',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData3 = [
    +  {
    +    title: 'Kyla',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Hop',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Yvonne',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData4 = [
    +  {
    +    title: 'Lunea',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Francis',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Kameko',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData5 = [
    +  {
    +    title: 'Blair',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Aspen',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Tyler',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData6 = [
    +  {
    +    title: 'Florence',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Kieran',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Anthony',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData7 = [
    +  {
    +    title: 'Lysandra',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Russell',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Curran',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData8 = [
    +  {
    +    title: 'Britanney',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Avye',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Castor',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData9 = [
    +  {
    +    title: 'Charissa',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Elijah',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Giacomo',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData10 = [
    +  {
    +    title: 'Chaim',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Virginia',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Kristen',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const TableContextual = () => {
    +  return (
    +    
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +    
    ProjectClientUsersStatusActions
    + figma + Figma Project + Ronnie Shane + {' '} + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + angular + Angular Project + Peter Charls + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + figma + Figma Project + Janne Ale + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Custom + Ted Richer + + + + Schedule + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Latest Bootstrap + Perry Parker + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + angular + Angular UI + Ana Bell + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap UI + Jerry Milton + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableContextual +`}
    +
    +) + +export const tableResponsive = ( +
    +    {`
    +import { Table } from 'reactstrap'
    +
    +const TableResponsive = () => {
    +  return (
    +    
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +    
    + # + + Heading 1 + + Heading 2 + + Heading 3 + + Heading 4 + + Heading 5 + + Heading 6 + + Heading 7 + + Heading 8 + + Heading 9 + + Heading 10 + + Heading 11 + + Heading 12 + + Heading 13 +
    1Table cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cell
    2Table cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cell
    3Table cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cell
    4Table cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cellTable cell
    + ) +} + +export default TableResponsive +`}
    +
    +) + +export const tableHoverAnimation = ( +
    +    {`
    +import AvatarGroup from '@components/avatar-group'
    +import react from '@src/assets/images/icons/react.svg'
    +import vuejs from '@src/assets/images/icons/vuejs.svg'
    +import angular from '@src/assets/images/icons/angular.svg'
    +import bootstrap from '@src/assets/images/icons/bootstrap.svg'
    +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg'
    +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg'
    +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg'
    +import { MoreVertical, Edit, Trash } from 'react-feather'
    +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap'
    +
    +const avatarGroupData1 = [
    +  {
    +    title: 'Yoshi',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Kevyn',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Louis',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData2 = [
    +  {
    +    title: 'Aileen',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Karleigh',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Elmo',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData3 = [
    +  {
    +    title: 'Blossom',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Jescie',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Gemma',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const avatarGroupData4 = [
    +  {
    +    title: 'Thor',
    +    img: avatar1,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Jack',
    +    img: avatar2,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  },
    +  {
    +    title: 'Reece',
    +    img: avatar3,
    +    imgHeight: 26,
    +    imgWidth: 26
    +  }
    +]
    +
    +const TableHoverAnimation = () => {
    +  return (
    +    
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +      
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +        
    +          
    +          
    +          
    +          
    +          
    +        
    +      
    +    
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableHoverAnimation +`}
    +
    +) diff --git a/src/views/tables/reactstrap/TableStriped.js b/src/views/tables/reactstrap/TableStriped.js new file mode 100644 index 0000000..5df3dca --- /dev/null +++ b/src/views/tables/reactstrap/TableStriped.js @@ -0,0 +1,234 @@ +import AvatarGroup from '@components/avatar-group' +import react from '@src/assets/images/icons/react.svg' +import vuejs from '@src/assets/images/icons/vuejs.svg' +import angular from '@src/assets/images/icons/angular.svg' +import bootstrap from '@src/assets/images/icons/bootstrap.svg' +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import { MoreVertical, Edit, Trash } from 'react-feather' +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const avatarGroupData1 = [ + { + title: 'Gretchen', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Hunter', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Allistair', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData2 = [ + { + title: 'Macy', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Eve', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Damian', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData3 = [ + { + title: 'Jade', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Destiny', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Cade', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData4 = [ + { + title: 'Bruno', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Griffin', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Anthony', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const TableStriped = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableStriped diff --git a/src/views/tables/reactstrap/TableStripedDark.js b/src/views/tables/reactstrap/TableStripedDark.js new file mode 100644 index 0000000..0396b51 --- /dev/null +++ b/src/views/tables/reactstrap/TableStripedDark.js @@ -0,0 +1,233 @@ +import AvatarGroup from '@components/avatar-group' +import react from '@src/assets/images/icons/react.svg' +import vuejs from '@src/assets/images/icons/vuejs.svg' +import angular from '@src/assets/images/icons/angular.svg' +import bootstrap from '@src/assets/images/icons/bootstrap.svg' +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import { MoreVertical, Edit, Trash } from 'react-feather' +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const avatarGroupData1 = [ + { + title: 'Galvin', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Malcolm', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Leo', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData2 = [ + { + title: 'Nola', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Brett', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Harper', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData3 = [ + { + title: 'Jamalia', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Arden', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Laith', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData4 = [ + { + title: 'Kirby', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Forrest', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Jordan', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] +const TableStripedDark = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableStripedDark diff --git a/src/views/tables/reactstrap/TableTheadDark.js b/src/views/tables/reactstrap/TableTheadDark.js new file mode 100644 index 0000000..5011d30 --- /dev/null +++ b/src/views/tables/reactstrap/TableTheadDark.js @@ -0,0 +1,234 @@ +import AvatarGroup from '@components/avatar-group' +import react from '@src/assets/images/icons/react.svg' +import vuejs from '@src/assets/images/icons/vuejs.svg' +import angular from '@src/assets/images/icons/angular.svg' +import bootstrap from '@src/assets/images/icons/bootstrap.svg' +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import { MoreVertical, Edit, Trash } from 'react-feather' +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const avatarGroupData1 = [ + { + title: 'Adara', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Kalia ', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Oliver', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData2 = [ + { + title: 'Tyler', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Hanae', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Brynn', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData3 = [ + { + title: 'Tate', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Norman', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Lana', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData4 = [ + { + title: 'Emerald', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Sebastian', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Jamal', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const TableTheadDark = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableTheadDark diff --git a/src/views/tables/reactstrap/TableTheadLight.js b/src/views/tables/reactstrap/TableTheadLight.js new file mode 100644 index 0000000..01cc270 --- /dev/null +++ b/src/views/tables/reactstrap/TableTheadLight.js @@ -0,0 +1,234 @@ +import AvatarGroup from '@components/avatar-group' +import react from '@src/assets/images/icons/react.svg' +import vuejs from '@src/assets/images/icons/vuejs.svg' +import angular from '@src/assets/images/icons/angular.svg' +import bootstrap from '@src/assets/images/icons/bootstrap.svg' +import avatar1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import avatar2 from '@src/assets/images/portrait/small/avatar-s-6.jpg' +import avatar3 from '@src/assets/images/portrait/small/avatar-s-7.jpg' +import { MoreVertical, Edit, Trash } from 'react-feather' +import { Table, Badge, UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap' + +const avatarGroupData1 = [ + { + title: 'Aristotle', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Nolan ', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Baxter', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData2 = [ + { + title: 'Zane', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Tatum', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Rae', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData3 = [ + { + title: 'Rhiannon', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'William', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Vaughan', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const avatarGroupData4 = [ + { + title: 'Unity', + img: avatar1, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Emerson', + img: avatar2, + imgHeight: 26, + imgWidth: 26 + }, + { + title: 'Ima', + img: avatar3, + imgHeight: 26, + imgWidth: 26 + } +] + +const TableTheadLight = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProjectClientUsersStatusActions
    + angular + Angular Project + Peter Charles + + + + Active + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + react + React Project + Ronald Frest + + + + Completed + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + vuejs + Vuejs Project + Jack Obes + + + + Scheduled + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + bootstrap + Bootstrap Project + Jerry Milton + + + + Pending + + + + + + + + e.preventDefault()}> + Edit + + e.preventDefault()}> + Delete + + + +
    + ) +} + +export default TableTheadLight diff --git a/src/views/tables/reactstrap/index.js b/src/views/tables/reactstrap/index.js new file mode 100644 index 0000000..7781a9d --- /dev/null +++ b/src/views/tables/reactstrap/index.js @@ -0,0 +1,175 @@ +import { Fragment, useEffect } from 'react' +import { Row, Col, CardBody, CardText } from 'reactstrap' +import prism from 'prismjs' +import TableBasic from './TableBasic' +import TableDark from './TableDark' +import TableTheadDark from './TableTheadDark' +import TableTheadLight from './TableTheadLight' +import TableStriped from './TableStriped' +import TableStripedDark from './TableStripedDark' +import TableBordered from './TableBordered' +import TableBorderless from './TableBorderless' +import TableHover from './TableHover' +import TableSmall from './TableSmall' +import TableContextual from './TableContextual' +import TableResponsive from './TableResponsive' +import TableHoverAnimation from './TableHoverAnimation' +import Breadcrumbs from '@components/breadcrumbs' +import Card from '@components/card-snippet' +import { + tableBasic, + tableDark, + tableTheadOptions, + tableStriped, + tableStripedDark, + tableBordered, + tableBorderless, + tableContextual, + tableHover, + tableSmall, + tableHoverAnimation, + tableResponsive +} from './TableSourceCode' + +const Tables = () => { + useEffect(() => { + prism.highlightAll() + }) + + return ( + + + + + + + + + + + + + Use prop dark to create a dark inverted table. + + + + + + + + + + Similar to tables and dark tables, use the modifier classes .thead-dark + to make <thead> appear dark. + + + + +

    + Use the modifier class .thead-light to make + <thead>s appear light. +

    +
    + +
    + + + + + + Use prop striped to create a striped table. + + + + + + + + + + Use props striped & dark to create a dark striped table. + + + + + + + + + + Use prop bordered to create a bordered table. + + + + + + + + + + Use prop borderless to create a borderless table. + + + + + + + + + + Use prop hover to create a hoverable table. + + + + + + + + + + Use prop size="sm" to create a small table. + + + + + + + + + + Use class table-[colorName] with <tr> for contextual rows. + + + + + + +
    Table without card
    + + + + + + + Use prop responsive to make your table responsive. + + + + + + + + + + Use class table-hover-animation for Table Hover Animation. + + + + + +
    +
    + ) +} + +export default Tables diff --git a/src/views/ui-elements/cards/actions/index.js b/src/views/ui-elements/cards/actions/index.js new file mode 100644 index 0000000..0f55edf --- /dev/null +++ b/src/views/ui-elements/cards/actions/index.js @@ -0,0 +1,110 @@ +import { Fragment } from 'react' +import Breadcrumbs from '@components/breadcrumbs' +import CardAction from '@components/card-actions' +import { ChevronDown, RotateCw, X } from 'react-feather' +import { CardBody, CardText, Row, Col, Table } from 'reactstrap' + +const CardActions = () => { + return ( + + + + + { + setTimeout(() => endLoading(), 2000) + }} + > + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ActionIconDetails
    Collapse + + Collapse card content using collapse action.
    Refresh Content + + Refresh your card content using refresh action.
    Remove Card + + Remove card from page using remove card action
    +
    +
    + +
    + + + + + + You can create a collapsible content by using our + CardAction component and by passing prop + actions='collapse'. + + + Click on to see card collapse in action + + + + + + { + setTimeout(() => endLoading(), 2000) + }} + > + + + To create a re-loadable card pass prop + actions='reload' and pass prop endReload + to end the loading. + + + Click on to see card refresh in action + + + + + + + + + You can add refresh content action to card by adding class + .card-reload with your card tag, and add conditional spinner into card body to show when + card is refreshing. + + + Click on to see card refresh in action + + + + + +
    + ) +} +export default CardActions diff --git a/src/views/ui-elements/cards/advance/CardAppDesign.js b/src/views/ui-elements/cards/advance/CardAppDesign.js new file mode 100644 index 0000000..2a854a2 --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardAppDesign.js @@ -0,0 +1,92 @@ +import classnames from 'classnames' +import Avatar from '@components/avatar' +import { Card, CardTitle, CardBody, CardText, Badge, Button } from 'reactstrap' + +const CardAppDesign = () => { + const avatarArr = [ + { + img: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + imgHeight: 34, + imgWidth: 34 + }, + { + content: 'PI', + color: 'light-danger' + }, + { + img: require('@src/assets/images/portrait/small/avatar-s-14.jpg').default, + imgHeight: 34, + imgWidth: 34 + }, + { + img: require('@src/assets/images/portrait/small/avatar-s-7.jpg').default, + imgHeight: 34, + imgWidth: 34 + }, + { + content: 'AL', + color: 'light-secondary' + } + ] + + const designPlanningArr = [ + { + title: 'Due Date', + subtitle: '12 Apr, 21' + }, + { + title: 'Budget', + subtitle: '$49251.91' + }, + { + title: 'Cost', + subtitle: '$840.99' + } + ] + + return ( + + + 03 Sep, 20 + App design + + You can Find Only Post and Quotes Related to IOS like ipad app design, iphone app design + +
    +
    Team
    + + Figma + + Wireframe +
    +
    +
    Members
    + {avatarArr.map((obj, index) => { + return ( + + ) + })} +
    +
    + {designPlanningArr.map(item => ( +
    + {item.title} +
    {item.subtitle}
    +
    + ))} +
    + + Join Team + +
    +
    + ) +} + +export default CardAppDesign diff --git a/src/views/ui-elements/cards/advance/CardBrowserState.js b/src/views/ui-elements/cards/advance/CardBrowserState.js new file mode 100644 index 0000000..0ee3d32 --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardBrowserState.js @@ -0,0 +1,291 @@ +import Chart from 'react-apexcharts' +import { MoreVertical } from 'react-feather' +import { + Card, + CardHeader, + CardTitle, + CardBody, + CardText, + Media, + UncontrolledDropdown, + DropdownMenu, + DropdownItem, + DropdownToggle +} from 'reactstrap' + +const CardBrowserState = ({ colors, trackBgColor }) => { + const statesArr = [ + { + avatar: require('@src/assets/images/icons/google-chrome.png').default, + title: 'Google Chrome', + value: '54.4%', + chart: { + type: 'radialBar', + series: [54.4], + height: 30, + width: 30, + options: { + grid: { + show: false, + padding: { + left: -15, + right: -15, + top: -12, + bottom: -15 + } + }, + colors: [colors.primary.main], + plotOptions: { + radialBar: { + hollow: { + size: '22%' + }, + track: { + background: trackBgColor + }, + dataLabels: { + showOn: 'always', + name: { + show: false + }, + value: { + show: false + } + } + } + }, + stroke: { + lineCap: 'round' + } + } + } + }, + { + avatar: require('@src/assets/images/icons/mozila-firefox.png').default, + title: 'Mozila Firefox', + value: '6.1%', + chart: { + type: 'radialBar', + series: [6.1], + height: 30, + width: 30, + options: { + grid: { + show: false, + padding: { + left: -15, + right: -15, + top: -12, + bottom: -15 + } + }, + colors: [colors.warning.main], + plotOptions: { + radialBar: { + hollow: { + size: '22%' + }, + track: { + background: trackBgColor + }, + dataLabels: { + showOn: 'always', + name: { + show: false + }, + value: { + show: false + } + } + } + }, + stroke: { + lineCap: 'round' + } + } + } + }, + { + avatar: require('@src/assets/images/icons/apple-safari.png').default, + title: 'Apple Safari', + value: '14.6%', + chart: { + type: 'radialBar', + series: [14.6], + height: 30, + width: 30, + options: { + grid: { + show: false, + padding: { + left: -15, + right: -15, + top: -12, + bottom: -15 + } + }, + colors: [colors.secondary.main], + plotOptions: { + radialBar: { + hollow: { + size: '22%' + }, + track: { + background: trackBgColor + }, + dataLabels: { + showOn: 'always', + name: { + show: false + }, + value: { + show: false + } + } + } + }, + stroke: { + lineCap: 'round' + } + } + } + }, + { + avatar: require('@src/assets/images/icons/internet-explorer.png').default, + title: 'Internet Explorer', + value: '4.2%', + chart: { + type: 'radialBar', + series: [4.2], + height: 30, + width: 30, + options: { + grid: { + show: false, + padding: { + left: -15, + right: -15, + top: -12, + bottom: -15 + } + }, + colors: [colors.info.main], + plotOptions: { + radialBar: { + hollow: { + size: '22%' + }, + track: { + background: trackBgColor + }, + dataLabels: { + showOn: 'always', + name: { + show: false + }, + value: { + show: false + } + } + } + }, + stroke: { + lineCap: 'round' + } + } + } + }, + { + avatar: require('@src/assets/images/icons/opera.png').default, + title: 'Opera Mini', + value: '8.4%', + chart: { + type: 'radialBar', + series: [8.4], + height: 30, + width: 30, + options: { + grid: { + show: false, + padding: { + left: -15, + right: -15, + top: -12, + bottom: -15 + } + }, + colors: [colors.danger.main], + plotOptions: { + radialBar: { + hollow: { + size: '22%' + }, + track: { + background: trackBgColor + }, + dataLabels: { + showOn: 'always', + name: { + show: false + }, + value: { + show: false + } + } + } + }, + stroke: { + lineCap: 'round' + } + } + } + } + ] + + const renderStates = () => { + return statesArr.map(state => { + return ( +
    + + {state.title} +
    {state.title}
    +
    +
    +
    {state.value}
    + +
    +
    + ) + }) + } + + return ( + + +
    + Browser States + Counter August 2020 +
    + + + + + + Last 28 Days + Last Month + Last Year + + +
    + {renderStates()} +
    + ) +} + +export default CardBrowserState diff --git a/src/views/ui-elements/cards/advance/CardBusiness.js b/src/views/ui-elements/cards/advance/CardBusiness.js new file mode 100644 index 0000000..22601f5 --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardBusiness.js @@ -0,0 +1,70 @@ +import { MoreVertical } from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody, CardText, CustomInput, Badge, Button } from 'reactstrap' + +const CardBusiness = () => { + const dataArr = [ + { + id: 'option-1', + title: 'Option #1', + badgeColor: 'light-success', + amount: '+$39' + }, + { + id: 'option-2', + title: 'Option #2', + badgeColor: 'light-primary', + amount: '+$85', + checked: true + }, + { + id: 'option-3', + title: 'Option #3', + badgeColor: 'light-success', + amount: '+$199' + }, + { + id: 'option-4', + title: 'Option #4', + badgeColor: 'light-success', + amount: '+$459' + } + ] + + const renderOptions = () => { + return dataArr.map(item => { + return ( +
    +
    + + {item.amount} +
    +
    + ) + }) + } + + return ( + + + For Business Sharks + + + + Here, i focus ona range of items and featured that we use in life without giving them +
    Basic price is $130
    +
    {renderOptions()}
    + + Purchase + +
    +
    + ) +} + +export default CardBusiness diff --git a/src/views/ui-elements/cards/advance/CardChat.js b/src/views/ui-elements/cards/advance/CardChat.js new file mode 100644 index 0000000..eae81e7 --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardChat.js @@ -0,0 +1,196 @@ +import classnames from 'classnames' +import Avatar from '@components/avatar' +import { useState, useEffect } from 'react' +import PerfectScrollbar from 'react-perfect-scrollbar' +import { MoreVertical, Send, Image } from 'react-feather' +import { Card, CardHeader, Form, Label, InputGroup, InputGroupAddon, Input, InputGroupText, Button } from 'reactstrap' + +import profilePic from '@src/assets/images/portrait/small/avatar-s-11.jpg' + +import '@styles/base/pages/app-chat-list.scss' + +const data = { + chat: { + id: 2, + userId: 1, + unseenMsgs: 0, + chat: [ + { + message: "How can we help? We're here for you!", + time: 'Mon Dec 10 2018 07:45:00 GMT+0000 (GMT)', + senderId: 11 + }, + { + message: 'Hey John, I am looking for the best admin template. Could you please help me to find it out?', + time: 'Mon Dec 10 2018 07:45:23 GMT+0000 (GMT)', + senderId: 1 + }, + { + message: 'It should be Bootstrap 4 compatible.', + time: 'Mon Dec 10 2018 07:45:55 GMT+0000 (GMT)', + senderId: 1 + }, + { message: 'Absolutely!', time: 'Mon Dec 10 2018 07:46:00 GMT+0000 (GMT)', senderId: 11 }, + { + message: 'Modern admin is the responsive bootstrap 4 admin template.!', + time: 'Mon Dec 10 2018 07:46:05 GMT+0000 (GMT)', + senderId: 11 + }, + { message: 'Looks clean and fresh UI.', time: 'Mon Dec 10 2018 07:46:23 GMT+0000 (GMT)', senderId: 1 }, + { message: "It's perfect for my next project.", time: 'Mon Dec 10 2018 07:46:33 GMT+0000 (GMT)', senderId: 1 }, + { message: 'How can I purchase it?', time: 'Mon Dec 10 2018 07:46:43 GMT+0000 (GMT)', senderId: 1 }, + { message: 'Thanks, from ThemeForest.', time: 'Mon Dec 10 2018 07:46:53 GMT+0000 (GMT)', senderId: 11 }, + { message: 'I will purchase it for sure. 👍', time: '2020-12-08T13:52:38.013Z', senderId: 1 } + ] + }, + contact: { + id: 1, + fullName: 'Felecia Rower', + avatar: require('@src/assets/images/portrait/small/avatar-s-20.jpg').default, + status: 'away' + } +} + +const CardChat = () => { + const [msg, setMsg] = useState('') + const [chatRef, setChatRef] = useState(null) + const [chatData, setChatData] = useState(data) + + //** Formats chat data based on sender + const formattedChatData = () => { + let chatLog = [] + if (chatData) { + chatLog = chatData.chat.chat + } + + const formattedChatLog = [] + let chatMessageSenderId = chatLog[0] ? chatLog[0].senderId : undefined + let msgGroup = { + senderId: chatMessageSenderId, + messages: [] + } + chatLog.forEach((msg, index) => { + if (chatMessageSenderId === msg.senderId) { + msgGroup.messages.push({ + msg: msg.message, + time: msg.time + }) + } else { + chatMessageSenderId = msg.senderId + formattedChatLog.push(msgGroup) + msgGroup = { + senderId: msg.senderId, + messages: [ + { + msg: msg.message, + time: msg.time + } + ] + } + } + if (index === chatLog.length - 1) formattedChatLog.push(msgGroup) + }) + return formattedChatLog + } + + //** Renders user chat + const renderChats = () => { + return formattedChatData().map((item, index) => { + return ( +
    +
    + +
    + +
    + {item.messages.map(chat => ( +
    +

    {chat.msg}

    +
    + ))} +
    +
    + ) + }) + } + + //** Scroll to chat bottom + const scrollToBottom = () => { + chatRef.scrollTop = Number.MAX_SAFE_INTEGER + } + + useEffect(() => { + if (chatRef !== null) { + scrollToBottom() + } + }, [chatRef, chatData.chat.chat.length]) + + const handleSendMsg = e => { + e.preventDefault() + if (msg.trim().length) { + const newMsg = chatData + + newMsg.chat.chat.push({ + message: msg, + time: new Date(), + senderId: 11 + }) + + setChatData(newMsg) + setMsg('') + } + } + + return ( + + +
    + +
    Carrie Hawkins
    +
    + +
    +
    + setChatRef(el)} + className='user-chats scroll-area' + options={{ wheelPropagation: false }} + > +
    {renderChats()}
    +
    +
    handleSendMsg(e)}> + + + + + + + setMsg(e.target.value)} + placeholder='Type your message' + /> + + +
    +
    +
    + ) +} + +export default CardChat diff --git a/src/views/ui-elements/cards/advance/CardCongratulations.js b/src/views/ui-elements/cards/advance/CardCongratulations.js new file mode 100644 index 0000000..bc62472 --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardCongratulations.js @@ -0,0 +1,25 @@ +import { Award } from 'react-feather' +import Avatar from '@components/avatar' +import { Card, CardBody, CardText } from 'reactstrap' +import decorationLeft from '@src/assets/images/elements/decore-left.png' +import decorationRight from '@src/assets/images/elements/decore-right.png' + +const CardCongratulations = () => { + return ( + + + decor-left + decor-right + } className='shadow' color='primary' size='xl' /> +
    +

    Congratulations John,

    + + You have done 57.6% more sales today. Check your new badge in your profile. + +
    +
    +
    + ) +} + +export default CardCongratulations diff --git a/src/views/ui-elements/cards/advance/CardEmployeesTask.js b/src/views/ui-elements/cards/advance/CardEmployeesTask.js new file mode 100644 index 0000000..eed6221 --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardEmployeesTask.js @@ -0,0 +1,323 @@ +import Chart from 'react-apexcharts' +import Avatar from '@components/avatar' +import { MoreVertical } from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody, Media } from 'reactstrap' + +const CardEmployeesTasks = ({ colors, trackBgColor }) => { + const employeesTasks = [ + { + avatar: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + title: 'Ryan Harrington', + subtitle: 'iOS Developer', + time: '9hr 20m', + chart: { + type: 'radialBar', + series: [45], + height: 30, + width: 30, + options: { + grid: { + show: false, + padding: { + left: -15, + right: -15, + top: -12, + bottom: -15 + } + }, + colors: [colors.primary.main], + plotOptions: { + radialBar: { + hollow: { + size: '22%' + }, + track: { + background: trackBgColor + }, + dataLabels: { + showOn: 'always', + name: { + show: false + }, + value: { + show: false + } + } + } + }, + stroke: { + lineCap: 'round' + } + } + } + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-20.jpg').default, + title: 'Louisa Norton', + subtitle: 'UI Designer', + time: '4hr 17m', + chart: { + type: 'radialBar', + series: [65], + height: 30, + width: 30, + options: { + grid: { + show: false, + padding: { + left: -15, + right: -15, + top: -12, + bottom: -15 + } + }, + colors: [colors.danger.main], + plotOptions: { + radialBar: { + hollow: { + size: '22%' + }, + track: { + background: trackBgColor + }, + dataLabels: { + showOn: 'always', + name: { + show: false + }, + value: { + show: false + } + } + } + }, + stroke: { + lineCap: 'round' + } + } + } + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-1.jpg').default, + title: 'Jayden Duncan', + subtitle: 'Java Developer', + time: '12hr 8m', + chart: { + type: 'radialBar', + series: [60], + height: 30, + width: 30, + options: { + grid: { + show: false, + padding: { + left: -15, + right: -15, + top: -12, + bottom: -15 + } + }, + colors: [colors.success.main], + plotOptions: { + radialBar: { + hollow: { + size: '22%' + }, + track: { + background: trackBgColor + }, + dataLabels: { + showOn: 'always', + name: { + show: false + }, + value: { + show: false + } + } + } + }, + stroke: { + lineCap: 'round' + } + } + } + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-20.jpg').default, + title: 'Cynthia Howell', + subtitle: 'Angular Developer', + time: '3hr 19m', + chart: { + type: 'radialBar', + series: [35], + height: 30, + width: 30, + options: { + grid: { + show: false, + padding: { + left: -15, + right: -15, + top: -12, + bottom: -15 + } + }, + colors: [colors.secondary.main], + plotOptions: { + radialBar: { + hollow: { + size: '22%' + }, + track: { + background: trackBgColor + }, + dataLabels: { + showOn: 'always', + name: { + show: false + }, + value: { + show: false + } + } + } + }, + stroke: { + lineCap: 'round' + } + } + } + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-16.jpg').default, + title: 'Helena Payne', + subtitle: 'Marketing', + time: '9hr 50m', + chart: { + type: 'radialBar', + series: [65], + height: 30, + width: 30, + options: { + grid: { + show: false, + padding: { + left: -15, + right: -15, + top: -12, + bottom: -15 + } + }, + colors: [colors.warning.main], + plotOptions: { + radialBar: { + hollow: { + size: '22%' + }, + track: { + background: trackBgColor + }, + dataLabels: { + showOn: 'always', + name: { + show: false + }, + value: { + show: false + } + } + } + }, + stroke: { + lineCap: 'round' + } + } + } + }, + { + avatar: require('@src/assets/images/portrait/small/avatar-s-13.jpg').default, + title: 'Troy Jensen', + subtitle: 'iOS Developer', + time: '4hr 48m', + chart: { + type: 'radialBar', + series: [80], + height: 30, + width: 30, + options: { + grid: { + show: false, + padding: { + left: -15, + right: -15, + top: -12, + bottom: -15 + } + }, + colors: [colors.primary.main], + plotOptions: { + radialBar: { + hollow: { + size: '22%' + }, + track: { + background: trackBgColor + }, + dataLabels: { + showOn: 'always', + name: { + show: false + }, + value: { + show: false + } + } + } + }, + stroke: { + lineCap: 'round' + } + } + } + } + ] + + const renderTasks = () => { + return employeesTasks.map(task => { + return ( +
    + + + +
    {task.title}
    + {task.subtitle} +
    +
    +
    + {task.time} + +
    +
    + ) + }) + } + + return ( + + + Employee Task + + + {renderTasks()} + + ) +} + +export default CardEmployeesTasks diff --git a/src/views/ui-elements/cards/advance/CardJob.js b/src/views/ui-elements/cards/advance/CardJob.js new file mode 100644 index 0000000..f8ec8e8 --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardJob.js @@ -0,0 +1,48 @@ +import Avatar from '@components/avatar' +import { Card, CardBody, CardText, Button, Badge, Media } from 'reactstrap' +import profileImg from '@src/assets/images/portrait/small/avatar-s-7.jpg' + +const CardJob = () => { + return ( + + +
    + + + +
    Mittie Evans
    + Updated 12m ago +
    +
    + + Design + +
    +
    Need a designer to form branding essentials for my business.
    + + Design high-quality designs, graphics, mock-ups and layouts for both new and existing web sites/ web + applications / mobile applications. + +
    +
    + + $ + +

    9,800

    + + / month + +
    + + Full Time + +
    + +
    +
    + ) +} + +export default CardJob diff --git a/src/views/ui-elements/cards/advance/CardMedal.js b/src/views/ui-elements/cards/advance/CardMedal.js new file mode 100644 index 0000000..caf5d5b --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardMedal.js @@ -0,0 +1,22 @@ +import { Card, CardBody, CardText, Button } from 'reactstrap' +import medal from '@src/assets/images/illustration/badge.svg' + +const CardMedal = () => { + return ( + + +
    Congratulations 🎉 John!
    + You have won gold medal +

    + e.preventDefault()}> + $48.9k + +

    + View Sales + Medal Pic +
    +
    + ) +} + +export default CardMedal diff --git a/src/views/ui-elements/cards/advance/CardMeetup.js b/src/views/ui-elements/cards/advance/CardMeetup.js new file mode 100644 index 0000000..437bce3 --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardMeetup.js @@ -0,0 +1,87 @@ +import Avatar from '@components/avatar' +import { Calendar, MapPin } from 'react-feather' +import AvatarGroup from '@components/avatar-group' +import { Card, CardTitle, CardBody, CardText, Media } from 'reactstrap' +import illustration from '@src/assets/images/illustration/email.svg' + +const CardMeetup = () => { + const data = [ + { + title: 'Billy Hopkins', + placement: 'bottom', + img: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + imgHeight: 33, + imgWidth: 33 + }, + { + title: 'Amy Carson', + placement: 'bottom', + img: require('@src/assets/images/portrait/small/avatar-s-6.jpg').default, + imgHeight: 33, + imgWidth: 33 + }, + { + title: 'Brandon Miles', + placement: 'bottom', + img: require('@src/assets/images/portrait/small/avatar-s-8.jpg').default, + imgHeight: 33, + imgWidth: 33 + }, + { + title: 'Daisy Weber', + placement: 'bottom', + img: require('@src/assets/images/portrait/small/avatar-s-7.jpg').default, + imgHeight: 33, + imgWidth: 33 + }, + { + title: 'Jenny Looper', + placement: 'bottom', + img: require('@src/assets/images/portrait/small/avatar-s-20.jpg').default, + imgHeight: 33, + imgWidth: 33 + }, + { + meta: '+42' + } + ] + + return ( + +
    + +
    + +
    +
    +
    THU
    +

    24

    +
    +
    + + Developer Meetup + + Meet world popular developers +
    +
    + + } /> + +
    Sat, May 25, 2020
    + 10:AM to 6:PM +
    +
    + + } /> + +
    Central Park
    + Manhattan, New york City +
    +
    + +
    +
    + ) +} + +export default CardMeetup diff --git a/src/views/ui-elements/cards/advance/CardPayment.js b/src/views/ui-elements/cards/advance/CardPayment.js new file mode 100644 index 0000000..9f8224b --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardPayment.js @@ -0,0 +1,62 @@ +import Cleave from 'cleave.js/react' +import { Card, CardHeader, CardTitle, CardBody, Form, FormGroup, Label, Input, Button, Row, Col } from 'reactstrap' + +const CardPayment = () => { + return ( + + + Pay Amount + + $455.60 + + + +
    e.preventDefault()}> + + + + + + + + + + + + + + + + + + + + + + + + + + + + Make Payment + + + +
    +
    +
    + ) +} + +export default CardPayment diff --git a/src/views/ui-elements/cards/advance/CardProfile.js b/src/views/ui-elements/cards/advance/CardProfile.js new file mode 100644 index 0000000..58d6f09 --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardProfile.js @@ -0,0 +1,41 @@ +import Avatar from '@components/avatar' +import coverImg from '@src/assets/images/banner/banner-12.jpg' +import { Card, CardBody, CardImg, Badge } from 'reactstrap' +import profileImg from '@src/assets/images/portrait/small/avatar-s-9.jpg' + +const CardProfile = () => { + return ( + + + +
    +
    + +
    +
    +

    Curtis Stone

    +
    Malaysia
    + + Pro Level + +
    +
    +
    +
    Followers
    +

    10.3k

    +
    +
    +
    Projects
    +

    156

    +
    +
    +
    Rank
    +

    23

    +
    +
    +
    +
    + ) +} + +export default CardProfile diff --git a/src/views/ui-elements/cards/advance/CardTransactions.js b/src/views/ui-elements/cards/advance/CardTransactions.js new file mode 100644 index 0000000..8eb53a1 --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardTransactions.js @@ -0,0 +1,74 @@ +import Avatar from '@components/avatar' +import * as Icon from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody, Media } from 'reactstrap' + +const CardTransactions = () => { + const transactionsArr = [ + { + title: 'Wallet', + color: 'light-primary', + subtitle: 'Starbucks', + amount: '- $74', + Icon: Icon['Pocket'], + down: true + }, + { + title: 'Bank Transfer', + color: 'light-success', + subtitle: 'Add Money', + amount: '+ $480', + Icon: Icon['Check'] + }, + { + title: 'Paypal', + color: 'light-danger', + subtitle: 'Add Money', + amount: '+ $590', + Icon: Icon['DollarSign'] + }, + { + title: 'Mastercard', + color: 'light-warning', + subtitle: 'Ordered Food', + amount: '- $12', + Icon: Icon['CreditCard'], + down: true + }, + { + title: 'Transfer', + color: 'light-info', + subtitle: 'Refund', + amount: '+ $98', + Icon: Icon['TrendingUp'] + } + ] + + const renderTransactions = () => { + return transactionsArr.map(item => { + return ( +
    + + } /> + +
    {item.title}
    + {item.subtitle} +
    +
    +
    {item.amount}
    +
    + ) + }) + } + + return ( + + + Transactions + + + {renderTransactions()} + + ) +} + +export default CardTransactions diff --git a/src/views/ui-elements/cards/advance/CardUserTimeline.js b/src/views/ui-elements/cards/advance/CardUserTimeline.js new file mode 100644 index 0000000..6760eb5 --- /dev/null +++ b/src/views/ui-elements/cards/advance/CardUserTimeline.js @@ -0,0 +1,112 @@ +import Avatar from '@components/avatar' +import Timeline from '@components/timeline' +import AvatarGroup from '@components/avatar-group' +import { List, MoreVertical } from 'react-feather' +import jsonImg from '@src/assets/images/icons/json.png' +import ceo from '@src/assets/images/portrait/small/avatar-s-9.jpg' +import { Card, CardHeader, CardTitle, CardBody, Media } from 'reactstrap' + +const avatarGroupArr = [ + { + title: 'Billy Hopkins', + img: require('@src/assets/images/portrait/small/avatar-s-9.jpg').default, + placement: 'bottom', + imgHeight: 33, + imgWidth: 33 + }, + { + title: 'Amy Carson', + img: require('@src/assets/images/portrait/small/avatar-s-6.jpg').default, + placement: 'bottom', + imgHeight: 33, + imgWidth: 33 + }, + { + title: 'Brandon Miles', + img: require('@src/assets/images/portrait/small/avatar-s-8.jpg').default, + placement: 'bottom', + imgHeight: 33, + imgWidth: 33 + }, + { + title: 'Daisy Weber', + img: require('@src/assets/images/portrait/small/avatar-s-7.jpg').default, + placement: 'bottom', + imgHeight: 33, + imgWidth: 33 + }, + { + title: 'Jenny Looper', + img: require('@src/assets/images/portrait/small/avatar-s-20.jpg').default, + placement: 'bottom', + imgHeight: 33, + imgWidth: 33 + } +] + +const data = [ + { + title: '12 Invoices have been paid', + content: 'Invoices have been paid to the company.', + meta: '12 min ago', + metaClassName: 'mr-1', + customContent: ( + + data.json + + data.json + + + ) + }, + { + title: 'Client Meeting', + content: 'Project meeting with john @10:15am.', + meta: '45 min ago', + metaClassName: 'mr-1', + color: 'warning', + customContent: ( + + + +
    John Doe (Client)
    + CEO of Infibeam +
    +
    + ) + }, + { + title: 'Create a new project for client', + content: 'Add files to new design folder', + color: 'info', + meta: '2 days ago', + metaClassName: 'mr-1', + customContent: + }, + { + title: 'Create a new project for client', + content: 'Add files to new design folder', + color: 'danger', + meta: '5 days ago', + metaClassName: 'mr-1' + } +] + +const UserTimeline = () => { + return ( + + +
    + + User Timeline +
    + +
    + + + +
    + ) +} + +export default UserTimeline diff --git a/src/views/ui-elements/cards/advance/index.js b/src/views/ui-elements/cards/advance/index.js new file mode 100644 index 0000000..b5954c3 --- /dev/null +++ b/src/views/ui-elements/cards/advance/index.js @@ -0,0 +1,74 @@ +import { Fragment, useContext } from 'react' +import { Row, Col } from 'reactstrap' +import CardJob from './CardJob' +import CardChat from './CardChat' +import CardMedal from './CardMedal' +import CardMeetup from './CardMeetup' +import CardPayment from './CardPayment' +import CardProfile from './CardProfile' +import CardBusiness from './CardBusiness' +import CardAppDesign from './CardAppDesign' +import CardUserTimeline from './CardUserTimeline' +import CardBrowserState from './CardBrowserState' +import Breadcrumbs from '@components/breadcrumbs' +import CardTransactions from './CardTransactions' +import CardEmployeesTasks from './CardEmployeesTask' +import CardCongratulations from './CardCongratulations' +import { ThemeColors } from '@src/utility/context/ThemeColors' + +const Cards = () => { + const { colors } = useContext(ThemeColors), + trackBgColor = '#e9ecef' + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default Cards diff --git a/src/views/ui-elements/cards/analytics/AvgSessions.js b/src/views/ui-elements/cards/analytics/AvgSessions.js new file mode 100644 index 0000000..c8f20c2 --- /dev/null +++ b/src/views/ui-elements/cards/analytics/AvgSessions.js @@ -0,0 +1,127 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { kFormatter } from '@utils' +import { + Card, + CardBody, + CardText, + Row, + Col, + Button, + UncontrolledDropdown, + DropdownMenu, + DropdownItem, + DropdownToggle, + Progress +} from 'reactstrap' +import Chart from 'react-apexcharts' + +const AvgSessions = props => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-analytics/avg-sessions').then(res => setData(res.data)) + }, []) + + const options = { + chart: { + sparkline: { enabled: true }, + toolbar: { show: false } + }, + grid: { + show: false, + padding: { + left: 0, + right: 0 + } + }, + states: { + hover: { + filter: 'none' + } + }, + colors: ['#ebf0f7', '#ebf0f7', props.primary, '#ebf0f7', '#ebf0f7', '#ebf0f7'], + plotOptions: { + bar: { + columnWidth: '45%', + distributed: true, + endingShape: 'rounded' + } + }, + tooltip: { + x: { show: false } + }, + xaxis: { + type: 'numeric' + } + }, + series = [ + { + name: 'Sessions', + data: [75, 125, 225, 175, 125, 75, 25] + } + ] + + return data !== null ? ( + + + + +
    +

    {kFormatter(data.sessions)}

    + Avg Sessions +
    + {data.growth} + vs last 7 days +
    +
    + + + + + + Last 7 days + + + {data.last_days.map(item => ( + + {item} + + ))} + + + + +
    +
    + + +

    Goal: ${data.goal}

    + + + +

    Users: {kFormatter(data.users)}

    + + + +

    Retention: {data.retention}%

    + + + +

    Duration: {data.duration}yr

    + + +
    +
    +
    + ) : null +} +export default AvgSessions diff --git a/src/views/ui-elements/cards/analytics/Customers.js b/src/views/ui-elements/cards/analytics/Customers.js new file mode 100644 index 0000000..4f020af --- /dev/null +++ b/src/views/ui-elements/cards/analytics/Customers.js @@ -0,0 +1,92 @@ +import { useEffect, useState } from 'react' +import classnames from 'classnames' +import axios from 'axios' +import { + Card, + CardHeader, + CardTitle, + CardBody, + UncontrolledDropdown, + DropdownMenu, + DropdownItem, + DropdownToggle +} from 'reactstrap' +import * as Icon from 'react-feather' +import Chart from 'react-apexcharts' + +const Customers = props => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-analytics/customers').then(res => setData(res.data)) + }, []) + + const options = { + chart: { + toolbar: { + show: false + } + }, + labels: ['New', 'Returning', 'Referrals'], + dataLabels: { + enabled: false + }, + legend: { show: false }, + stroke: { + width: 4 + }, + colors: [props.primary, props.warning, props.danger] + }, + series = [690, 258, 149] + + const renderChartInfo = () => { + return data.listData.map((item, index) => { + const IconTag = Icon[item.icon] + + return ( +
    +
    + + {item.text} +
    + {item.result} +
    + ) + }) + } + + return data !== null ? ( + + + Customers + + + Last 7 days + + + {data.last_days.map(item => ( + + {item} + + ))} + + + + + +
    {renderChartInfo()}
    +
    +
    + ) : null +} +export default Customers diff --git a/src/views/ui-elements/cards/analytics/Earnings.js b/src/views/ui-elements/cards/analytics/Earnings.js new file mode 100644 index 0000000..3352cda --- /dev/null +++ b/src/views/ui-elements/cards/analytics/Earnings.js @@ -0,0 +1,111 @@ +import Chart from 'react-apexcharts' +import { Card, CardTitle, CardText, CardBody, Row, Col } from 'reactstrap' + +const Earnings = ({ success }) => { + const options = { + chart: { + toolbar: { + show: false + } + }, + dataLabels: { + enabled: false + }, + legend: { show: false }, + comparedResult: [2, -3, 8], + labels: ['App', 'Service', 'Product'], + stroke: { width: 0 }, + colors: ['#28c76f66', '#28c76f33', success], + grid: { + padding: { + right: -20, + bottom: -8, + left: -20 + } + }, + plotOptions: { + pie: { + startAngle: -10, + donut: { + labels: { + show: true, + name: { + offsetY: 15 + }, + value: { + offsetY: -15, + formatter(val) { + return `${parseInt(val)} %` + } + }, + total: { + show: true, + offsetY: 15, + label: 'App', + formatter(w) { + return '53%' + } + } + } + } + } + }, + responsive: [ + { + breakpoint: 1325, + options: { + chart: { + height: 100 + } + } + }, + { + breakpoint: 1200, + options: { + chart: { + height: 120 + } + } + }, + { + breakpoint: 1065, + options: { + chart: { + height: 100 + } + } + }, + { + breakpoint: 992, + options: { + chart: { + height: 120 + } + } + } + ] + } + + return ( + + + + + Earnings +
    This Month
    +
    $4055.56
    + + 68.2% + more earnings than last month. + + + + + +
    +
    +
    + ) +} + +export default Earnings diff --git a/src/views/ui-elements/cards/analytics/GoalOverview.js b/src/views/ui-elements/cards/analytics/GoalOverview.js new file mode 100644 index 0000000..bafbb10 --- /dev/null +++ b/src/views/ui-elements/cards/analytics/GoalOverview.js @@ -0,0 +1,99 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import Chart from 'react-apexcharts' +import { HelpCircle } from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody, CardText, Row, Col } from 'reactstrap' + +const GoalOverview = props => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-analytics/goal-overview').then(res => setData(res.data)) + }, []) + + const options = { + chart: { + sparkline: { + enabled: true + }, + dropShadow: { + enabled: true, + blur: 3, + left: 1, + top: 1, + opacity: 0.1 + } + }, + colors: ['#51e5a8'], + plotOptions: { + radialBar: { + offsetY: 10, + startAngle: -150, + endAngle: 150, + hollow: { + size: '77%' + }, + track: { + background: '#ebe9f1', + strokeWidth: '50%' + }, + dataLabels: { + name: { + show: false + }, + value: { + color: '#5e5873', + fontFamily: 'Montserrat', + fontSize: '2.86rem', + fontWeight: '600' + } + } + } + }, + fill: { + type: 'gradient', + gradient: { + shade: 'dark', + type: 'horizontal', + shadeIntensity: 0.5, + gradientToColors: [props.success], + inverseColors: true, + opacityFrom: 1, + opacityTo: 1, + stops: [0, 100] + } + }, + stroke: { + lineCap: 'round' + }, + grid: { + padding: { + bottom: 30 + } + } + }, + series = [83] + + return data !== null ? ( + + + Goal Overview + + + + + + + + Completed +

    {data.completed}

    + + + In Progress +

    {data.inProgress}

    + +
    +
    + ) : null +} +export default GoalOverview diff --git a/src/views/ui-elements/cards/analytics/ProductOrders.js b/src/views/ui-elements/cards/analytics/ProductOrders.js new file mode 100644 index 0000000..c3750c3 --- /dev/null +++ b/src/views/ui-elements/cards/analytics/ProductOrders.js @@ -0,0 +1,118 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { + Card, + CardHeader, + CardTitle, + CardBody, + UncontrolledDropdown, + DropdownMenu, + DropdownItem, + DropdownToggle +} from 'reactstrap' +import Chart from 'react-apexcharts' +import { Circle } from 'react-feather' + +const ProductOrders = props => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-analytics/product-orders').then(res => setData(res.data)) + }, []) + + const options = { + labels: ['Finished', 'Pending', 'Rejected'], + plotOptions: { + radialBar: { + size: 150, + hollow: { + size: '20%' + }, + track: { + strokeWidth: '100%', + margin: 15 + }, + dataLabels: { + value: { + fontSize: '1rem', + colors: '#5e5873', + fontWeight: '500', + offsetY: 5 + }, + total: { + show: true, + label: 'Total', + fontSize: '1.286rem', + colors: '#5e5873', + fontWeight: '500', + + formatter() { + // By default this function returns the average of all series. The below is just an example to show the use of custom formatter function + return 42459 + } + } + } + } + }, + colors: [props.primary, props.warning, props.danger], + stroke: { + lineCap: 'round' + }, + chart: { + height: 355, + dropShadow: { + enabled: true, + blur: 3, + left: 1, + top: 1, + opacity: 0.1 + } + } + }, + series = [70, 52, 26] + + return data !== null ? ( + + + Product Orders + + + Last 7 days + + + {data.last_days.map(item => ( + + {item} + + ))} + + + + + +
    +
    + + Finished +
    + {data.chart_info.finished} +
    +
    +
    + + Pending +
    + {data.chart_info.pending} +
    +
    +
    + + Rejected +
    + {data.chart_info.rejected} +
    +
    +
    + ) : null +} +export default ProductOrders diff --git a/src/views/ui-elements/cards/analytics/Revenue.js b/src/views/ui-elements/cards/analytics/Revenue.js new file mode 100644 index 0000000..ef51ded --- /dev/null +++ b/src/views/ui-elements/cards/analytics/Revenue.js @@ -0,0 +1,127 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import Chart from 'react-apexcharts' +import { Settings } from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody, CardText } from 'reactstrap' + +const Revenue = props => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-analytics/revenue').then(res => setData(res.data)) + }, []) + + const options = { + chart: { + toolbar: { show: false }, + zoom: { enabled: false }, + type: 'line', + offsetX: -10 + }, + stroke: { + curve: 'smooth', + dashArray: [0, 12], + width: [4, 3] + }, + legend: { + show: false + }, + colors: ['#d0ccff', '#ebe9f1'], + fill: { + type: 'gradient', + gradient: { + shade: 'dark', + inverseColors: false, + gradientToColors: [props.primary, '#ebe9f1'], + shadeIntensity: 1, + type: 'horizontal', + opacityFrom: 1, + opacityTo: 1, + stops: [0, 100, 100, 100] + } + }, + markers: { + size: 0, + hover: { + size: 5 + } + }, + xaxis: { + labels: { + style: { + colors: '#b9b9c3', + fontSize: '1rem' + } + }, + axisTicks: { + show: false + }, + categories: ['01', '05', '09', '13', '17', '21', '26', '31'], + axisBorder: { + show: false + }, + tickPlacement: 'on' + }, + yaxis: { + tickAmount: 5, + labels: { + style: { + colors: '#b9b9c3', + fontSize: '1rem' + }, + formatter(val) { + return val > 999 ? `${(val / 1000).toFixed(0)}k` : val + } + } + }, + grid: { + borderColor: '#e7eef7', + padding: { + top: -20, + bottom: -10, + left: 20 + } + }, + tooltip: { + x: { show: false } + } + }, + series = [ + { + name: 'This Month', + data: [45000, 47000, 44800, 47500, 45500, 48000, 46500, 48600] + }, + { + name: 'Last Month', + data: [46000, 48000, 45500, 46600, 44500, 46500, 45000, 47000] + } + ] + return data !== null ? ( + + + Revenue + + + +
    +
    + This Month +

    + $ + 86,589 +

    +
    +
    + Last Month +

    + $ + 73,683 +

    +
    +
    + +
    +
    + ) : null +} +export default Revenue diff --git a/src/views/ui-elements/cards/analytics/RevenueReport.js b/src/views/ui-elements/cards/analytics/RevenueReport.js new file mode 100644 index 0000000..46d3145 --- /dev/null +++ b/src/views/ui-elements/cards/analytics/RevenueReport.js @@ -0,0 +1,158 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { + Card, + CardTitle, + Row, + Col, + Button, + UncontrolledButtonDropdown, + DropdownMenu, + DropdownItem, + DropdownToggle +} from 'reactstrap' +import Chart from 'react-apexcharts' + +const RevenueReport = props => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-analytics/revenue-report').then(res => setData(res.data)) + }, []) + + const revenueOptions = { + chart: { + stacked: true, + type: 'bar', + toolbar: { show: false } + }, + grid: { + padding: { + top: -20, + bottom: -10 + }, + yaxis: { + lines: { show: false } + } + }, + xaxis: { + categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'], + labels: { + style: { + colors: '#b9b9c3', + fontSize: '0.86rem' + } + }, + axisTicks: { + show: false + }, + axisBorder: { + show: false + } + }, + legend: { + show: false + }, + dataLabels: { + enabled: false + }, + colors: [props.primary, props.warning], + plotOptions: { + bar: { + columnWidth: '17%', + endingShape: 'rounded' + }, + distributed: true + }, + yaxis: { + labels: { + style: { + colors: '#b9b9c3', + fontSize: '0.86rem' + } + } + } + }, + revenueSeries = [ + { + name: 'Earning', + data: [95, 177, 284, 256, 105, 63, 168, 218, 72] + }, + { + name: 'Expense', + data: [-145, -80, -60, -180, -100, -60, -85, -75, -100] + } + ] + + const budgetSeries = [ + { + data: [61, 48, 69, 52, 60, 40, 79, 60, 59, 43, 62] + }, + { + data: [20, 10, 30, 15, 23, 0, 25, 15, 20, 5, 27] + } + ], + budgetOptions = { + chart: { + toolbar: { show: false }, + zoom: { enabled: false }, + type: 'line', + sparkline: { enabled: true } + }, + stroke: { + curve: 'smooth', + dashArray: [0, 5], + width: [2] + }, + colors: [props.primary, '#dcdae3'], + tooltip: { + enabled: false + } + } + + return data !== null ? ( + + + +
    + Revenue Report +
    +
    + + Earning +
    +
    + + Expense +
    +
    +
    + + + + + + 2020 + + + {data.years.map(item => ( + + {item} + + ))} + + +

    ${data.price}

    +
    + Budget: + {data.budget} +
    + + + +
    +
    + ) : null +} + +export default RevenueReport diff --git a/src/views/ui-elements/cards/analytics/Sales.js b/src/views/ui-elements/cards/analytics/Sales.js new file mode 100644 index 0000000..75b2895 --- /dev/null +++ b/src/views/ui-elements/cards/analytics/Sales.js @@ -0,0 +1,126 @@ +import Chart from 'react-apexcharts' +import { MoreVertical, Circle } from 'react-feather' +import { + Card, + CardHeader, + CardTitle, + CardBody, + CardText, + UncontrolledDropdown, + DropdownMenu, + DropdownItem, + DropdownToggle +} from 'reactstrap' + +const Sales = props => { + const options = { + chart: { + height: 300, + type: 'radar', + dropShadow: { + enabled: true, + blur: 8, + left: 1, + top: 1, + opacity: 0.2 + }, + toolbar: { + show: false + }, + offsetY: 5 + }, + stroke: { + width: 0 + }, + dataLabels: { + background: { + foreColor: ['#ebe9f1'] + } + }, + legend: { show: false }, + colors: [props.primary, props.info], + plotOptions: { + radar: { + polygons: { + strokeColors: ['#ebe9f1', 'transparent', 'transparent', 'transparent', 'transparent', 'transparent'], + connectorColors: 'transparent' + } + } + }, + fill: { + type: 'gradient', + gradient: { + shade: 'dark', + gradientToColors: [props.primary, props.info], + shadeIntensity: 1, + type: 'horizontal', + opacityFrom: 1, + opacityTo: 1, + stops: [0, 100, 100, 100] + } + }, + labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'], + markers: { + size: 0 + }, + yaxis: { + show: false + }, + grid: { + show: false, + padding: { + bottom: -27 + } + } + }, + series = [ + { + name: 'Sales', + data: [90, 50, 86, 40, 100, 20] + }, + { + name: 'Visit', + data: [70, 75, 70, 76, 20, 85] + } + ] + return ( + + +
    + + Sales + + Last 6 months +
    + + + + + + + Last 28 Days + Last Month + Last Year + + +
    + + +
    +
    + +
    Sales
    +
    +
    +
    +
    + +
    Visits
    +
    +
    + +
    +
    + ) +} +export default Sales diff --git a/src/views/ui-elements/cards/analytics/Sales2.js b/src/views/ui-elements/cards/analytics/Sales2.js new file mode 100644 index 0000000..a851d8f --- /dev/null +++ b/src/views/ui-elements/cards/analytics/Sales2.js @@ -0,0 +1,113 @@ +import Chart from 'react-apexcharts' +import { Settings } from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody, CardText } from 'reactstrap' + +const Sales2 = props => { + const options = { + chart: { + toolbar: { show: false }, + zoom: { enabled: false }, + type: 'line', + dropShadow: { + enabled: true, + top: 18, + left: 2, + blur: 5, + opacity: 0.2 + }, + offsetX: -10 + }, + stroke: { + curve: 'smooth', + width: 4 + }, + grid: { + borderColor: '#ebe9f1', + padding: { + top: -20, + bottom: 5, + left: 20 + } + }, + legend: { + show: false + }, + colors: ['#df87f2'], + fill: { + type: 'gradient', + gradient: { + shade: 'dark', + inverseColors: false, + gradientToColors: [props.primary], + shadeIntensity: 1, + type: 'horizontal', + opacityFrom: 1, + opacityTo: 1, + stops: [0, 100, 100, 100] + } + }, + markers: { + size: 0, + hover: { + size: 5 + } + }, + xaxis: { + labels: { + offsetY: 5, + style: { + colors: '#b9b9c3', + fontSize: '0.857rem', + fontFamily: 'Montserrat' + } + }, + axisTicks: { + show: false + }, + categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'July', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + axisBorder: { + show: false + }, + tickPlacement: 'on' + }, + yaxis: { + tickAmount: 5, + labels: { + style: { + colors: '#b9b9c3', + fontSize: '0.857rem', + fontFamily: 'Montserrat' + }, + formatter(val) { + return val > 999 ? `${(val / 1000).toFixed(1)}k` : val + } + } + }, + tooltip: { + x: { show: false } + } + }, + series = [ + { + name: 'Sales', + data: [140, 180, 150, 205, 160, 295, 125, 255, 205, 305, 240, 295] + } + ] + return ( + + +
    + + Sales + + 2020 Total Sales: 12.84k +
    + +
    + + + +
    + ) +} +export default Sales2 diff --git a/src/views/ui-elements/cards/analytics/SessionByDevice.js b/src/views/ui-elements/cards/analytics/SessionByDevice.js new file mode 100644 index 0000000..16cbc59 --- /dev/null +++ b/src/views/ui-elements/cards/analytics/SessionByDevice.js @@ -0,0 +1,98 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import classnames from 'classnames' +import { + Card, + CardHeader, + CardTitle, + CardBody, + UncontrolledDropdown, + DropdownMenu, + DropdownItem, + DropdownToggle +} from 'reactstrap' +import Chart from 'react-apexcharts' +import * as Icon from 'react-feather' + +const SessionByDevice = props => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-analytics/sessions-device').then(res => setData(res.data)) + }, []) + + const options = { + chart: { + toolbar: { + show: false + } + }, + labels: ['Desktop', 'Mobile', 'Tablet'], + dataLabels: { + enabled: false + }, + legend: { show: false }, + comparedResult: [2, -3, 8], + stroke: { width: 0 }, + colors: [props.primary, props.warning, props.danger] + }, + series = [58.6, 34.9, 6.5] + + const renderChartInfo = () => { + return data.chart_info.map((item, index) => { + const IconTag = Icon[item.icon] + return ( +
    +
    + + {item.name} + - {item.usage}% +
    +
    + {item.upDown}% + {item.upDown > 0 ? ( + + ) : ( + + )} +
    +
    + ) + }) + } + + return data !== null ? ( + + + Session By Device + + + Last 7 days + + + {data.last_days.map(item => ( + + {item} + + ))} + + + + + + {renderChartInfo()} + + + ) : null +} +export default SessionByDevice diff --git a/src/views/ui-elements/cards/analytics/SupportTracker.js b/src/views/ui-elements/cards/analytics/SupportTracker.js new file mode 100644 index 0000000..604c1fb --- /dev/null +++ b/src/views/ui-elements/cards/analytics/SupportTracker.js @@ -0,0 +1,119 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { + Card, + CardHeader, + CardTitle, + CardBody, + CardText, + UncontrolledDropdown, + DropdownMenu, + DropdownItem, + DropdownToggle, + Row, + Col +} from 'reactstrap' +import Chart from 'react-apexcharts' + +const SupportTracker = props => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-analytics/support-tracker').then(res => setData(res.data)) + }, []) + + const options = { + plotOptions: { + radialBar: { + size: 150, + offsetY: 20, + startAngle: -150, + endAngle: 150, + hollow: { + size: '65%' + }, + track: { + background: '#fff', + strokeWidth: '100%' + }, + dataLabels: { + name: { + offsetY: -5, + fontFamily: 'Montserrat', + fontSize: '1rem' + }, + value: { + offsetY: 15, + fontFamily: 'Montserrat', + fontSize: '1.714rem' + } + } + } + }, + colors: [props.danger], + fill: { + type: 'gradient', + gradient: { + shade: 'dark', + type: 'horizontal', + shadeIntensity: 0.5, + gradientToColors: [props.primary], + inverseColors: true, + opacityFrom: 1, + opacityTo: 1, + stops: [0, 100] + } + }, + stroke: { + dashArray: 8 + }, + labels: ['Completed Tickets'] + }, + series = [83] + + return data !== null ? ( + + + {data.title} + + + Last 7 days + + + {data.last_days.map(item => ( + + {item} + + ))} + + + + + + +

    {data.totalTicket}

    + Tickets + + + + +
    +
    +
    + New Tickets + {data.newTicket} +
    +
    + Open Tickets + {data.openTicket} +
    +
    + Response Time + {data.responseTime}d +
    +
    +
    +
    + ) : null +} +export default SupportTracker diff --git a/src/views/ui-elements/cards/analytics/index.js b/src/views/ui-elements/cards/analytics/index.js new file mode 100644 index 0000000..6e82e59 --- /dev/null +++ b/src/views/ui-elements/cards/analytics/index.js @@ -0,0 +1,89 @@ +import { Fragment, useContext } from 'react' +import { Row, Col } from 'reactstrap' +import Breadcrumbs from '@components/breadcrumbs' +import SessionByDevice from './SessionByDevice' +import ProductOrders from './ProductOrders' +import Customers from './Customers' +import Sales from './Sales' +import SupportTracker from './SupportTracker' +import RevenueReport from './RevenueReport' +import Revenue from './Revenue' +import GoalOverview from './GoalOverview' +import AvgSession from './AvgSessions' +import Sales2 from './Sales2' +import Earnings from './Earnings' +import { ThemeColors } from '@src/utility/context/ThemeColors' + +import '@styles/react/libs/charts/apex-charts.scss' + +const AnalyticsCards = () => { + const context = useContext(ThemeColors) + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default AnalyticsCards diff --git a/src/views/ui-elements/cards/basic/CardColumns.js b/src/views/ui-elements/cards/basic/CardColumns.js new file mode 100644 index 0000000..96f2f3e --- /dev/null +++ b/src/views/ui-elements/cards/basic/CardColumns.js @@ -0,0 +1,89 @@ +import { CardColumns, Card, CardImg, CardBody, CardTitle, CardText } from 'reactstrap' +import img1 from '@src/assets/images/slider/06.jpg' +import img2 from '@src/assets/images/slider/01.jpg' +import img3 from '@src/assets/images/slider/02.jpg' +const CardColumnsComponent = () => { + return ( + + + + + Card title that wraps to a new line + + This is a longer card with supporting text below as a natural lead-in to additional content. This content is + a little bit longer. + + + + +
    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

    +
    + + Someone famous in + Source Title + +
    +
    +
    + + + + Card title + This card has supporting text below as a natural lead-in to additional content. + + Last updated 3 mins ago + + + + +
    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

    +
    + + Someone famous in + Source Title + +
    +
    +
    + + + Card title + This card has supporting text below as a natural lead-in to additional content. + + Last updated 3 mins ago + + + + + + + +
    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

    +
    + + Someone famous in + Source Title + +
    +
    +
    + + + Card title + + This is a wider card with supporting text below as a natural lead-in to additional content. This card has + even longer content than the first to show that equal height action. + + + Last updated 3 mins ago + + + +
    + ) +} + +export default CardColumnsComponent diff --git a/src/views/ui-elements/cards/basic/CardContentTypes.js b/src/views/ui-elements/cards/basic/CardContentTypes.js new file mode 100644 index 0000000..2f1a5c4 --- /dev/null +++ b/src/views/ui-elements/cards/basic/CardContentTypes.js @@ -0,0 +1,100 @@ +import { Fragment } from 'react' +import { + Card, + CardTitle, + CardBody, + CardText, + CardSubtitle, + CardLink, + CardImg, + ListGroup, + ListGroupItem, + Row, + Col +} from 'reactstrap' +import img1 from '@src/assets/images/slider/01.jpg' +import img2 from '@src/assets/images/slider/02.jpg' + +const CardContentTypes = () => { + return ( + +
    Content types
    + + +
    Body
    + + + + This is some text within a card body. Jelly lemon drops tiramisu chocolate cake cotton candy soufflé oat + cake sweet roll. Sugar plum marzipan dragée topping cheesecake chocolate bar. Danish muffin icing donut. + + + +
    Titles, text, and links
    + + + Card Title + Support card subtitle + + Some quick example text to build on the card title and make up the bulk of the card's content. + + e.preventDefault()}> + Card Link + + e.preventDefault()}> + Another Link + + + +
    List groups
    + + + Cras justo odio + Dapibus ac facilisis in + Vestibulum at eros + + + + +
    Images
    + + Card cap + + + Some quick example text to build on the card title and make up the bulk of the card's content. + + + Cookie topping caramels jujubes gingerbread. Lollipop apple pie cupcake candy canes cookie ice cream. + Wafer chocolate bar carrot cake jelly-o. + + + + + +
    Kitchen sink
    + + + + Card Title + Some quick example text to build on the card title. + + + Cras justo odio + Vestibulum at eros + + + e.preventDefault()}> + Card Link + + e.preventDefault()}> + Another Link + + + + +
    +
    + ) +} + +export default CardContentTypes diff --git a/src/views/ui-elements/cards/basic/CardDeck.js b/src/views/ui-elements/cards/basic/CardDeck.js new file mode 100644 index 0000000..a98e63b --- /dev/null +++ b/src/views/ui-elements/cards/basic/CardDeck.js @@ -0,0 +1,49 @@ +import { CardDeck, Card, CardImg, CardBody, CardTitle, CardText, CardFooter } from 'reactstrap' +import img1 from '@src/assets/images/slider/03.jpg' +import img2 from '@src/assets/images/slider/02.jpg' +import img3 from '@src/assets/images/slider/01.jpg' + +const CardDeckComponent = () => { + return ( + + + + + Card title + + This is a wider card with supporting text below as a natural lead-in to additional content. This content is + a little bit longer. + + + + Last updated 3 mins ago + + + + + + Card title + This card has supporting text below as a natural lead-in to additional content. + + + Last updated 3 mins ago + + + + + + Card title + + This is a wider card with supporting text below as a natural lead-in to additional content. This card has + even longer content than the first to show that equal height action. + + + + Last updated 3 mins ago + + + + ) +} + +export default CardDeckComponent diff --git a/src/views/ui-elements/cards/basic/CardGroup.js b/src/views/ui-elements/cards/basic/CardGroup.js new file mode 100644 index 0000000..7960c46 --- /dev/null +++ b/src/views/ui-elements/cards/basic/CardGroup.js @@ -0,0 +1,49 @@ +import { CardGroup, Card, CardImg, CardBody, CardTitle, CardText, CardFooter } from 'reactstrap' +import img1 from '@src/assets/images/slider/01.jpg' +import img2 from '@src/assets/images/slider/05.jpg' +import img3 from '@src/assets/images/slider/03.jpg' + +const CardGroupComponent = () => { + return ( + + + + + Card title + + This is a wider card with supporting text below as a natural lead-in to additional content. This content is + a little bit longer. + + + + Last updated 3 mins ago + + + + + + Card title + This card has supporting text below as a natural lead-in to additional content. + + + Last updated 3 mins ago + + + + + + Card title + + This is a wider card with supporting text below as a natural lead-in to additional content. This card has + even longer content than the first to show that equal height action. + + + + Last updated 3 mins ago + + + + ) +} + +export default CardGroupComponent diff --git a/src/views/ui-elements/cards/basic/CardHeaderFooter.js b/src/views/ui-elements/cards/basic/CardHeaderFooter.js new file mode 100644 index 0000000..682c80d --- /dev/null +++ b/src/views/ui-elements/cards/basic/CardHeaderFooter.js @@ -0,0 +1,59 @@ +import { Fragment } from 'react' +import { Card, CardHeader, CardTitle, CardBody, CardText, CardFooter, Row, Col, Button } from 'reactstrap' + +const CardHeaderFooter = () => { + return ( + +
    Header and footer
    + + + + Featured + + Special title treatment + + With supporting text below as a natural lead-in to additional content natural lead-in to additional + content. + + + Go somewhere + + + + + + + Quote + +
    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.Lorem ipsum dolor + sit amet, Integer posuere erat a ante Integer posuere erat a anteconsectetur. +

    +
    + Someone famous in + Source Title +
    +
    +
    +
    + + + + Featured + + Special title treatment + With supporting text below as a natural. + + Go somewhere + + + 2 days ago + + +
    +
    + ) +} + +export default CardHeaderFooter diff --git a/src/views/ui-elements/cards/basic/CardImages.js b/src/views/ui-elements/cards/basic/CardImages.js new file mode 100644 index 0000000..31df110 --- /dev/null +++ b/src/views/ui-elements/cards/basic/CardImages.js @@ -0,0 +1,64 @@ +import { Fragment } from 'react' +import { Card, CardImg, CardTitle, CardBody, CardImgOverlay, CardText, Row, Col } from 'reactstrap' +import img1 from '@src/assets/images/slider/06.jpg' +import img2 from '@src/assets/images/slider/09.jpg' +import img3 from '@src/assets/images/slider/10.jpg' + +const CardImages = () => { + return ( + +
    Images
    + + + + + + Card title + + This is a wider card with supporting text below as a natural lead-in to additional content. This content + is a little bit longer. + + + Last updated 3 mins ago + + + + + + + + Card title + + This is a wider card with supporting text below as a natural lead-in to additional content. This content + is a little bit longer. + + + Last updated 3 mins ago + + + + + + + + + + + Card title + + + This is a wider card with supporting text below as a natural lead-in to additional content. This content + is a little bit longer. + + + Last updated 3 mins ago + + + + + +
    + ) +} + +export default CardImages diff --git a/src/views/ui-elements/cards/basic/CardLayout.js b/src/views/ui-elements/cards/basic/CardLayout.js new file mode 100644 index 0000000..90f72a2 --- /dev/null +++ b/src/views/ui-elements/cards/basic/CardLayout.js @@ -0,0 +1,19 @@ +import { Fragment } from 'react' +import CardGroup from './CardGroup' +import CardDeck from './CardDeck' +import CardColumns from './CardColumns' +const CardLayout = () => { + return ( + +
    Card layout
    +
    Card Group
    + +
    Card Deck
    + +
    Card Columns
    + +
    + ) +} + +export default CardLayout diff --git a/src/views/ui-elements/cards/basic/CardNavigation.js b/src/views/ui-elements/cards/basic/CardNavigation.js new file mode 100644 index 0000000..2ce94f8 --- /dev/null +++ b/src/views/ui-elements/cards/basic/CardNavigation.js @@ -0,0 +1,140 @@ +import { Fragment, useState } from 'react' +import { + Card, + CardHeader, + CardTitle, + CardBody, + CardText, + Row, + Col, + Button, + TabContent, + TabPane, + Nav, + NavItem, + NavLink +} from 'reactstrap' + +const CardNavigation = () => { + const [activePill, setPillActive] = useState('1') + const [activeTab, setTabActive] = useState('1') + + const togglePills = tab => { + if (activePill !== tab) { + setPillActive(tab) + } + } + + const toggleTabs = tab => { + if (activeTab !== tab) { + setTabActive(tab) + } + } + return ( + +
    Navigation
    + + + + + + + + + + Special title treatment + With supporting text below as a natural lead-in to additional content. + + Go somewhere + + + + Special title + With supporting text below as a natural lead-in to additional content. + + Go somewhere + + + + + + + + + + + + + + + Special title treatment + With supporting text below as a natural lead-in to additional content. + + Go somewhere + + + + Special title + With supporting text below as a natural lead-in to additional content. + + Go somewhere + + + + + + + +
    + ) +} + +export default CardNavigation diff --git a/src/views/ui-elements/cards/basic/CardStyleVariation.js b/src/views/ui-elements/cards/basic/CardStyleVariation.js new file mode 100644 index 0000000..ba0e6f0 --- /dev/null +++ b/src/views/ui-elements/cards/basic/CardStyleVariation.js @@ -0,0 +1,124 @@ +import { Fragment } from 'react' +import { Card, CardBody, CardTitle, CardText, Row, Col } from 'reactstrap' + +const CardStyleVariation = () => { + return ( + +
    Style variation
    + + + + + + Primary Card Title + + Some quick example text to build on the card title and make up. + + + + + + + + Secondary Card Title + + Some quick example text to build on the card title and make up. + + + + + + + + Success Card Title + + Some quick example text to build on the card title and make up. + + + + + + + + Danger Card Title + + Some quick example text to build on the card title and make up. + + + + + + + + Warning Card Title + + Some quick example text to build on the card title and make up. + + + + + + + + Info Card Title + + Some quick example text to build on the card title and make up. + + + + + + + + + Primary Card Title + Some quick example text to build on the card title and make up. + + + + + + + Secondary Card Title + Some quick example text to build on the card title and make up. + + + + + + + Success Card Title + Some quick example text to build on the card title and make up. + + + + + + + Danger Card Title + Some quick example text to build on the card title and make up. + + + + + + + Warning Card Title + Some quick example text to build on the card title and make up. + + + + + + + Info Card Title + Some quick example text to build on the card title and make up. + + + + +
    + ) +} + +export default CardStyleVariation diff --git a/src/views/ui-elements/cards/basic/CardTextAlignment.js b/src/views/ui-elements/cards/basic/CardTextAlignment.js new file mode 100644 index 0000000..dfe640d --- /dev/null +++ b/src/views/ui-elements/cards/basic/CardTextAlignment.js @@ -0,0 +1,47 @@ +import { Fragment } from 'react' +import { Card, CardTitle, CardBody, CardText, Row, Col, Button } from 'reactstrap' + +const CardTextAlignment = () => { + return ( + +
    Text alignment
    + + + + + Special title treatment + With supporting text below as a natural lead-in to additional content. + + Go somewhere + + + + + + + + Special title treatment + With supporting text below as a natural lead-in to additional content. + + Go somewhere + + + + + + + + Special title treatment + With supporting text below as a natural lead-in to additional content. + + Go somewhere + + + + + +
    + ) +} + +export default CardTextAlignment diff --git a/src/views/ui-elements/cards/basic/CardTitles.js b/src/views/ui-elements/cards/basic/CardTitles.js new file mode 100644 index 0000000..9653349 --- /dev/null +++ b/src/views/ui-elements/cards/basic/CardTitles.js @@ -0,0 +1,61 @@ +import { Button, Card, CardTitle, CardBody, CardText, CardSubtitle, CardLink, CardImg, Row, Col } from 'reactstrap' +import img1 from '@src/assets/images/slider/04.jpg' +import img2 from '@src/assets/images/slider/03.jpg' +import img3 from '@src/assets/images/slider/06.jpg' + +const CardTitles = () => { + return ( + + + + + + Card Title + + Some quick example text to build on the card title and make up the bulk of the card's content. + + + Go Somewhere + + + + + + + + Card Title + Support card subtitle + + Card cap + + Bear claw sesame snaps gummies chocolate. + e.preventDefault()}> + Card Link + + e.preventDefault()}> + Another Link + + + + + + + + Card Title + Support card subtitle + Card cap + Bear claw sesame snaps gummies chocolate. + e.preventDefault()}> + Card Link + + e.preventDefault()}> + Another Link + + + + + + ) +} + +export default CardTitles diff --git a/src/views/ui-elements/cards/basic/index.js b/src/views/ui-elements/cards/basic/index.js new file mode 100644 index 0000000..cef075f --- /dev/null +++ b/src/views/ui-elements/cards/basic/index.js @@ -0,0 +1,27 @@ +import { Fragment } from 'react' +import CardTitles from './CardTitles' +import CardImages from './CardImages' +import CardNavigation from './CardNavigation' +import CardHeaderFooter from './CardHeaderFooter' +import CardContentTypes from './CardContentTypes' +import CardTextAlignment from './CardTextAlignment' +import CardStyleVariation from './CardStyleVariation' +import CardLayout from './CardLayout' +import Breadcrumbs from '@components/breadcrumbs' +const BasicCards = () => { + return ( + + + + + + + + + + + + ) +} + +export default BasicCards diff --git a/src/views/ui-elements/cards/statistics/ActiveUsers.js b/src/views/ui-elements/cards/statistics/ActiveUsers.js new file mode 100644 index 0000000..d55d177 --- /dev/null +++ b/src/views/ui-elements/cards/statistics/ActiveUsers.js @@ -0,0 +1,83 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { UserCheck } from 'react-feather' +import StatsWithLineChart from '@components/widgets/stats/StatsWithLineChart' + +const ActiveUsers = ({ success }) => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-statistics/active-users').then(res => setData(res.data)) + }, []) + + const options = { + chart: { + id: 'activeUsers', + toolbar: { + show: false + }, + sparkline: { + enabled: true + }, + dropShadow: { + enabled: true, + top: 5, + left: 0, + blur: 4, + opacity: 0.1 + } + }, + grid: { + show: false + }, + colors: [success], + dataLabels: { + enabled: false + }, + stroke: { + curve: 'smooth', + width: 5 + }, + fill: { + type: 'gradient', + gradient: { + shadeIntensity: 1, + gradientToColors: ['#55DD92'], + opacityFrom: 1, + opacityTo: 1, + stops: [0, 100, 100, 100] + } + }, + + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + } + }, + yaxis: { + labels: { + show: false + } + }, + tooltip: { + x: { show: false } + } + } + + return data !== null ? ( + } + color='success' + stats='659.8k' + statTitle='Active Users' + series={data.series} + options={options} + type='line' + /> + ) : null +} + +export default ActiveUsers diff --git a/src/views/ui-elements/cards/statistics/Newsletter.js b/src/views/ui-elements/cards/statistics/Newsletter.js new file mode 100644 index 0000000..da0efc0 --- /dev/null +++ b/src/views/ui-elements/cards/statistics/Newsletter.js @@ -0,0 +1,83 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { Mail } from 'react-feather' +import StatsWithLineChart from '@components/widgets/stats/StatsWithLineChart' + +const Newsletter = ({ warning }) => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-statistics/newsletter').then(res => setData(res.data)) + }, []) + + const options = { + chart: { + id: 'newsletter', + toolbar: { + show: false + }, + sparkline: { + enabled: true + }, + dropShadow: { + enabled: true, + top: 5, + left: 0, + blur: 4, + opacity: 0.1 + } + }, + grid: { + show: false + }, + colors: [warning], + dataLabels: { + enabled: false + }, + stroke: { + curve: 'smooth', + width: 5 + }, + fill: { + type: 'gradient', + gradient: { + shadeIntensity: 1, + gradientToColors: ['#ffc085'], + opacityFrom: 1, + opacityTo: 1, + stops: [0, 100, 100, 100] + } + }, + + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + } + }, + yaxis: { + labels: { + show: false + } + }, + tooltip: { + x: { show: false } + } + } + + return data !== null ? ( + } + color='warning' + stats='28.7k' + statTitle='Newsletter' + series={data.series} + type='line' + options={options} + /> + ) : null +} + +export default Newsletter diff --git a/src/views/ui-elements/cards/statistics/OrdersBarChart.js b/src/views/ui-elements/cards/statistics/OrdersBarChart.js new file mode 100644 index 0000000..3ab6b3e --- /dev/null +++ b/src/views/ui-elements/cards/statistics/OrdersBarChart.js @@ -0,0 +1,79 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import TinyChartStats from '@components/widgets/stats/TinyChartStats' + +const OrdersBarChart = ({ warning }) => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-statistics/orders-bar-chart').then(res => setData(res.data)) + }, []) + + const options = { + chart: { + stacked: true, + toolbar: { + show: false + } + }, + grid: { + show: false, + padding: { + left: 0, + right: 0, + top: -15, + bottom: -15 + } + }, + plotOptions: { + bar: { + horizontal: false, + columnWidth: '20%', + startingShape: 'rounded', + colors: { + backgroundBarColors: ['#f3f3f3', '#f3f3f3', '#f3f3f3', '#f3f3f3', '#f3f3f3'], + backgroundBarRadius: 5 + } + } + }, + legend: { + show: false + }, + dataLabels: { + enabled: false + }, + colors: [warning], + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + }, + axisTicks: { + show: false + } + }, + yaxis: { + show: false + }, + tooltip: { + x: { + show: false + } + } + } + + return data !== null ? ( + + ) : null +} + +export default OrdersBarChart diff --git a/src/views/ui-elements/cards/statistics/OrdersReceived.js b/src/views/ui-elements/cards/statistics/OrdersReceived.js new file mode 100644 index 0000000..8a70077 --- /dev/null +++ b/src/views/ui-elements/cards/statistics/OrdersReceived.js @@ -0,0 +1,74 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { Package } from 'react-feather' +import StatsWithAreaChart from '@components/widgets/stats/StatsWithAreaChart' + +const OrdersReceived = ({ kFormatter, warning }) => { + const [data, setData] = useState(null) + + const options = { + chart: { + id: 'revenue', + toolbar: { + show: false + }, + sparkline: { + enabled: true + } + }, + grid: { + show: false + }, + colors: [warning], + dataLabels: { + enabled: false + }, + stroke: { + curve: 'smooth', + width: 2.5 + }, + fill: { + type: 'gradient', + gradient: { + shadeIntensity: 0.9, + opacityFrom: 0.7, + opacityTo: 0.5, + stops: [0, 80, 100] + } + }, + + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + } + }, + yaxis: { + labels: { + show: false + } + }, + tooltip: { + x: { show: false } + } + } + + useEffect(() => { + axios.get('/card/card-statistics/orders').then(res => setData(res.data)) + }, []) + + return data !== null ? ( + } + color='warning' + stats={kFormatter(data.analyticsData.orders)} + statTitle='Orders Received' + options={options} + series={data.series} + type='area' + /> + ) : null +} +export default OrdersReceived diff --git a/src/views/ui-elements/cards/statistics/ProfitLineChart.js b/src/views/ui-elements/cards/statistics/ProfitLineChart.js new file mode 100644 index 0000000..6349b32 --- /dev/null +++ b/src/views/ui-elements/cards/statistics/ProfitLineChart.js @@ -0,0 +1,107 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import TinyChartStats from '@components/widgets/stats/TinyChartStats' + +const ProfitLineChart = ({ info }) => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-statistics/profit-line-chart').then(res => setData(res.data)) + }, []) + + const options = { + chart: { + toolbar: { + show: false + }, + zoom: { + enabled: false + } + }, + grid: { + borderColor: '#EBEBEB', + strokeDashArray: 5, + xaxis: { + lines: { + show: true + } + }, + yaxis: { + lines: { + show: false + } + }, + padding: { + top: -30, + bottom: -10 + } + }, + stroke: { + width: 3 + }, + colors: [info], + series: [ + { + data: [0, 20, 5, 30, 15, 45] + } + ], + markers: { + size: 2, + colors: info, + strokeColors: info, + strokeWidth: 2, + strokeOpacity: 1, + strokeDashArray: 0, + fillOpacity: 1, + discrete: [ + { + seriesIndex: 0, + dataPointIndex: 5, + fillColor: '#ffffff', + strokeColor: info, + size: 5 + } + ], + shape: 'circle', + radius: 2, + hover: { + size: 3 + } + }, + xaxis: { + labels: { + show: true, + style: { + fontSize: '0px' + } + }, + axisBorder: { + show: false + }, + axisTicks: { + show: false + } + }, + yaxis: { + show: false + }, + tooltip: { + x: { + show: false + } + } + } + + return data !== null ? ( + + ) : null +} + +export default ProfitLineChart diff --git a/src/views/ui-elements/cards/statistics/QuaterlySales.js b/src/views/ui-elements/cards/statistics/QuaterlySales.js new file mode 100644 index 0000000..5ef6a6b --- /dev/null +++ b/src/views/ui-elements/cards/statistics/QuaterlySales.js @@ -0,0 +1,74 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { ShoppingCart } from 'react-feather' +import StatsWithAreaChart from '@components/widgets/stats/StatsWithAreaChart' + +const QuarterlySales = ({ danger }) => { + const [data, setData] = useState(null) + + const options = { + chart: { + id: 'revenue', + toolbar: { + show: false + }, + sparkline: { + enabled: true + } + }, + grid: { + show: false + }, + colors: [danger], + dataLabels: { + enabled: false + }, + stroke: { + curve: 'smooth', + width: 2.5 + }, + fill: { + type: 'gradient', + gradient: { + shadeIntensity: 0.9, + opacityFrom: 0.7, + opacityTo: 0.5, + stops: [0, 80, 100] + } + }, + + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + } + }, + yaxis: { + labels: { + show: false + } + }, + tooltip: { + x: { show: false } + } + } + + useEffect(() => { + axios.get('/card/card-statistics/sales').then(res => setData(res.data)) + }, []) + + return data !== null ? ( + } + color='danger' + stats={data.analyticsData.sales} + statTitle='Quarterly Sales' + options={options} + series={data.series} + type='area' + /> + ) : null +} +export default QuarterlySales diff --git a/src/views/ui-elements/cards/statistics/RevenueGenerated.js b/src/views/ui-elements/cards/statistics/RevenueGenerated.js new file mode 100644 index 0000000..80a9461 --- /dev/null +++ b/src/views/ui-elements/cards/statistics/RevenueGenerated.js @@ -0,0 +1,74 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { CreditCard } from 'react-feather' +import StatsWithAreaChart from '@components/widgets/stats/StatsWithAreaChart' + +const RevenueGenerated = ({ kFormatter, success }) => { + const [data, setData] = useState(null) + + const options = { + chart: { + id: 'revenue', + toolbar: { + show: false + }, + sparkline: { + enabled: true + } + }, + grid: { + show: false + }, + colors: [success], + dataLabels: { + enabled: false + }, + stroke: { + curve: 'smooth', + width: 2.5 + }, + fill: { + type: 'gradient', + gradient: { + shadeIntensity: 0.9, + opacityFrom: 0.7, + opacityTo: 0.5, + stops: [0, 80, 100] + } + }, + + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + } + }, + yaxis: { + labels: { + show: false + } + }, + tooltip: { + x: { show: false } + } + } + + useEffect(() => { + axios.get('/card/card-statistics/revenue').then(res => setData(res.data)) + }, []) + + return data !== null ? ( + } + color='success' + stats={kFormatter(data.analyticsData.revenue)} + statTitle='Revenue Generated' + options={options} + series={data.series} + type='area' + /> + ) : null +} +export default RevenueGenerated diff --git a/src/views/ui-elements/cards/statistics/SiteTraffic.js b/src/views/ui-elements/cards/statistics/SiteTraffic.js new file mode 100644 index 0000000..c252c4c --- /dev/null +++ b/src/views/ui-elements/cards/statistics/SiteTraffic.js @@ -0,0 +1,25 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { Monitor } from 'react-feather' +import StatsWithLineChart from '@components/widgets/stats/StatsWithLineChart' + +const SiteTraffic = () => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-statistics/site-traffic').then(res => setData(res.data)) + }, []) + + return data !== null ? ( + } + color='primary' + stats='78.9k' + statTitle='Site Traffic' + series={data.series} + type='line' + /> + ) : null +} + +export default SiteTraffic diff --git a/src/views/ui-elements/cards/statistics/StatsCard.js b/src/views/ui-elements/cards/statistics/StatsCard.js new file mode 100644 index 0000000..f83b8f8 --- /dev/null +++ b/src/views/ui-elements/cards/statistics/StatsCard.js @@ -0,0 +1,70 @@ +import classnames from 'classnames' +import Avatar from '@components/avatar' +import { TrendingUp, User, Box, DollarSign } from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody, CardText, Row, Col, Media } from 'reactstrap' + +const StatsCard = ({ cols }) => { + const data = [ + { + title: '230k', + subtitle: 'Sales', + color: 'light-primary', + icon: + }, + { + title: '8.549k', + subtitle: 'Customers', + color: 'light-info', + icon: + }, + { + title: '1.423k', + subtitle: 'Products', + color: 'light-danger', + icon: + }, + { + title: '$9745', + subtitle: 'Revenue', + color: 'light-success', + icon: + } + ] + + const renderData = () => { + return data.map((item, index) => { + const margin = Object.keys(cols) + return ( + + + + +

    {item.title}

    + {item.subtitle} +
    +
    + + ) + }) + } + + return ( + + + Statistics + Updated 1 month ago + + + {renderData()} + + + ) +} + +export default StatsCard diff --git a/src/views/ui-elements/cards/statistics/SubscribersGained.js b/src/views/ui-elements/cards/statistics/SubscribersGained.js new file mode 100644 index 0000000..e54903e --- /dev/null +++ b/src/views/ui-elements/cards/statistics/SubscribersGained.js @@ -0,0 +1,25 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { Users } from 'react-feather' +import StatsWithAreaChart from '@components/widgets/stats/StatsWithAreaChart' + +const SubscribersGained = ({ kFormatter }) => { + const [data, setData] = useState(null) + + useEffect(() => { + axios.get('/card/card-statistics/subscribers').then(res => setData(res.data)) + }, []) + + return data !== null ? ( + } + color='primary' + stats={kFormatter(data.analyticsData.subscribers)} + statTitle='Subscribers Gained' + series={data.series} + type='area' + /> + ) : null +} + +export default SubscribersGained diff --git a/src/views/ui-elements/cards/statistics/index.js b/src/views/ui-elements/cards/statistics/index.js new file mode 100644 index 0000000..1462752 --- /dev/null +++ b/src/views/ui-elements/cards/statistics/index.js @@ -0,0 +1,132 @@ +import { Fragment, useContext } from 'react' +import { Row, Col } from 'reactstrap' +import { kFormatter } from '@utils' +import Breadcrumbs from '@components/breadcrumbs' +import StatsCard from './StatsCard' +import OrdersBarChart from './OrdersBarChart' +import ProfitLineChart from './ProfitLineChart' +import SubscribersGained from './SubscribersGained' +import RevenueGenerated from './RevenueGenerated' +import QuaterlySales from './QuaterlySales' +import OrdersReceived from './OrdersReceived' +import SiteTraffic from './SiteTraffic' +import ActiveUsers from './ActiveUsers' +import Newsletter from './Newsletter' +import StatsVertical from '@components/widgets/stats/StatsVertical' +import StatsHorizontal from '@components/widgets/stats/StatsHorizontal' +import { + Eye, + MessageSquare, + ShoppingBag, + Heart, + Award, + Truck, + Cpu, + Server, + Activity, + AlertOctagon +} from 'react-feather' +import { ThemeColors } from '@src/utility/context/ThemeColors' + +const StatisticsCards = () => { + const context = useContext(ThemeColors) + + return ( + + + + + {/* Orders Bar Chart */} + + + + {/* Orders Bar Chart */} + + {/* Profit Line Chart */} + + + + {/* Profit Line Chart */} + + {/* Stats Card */} + + + + {/* Stats Card */} + + + + {/* Stats With Icons */} + + } color='info' stats='36.9k' statTitle='Views' /> + + + } color='warning' stats='12k' statTitle='Comments' /> + + + } color='danger' stats='97.8k' statTitle='Orders' /> + + + } color='primary' stats='26.8' statTitle='Bookmarks' /> + + + } color='success' stats='689' statTitle='Reviews' /> + + + } color='danger' stats='2.1k' statTitle='Returns' /> + + {/* Stats With Icons */} + + + + {/* Stats With Icons Horizontal */} + + } color='primary' stats='86%' statTitle='CPU Usage' /> + + + } color='success' stats='1.2gb' statTitle='Memory Usage' /> + + + } color='danger' stats='0.1%' statTitle='Downtime Ratio' /> + + + } color='warning' stats='13' statTitle='Issues Found' /> + + {/* Stats With Icons Horizontal */} + + + + {/* Stats Area Charts */} + + + + + + + + + + + + + {/* Stats Area Charts */} + + + + {/* Stats Line Charts */} + + + + + + + + + + {/* Stats Line Charts */} + + + ) +} + +export default StatisticsCards diff --git a/src/views/ui-elements/colors/DefaultColors.js b/src/views/ui-elements/colors/DefaultColors.js new file mode 100644 index 0000000..00234a3 --- /dev/null +++ b/src/views/ui-elements/colors/DefaultColors.js @@ -0,0 +1,127 @@ +import { ChevronsRight } from 'react-feather' +import { Card, CardHeader, CardTitle, CardBody, CardText, Alert } from 'reactstrap' + +const DefaultColors = () => { + return ( + + + Default Colors + + + +
    + For more color classes options please read the{' '} + + Documentation + +
    +
    + We have a series of colors that are used by default. They include: +
      +
    • + + Primary +
    • +
    • + + Secondary +
    • +
    • + + Success +
    • +
    • + + Danger +
    • +
    • + + Warning +
    • +
    • + + Info +
    • +
    + + For each color, we think has its functionality in the application as alerts of errors (danger), + warnings to the user (warning), communications of approval (success), or main color of the + application (primary). + +
    +
    + Primary +
    +
    + Secondary +
    +
    + Success +
    +
    + Danger +
    +
    + Warning +
    +
    + Info +
    +
    +
    Lighten Variant
    +

    + Use + .bg-[color].bg-lighten-[1 | 2 | 3 | 4 | 5] + classes for lighten background color. +

    +
    +
    + lighten-2 +
    +
    + lighten-2 +
    +
    + lighten-2 +
    +
    + lighten-2 +
    +
    + lighten-2 +
    +
    + lighten-2 +
    +
    +
    Darken Variant
    +

    + Use + .bg-[color].bg-darken-[1 | 2 | 3 | 4 | 5] + classes for darken background color. +

    +
    +
    + darken-2 +
    +
    + darken-2 +
    +
    + darken-2 +
    +
    + darken-2 +
    +
    + darken-2 +
    +
    + darken-2 +
    +
    +
    +
    + ) +} +export default DefaultColors diff --git a/src/views/ui-elements/colors/GradientColors.js b/src/views/ui-elements/colors/GradientColors.js new file mode 100644 index 0000000..bcaa489 --- /dev/null +++ b/src/views/ui-elements/colors/GradientColors.js @@ -0,0 +1,63 @@ +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' +import { ChevronsRight } from 'react-feather' + +const GradientColors = () => { + return ( + + + Gradient Colors + + +

    + We have created gradient colors based on our default colors, use below mentioned classes for gradient colors. +

    +
      +
    • + bg-gradient-primary +
    • +
    • + bg-gradient-secondary +
    • +
    • + bg-gradient-success +
    • +
    • + bg-gradient-danger +
    • +
    • + bg-gradient-warning +
    • +
    • + bg-gradient-info +
    • +
    +

    + For each color, we think has its functionality in the application as alerts of errors (danger), + warnings to the user (warning), communications of approval (success), or main color of the + application (primary). +

    +
    +
    + Primary Gradient +
    +
    + Secondary Gradient +
    +
    + Success Gradient +
    +
    + Danger Gradient +
    +
    + Warning Gradient +
    +
    + Info Gradient +
    +
    +
    +
    + ) +} +export default GradientColors diff --git a/src/views/ui-elements/colors/index.js b/src/views/ui-elements/colors/index.js new file mode 100644 index 0000000..96f3334 --- /dev/null +++ b/src/views/ui-elements/colors/index.js @@ -0,0 +1,25 @@ +import { Fragment } from 'react' +import { Row, Col } from 'reactstrap' +import Breadcrumbs from '@components/breadcrumbs' +import DefaultColors from './DefaultColors' +import GradientColors from './GradientColors' + +import '@styles/base/pages/ui-colors.scss' + +const Colors = () => { + return ( + + + + + + + + + + + + ) +} + +export default Colors diff --git a/src/views/ui-elements/icons/index.js b/src/views/ui-elements/icons/index.js new file mode 100644 index 0000000..a3ca794 --- /dev/null +++ b/src/views/ui-elements/icons/index.js @@ -0,0 +1,133 @@ +import { Fragment, useState } from 'react' +import classnames from 'classnames' +import { toast } from 'react-toastify' +import * as Icons from 'react-feather' +import Avatar from '@components/avatar' +import { + Card, + CardBody, + Row, + Col, + Input, + FormGroup, + InputGroup, + InputGroupAddon, + InputGroupText, + UncontrolledTooltip +} from 'reactstrap' +import Breadcrumbs from '@components/breadcrumbs' +import { CopyToClipboard } from 'react-copy-to-clipboard' + +import '@styles/base/pages/ui-feather.scss' + +const ToastContent = ({ icon }) => ( + +
    +
    + } /> +
    Icon Name Copied! 📋
    +
    +
    +
    + + {icon} + +
    +
    +) + +const FeatherIcons = () => { + const IconsArr = [], + [query, setQuery] = useState([]), + [filteredArr, setFilteredArr] = useState([]), + [active, setActive] = useState(null) + + for (const key in Icons) { + IconsArr.push(key) + } + + const handleFilter = val => { + const arr = [] + if (val.length) { + IconsArr.filter(icon => { + if (icon.toLowerCase().includes(val.toLowerCase())) { + arr.push(icon) + } + }) + } + setFilteredArr([...arr]) + } + + const handleIconCardClick = icon => { + setActive(icon) + toast.success(, { hideProgressBar: true }) + } + + const renderIcons = () => { + const dataToRender = query.length ? filteredArr : IconsArr + if (dataToRender.length) { + return dataToRender.map(icon => { + const IconTag = Icons[icon] + return ( + + `}> + handleIconCardClick(icon)} + > + +
    + +
    +

    {icon}

    +
    +
    +
    + + {icon.replace(/([A-Z])/g, ' $1').trim()} + +
    + ) + }) + } else { + return ( +
    +

    No Icons Found!

    +
    + ) + } + } + + return ( + + + + +
    + + + + + + + { + handleFilter(e.target.value) + setQuery(e.target.value) + }} + /> + +
    + +
    +
    + {renderIcons()} +
    +
    + ) +} +export default FeatherIcons diff --git a/src/views/ui-elements/page-layouts/BoxedLayout.js b/src/views/ui-elements/page-layouts/BoxedLayout.js new file mode 100644 index 0000000..dc4e834 --- /dev/null +++ b/src/views/ui-elements/page-layouts/BoxedLayout.js @@ -0,0 +1,30 @@ +import { Fragment } from 'react' +import { Alert } from 'reactstrap' +import Breadcrumbs from '@components/breadcrumbs' +import Ecommerce from '../../dashboard/ecommerce' + +const BoxedLayout = () => { + return ( + + + +
    + Info: + + Please check the{' '} + + Layout boxed documentation + {' '} + for more details. + +
    +
    + +
    + ) +} + +export default BoxedLayout diff --git a/src/views/ui-elements/page-layouts/CollapsedMenu.js b/src/views/ui-elements/page-layouts/CollapsedMenu.js new file mode 100644 index 0000000..f3c47fa --- /dev/null +++ b/src/views/ui-elements/page-layouts/CollapsedMenu.js @@ -0,0 +1,34 @@ +import { Fragment } from 'react' +import { Alert } from 'reactstrap' +import Breadcrumbs from '@components/breadcrumbs' +import Ecommerce from '../../dashboard/ecommerce' + +const CollapsedMenu = () => { + return ( + + + +
    + Info: + + Use this layout to set menu (navigation) default collapsed. Please check{' '} + + the Layout collapsed menu documentation + {' '} + for more details. + +
    +
    + +
    + ) +} + +export default CollapsedMenu diff --git a/src/views/ui-elements/page-layouts/LayoutBlank.js b/src/views/ui-elements/page-layouts/LayoutBlank.js new file mode 100644 index 0000000..d8f530b --- /dev/null +++ b/src/views/ui-elements/page-layouts/LayoutBlank.js @@ -0,0 +1,31 @@ +import { Fragment } from 'react' +import { Alert } from 'reactstrap' + +const LayoutBlank = () => { + return ( + +
    +
    +

    Layout Blank

    + +
    + Info: + + This layout is used in Authentication & Miscellaneous page. Please check the{' '} + + Layout blank documentation + + for more details. + +
    +
    +
    +
    +
    + ) +} + +export default LayoutBlank diff --git a/src/views/ui-elements/page-layouts/LayoutEmpty.js b/src/views/ui-elements/page-layouts/LayoutEmpty.js new file mode 100644 index 0000000..08dd592 --- /dev/null +++ b/src/views/ui-elements/page-layouts/LayoutEmpty.js @@ -0,0 +1,29 @@ +import { Fragment } from 'react' + +import Breadcrumbs from '@components/breadcrumbs' +import { Alert } from 'reactstrap' + +const LayoutEmpty = () => { + return ( + + + +
    + Info: + + This layout can be useful for getting started with empty content section. Please check the{' '} + + Layout empty documentation + {' '} + for more details. + +
    +
    +
    + ) +} + +export default LayoutEmpty diff --git a/src/views/ui-elements/page-layouts/WithoutMenu.js b/src/views/ui-elements/page-layouts/WithoutMenu.js new file mode 100644 index 0000000..801924f --- /dev/null +++ b/src/views/ui-elements/page-layouts/WithoutMenu.js @@ -0,0 +1,34 @@ +import { Fragment } from 'react' +import { Alert } from 'reactstrap' +import Breadcrumbs from '@components/breadcrumbs' +import Ecommerce from '../../dashboard/ecommerce' + +const WithoutMenu = () => { + return ( + + + +
    + Info: + + Please check the{' '} + + Layout without menu documentation + {' '} + for more details. + +
    +
    + +
    + ) +} + +export default WithoutMenu diff --git a/src/views/ui-elements/typography/BlockquoteDefault.js b/src/views/ui-elements/typography/BlockquoteDefault.js new file mode 100644 index 0000000..7d904c0 --- /dev/null +++ b/src/views/ui-elements/typography/BlockquoteDefault.js @@ -0,0 +1,24 @@ +import { Card, CardHeader, CardTitle, CardText, CardBody } from 'reactstrap' + +const BlockquoteDefault = () => { + return ( + + + + Blockquotes Default + + + + + + Left aligned basic blockquotes. Use text utilities classes like .text-center / .text-right as + needed to change the alignment of your blockquote. + +
    +

    Design is not just what it looks like and feels like. Design is how it works.

    +
    +
    +
    + ) +} +export default BlockquoteDefault diff --git a/src/views/ui-elements/typography/BlockquoteStyling.js b/src/views/ui-elements/typography/BlockquoteStyling.js new file mode 100644 index 0000000..8ce9d6a --- /dev/null +++ b/src/views/ui-elements/typography/BlockquoteStyling.js @@ -0,0 +1,37 @@ +import { Card, CardHeader, CardTitle, CardBody, CardText } from 'reactstrap' + +const BlockquoteStyling = () => { + return ( + + + Blockquotes styling + + + + + Add a .border-[left / right]-[color] .border-[left / right]-3{' '} + helper classes, where color can be any color from Vuexy Admin color palette. + +
    + + Sometimes when you innovate, you make mistakes. It is best to admit them quickly, and get on with improving + your other innovations. + +
    + Steve Jobs Entrepreneur +
    +
    +
    + + Sometimes when you innovate, you make mistakes. It is best to admit them quickly, and get on with improving + your other innovations. + +
    + Steve Jobs Entrepreneur +
    +
    +
    +
    + ) +} +export default BlockquoteStyling diff --git a/src/views/ui-elements/typography/BlockquotesAvatar.js b/src/views/ui-elements/typography/BlockquotesAvatar.js new file mode 100644 index 0000000..a152479 --- /dev/null +++ b/src/views/ui-elements/typography/BlockquotesAvatar.js @@ -0,0 +1,52 @@ +import img1 from '@src/assets/images/portrait/small/avatar-s-5.jpg' +import img2 from '@src/assets/images/portrait/small/avatar-s-3.jpg' +import { Card, CardHeader, CardTitle, CardText, CardBody, Media } from 'reactstrap' + +const BlockquotesAvatar = () => { + return ( + + + Blockquotes with avatar + + + + + You can create a blockquot with avatar using media component. + +
    + + + + + Sometimes life is going to hit you in the head with a brick. Don't lose faith. + +
    + Steve Jobs + Entrepreneur +
    +
    + Blockquotes with avatar rounded image example +
    + + + + + Sometimes life is going to hit you in the head with a brick. Don't lose faith. + +
    + Steve Jobs + Entrepreneur +
    +
    +
    +
    + ) +} +export default BlockquotesAvatar diff --git a/src/views/ui-elements/typography/CustomizingHeadings.js b/src/views/ui-elements/typography/CustomizingHeadings.js new file mode 100644 index 0000000..d2d69c7 --- /dev/null +++ b/src/views/ui-elements/typography/CustomizingHeadings.js @@ -0,0 +1,65 @@ +import { Card, CardHeader, CardTitle, CardBody, CardText, Table } from 'reactstrap' + +const CustomizingHeadings = () => { + return ( + + + + Customizing headings Default + + + + + Use the included utility classes to recreate the small secondary heading text. + + + + + + + + + + + + + + + + + + + + + + + +
    +

    + Display heading Secondary text +

    +
    +

    + Display heading Secondary text +

    +
    +

    + Display heading Secondary text +

    +
    +

    + Display heading Secondary text +

    +
    +
    + Display heading Secondary text +
    +
    +
    + Display heading Secondary text +
    +
    +
    + ) +} +export default CustomizingHeadings diff --git a/src/views/ui-elements/typography/DescriptionList.js b/src/views/ui-elements/typography/DescriptionList.js new file mode 100644 index 0000000..7ca338c --- /dev/null +++ b/src/views/ui-elements/typography/DescriptionList.js @@ -0,0 +1,57 @@ +import { Card, CardHeader, CardTitle, CardBody, Row, Col } from 'reactstrap' + +const DescriptionList = () => { + return ( + + + + Description lists Horizontal + + + + +
    + + +
    Description lists
    + + +
    A description list is perfect for defining terms.
    + +
    +
    +
    + + +
    Euismod
    + + +
    Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
    + +
    +
    +
    + + +
    Malesuada porta
    + + +
    Etiam porta sem malesuada magna mollis euismod.
    + +
    +
    +
    + + +
    Truncated term is truncated
    + + +
    Aenean posuere, tortor sed cursus feugiat, nunc augue blandit nunc
    + +
    +
    +
    +
    + ) +} +export default DescriptionList diff --git a/src/views/ui-elements/typography/DescriptionListText.js b/src/views/ui-elements/typography/DescriptionListText.js new file mode 100644 index 0000000..5b4a47c --- /dev/null +++ b/src/views/ui-elements/typography/DescriptionListText.js @@ -0,0 +1,77 @@ +import { Card, CardHeader, CardTitle, CardBody, Row, Col, CardText } from 'reactstrap' + +const DescriptionListtext = () => { + return ( + + + + Description lists Text Alignment + + + + + + Description lists with right aligned text in <dt> tag using .text-right class. + +
    + + +
    Description lists
    + + +
    A description list is perfect for defining terms.
    + +
    +
    +
    + + +
    Euismod
    + + +
    Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
    + +
    +
    +
    + + +
    Malesuada porta
    + + +
    Etiam porta sem malesuada magna mollis euismod.
    + +
    +
    +
    + + +
    Truncated term is truncated
    + + +
    Aenean posuere, tortor sed cursus feugiat, nunc augue blandit nunc
    + +
    +
    +
    + + +
    Nesting
    + + + + +
    Nested definition list
    + + +
    Aenean posuere, tortor sed cursus feugiat, nunc augue blandit nunc.
    + +
    + +
    +
    +
    +
    + ) +} +export default DescriptionListtext diff --git a/src/views/ui-elements/typography/DescriptionListVertical.js b/src/views/ui-elements/typography/DescriptionListVertical.js new file mode 100644 index 0000000..c2ba776 --- /dev/null +++ b/src/views/ui-elements/typography/DescriptionListVertical.js @@ -0,0 +1,25 @@ +import { Card, CardHeader, CardTitle, CardBody } from 'reactstrap' + +const DescriptionListVertical = () => { + return ( + + + + Description lists Vertical + + + + +
    +
    Description lists
    +
    A description list is perfect for defining terms.
    +
    Euismod
    +
    Vestibulum id ligula porta felis euismod semper eget lacinia odio.
    +
    Malesuada porta
    +
    Etiam porta sem malesuada magna mollis euismod.
    +
    +
    +
    + ) +} +export default DescriptionListVertical diff --git a/src/views/ui-elements/typography/DisplayHeadings.js b/src/views/ui-elements/typography/DisplayHeadings.js new file mode 100644 index 0000000..cc08324 --- /dev/null +++ b/src/views/ui-elements/typography/DisplayHeadings.js @@ -0,0 +1,44 @@ +import { Card, CardHeader, CardTitle, CardBody, CardText, Table } from 'reactstrap' + +const DisplayHeadings = () => { + return ( + + + Display Headings + + + + + Traditional heading elements are designed to work best in the meat of your page content. When you need a + heading to stand out, consider using a display-[1-4] for larger, slightly more opinionated + heading style. + + + + + + + + + + + + + + + + + +
    +

    Display 1

    +
    +

    Display 2

    +
    +

    Display 3

    +
    +

    Display 4

    +
    +
    + ) +} +export default DisplayHeadings diff --git a/src/views/ui-elements/typography/HTMLHeadings.js b/src/views/ui-elements/typography/HTMLHeadings.js new file mode 100644 index 0000000..e2c0e8f --- /dev/null +++ b/src/views/ui-elements/typography/HTMLHeadings.js @@ -0,0 +1,70 @@ +import { Card, CardHeader, CardTitle, CardBody, CardText, Table } from 'reactstrap' + +const HTMLHeadings = () => { + return ( + + + + HTML headings Default + + + + + + All HTML headings, + <h1> + through + <h6>, are available. .h1 through .h6 classes are also available, + for when you want to match the font styling of a heading. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PreviewFont Size
    +

    H1 Heading

    +
    2rem
    +

    H2 Heading

    +
    1.74rem
    +

    H3 Heading

    +
    1.51rem
    +

    H4 Heading

    +
    1.32rem
    +
    H5 Heading
    +
    1.14rem
    +
    H6 Heading
    +
    1rem
    +
    + ) +} +export default HTMLHeadings diff --git a/src/views/ui-elements/typography/HeadingColors.js b/src/views/ui-elements/typography/HeadingColors.js new file mode 100644 index 0000000..0596431 --- /dev/null +++ b/src/views/ui-elements/typography/HeadingColors.js @@ -0,0 +1,53 @@ +import { Card, CardHeader, CardTitle, CardBody, CardText, Table } from 'reactstrap' + +const HeadingColors = () => { + return ( + + + Heading colors + + + + + Heading elements are also changed with different color options. Use class + text-[primary/secondary/success/danger/info/warning] class with heading elements. + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Display heading

    +
    +

    Display heading

    +
    +

    Display heading

    +
    +

    Display heading

    +
    +
    Display heading
    +
    +
    Display heading
    +
    +
    + ) +} +export default HeadingColors diff --git a/src/views/ui-elements/typography/LightBoldHeadings.js b/src/views/ui-elements/typography/LightBoldHeadings.js new file mode 100644 index 0000000..db83537 --- /dev/null +++ b/src/views/ui-elements/typography/LightBoldHeadings.js @@ -0,0 +1,77 @@ +import { Card, CardHeader, CardTitle, CardBody, CardText, Table } from 'reactstrap' + +const LightBoldHeadings = () => { + return ( + + + Light / Bold Headings + + + + + All HTML headings are available with light and bold font-weight. Use .font-weight-normal for + light heading and .font-weight-bolderer for bold headings along with heading tags or classes. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Light headingsBold headings
    +

    Heading 1

    +
    +

    Heading 1

    +
    +

    Heading 2

    +
    +

    Heading 2

    +
    +

    Heading 3

    +
    +

    Heading 3

    +
    +

    Heading 4

    +
    +

    Heading 4

    +
    +
    Heading 5
    +
    +
    Heading 5
    +
    +
    Heading 6
    +
    +
    Heading 6
    +
    +
    + ) +} +export default LightBoldHeadings diff --git a/src/views/ui-elements/typography/ListIcons.js b/src/views/ui-elements/typography/ListIcons.js new file mode 100644 index 0000000..f4ecfdc --- /dev/null +++ b/src/views/ui-elements/typography/ListIcons.js @@ -0,0 +1,47 @@ +import { Card, CardHeader, CardTitle, CardBody, CardText } from 'reactstrap' +import { ArrowRight, ChevronRight } from 'react-feather' + +const ListIcons = () => { + return ( + + + Lists icons + + + + + Use .list-style-icons class with <ul> tag to create a list with icons. + +
      +
    • + + Facilisis in pretium nisl aliquet +
    • +
    • + + Nulla volutpat aliquam velit +
        +
      • + + Phasellus iaculis neque +
      • +
      • + + Ac tristique libero volutpat at +
      • +
      +
    • +
    • + + Faucibus porta lacus fringilla vel +
    • +
    • + + Aenean sit amet erat nunc +
    • +
    +
    +
    + ) +} +export default ListIcons diff --git a/src/views/ui-elements/typography/ListInline.js b/src/views/ui-elements/typography/ListInline.js new file mode 100644 index 0000000..028fafa --- /dev/null +++ b/src/views/ui-elements/typography/ListInline.js @@ -0,0 +1,35 @@ +import { Card, CardHeader, CardTitle, CardBody, CardText } from 'reactstrap' + +const ListInline = () => { + return ( + + + Inline Lists + + + + + To create a inline list use .list-inline class with <ul> tag and, class{' '} + .list-inline-item with <li> tag. + +

    Use inline numbers, alphabet, icons etc... for ordered Inline List.

    +
      +
    • Chocolate
    • +
    • Cake
    • +
    • Ice-Cream
    • +
    +
      +
    • 1. Chocolate
    • +
    • 2. Cake
    • +
    • 3. Ice-Cream
    • +
    +
      +
    • $ 250
    • +
    • $ 110
    • +
    • $ 890
    • +
    +
    +
    + ) +} +export default ListInline diff --git a/src/views/ui-elements/typography/ListOrdered.js b/src/views/ui-elements/typography/ListOrdered.js new file mode 100644 index 0000000..7fda880 --- /dev/null +++ b/src/views/ui-elements/typography/ListOrdered.js @@ -0,0 +1,39 @@ +import { Card, CardHeader, CardTitle, CardBody, CardText } from 'reactstrap' + +const ListOrdered = () => { + return ( + + + Lists Ordered + + + + + List of items in which the order does explicitly matter. Use <ol type="1|a|A|i|I">, The type + attribute specifies the kind of marker to use in the list. + +
      +
    1. Lorem ipsum dolor sit amet
    2. +
    3. Consectetur adipiscing elit
    4. +
    5. Integer molestie lorem at massa
    6. +
    7. Facilisis in pretium nisl aliquet
    8. +
    9. + Nulla volutpat aliquam velit +
        +
      1. Phasellus iaculis neque
      2. +
      3. Purus sodales ultricies
      4. +
      5. Vestibulum laoreet porttitor sem
      6. +
      7. Ac tristique libero volutpat at
      8. +
      9. Lorem ipsum dolor sit amet.
      10. +
      11. consectetur adipisicing elit. At, quae?
      12. +
      +
    10. +
    11. Faucibus porta lacus fringilla vel
    12. +
    13. Aenean sit amet erat nunc
    14. +
    15. Eget porttitor lorem
    16. +
    +
    +
    + ) +} +export default ListOrdered diff --git a/src/views/ui-elements/typography/ListUnordered.js b/src/views/ui-elements/typography/ListUnordered.js new file mode 100644 index 0000000..112d186 --- /dev/null +++ b/src/views/ui-elements/typography/ListUnordered.js @@ -0,0 +1,39 @@ +import { Card, CardHeader, CardTitle, CardBody, CardText } from 'reactstrap' + +const ListUnordered = () => { + return ( + + + Lists Unordered + + + + + List of items in which the order does not explicitly matter. Use .list-style-circle or{' '} + .list-style-square class in unordered list to add circle or square bullet points. + +
      +
    • Lorem ipsum dolor sit amet
    • +
    • Consectetur adipiscing elit
    • +
    • Integer molestie lorem at massa
    • +
    • Facilisis in pretium nisl aliquet
    • +
    • + Nulla volutpat aliquam velit +
        +
      • Phasellus iaculis neque
      • +
      • Purus sodales ultricies
      • +
      • Vestibulum laoreet porttitor sem
      • +
      • Ac tristique libero volutpat at
      • +
      • Lorem ipsum dolor sit amet.
      • +
      • consectetur adipisicing elit. At, quae?
      • +
      +
    • +
    • Faucibus porta lacus fringilla vel
    • +
    • Aenean sit amet erat nunc
    • +
    • Eget porttitor lorem
    • +
    +
    +
    + ) +} +export default ListUnordered diff --git a/src/views/ui-elements/typography/ListUnstyled.js b/src/views/ui-elements/typography/ListUnstyled.js new file mode 100644 index 0000000..8ce9ff8 --- /dev/null +++ b/src/views/ui-elements/typography/ListUnstyled.js @@ -0,0 +1,39 @@ +import { Card, CardHeader, CardTitle, CardBody, CardText } from 'reactstrap' + +const ListUnstyled = () => { + return ( + + + Lists Unstyled + + + + + Use class .list-unstyled for Lists Unstyled. It remove the default list-style and + left margin on list items (immediate children only). + This only applies to immediate children list items, meaning you will need to add the class + for any nested lists as well. + +
      +
    • Lorem ipsum dolor sit amet
    • +
    • Consectetur adipiscing elit
    • +
    • Integer molestie lorem at massa
    • +
    • Facilisis in pretium nisl aliquet
    • +
    • + Nulla volutpat aliquam velit +
        +
      • Phasellus iaculis neque
      • +
      • Purus sodales ultricies
      • +
      • Vestibulum laoreet porttitor sem
      • +
      • Ac tristique libero volutpat at
      • +
      +
    • +
    • Faucibus porta lacus fringilla vel
    • +
    • Aenean sit amet erat nunc
    • +
    • Eget porttitor lorem
    • +
    +
    +
    + ) +} +export default ListUnstyled diff --git a/src/views/ui-elements/typography/NamingSource.js b/src/views/ui-elements/typography/NamingSource.js new file mode 100644 index 0000000..7044b1f --- /dev/null +++ b/src/views/ui-elements/typography/NamingSource.js @@ -0,0 +1,29 @@ +import { Card, CardHeader, CardTitle, CardText, CardBody } from 'reactstrap' + +const NamingSource = () => { + return ( + + + Naming a source + + + + + Add a <footer className="blockquote-footer"> for identifying + the source. Wrap the name of the source work in <cite>. + +
    + + Being the richest man in the cemetery doesn't matter to me. Going to bed at night saying we've done + something wonderful, that's what matters to me. + +
    + Steve Jobs + Entrepreneur +
    +
    +
    +
    + ) +} +export default NamingSource diff --git a/src/views/ui-elements/typography/index.js b/src/views/ui-elements/typography/index.js new file mode 100644 index 0000000..af6ad88 --- /dev/null +++ b/src/views/ui-elements/typography/index.js @@ -0,0 +1,114 @@ +import { Fragment } from 'react' +import { Row, Col } from 'reactstrap' +import Breadcrumbs from '@components/breadcrumbs' +import HTMLHeadings from './HTMLHeadings' +import LightBoldHeadings from './LightBoldHeadings' +import CustomizingHeadings from './CustomizingHeadings' +import HeadingColors from './HeadingColors' +import DisplayHeadings from './DisplayHeadings' +import BlockquoteDefault from './BlockquoteDefault' +import NamingSource from './NamingSource' +import BlockquoteStyling from './BlockquoteStyling' +import BlockquoteAvatar from './BlockquotesAvatar' +import ListUnstyled from './ListUnstyled' +import ListUnordered from './ListUnordered' +import ListOrdered from './ListOrdered' +import ListIcons from './ListIcons' +import ListInline from './ListInline' +import DescriptionList from './DescriptionList' +import DescriptionListVertical from './DescriptionListVertical' +import DescriptionListText from './DescriptionListText' + +const Typography = () => { + return ( + + + + + + + + + + + + + + + + + + + +
    +

    BlockQuotes

    +

    + For quoting blocks of content from another source within your document. Wrap{' '} + <blockquote className="blockquote"> around any HTML as the quote. +

    +
    +
    + + + + + + + + + + + + + + +
    +

    Lists

    +

    + All lists - <ul>, <ol>, and <dl> - have their + margin-top removed and a margin-bottom: 1rem. Nested lists have no margin-bottom + . +

    +
    +
    + + + + + + + + + + + + + + + + + +
    +

    Description list alignment

    +

    + Align terms and descriptions horizontally by using our grid system’s predefined classes (or semantic + mixins). For longer terms, you can optionally add a .text-truncate class to truncate the text + with an ellipsis. +

    +
    +
    + + + + + + + + + + +
    +
    + ) +} +export default Typography diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..4f692cf --- /dev/null +++ b/yarn.lock @@ -0,0 +1,14505 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.5.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" + integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== + +"@babel/core@7.12.3": + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" + integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.1" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.1" + "@babel/parser" "^7.12.3" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.4": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" + integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helpers" "^7.14.8" + "@babel/parser" "^7.15.0" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/generator@^7.12.1", "@babel/generator@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" + integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== + dependencies: + "@babel/types" "^7.15.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" + integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" + integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-compilation-targets@^7.12.1", "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" + integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== + dependencies: + "@babel/compat-data" "^7.15.0" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.12.1", "@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.0.tgz#c9a137a4d137b2d0e2c649acf536d7ba1a76c0f7" + integrity sha512-MdmDXgvTIi4heDVX/e9EFfeGpugqm9fobBVg/iioE8kueXrOHdRDe36FAY7SnE9xXLVeYCoJR/gdrBEIHRC83Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.15.0" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" + "@babel/helper-split-export-declaration" "^7.14.5" + +"@babel/helper-create-regexp-features-plugin@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" + integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + regexpu-core "^4.7.1" + +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== + dependencies: + "@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" + +"@babel/helper-explode-assignable-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" + integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" + integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== + dependencies: + "@babel/helper-get-function-arity" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-get-function-arity@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" + integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-hoist-variables@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" + integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-member-expression-to-functions@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" + integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== + dependencies: + "@babel/types" "^7.15.0" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" + integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" + integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" + "@babel/helper-simple-access" "^7.14.8" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.9" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/helper-optimise-call-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" + integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@babel/helper-remap-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" + integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-wrap-function" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" + integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.15.0" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/helper-simple-access@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" + integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== + dependencies: + "@babel/types" "^7.14.8" + +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1", "@babel/helper-skip-transparent-expression-wrappers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" + integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-split-export-declaration@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" + integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" + integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== + +"@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + +"@babel/helper-wrap-function@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" + integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helpers@^7.12.1", "@babel/helpers@^7.14.8": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" + integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== + dependencies: + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.12.3", "@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.7.0": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" + integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" + integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + +"@babel/plugin-proposal-async-generator-functions@^7.12.1", "@babel/plugin-proposal-async-generator-functions@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz#7028dc4fa21dc199bbacf98b39bab1267d0eaf9a" + integrity sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw== + dependencies: + "@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@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" + integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" + integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" + integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-decorators@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz#59271439fed4145456c41067450543aee332d15f" + integrity sha512-knNIuusychgYN8fGJHONL0RbFxLGawhXOJNLBk75TniTsZZeA+wdkDuv6wp4lGwzQEKjZi6/WYtnb3udNPmQmQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-decorators" "^7.12.1" + +"@babel/plugin-proposal-dynamic-import@^7.12.1", "@babel/plugin-proposal-dynamic-import@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" + integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.12.1", "@babel/plugin-proposal-export-namespace-from@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" + integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.12.1", "@babel/plugin-proposal-json-strings@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" + integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.12.1", "@babel/plugin-proposal-logical-assignment-operators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" + integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" + integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" + integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz#0e2c6774c4ce48be412119b4d693ac777f7685a6" + integrity sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-numeric-separator@^7.12.1", "@babel/plugin-proposal-numeric-separator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" + integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" + integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== + dependencies: + "@babel/compat-data" "^7.14.7" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.14.5" + +"@babel/plugin-proposal-optional-catch-binding@^7.12.1", "@babel/plugin-proposal-optional-catch-binding@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" + integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz#cce122203fc8a32794296fc377c6dedaf4363797" + integrity sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" + integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" + integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" + integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" + integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.1", "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.12.1": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz#eafb9c0cbe09c8afeb964ba3a7bbd63945a72f20" + integrity sha512-c4sZMRWL4GSvP1EXy0woIP7m4jkVcEuG8R1TOZxPBPtp4FSM/kiPZub9UIs/Jrb5ZAOzvTUSGYrWsrSu1JvoPw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.12.1": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz#2ff654999497d7d7d142493260005263731da180" + integrity sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" + integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.12.1", "@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" + integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-async-to-generator@^7.12.1", "@babel/plugin-transform-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" + integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== + dependencies: + "@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@^7.12.1", "@babel/plugin-transform-block-scoped-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-block-scoping@^7.12.1", "@babel/plugin-transform-block-scoping@^7.14.5": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" + integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz#2a391ffb1e5292710b00f2e2c210e1435e7d449f" + integrity sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.12.1", "@babel/plugin-transform-computed-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" + integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" + integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" + integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-duplicate-keys@^7.12.1", "@babel/plugin-transform-duplicate-keys@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" + integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-exponentiation-operator@^7.12.1", "@babel/plugin-transform-exponentiation-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" + integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-flow-strip-types@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.1.tgz#8430decfa7eb2aea5414ed4a3fa6e1652b7d77c4" + integrity sha512-8hAtkmsQb36yMmEtk2JZ9JnVyDSnDOdlB+0nEGzIDLuK4yR3JcEjfuFPYkdEPSh8Id+rAMeBEn+X0iVEyho6Hg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-flow" "^7.12.1" + +"@babel/plugin-transform-for-of@^7.12.1", "@babel/plugin-transform-for-of@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" + integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-function-name@^7.12.1", "@babel/plugin-transform-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" + integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-literals@^7.12.1", "@babel/plugin-transform-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" + integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-member-expression-literals@^7.12.1", "@babel/plugin-transform-member-expression-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" + integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-modules-amd@^7.12.1", "@babel/plugin-transform-modules-amd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" + integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.12.1", "@babel/plugin-transform-modules-commonjs@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz#3305896e5835f953b5cdb363acd9e8c2219a5281" + integrity sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig== + dependencies: + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.8" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.12.1", "@babel/plugin-transform-modules-systemjs@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" + integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== + dependencies: + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.12.1", "@babel/plugin-transform-modules-umd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" + integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1", "@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" + integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + +"@babel/plugin-transform-new-target@^7.12.1", "@babel/plugin-transform-new-target@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" + integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-object-super@^7.12.1", "@babel/plugin-transform-object-super@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" + integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" + integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.12.1", "@babel/plugin-transform-property-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" + integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-react-constant-elements@^7.12.1": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.14.5.tgz#41790d856f7c5cec82d2bcf5d0e5064d682522ed" + integrity sha512-NBqLEx1GxllIOXJInJAQbrnwwYJsV3WaMHIcOwD8rhYS0AabTWn7kHdHgPgu5RmHLU0q4DMxhAMu8ue/KampgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-react-display-name@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz#1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d" + integrity sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-react-display-name@^7.12.1", "@babel/plugin-transform-react-display-name@^7.14.5": + version "7.15.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz#6aaac6099f1fcf6589d35ae6be1b6e10c8c602b9" + integrity sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-react-jsx-development@^7.12.1", "@babel/plugin-transform-react-jsx-development@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz#1a6c73e2f7ed2c42eebc3d2ad60b0c7494fcb9af" + integrity sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.14.5" + +"@babel/plugin-transform-react-jsx-self@^7.12.1": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.14.9.tgz#33041e665453391eb6ee54a2ecf3ba1d46bd30f4" + integrity sha512-Fqqu0f8zv9W+RyOnx29BX/RlEsBRANbOf5xs5oxb2aHP4FKbLXxIaVPUiCti56LAR1IixMH4EyaixhUsKqoBHw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-react-jsx-source@^7.12.1": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.5.tgz#79f728e60e6dbd31a2b860b0bf6c9765918acf1d" + integrity sha512-1TpSDnD9XR/rQ2tzunBVPThF5poaYT9GqP+of8fAtguYuI/dm2RkrMBDemsxtY0XBzvW7nXjYM0hRyKX9QYj7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-react-jsx@^7.12.1", "@babel/plugin-transform-react-jsx@^7.14.5": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz#3314b2163033abac5200a869c4de242cd50a914c" + integrity sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-jsx" "^7.14.5" + "@babel/types" "^7.14.9" + +"@babel/plugin-transform-react-pure-annotations@^7.12.1", "@babel/plugin-transform-react-pure-annotations@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz#18de612b84021e3a9802cbc212c9d9f46d0d11fc" + integrity sha512-3X4HpBJimNxW4rhUy/SONPyNQHp5YRr0HhJdT2OH1BRp0of7u3Dkirc7x9FRJMKMqTBI079VZ1hzv7Ouuz///g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-regenerator@^7.12.1", "@babel/plugin-transform-regenerator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" + integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.12.1", "@babel/plugin-transform-reserved-words@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" + integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-runtime@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz#04b792057eb460389ff6a4198e377614ea1e7ba5" + integrity sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" + integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" + integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + +"@babel/plugin-transform-sticky-regex@^7.12.1", "@babel/plugin-transform-sticky-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" + integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" + integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typeof-symbol@^7.12.1", "@babel/plugin-transform-typeof-symbol@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" + integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typescript@^7.12.1": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.0.tgz#553f230b9d5385018716586fc48db10dd228eb7e" + integrity sha512-WIIEazmngMEEHDaPTx0IZY48SaAmjVWe3TRSX7cmJXn0bEv9midFzAjxiruOWYIVf5iQ10vFx7ASDpgEO08L5w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-typescript" "^7.14.5" + +"@babel/plugin-transform-unicode-escapes@^7.12.1", "@babel/plugin-transform-unicode-escapes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" + integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-regex@^7.12.1", "@babel/plugin-transform-unicode-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" + integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/preset-env@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2" + integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== + dependencies: + "@babel/compat-data" "^7.12.1" + "@babel/helper-compilation-targets" "^7.12.1" + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-option" "^7.12.1" + "@babel/plugin-proposal-async-generator-functions" "^7.12.1" + "@babel/plugin-proposal-class-properties" "^7.12.1" + "@babel/plugin-proposal-dynamic-import" "^7.12.1" + "@babel/plugin-proposal-export-namespace-from" "^7.12.1" + "@babel/plugin-proposal-json-strings" "^7.12.1" + "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" + "@babel/plugin-proposal-numeric-separator" "^7.12.1" + "@babel/plugin-proposal-object-rest-spread" "^7.12.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.1" + "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.12.1" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.12.1" + "@babel/plugin-transform-arrow-functions" "^7.12.1" + "@babel/plugin-transform-async-to-generator" "^7.12.1" + "@babel/plugin-transform-block-scoped-functions" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.1" + "@babel/plugin-transform-classes" "^7.12.1" + "@babel/plugin-transform-computed-properties" "^7.12.1" + "@babel/plugin-transform-destructuring" "^7.12.1" + "@babel/plugin-transform-dotall-regex" "^7.12.1" + "@babel/plugin-transform-duplicate-keys" "^7.12.1" + "@babel/plugin-transform-exponentiation-operator" "^7.12.1" + "@babel/plugin-transform-for-of" "^7.12.1" + "@babel/plugin-transform-function-name" "^7.12.1" + "@babel/plugin-transform-literals" "^7.12.1" + "@babel/plugin-transform-member-expression-literals" "^7.12.1" + "@babel/plugin-transform-modules-amd" "^7.12.1" + "@babel/plugin-transform-modules-commonjs" "^7.12.1" + "@babel/plugin-transform-modules-systemjs" "^7.12.1" + "@babel/plugin-transform-modules-umd" "^7.12.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1" + "@babel/plugin-transform-new-target" "^7.12.1" + "@babel/plugin-transform-object-super" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-property-literals" "^7.12.1" + "@babel/plugin-transform-regenerator" "^7.12.1" + "@babel/plugin-transform-reserved-words" "^7.12.1" + "@babel/plugin-transform-shorthand-properties" "^7.12.1" + "@babel/plugin-transform-spread" "^7.12.1" + "@babel/plugin-transform-sticky-regex" "^7.12.1" + "@babel/plugin-transform-template-literals" "^7.12.1" + "@babel/plugin-transform-typeof-symbol" "^7.12.1" + "@babel/plugin-transform-unicode-escapes" "^7.12.1" + "@babel/plugin-transform-unicode-regex" "^7.12.1" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.12.1" + core-js-compat "^3.6.2" + semver "^5.5.0" + +"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.8.4": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.0.tgz#e2165bf16594c9c05e52517a194bf6187d6fe464" + integrity sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q== + dependencies: + "@babel/compat-data" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@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.9" + "@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.9" + "@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.15.0" + "@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.9" + "@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.15.0" + 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.16.0" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.3", "@babel/preset-modules@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + dependencies: + "@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/preset-react@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.1.tgz#7f022b13f55b6dd82f00f16d1c599ae62985358c" + integrity sha512-euCExymHCi0qB9u5fKw7rvlw7AZSjw/NaB9h7EkdTt5+yHRrXdiRTh7fkG3uBPpJg82CqLfp1LHLqWGSCrab+g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-react-display-name" "^7.12.1" + "@babel/plugin-transform-react-jsx" "^7.12.1" + "@babel/plugin-transform-react-jsx-development" "^7.12.1" + "@babel/plugin-transform-react-jsx-self" "^7.12.1" + "@babel/plugin-transform-react-jsx-source" "^7.12.1" + "@babel/plugin-transform-react-pure-annotations" "^7.12.1" + +"@babel/preset-react@^7.12.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.14.5.tgz#0fbb769513f899c2c56f3a882fa79673c2d4ab3c" + integrity sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-react-display-name" "^7.14.5" + "@babel/plugin-transform-react-jsx" "^7.14.5" + "@babel/plugin-transform-react-jsx-development" "^7.14.5" + "@babel/plugin-transform-react-pure-annotations" "^7.14.5" + +"@babel/preset-typescript@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz#86480b483bb97f75036e8864fe404cc782cc311b" + integrity sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-typescript" "^7.12.1" + +"@babel/runtime-corejs3@^7.10.2": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.15.3.tgz#28754263988198f2a928c09733ade2fb4d28089d" + integrity sha512-30A3lP+sRL6ml8uhoJSs+8jwpKzbw8CqBvDc1laeptxPm5FahumJxirigcbD2qTs71Sonvj1cyZB0OKGAmxQ+A== + dependencies: + core-js-pure "^3.16.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.1.tgz#b4116a6b6711d010b2dad3b7b6e43bf1b9954740" + integrity sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.13.10", "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" + integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.10.4", "@babel/template@^7.14.5", "@babel/template@^7.3.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" + integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.15.0", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" + integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.0" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/parser" "^7.15.0" + "@babel/types" "^7.15.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.6", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" + integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== + dependencies: + "@babel/helper-validator-identifier" "^7.14.9" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@casl/ability@5.2.2": + version "5.2.2" + resolved "https://registry.yarnpkg.com/@casl/ability/-/ability-5.2.2.tgz#8582aaff347dbbf22935d5b7518f3d2a334a45c6" + integrity sha512-A0GTDWojP72Z4HSgS0pfbtGnhQWbquhn9luAr4Uc/HnqWWib0NvmpXC4//7gsiMUiVYCoFozQ+nG1oeZuhT7Jg== + dependencies: + "@ucast/mongo2js" "^1.3.0" + +"@casl/react@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@casl/react/-/react-2.1.1.tgz#8c2d886e3147a25b99a2cb84860c8cb4f2564dd3" + integrity sha512-DD0j40OZ+dcQopRdt1tsFaAZ79a1+HGCuMWvExdRcqrbjXFVnFi2kN26KMtwQuzL5FFiH4fmCADCxW3Xjxhs9A== + +"@choojs/findup@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@choojs/findup/-/findup-0.2.1.tgz#ac13c59ae7be6e1da64de0779a0a7f03d75615a3" + integrity sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw== + dependencies: + commander "^2.15.1" + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@csstools/convert-colors@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" + integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== + +"@csstools/normalize.css@^10.1.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" + integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== + +"@emotion/babel-plugin@^11.0.0": + version "11.3.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.3.0.tgz#3a16850ba04d8d9651f07f3fb674b3436a4fb9d7" + integrity sha512-UZKwBV2rADuhRp+ZOGgNWg2eYgbzKzQXfQPtJbu/PLy8onurxlNCLvxMQEvlr1/GudguPI5IU9qIY1+2z1M5bA== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/runtime" "^7.13.10" + "@emotion/hash" "^0.8.0" + "@emotion/memoize" "^0.7.5" + "@emotion/serialize" "^1.0.2" + babel-plugin-macros "^2.6.1" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "^4.0.3" + +"@emotion/cache@^11.0.0", "@emotion/cache@^11.1.3", "@emotion/cache@^11.4.0": + version "11.4.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.4.0.tgz#293fc9d9a7a38b9aad8e9337e5014366c3b09ac0" + integrity sha512-Zx70bjE7LErRO9OaZrhf22Qye1y4F7iDl+ITjet0J+i+B88PrAOBkKvaAWhxsZf72tDLajwCgfCjJ2dvH77C3g== + dependencies: + "@emotion/memoize" "^0.7.4" + "@emotion/sheet" "^1.0.0" + "@emotion/utils" "^1.0.0" + "@emotion/weak-memoize" "^0.2.5" + stylis "^4.0.3" + +"@emotion/css@^11.0.0": + version "11.1.3" + resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.1.3.tgz#9ed44478b19e5d281ccbbd46d74d123d59be793f" + integrity sha512-RSQP59qtCNTf5NWD6xM08xsQdCZmVYnX/panPYvB6LQAPKQB6GL49Njf0EMbS3CyDtrlWsBcmqBtysFvfWT3rA== + dependencies: + "@emotion/babel-plugin" "^11.0.0" + "@emotion/cache" "^11.1.3" + "@emotion/serialize" "^1.0.0" + "@emotion/sheet" "^1.0.0" + "@emotion/utils" "^1.0.0" + +"@emotion/hash@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" + integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== + +"@emotion/is-prop-valid@^0.8.8": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" + integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + dependencies: + "@emotion/memoize" "0.7.4" + +"@emotion/memoize@0.7.4": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" + integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== + +"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50" + integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== + +"@emotion/react@^11.1.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.4.1.tgz#a1b0b767b5bad57515ffb0cad9349614d27f4d57" + integrity sha512-pRegcsuGYj4FCdZN6j5vqCALkNytdrKw3TZMekTzNXixRg4wkLsU5QEaBG5LC6l01Vppxlp7FE3aTHpIG5phLg== + dependencies: + "@babel/runtime" "^7.13.10" + "@emotion/cache" "^11.4.0" + "@emotion/serialize" "^1.0.2" + "@emotion/sheet" "^1.0.2" + "@emotion/utils" "^1.0.0" + "@emotion/weak-memoize" "^0.2.5" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.0.0", "@emotion/serialize@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.2.tgz#77cb21a0571c9f68eb66087754a65fa97bfcd965" + integrity sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A== + dependencies: + "@emotion/hash" "^0.8.0" + "@emotion/memoize" "^0.7.4" + "@emotion/unitless" "^0.7.5" + "@emotion/utils" "^1.0.0" + csstype "^3.0.2" + +"@emotion/sheet@^1.0.0", "@emotion/sheet@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.0.2.tgz#1d9ffde531714ba28e62dac6a996a8b1089719d0" + integrity sha512-QQPB1B70JEVUHuNtzjHftMGv6eC3Y9wqavyarj4x4lg47RACkeSfNo5pxIOKizwS9AEFLohsqoaxGQj4p0vSIw== + +"@emotion/stylis@^0.8.4": + version "0.8.5" + resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" + integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== + +"@emotion/unitless@^0.7.4", "@emotion/unitless@^0.7.5": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + +"@emotion/utils@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.0.0.tgz#abe06a83160b10570816c913990245813a2fd6af" + integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA== + +"@emotion/weak-memoize@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" + integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== + +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + 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" + +"@formatjs/intl-listformat@^1.3.7": + version "1.4.8" + resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-1.4.8.tgz#70b81005e7dcf74329cb5b314a940ce5fce36cd0" + integrity sha512-WNMQlEg0e50VZrGIkgD5n7+DAMGt3boKi1GJALfhFMymslJb5i+5WzWxyj/3a929Z6MAFsmzRIJjKuv+BxKAOQ== + dependencies: + "@formatjs/intl-utils" "^2.3.0" + +"@formatjs/intl-relativetimeformat@^4.5.7": + version "4.5.16" + resolved "https://registry.yarnpkg.com/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-4.5.16.tgz#7449cef3213dd66d25924ca41f125f87b58df95a" + integrity sha512-IQ0haY97oHAH5OYUdykNiepdyEWj3SAT+Fp9ZpR85ov2JNiFx+12WWlxlVS8ehdyncC2ZMt/SwFIy2huK2+6/A== + dependencies: + "@formatjs/intl-utils" "^2.3.0" + +"@formatjs/intl-unified-numberformat@^3.0.4", "@formatjs/intl-unified-numberformat@^3.2.0": + version "3.3.7" + resolved "https://registry.yarnpkg.com/@formatjs/intl-unified-numberformat/-/intl-unified-numberformat-3.3.7.tgz#9995a24568908188e716d81a1de5b702b2ee00e2" + integrity sha512-KnWgLRHzCAgT9eyt3OS34RHoyD7dPDYhRcuKn+/6Kv2knDF8Im43J6vlSW6Hm1w63fNq3ZIT1cFk7RuVO3Psag== + dependencies: + "@formatjs/intl-utils" "^2.3.0" + +"@formatjs/intl-utils@^2.0.4", "@formatjs/intl-utils@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@formatjs/intl-utils/-/intl-utils-2.3.0.tgz#2dc8c57044de0340eb53a7ba602e59abf80dc799" + integrity sha512-KWk80UPIzPmUg+P0rKh6TqspRw0G6eux1PuJr+zz47ftMaZ9QDwbGzHZbtzWkl5hgayM/qrKRutllRC7D/vVXQ== + +"@formatjs/macro@^0.2.6": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@formatjs/macro/-/macro-0.2.8.tgz#e43228e02d0159817734ad80cc0326cfefaeeb6c" + integrity sha512-5IBdn5+D8VGdi6Px0M/PidtqzHVrOj3dVJdV+YmWNRaWHdSvBd1wUd0gMcZnQXAxN+RzlGS/ddfOxFkjSlyQuA== + +"@fullcalendar/common@~5.7.0", "@fullcalendar/common@~5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@fullcalendar/common/-/common-5.7.2.tgz#a9fae0159a26dd83b0b85df04df3fd66133fa433" + integrity sha512-0EDKmZBvTUFLvnJ7n6Vo6xMaPVm0jpYq739aSjwFPPXKgbjKFTPbWvLkaDpjJf7YhVebVSOLHbUC1Ky5wXsKvQ== + dependencies: + tslib "^2.0.3" + +"@fullcalendar/core@5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@fullcalendar/core/-/core-5.7.2.tgz#77bc6e0e8044e2e9350d5d6647128e24a0da9894" + integrity sha512-4yKLUnAEDDIePw9WJuT2sSvLWGrDGBhp20cjBmyxnJ/6eNN1RCex/OjSu7qDNHvzey+ncjlVWsY41bvZwhpfvg== + dependencies: + "@fullcalendar/common" "~5.7.2" + preact "^10.0.5" + tslib "^2.0.3" + +"@fullcalendar/daygrid@5.7.2", "@fullcalendar/daygrid@~5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@fullcalendar/daygrid/-/daygrid-5.7.2.tgz#8576c65ffdcca5bc278e96c54cabbecaaabd229c" + integrity sha512-YHxOv3sLDwBWhb9+JBwQ/25VOJ0/22B6msRijIPbmJt5bljqYCIENQ4OLQ5UxZlkDC0Q9CSBg84oBtZYfW+kEg== + dependencies: + "@fullcalendar/common" "~5.7.2" + tslib "^2.0.3" + +"@fullcalendar/interaction@5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@fullcalendar/interaction/-/interaction-5.7.2.tgz#df06ab5fe71dff12ace85d61a1535fa24181acac" + integrity sha512-fnDcwE++0tie6wNVl/ZqUjgOQEekkdmbWH9hmcwE65y2aYMBX4IHE95MjMWVRAy2edahfAmy4xucQs2T0HYYSw== + dependencies: + "@fullcalendar/common" "~5.7.2" + tslib "^2.0.3" + +"@fullcalendar/list@5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@fullcalendar/list/-/list-5.7.2.tgz#7f9d6d3b86c2a8735ac03d2cddb0434a4a7ddc39" + integrity sha512-IV3SACoE02vheO3wEHjbaw1TGbjdjXHwD/+OtVOgoCNAxJVd0NI0d7kbIxVIniV2vrDPWkybCS1Abi2QANk3iQ== + dependencies: + "@fullcalendar/common" "~5.7.2" + tslib "^2.0.3" + +"@fullcalendar/premium-common@~5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@fullcalendar/premium-common/-/premium-common-5.7.2.tgz#a42be3f0ffe8cd566512e40130fe116b21d36adb" + integrity sha512-tehsHwFxxKftCZT8JoJ6t84AOOG+7NpV9kTF/ICQV9ZBDK0S4O2UHwEiGfCY4Iz/l3YW3RVUgrO6S+/p8pnFuw== + dependencies: + "@fullcalendar/common" "~5.7.2" + tslib "^2.0.3" + +"@fullcalendar/react@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@fullcalendar/react/-/react-5.7.0.tgz#886ff7d283abf7c5e43ddf895ae88fa15d523039" + integrity sha512-9JdaN/pZXlUFyUe8H1NHIvEt5UVe2p/sctcfsQbKSPJ9NNTVmK+kk3qfUpOWEho6DYuFRLqYI+VwmeVM5mE8rA== + dependencies: + "@fullcalendar/common" "~5.7.0" + tslib "^2.0.3" + +"@fullcalendar/scrollgrid@~5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@fullcalendar/scrollgrid/-/scrollgrid-5.7.2.tgz#c17878c467a4c88aa0e84322d01d7b86f51a247c" + integrity sha512-cU0khf72kP7m1cpSYYWSFnLNii36VRlg6Kdix/2mr3BBX74bjFsJfWkWKneO/bZzJgIBvKYehQ/SYiZNC77xuA== + dependencies: + "@fullcalendar/common" "~5.7.2" + "@fullcalendar/premium-common" "~5.7.2" + tslib "^2.0.3" + +"@fullcalendar/timegrid@5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@fullcalendar/timegrid/-/timegrid-5.7.2.tgz#0c2d832070744c154f71b4c442e59910407d954e" + integrity sha512-FRZRwVtlahljSILexvmhLg2LnFbJVCpeuzAIgdURmRoSDCCDuxoA6Z3l66a/QFp3LcFVbZbg7VjKibyvvB9b9A== + dependencies: + "@fullcalendar/common" "~5.7.2" + "@fullcalendar/daygrid" "~5.7.2" + tslib "^2.0.3" + +"@fullcalendar/timeline@5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@fullcalendar/timeline/-/timeline-5.7.2.tgz#080cb863fc955843abdafc40733aa79924075c45" + integrity sha512-n8FaVuGdIZVztNM8f20/TP0emTS1rfCKFZmXtm566t7u3oKEzDBmgHIHDRgNZafTX1qmCSCP7ANkgi1UKN7E8g== + dependencies: + "@fullcalendar/common" "~5.7.2" + "@fullcalendar/premium-common" "~5.7.2" + "@fullcalendar/scrollgrid" "~5.7.2" + tslib "^2.0.3" + +"@gar/promisify@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" + integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== + +"@hapi/address@2.x.x": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/joi@^15.1.0": + version "15.1.1" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" + +"@hookform/resolvers@1.3.4": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-1.3.4.tgz#3129243180a5ecc4347b9e66ad693148215c2986" + integrity sha512-K56VLSInXNIT/r14pkzRn1FJclqzGOWqpe3Bf0kz2Hf98ZOmRRFh4fhB7F3ofqCQ03CEQQkV44CTg7ql6nEvEg== + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + +"@hypnosphi/create-react-context@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz#f8bfebdc7665f5d426cba3753e0e9c7d3154d7c6" + integrity sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A== + dependencies: + gud "^1.0.0" + warning "^4.0.3" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.0", "@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.0", "@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.6.0", "@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.0", "@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/fs@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.0.0.tgz#589612cfad3a6ea0feafcb901d29c63fd52db09f" + integrity sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ== + dependencies: + "@gar/promisify" "^1.0.1" + semver "^7.3.5" + +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@pmmmwh/react-refresh-webpack-plugin@0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz#1eec460596d200c0236bf195b078a5d1df89b766" + integrity sha512-br5Qwvh8D2OQqSXpd1g/xqXKnK0r+Jz6qVKBbWmpUcrbGOxUrf39V5oZ1876084CGn18uMdR5uvPqBv9UqtBjQ== + dependencies: + ansi-html "^0.0.7" + error-stack-parser "^2.0.6" + html-entities "^1.2.1" + native-url "^0.2.6" + schema-utils "^2.6.5" + source-map "^0.7.3" + +"@popperjs/core@^2.9.2": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.9.3.tgz#8b68da1ebd7fc603999cf6ebee34a4899a14b88e" + integrity sha512-xDu17cEfh7Kid/d95kB6tZsLOmSWKCZKtprnhVepjsSaCij+lM3mItSJDuuHDMbCWTh8Ejmebwb+KONcCJ0eXQ== + +"@react-leaflet/core@^1.0.2": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@react-leaflet/core/-/core-1.1.0.tgz#389b2b373f1da4caeb3c4cf6f33d84561c58d504" + integrity sha512-zFxMHgfjCi7khRVB7o7H8NoJl36NaezvfcaeEurVXx22lAGHFlTHiSuLOGA4tOiHj+Ep+Lo3uwUGJ3YM9BGkHg== + +"@rollup/plugin-node-resolve@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca" + integrity sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q== + dependencies: + "@rollup/pluginutils" "^3.0.8" + "@types/resolve" "0.0.8" + builtin-modules "^3.1.0" + is-module "^1.0.0" + resolve "^1.14.2" + +"@rollup/plugin-replace@^2.3.1": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" + integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@surma/rollup-plugin-off-main-thread@^1.1.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz#e6786b6af5799f82f7ab3a82e53f6182d2b91a58" + integrity sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A== + dependencies: + ejs "^2.6.1" + magic-string "^0.25.0" + +"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" + integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== + +"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" + integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" + integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" + integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== + +"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" + integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== + +"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" + integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== + +"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" + integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== + +"@svgr/babel-plugin-transform-svg-component@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" + integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== + +"@svgr/babel-preset@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" + integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" + "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" + "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" + "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" + "@svgr/babel-plugin-transform-svg-component" "^5.5.0" + +"@svgr/core@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" + integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== + dependencies: + "@svgr/plugin-jsx" "^5.5.0" + camelcase "^6.2.0" + cosmiconfig "^7.0.0" + +"@svgr/hast-util-to-babel-ast@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" + integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== + dependencies: + "@babel/types" "^7.12.6" + +"@svgr/plugin-jsx@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" + integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== + dependencies: + "@babel/core" "^7.12.3" + "@svgr/babel-preset" "^5.5.0" + "@svgr/hast-util-to-babel-ast" "^5.5.0" + svg-parser "^2.0.2" + +"@svgr/plugin-svgo@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" + integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== + dependencies: + cosmiconfig "^7.0.0" + deepmerge "^4.2.2" + svgo "^1.2.2" + +"@svgr/webpack@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" + integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== + dependencies: + "@babel/core" "^7.12.3" + "@babel/plugin-transform-react-constant-elements" "^7.12.1" + "@babel/preset-env" "^7.12.1" + "@babel/preset-react" "^7.12.5" + "@svgr/core" "^5.5.0" + "@svgr/plugin-jsx" "^5.5.0" + "@svgr/plugin-svgo" "^5.5.0" + loader-utils "^2.0.0" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@transloadit/prettier-bytes@0.0.7": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz#cdb5399f445fdd606ed833872fa0cabdbc51686b" + integrity sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.3", "@types/babel__core@^7.1.7": + version "7.1.15" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" + integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" + integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + dependencies: + "@babel/types" "^7.3.0" + +"@types/eslint@^7.2.6": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a" + integrity sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "0.0.50" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/glob@^7.1.1": + version "7.1.4" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672" + integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/hoist-non-react-statics@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" + integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + +"@types/html-minifier-terser@^5.0.0": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" + integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== + +"@types/invariant@^2.2.31": + version "2.2.35" + resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.35.tgz#cd3ebf581a6557452735688d8daba6cf0bd5a3be" + integrity sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/lodash@^4.14.105", "@types/lodash@^4.14.165": + version "4.14.172" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.172.tgz#aad774c28e7bfd7a67de25408e03ee5a8c3d028a" + integrity sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw== + +"@types/minimatch@*": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/node@*": + version "16.7.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.10.tgz#7aa732cc47341c12a16b7d562f519c2383b6d4fc" + integrity sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^2.0.0": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" + integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== + +"@types/prop-types@*": + version "15.7.4" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" + integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== + +"@types/q@^1.5.1": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + +"@types/react@*": + version "17.0.19" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.19.tgz#8f2a85e8180a43b57966b237d26a29481dacc991" + integrity sha512-sX1HisdB1/ZESixMTGnMxH9TDe8Sk709734fEQZzCV/4lSu9kJCPbo2PbTRoZM+53Pp0P10hYVyReUueGwUi4A== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/react@^16.0.40": + version "16.14.14" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.14.tgz#853de95a32a6a0e719192e222eacad024add2b8e" + integrity sha512-uwIWDYW8LznHzEMJl7ag9St1RsK0gw/xaFZ5+uI1ZM1HndwUgmPH3/wQkSb87GkOVg7shUxnpNW8DcN0AzvG5Q== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/resolve@0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" + integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== + dependencies: + "@types/node" "*" + +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + +"@types/schema-utils@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/schema-utils/-/schema-utils-1.0.0.tgz#295d36f01e2cb8bc3207ca1d9a68e210db6b40cb" + integrity sha512-YesPanU1+WCigC/Aj1Mga8UCOjHIfMNHZ3zzDsUY7lI8GlKnh/Kv2QwJOQ+jNQ36Ru7IfzSedlG14hppYaN13A== + +"@types/sortablejs@^1.10.6": + version "1.10.7" + resolved "https://registry.yarnpkg.com/@types/sortablejs/-/sortablejs-1.10.7.tgz#ab9039c85429f0516955ec6dbc0bb20139417b15" + integrity sha512-lGCwwgpj8zW/ZmaueoPVSP7nnc9t8VqVWXS+ASX3eoUUENmiazv0rlXyTRludXzuX9ALjPsMqBu85TgJNWbTOg== + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/tapable@^1", "@types/tapable@^1.0.5": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" + integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== + +"@types/uglify-js@*": + version "3.13.1" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" + integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ== + dependencies: + source-map "^0.6.1" + +"@types/webpack-sources@*": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" + integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@^4.41.8": + version "4.41.30" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.30.tgz#fd3db6d0d41e145a8eeeafcd3c4a7ccde9068ddc" + integrity sha512-GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA== + dependencies: + "@types/node" "*" + "@types/tapable" "^1" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + anymatch "^3.0.0" + source-map "^0.6.0" + +"@types/yargs-parser@*": + version "20.2.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + +"@types/yargs@^15.0.0": + version "15.0.14" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^4.5.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.30.0.tgz#4a0c1ae96b953f4e67435e20248d812bfa55e4fb" + integrity sha512-NgAnqk55RQ/SD+tZFD9aPwNSeHmDHHe5rtUyhIq0ZeCWZEvo4DK9rYz7v9HDuQZFvn320Ot+AikaCKMFKLlD0g== + dependencies: + "@typescript-eslint/experimental-utils" "4.30.0" + "@typescript-eslint/scope-manager" "4.30.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.30.0", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.30.0.tgz#9e49704fef568432ae16fc0d6685c13d67db0fd5" + integrity sha512-K8RNIX9GnBsv5v4TjtwkKtqMSzYpjqAQg/oSphtxf3xxdt6T0owqnpojztjjTcatSteH3hLj3t/kklKx87NPqw== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.30.0" + "@typescript-eslint/types" "4.30.0" + "@typescript-eslint/typescript-estree" "4.30.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/experimental-utils@^3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" + integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/typescript-estree" "3.10.1" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^4.5.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.30.0.tgz#6abd720f66bd790f3e0e80c3be77180c8fcb192d" + integrity sha512-HJ0XuluSZSxeboLU7Q2VQ6eLlCwXPBOGnA7CqgBnz2Db3JRQYyBDJgQnop6TZ+rsbSx5gEdWhw4rE4mDa1FnZg== + dependencies: + "@typescript-eslint/scope-manager" "4.30.0" + "@typescript-eslint/types" "4.30.0" + "@typescript-eslint/typescript-estree" "4.30.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.30.0.tgz#1a3ffbb385b1a06be85cd5165a22324f069a85ee" + integrity sha512-VJ/jAXovxNh7rIXCQbYhkyV2Y3Ac/0cVHP/FruTJSAUUm4Oacmn/nkN5zfWmWFEanN4ggP0vJSHOeajtHq3f8A== + dependencies: + "@typescript-eslint/types" "4.30.0" + "@typescript-eslint/visitor-keys" "4.30.0" + +"@typescript-eslint/types@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" + integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== + +"@typescript-eslint/types@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.30.0.tgz#fb9d9b0358426f18687fba82eb0b0f869780204f" + integrity sha512-YKldqbNU9K4WpTNwBqtAerQKLLW/X2A/j4yw92e3ZJYLx+BpKLeheyzoPfzIXHfM8BXfoleTdiYwpsvVPvHrDw== + +"@typescript-eslint/typescript-estree@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" + integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== + dependencies: + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/visitor-keys" "3.10.1" + debug "^4.1.1" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/typescript-estree@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.30.0.tgz#ae57833da72a753f4846cd3053758c771670c2ac" + integrity sha512-6WN7UFYvykr/U0Qgy4kz48iGPWILvYL34xXJxvDQeiRE018B7POspNRVtAZscWntEPZpFCx4hcz/XBT+erenfg== + dependencies: + "@typescript-eslint/types" "4.30.0" + "@typescript-eslint/visitor-keys" "4.30.0" + 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@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" + integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== + dependencies: + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/visitor-keys@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.30.0.tgz#a47c6272fc71b0c627d1691f68eaecf4ad71445e" + integrity sha512-pNaaxDt/Ol/+JZwzP7MqWc8PJQTUhZwoee/PVlQ+iYoYhagccvoHnC9e4l+C/krQYYkENxznhVSDwClIbZVxRw== + dependencies: + "@typescript-eslint/types" "4.30.0" + eslint-visitor-keys "^2.0.0" + +"@ucast/core@^1.0.0", "@ucast/core@^1.4.1", "@ucast/core@^1.6.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@ucast/core/-/core-1.10.1.tgz#03a77a7804bcb5002a5cad3681e86cd1897e2e1f" + integrity sha512-sXKbvQiagjFh2JCpaHUa64P4UdJbOxYeC5xiZFn8y6iYdb0WkismduE+RmiJrIjw/eLDYmIEXiQeIYYowmkcAw== + +"@ucast/js@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@ucast/js/-/js-3.0.2.tgz#862838ee68112c6c262d4f4693cc592ba83157e0" + integrity sha512-zxNkdIPVvqJjHI7D/iK8Aai1+59yqU+N7bpHFodVmiTN7ukeNiGGpNmmSjQgsUw7eNcEBnPrZHNzp5UBxwmaPw== + dependencies: + "@ucast/core" "^1.0.0" + +"@ucast/mongo2js@^1.3.0": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@ucast/mongo2js/-/mongo2js-1.3.3.tgz#a683a59cea22887a72e4302f3826e41ccf51dbbe" + integrity sha512-sBPtMUYg+hRnYeVYKL+ATm8FaRPdlU9PijMhGYKgsPGjV9J4Ks41ytIjGayvKUnBOEhiCaKUUnY4qPeifdqATw== + dependencies: + "@ucast/core" "^1.6.1" + "@ucast/js" "^3.0.0" + "@ucast/mongo" "^2.4.0" + +"@ucast/mongo@^2.4.0": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@ucast/mongo/-/mongo-2.4.2.tgz#a8a1c32e65ccab623be023e6cedb11d136d50f19" + integrity sha512-/zH1TdBJlYGKKD+Wh0oyD+aBvDSWrwHcD8b4tUL9UgHLhzHtkEnMVFuxbw3SRIRsAa01wmy06+LWt+WoZdj1Bw== + dependencies: + "@ucast/core" "^1.4.1" + +"@uppy/aws-s3-multipart@^1.8.6": + version "1.8.18" + resolved "https://registry.yarnpkg.com/@uppy/aws-s3-multipart/-/aws-s3-multipart-1.8.18.tgz#d0b3ede025d06b615ad3df90c3771eed38f68d87" + integrity sha512-m+IJSsDF253igTlQb2vgCTetqd+qgNIBX48i8HGnLj4rBfRd4FjpBpcV7DgfAn7QVOfrQOgOJoz9cGtXdaZ3lA== + dependencies: + "@uppy/companion-client" "^1.10.2" + "@uppy/utils" "^3.6.2" + +"@uppy/aws-s3@^1.7.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@uppy/aws-s3/-/aws-s3-1.8.0.tgz#3f1ffdc01891011e6d68a9020736cf6e705ab0fb" + integrity sha512-8fSHgoNcnZoFk6PyciRzGXj00Uhv+cXIgweuZXnRAJ8NB1ZLiY+R39aKzESG4wrgjbWklaohQtUpPdcGbvMoyg== + dependencies: + "@uppy/companion-client" "^1.10.2" + "@uppy/utils" "^3.6.2" + "@uppy/xhr-upload" "^1.7.5" + cuid "^2.1.1" + qs-stringify "^1.1.0" + url-parse "^1.4.7" + +"@uppy/companion-client@^1.10.2", "@uppy/companion-client@^1.5.4": + version "1.10.2" + resolved "https://registry.yarnpkg.com/@uppy/companion-client/-/companion-client-1.10.2.tgz#a640b3ef90b91751c49bf4b6a7a63c2ebac294f6" + integrity sha512-5RmsNF9UBvUqmqQz48SoiLvkpGmvQTgwNM4bJX8xwVozv/6goRpFrsMJGLwqFcHS/9xj6STKOqrM582g8exVwQ== + dependencies: + "@uppy/utils" "^3.6.2" + namespace-emitter "^2.0.1" + qs-stringify "^1.1.0" + url-parse "^1.4.7" + +"@uppy/core@^1.13.2": + version "1.20.1" + resolved "https://registry.yarnpkg.com/@uppy/core/-/core-1.20.1.tgz#23ca28d4388c29987fdc4e65a968474dcdc303c6" + integrity sha512-Z0yGixSNOSMgT/2aLylXQaEBB6X32RqGLQUgDJDK08jI0ZcMha5glNhD2RU1Gs9noQOAR/f7QwBssSnYJUNRfg== + dependencies: + "@transloadit/prettier-bytes" "0.0.7" + "@uppy/store-default" "^1.2.7" + "@uppy/utils" "^3.6.2" + cuid "^2.1.1" + lodash.throttle "^4.1.1" + mime-match "^1.0.2" + namespace-emitter "^2.0.1" + preact "8.2.9" + +"@uppy/dashboard@^1.12.8": + version "1.21.1" + resolved "https://registry.yarnpkg.com/@uppy/dashboard/-/dashboard-1.21.1.tgz#c920d3af69b61413ef109608dde9b12d3c8a434b" + integrity sha512-psMwBVxxhAZxYkRds4e//+Sx3zkFYRnYpt4jaF4hmwpL9SehlyhQKwaB/scZz/O4yshmgTN8Sri0mYK5FSh5SQ== + dependencies: + "@transloadit/prettier-bytes" "0.0.7" + "@uppy/informer" "^1.6.6" + "@uppy/provider-views" "^1.12.3" + "@uppy/status-bar" "^1.9.6" + "@uppy/thumbnail-generator" "^1.7.11" + "@uppy/utils" "^3.6.2" + classnames "^2.2.6" + cuid "^2.1.1" + is-shallow-equal "^1.0.1" + lodash.debounce "^4.0.8" + lodash.throttle "^4.1.1" + memoize-one "^5.0.4" + preact "8.2.9" + resize-observer-polyfill "^1.5.0" + +"@uppy/drag-drop@^1.4.19": + version "1.4.31" + resolved "https://registry.yarnpkg.com/@uppy/drag-drop/-/drag-drop-1.4.31.tgz#fe342e2d653c8454c8dd9be1e95dbed5726772a6" + integrity sha512-a9/WKOdAhz9mfFYI9JJNEGLP3TI8RQChndpFkjlxbsD82x2WHSB1TyWTslMdSCK6Ed3pV5IYyBVqDGsTqgveYg== + dependencies: + "@uppy/utils" "^3.6.2" + preact "8.2.9" + +"@uppy/dropbox@^1.4.16": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@uppy/dropbox/-/dropbox-1.5.2.tgz#aed0455fadfa21014e78ea70934b09af34a5afa7" + integrity sha512-DSuLUozHsg72qLzlZ1b1qZ9L9gdKFdtgkd2PURpOAJPRHHNchCQDdkBSPS8aHNAuErDKFxg71DcO3CIzbZ054A== + dependencies: + "@uppy/companion-client" "^1.10.2" + "@uppy/provider-views" "^1.12.3" + "@uppy/utils" "^3.6.2" + preact "8.2.9" + +"@uppy/facebook@^1.1.16": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@uppy/facebook/-/facebook-1.2.2.tgz#c0a8467e053cb0d741133fb20fc0c04bc3c8e8a1" + integrity sha512-DoOQJjhy4y4DRK5iKLU9ayub4ao7cAdBd0lOsGTjyFtWzdnK9RcisZ7FDlXe2QK4ekdiFFdnBE3mOYTgYzw3gg== + dependencies: + "@uppy/companion-client" "^1.10.2" + "@uppy/provider-views" "^1.12.3" + "@uppy/utils" "^3.6.2" + preact "8.2.9" + +"@uppy/file-input@^1.4.17": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@uppy/file-input/-/file-input-1.5.2.tgz#0f9797ae9053946ba16d73ee2606c69afc64b872" + integrity sha512-EI7IROt2qyGm3EoGDmb4UiWNe/P8YsGAcoCZZqFlTLkBlK7Yen5yxzQ4+KH7jWZYM6BynYnHl18aMdRcDWf/UA== + dependencies: + "@uppy/utils" "^3.6.2" + preact "8.2.9" + +"@uppy/form@^1.3.20": + version "1.3.31" + resolved "https://registry.yarnpkg.com/@uppy/form/-/form-1.3.31.tgz#13b3537d2fb8b62ed3186e2190da85261dbf11af" + integrity sha512-FyhJSJgdYDkLAuMqYo1d7f469PbbU3wrLbyoSDtZTEDBUXeE7b4g3ygqrFhlZsxbpwGvO/ygg2/8z0Dlvt7dBQ== + dependencies: + "@uppy/utils" "^3.6.2" + get-form-data "^2.0.0" + +"@uppy/golden-retriever@^1.3.19": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@uppy/golden-retriever/-/golden-retriever-1.4.2.tgz#ff994721a391db23f6229c4dfedeaf3f9a6c4660" + integrity sha512-beMRrXGZ/qdLlKW5vQN8TuXFNoeGdFnBnriKxDHMYGXEo+fKTLTqXDeFgPYqXa337H7sb1StdzCnb8YDYyDPnQ== + dependencies: + "@transloadit/prettier-bytes" "0.0.7" + "@uppy/utils" "^3.6.2" + lodash.throttle "^4.1.1" + +"@uppy/google-drive@^1.5.16": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@uppy/google-drive/-/google-drive-1.7.2.tgz#59869c965de9c197aa052cfda3f885df1f9f96c4" + integrity sha512-29w2e36gX4394ly5t+JMhg4WVr2vpo7a46PLHKZlNwbiPKrEqBUyLy/seCxHUH+6qNtrHFIWQoLTwrlMCEOi3w== + dependencies: + "@uppy/companion-client" "^1.10.2" + "@uppy/provider-views" "^1.12.3" + "@uppy/utils" "^3.6.2" + preact "8.2.9" + +"@uppy/informer@^1.5.11", "@uppy/informer@^1.6.6": + version "1.6.6" + resolved "https://registry.yarnpkg.com/@uppy/informer/-/informer-1.6.6.tgz#94090ab74997f10c2a2151c04b1c75484bdfe7eb" + integrity sha512-9rZoAqNrKQN/HINnGg8rGnKEliLgc+9/tQQ0f9QcBgRIu/rnbBCTwS+qnGGdjYBdEJTSbHx+U7X9ufjrrjB+CA== + dependencies: + "@uppy/utils" "^3.6.2" + preact "8.2.9" + +"@uppy/instagram@^1.4.16": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@uppy/instagram/-/instagram-1.5.2.tgz#6141457e3d0b2fb5812d5c49b808d430cd66dd33" + integrity sha512-hfBfO3P++sI5LNvtpHb6h5Ow/nOu2LgPeIQZ2xaeeQXjDg+wt8oToF25z+LSwXi69QxCh3mPpWNIGbq/N96Cfw== + dependencies: + "@uppy/companion-client" "^1.10.2" + "@uppy/provider-views" "^1.12.3" + "@uppy/utils" "^3.6.2" + preact "8.2.9" + +"@uppy/onedrive@^1.1.16": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@uppy/onedrive/-/onedrive-1.2.2.tgz#476872b02775521d78f0d3649efec5221ddae817" + integrity sha512-o1k2/2Sh4BwxzB0c5iSheTCotoSZXsnIdNDEsnO8WJiSclnody3XUuh+D6O5UeQxCFCFS13KJ6RebLGN8t/srQ== + dependencies: + "@uppy/companion-client" "^1.10.2" + "@uppy/provider-views" "^1.12.3" + "@uppy/utils" "^3.6.2" + preact "8.2.9" + +"@uppy/progress-bar@^1.3.19": + version "1.3.30" + resolved "https://registry.yarnpkg.com/@uppy/progress-bar/-/progress-bar-1.3.30.tgz#5bdbc8aab782df15def535c6be47d45ca07964da" + integrity sha512-MAn20wBMzKc1p9M/Mot4+bV/707EO/DVgoFcvoP8rmA5oZOGMINpvFGR+rUtWQoBFMvKtvs/Wkp8mcR22rCMrw== + dependencies: + "@uppy/utils" "^3.6.2" + preact "8.2.9" + +"@uppy/provider-views@^1.12.3", "@uppy/provider-views@^1.7.7": + version "1.12.3" + resolved "https://registry.yarnpkg.com/@uppy/provider-views/-/provider-views-1.12.3.tgz#aecfed615bc174abc548539a3c17b39e455aed0e" + integrity sha512-r2kra3IftmGLeKMEgZbmQM1qXixulWUUzydgpHcZqJOpeNIjJcpspJruYRctrVqaLz/8asw87V4KxDk0U4xGzw== + dependencies: + "@uppy/utils" "^3.6.2" + classnames "^2.2.6" + preact "8.2.9" + +"@uppy/react@1.10.8": + version "1.10.8" + resolved "https://registry.yarnpkg.com/@uppy/react/-/react-1.10.8.tgz#260bc37693c8a1aa6f719cada22b67414913466d" + integrity sha512-FO6PThrYZaEGZd7G3YooHHKsxhZqF6/Euy+jI8CLhROf78Kg0Gr3dURhwaH902NgPrA5Yfa6xRSC1d4etwMktg== + dependencies: + "@uppy/dashboard" "^1.12.8" + "@uppy/drag-drop" "^1.4.19" + "@uppy/progress-bar" "^1.3.19" + "@uppy/status-bar" "^1.7.6" + "@uppy/utils" "^3.2.3" + prop-types "^15.6.1" + +"@uppy/redux-dev-tools@^1.3.5": + version "1.3.9" + resolved "https://registry.yarnpkg.com/@uppy/redux-dev-tools/-/redux-dev-tools-1.3.9.tgz#987020ff58bbe8f2093e8cd4b66aeded7c06d62d" + integrity sha512-OVugq1AbIZ89nRifl5suv7AiC2uE5Ot4QbaTgoS8l0DwMMRpYKYAOc904Wj9F9cTZhaUBXEmTqKlZgL9NVK3FQ== + +"@uppy/screen-capture@^1.0.8": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@uppy/screen-capture/-/screen-capture-1.1.0.tgz#adbf3378ae35dc4548cdaac9a1b9139ce082ccee" + integrity sha512-x3LmskHdkSeE+RCUDve+jsxiD9D0MVGk1PivZjnyouTz81QrWtkEOikuJc9hyddTsDUiisxdaOVCj3eJwDWcVQ== + dependencies: + "@uppy/utils" "^3.6.2" + preact "8.2.9" + +"@uppy/status-bar@^1.7.6", "@uppy/status-bar@^1.9.6": + version "1.9.6" + resolved "https://registry.yarnpkg.com/@uppy/status-bar/-/status-bar-1.9.6.tgz#a04f699444fc7f156c260e5b7c001125e5190a5f" + integrity sha512-U/KPs5SwZ5d4hJFiCNAdriGHSk1Uhrl+iQmpJS8hoM+8r8rPfwScdua2/ehLuH69Ymwp6k7DpK2DU7UG2XZ+ag== + dependencies: + "@transloadit/prettier-bytes" "0.0.7" + "@uppy/utils" "^3.6.2" + classnames "^2.2.6" + lodash.throttle "^4.1.1" + preact "8.2.9" + +"@uppy/store-default@^1.2.4", "@uppy/store-default@^1.2.7": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@uppy/store-default/-/store-default-1.2.7.tgz#41a0b1579f4d5b86c236e7f5e52fdc01960bb011" + integrity sha512-58IG9yk/i/kYQ9uEwAwMFl1H2V3syOoODrYoFfVHlxaqv+9MkXBg2tHE2gk40iaAIxcCErcPxZkBOvkqzO1SQA== + +"@uppy/store-redux@^1.2.4": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@uppy/store-redux/-/store-redux-1.2.8.tgz#baef9eed933b316cd2d79478a239cd5a5c8b9a85" + integrity sha512-9lPPQf8lyADjrjNXe7u8j+Pn2MeIlUXANT8vHXy2WnbYX+WL/r7gqNUd8kiKoMksX1E+gA6VH5rmj6ysL9xVvg== + dependencies: + cuid "^2.1.1" + +"@uppy/thumbnail-generator@^1.6.7", "@uppy/thumbnail-generator@^1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@uppy/thumbnail-generator/-/thumbnail-generator-1.7.11.tgz#c6f49be90469f220a419ac43c129bf835cc11c41" + integrity sha512-qo9ZD8ByDMM6gIJ4JPN0V/dWlruYMhmYifhUvDUu0qhPAOTJAqh2hLQ+dlmUXTns8RnDorCXScreICSQ09FuLQ== + dependencies: + "@uppy/utils" "^3.6.2" + exifr "^6.0.0" + math-log2 "^1.0.1" + +"@uppy/transloadit@^1.6.11": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@uppy/transloadit/-/transloadit-1.7.0.tgz#39393afd71be47e0f6363618222f3cd0c82f9412" + integrity sha512-vQOQ+LNLAvkbiD8Zf6TJW4QeYawkADnHwFEj7XiI9npkzC8Lbt3XOLSTibj1vmICVgk277TsqnX3MUhK6+cX+A== + dependencies: + "@uppy/companion-client" "^1.10.2" + "@uppy/provider-views" "^1.12.3" + "@uppy/tus" "^1.9.2" + "@uppy/utils" "^3.6.2" + component-emitter "^1.2.1" + socket.io-client "~2.2.0" + url-parse "^1.4.7" + +"@uppy/tus@^1.7.7", "@uppy/tus@^1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@uppy/tus/-/tus-1.9.2.tgz#d6e4fa715bc386daa8e7be6e80eb93e4f2abb46e" + integrity sha512-ejaczrrh6w514XGd3kiDD1PJ8tIgmnV50fuyRwsybDj8HQheKAEu6GsJjxcnctP8NcSx4HNDhazVLPj6+A4p9Q== + dependencies: + "@uppy/companion-client" "^1.10.2" + "@uppy/utils" "^3.6.2" + tus-js-client "^2.1.1" + +"@uppy/url@^1.5.11": + version "1.5.23" + resolved "https://registry.yarnpkg.com/@uppy/url/-/url-1.5.23.tgz#08622157fa124fc62bab2014a1bc9c712d5b2625" + integrity sha512-pRmRccuJv2Ad57jPgYckbvozeUhkMouBv2du9+BW9Sr7E5aJPbujwejVOzDcRion7TEH6YvxX1xZoWrXZ/IYOQ== + dependencies: + "@uppy/companion-client" "^1.10.2" + "@uppy/utils" "^3.6.2" + preact "8.2.9" + +"@uppy/utils@^3.2.3", "@uppy/utils@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@uppy/utils/-/utils-3.6.2.tgz#78b02455b9c469d927d22736be5b68cda2600826" + integrity sha512-wGTZma7eywIojfuE1vXlT0fxPSpmCRMkfgFWYc+6TL2FfGqWInmePoB+yal6/M2AnjeKHz6XYMhIpZkjOxFvcw== + dependencies: + abortcontroller-polyfill "^1.4.0" + lodash.throttle "^4.1.1" + +"@uppy/webcam@^1.7.0": + version "1.8.13" + resolved "https://registry.yarnpkg.com/@uppy/webcam/-/webcam-1.8.13.tgz#33a6d8c771c6b589eafee94eec8ed854a435c39d" + integrity sha512-DN9hPe9u9FRerGXTl4TgTMOYy2aMCXCK5Nu7FgMf7T+OT5qJmQcQ6ty4rEVlDTWdm45zmIpV1OG/dUb+iLcCjQ== + dependencies: + "@uppy/utils" "^3.6.2" + preact "8.2.9" + +"@uppy/xhr-upload@^1.6.4", "@uppy/xhr-upload@^1.7.5": + version "1.7.5" + resolved "https://registry.yarnpkg.com/@uppy/xhr-upload/-/xhr-upload-1.7.5.tgz#990ba3e698503bd51534a59fd426096e37ef942b" + integrity sha512-Itnc9j9k/PemcmT5KrZ1BEw3pTc6WJg0yyyOcE+hLO8Hjv60Fm7c/I2ZknarOroIjT1WiTSyuxTBPp+9UGkxNA== + dependencies: + "@uppy/companion-client" "^1.10.2" + "@uppy/utils" "^3.6.2" + cuid "^2.1.1" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abortcontroller-polyfill@^1.4.0: + version "1.7.3" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz#1b5b487bd6436b5b764fd52a612509702c3144b5" + integrity sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.2.4: + version "8.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== + +address@1.1.2, address@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +adjust-sourcemap-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e" + integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" + +adler-32@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/adler-32/-/adler-32-1.2.0.tgz#6a3e6bf0a63900ba15652808cb15c6813d1a5f25" + integrity sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU= + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" + integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +animate.css@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/animate.css/-/animate.css-4.1.1.tgz#614ec5a81131d7e4dc362a58143f7406abd68075" + integrity sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ== + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html@0.0.7, ansi-html@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +apexcharts@3.23.0: + version "3.23.0" + resolved "https://registry.yarnpkg.com/apexcharts/-/apexcharts-3.23.0.tgz#12877aa789d658aef5eb930af6c3b8850fefd925" + integrity sha512-1mV6qouuopvYR6UFSXi/Ge4jRMe//zyAN3aK05mAs4Iuet8mA0w31Q6OU6syD77bawt9p3YKNOmNF7OO2u9w0g== + dependencies: + svg.draggable.js "^2.2.2" + svg.easing.js "^2.0.0" + svg.filter.js "^2.0.2" + svg.pathmorphing.js "^0.1.3" + svg.resize.js "^1.4.3" + svg.select.js "^3.0.1" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + +arity-n@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" + integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.1.1, array-includes@^3.1.2, array-includes@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" + is-string "^1.0.5" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.flat@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +array.prototype.flatmap@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + function-bind "^1.1.1" + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asap@~2.0.3, asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^9.6.1: + version "9.8.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" + integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + colorette "^1.2.1" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +availity-reactstrap-validation-safe@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/availity-reactstrap-validation-safe/-/availity-reactstrap-validation-safe-2.6.1.tgz#c5f0f0fcefe39a0dcb43b0b3614a826e15e764cd" + integrity sha512-+vvE4fh848vRgQO+j1v3SSO4b3aHKkBpY/bBI3lgl85YaqnAVTUe7xt07cJsjM8Xv1YBEn4NChsqUR35HWE8RQ== + dependencies: + babel-runtime "^6.26.0" + classnames "^2.2.6" + lodash "^4.17.10" + moment "^2.22.2" + prop-types "^15.6.2" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +axe-core@^4.0.2: + version "4.3.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.3.tgz#b55cd8e8ddf659fe89b064680e1c6a4dceab0325" + integrity sha512-/lqqLAmuIPi79WYfRpy2i8z+x+vxU3zX2uAm0gs1q52qTuKwolOj1P8XbufpXcsydrpKx2yGn2wzAnxCMV86QA== + +axios-mock-adapter@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.19.0.tgz#9d72e321a6c5418e1eff067aa99761a86c5188a4" + integrity sha512-D+0U4LNPr7WroiBDvWilzTMYPYTuZlbo6BI8YHZtj7wYQS8NkARlP9KBt8IWWHTQJ0q/8oZ0ClPBtKCCkx8cQg== + dependencies: + fast-deep-equal "^3.1.3" + is-buffer "^2.0.3" + +axios@0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + +babel-eslint@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" + +babel-extract-comments@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" + integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ== + dependencies: + babylon "^6.18.0" + +babel-jest@^26.6.0, babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-loader@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + dependencies: + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-macros@2.8.0, babel-plugin-macros@^2.6.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" + integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== + dependencies: + "@babel/runtime" "^7.7.2" + cosmiconfig "^6.0.0" + resolve "^1.12.0" + +babel-plugin-named-asset-import@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz#156cd55d3f1228a5765774340937afc8398067dd" + integrity sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw== + +babel-plugin-polyfill-corejs2@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.2" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" + integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.14.0" + +babel-plugin-polyfill-regenerator@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + +babel-plugin-react-intl@5.1.18: + version "5.1.18" + resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-5.1.18.tgz#7713c1fdf0055b606d67e2d1624a2e583a1fcdb7" + integrity sha512-tzzZoGDNQOiHmGFh+NPQJDpC10RbKlfw1CBVfALulqRa6UGkAv5eMs9sirxjhD3HryHPbYZ4x5FNdbzOyG2GJw== + dependencies: + "@babel/core" "^7.7.2" + "@babel/helper-plugin-utils" "^7.0.0" + "@types/babel__core" "^7.1.3" + "@types/schema-utils" "^1.0.0" + fs-extra "^8.1.0" + intl-messageformat-parser "^3.6.4" + schema-utils "^2.2.0" + +"babel-plugin-styled-components@>= 1": + version "1.13.2" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.13.2.tgz#ebe0e6deff51d7f93fceda1819e9b96aeb88278d" + integrity sha512-Vb1R3d4g+MUfPQPVDMCGjm3cDocJEUTR7Xq7QS95JWWeksN1wdFRYpD2kulDgI3Huuaf1CZd+NK4KQmqUFh5dA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-module-imports" "^7.0.0" + babel-plugin-syntax-jsx "^6.18.0" + lodash "^4.17.11" + +babel-plugin-syntax-jsx@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= + +babel-plugin-transform-object-rest-spread@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-react-remove-prop-types@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + +babel-preset-react-app@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-10.0.0.tgz#689b60edc705f8a70ce87f47ab0e560a317d7045" + integrity sha512-itL2z8v16khpuKutx5IH8UdCdSTuzrOhRFTEdIhveZ2i1iBKDrVE0ATa4sFVy+02GLucZNVBWtoarXBy0Msdpg== + dependencies: + "@babel/core" "7.12.3" + "@babel/plugin-proposal-class-properties" "7.12.1" + "@babel/plugin-proposal-decorators" "7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "7.12.1" + "@babel/plugin-proposal-numeric-separator" "7.12.1" + "@babel/plugin-proposal-optional-chaining" "7.12.1" + "@babel/plugin-transform-flow-strip-types" "7.12.1" + "@babel/plugin-transform-react-display-name" "7.12.1" + "@babel/plugin-transform-runtime" "7.12.1" + "@babel/preset-env" "7.12.1" + "@babel/preset-react" "7.12.1" + "@babel/preset-typescript" "7.12.1" + "@babel/runtime" "7.12.1" + babel-plugin-macros "2.8.0" + babel-plugin-transform-react-remove-prop-types "0.4.24" + +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= + +base64-js@^1.0.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + 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" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= + dependencies: + callsite "1.0.0" + +bfj@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" + integrity sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw== + dependencies: + bluebird "^3.5.5" + check-types "^11.1.1" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= + dependencies: + inherits "~2.0.0" + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + 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" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + 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@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +bootstrap@4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.2.tgz#a85c4eda59155f0d71186b6e6ad9b875813779ab" + integrity sha512-vlGn0bcySYl/iV+BGA544JkkZP5LB3jsmkeKLFQakCOwCM3AOk7VkldBz4jrzSe+Z0Ezn99NVXa1o45cQY4R6A== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + 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" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@4.14.2: + version "4.14.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.2.tgz#1b3cec458a1ba87588cc5e9be62f19b6d48813ce" + integrity sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw== + dependencies: + caniuse-lite "^1.0.30001125" + electron-to-chromium "^1.3.564" + escalade "^3.0.2" + node-releases "^1.1.61" + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6, browserslist@^4.16.8, browserslist@^4.6.2, browserslist@^4.6.4: + version "4.16.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" + integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== + dependencies: + caniuse-lite "^1.0.30001251" + colorette "^1.3.0" + electron-to-chromium "^1.3.811" + escalade "^3.1.1" + node-releases "^1.1.75" + +bs-stepper@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/bs-stepper/-/bs-stepper-1.7.0.tgz#bfa4cc51c4e67957caae57f5bdcba1977186bac1" + integrity sha512-+DX7UKKgw2GI6ucsSCRd19VHYrxf/8znRCLs1lQVVLxz+h7EqgIOxoHcJ0/QTaaNoR9Cwg78ydo6hXIasyd3LA== + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= + +buffer-from@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0" + integrity sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" + integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^15.0.5: + version "15.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== + dependencies: + "@npmcli/fs" "^1.0.0" + "@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@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + 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@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +camelcase@^6.0.0, camelcase@^6.1.0, camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +camelize@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" + integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001251: + version "1.0.30001252" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz#cb16e4e3dafe948fc4a9bb3307aea054b912019a" + integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +case-sensitive-paths-webpack-plugin@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" + integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +cfb@^1.1.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/cfb/-/cfb-1.2.0.tgz#6a4d0872b525ed60349e1ef51fb4b0bf73eca9a8" + integrity sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ== + dependencies: + adler-32 "~1.2.0" + crc-32 "~1.2.0" + printj "~1.1.2" + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + 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" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chart.js@2.9.4: + version "2.9.4" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684" + integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A== + dependencies: + chartjs-color "^2.1.0" + moment "^2.10.2" + +chartjs-color-string@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" + integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A== + dependencies: + color-name "^1.0.0" + +chartjs-color@^2.1.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" + integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w== + dependencies: + chartjs-color-string "^0.6.0" + color-convert "^1.9.3" + +check-types@^11.1.1: + version "11.1.2" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" + integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== + +"chokidar@>=2.0.0 <4.0.0", chokidar@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + 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" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chroma-js@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-2.1.0.tgz#c0be48a21fe797ef8965608c1c4f911ef2da49d5" + integrity sha512-uiRdh4ZZy+UTPSrAdp8hqEdVb1EllLtTHOt5TMaOjJUvi+O54/83Fc5K2ld1P+TJX+dw5B+8/sCgzI6eaur/lg== + dependencies: + cross-env "^6.0.3" + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== + +classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6: + version "2.3.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" + integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== + +clean-css@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cleave.js@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/cleave.js/-/cleave.js-1.6.0.tgz#0e4e011943bdd70c67c9dcf4ff800ce710529171" + integrity sha512-ivqesy3j5hQVG3gywPfwKPbi/7ZSftY/UNp5uphnqjr25yI2CP8FS2ODQPzuLXXnNLi29e2+PgPkkiKUXLs/Nw== + +clipboard@^2.0.0: + version "2.0.8" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba" + integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clsx@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +codepage@~1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/codepage/-/codepage-1.14.0.tgz#8cbe25481323559d7d307571b0fff91e7a1d2f99" + integrity sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k= + dependencies: + commander "~2.14.1" + exit-on-epipe "~1.0.1" + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" + integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== + +combine-errors@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/combine-errors/-/combine-errors-3.0.3.tgz#f4df6740083e5703a3181110c2b10551f003da86" + integrity sha1-9N9nQAg+VwOjGBEQwrEFUfAD2oY= + dependencies: + custom-error-instance "2.1.1" + lodash.uniqby "4.5.0" + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.15.1, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@~2.14.1: + version "2.14.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" + integrity sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw== + +commander@~2.17.1: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-emitter@^1.2.1, component-emitter@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +compose-function@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" + integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= + dependencies: + arity-n "^1.0.4" + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + 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" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +confusing-browser-globals@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" + integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= + +convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-to-clipboard@^3: + version "3.3.1" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" + integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== + dependencies: + toggle-selection "^1.0.6" + +core-js-compat@^3.14.0, core-js-compat@^3.16.0, core-js-compat@^3.6.2: + version "3.16.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.16.4.tgz#cf28abe0e45a43645b04b2c1a073efa03d0b3b26" + integrity sha512-IzCSomxRdahCYb6G3HiN6pl3JCiM0NMunRcNa1pIeC7g17Vd6Ue3AT9anQiENPIm/svThUVer1pIbLMDERIsFw== + dependencies: + browserslist "^4.16.8" + semver "7.0.0" + +core-js-pure@^3.16.0: + version "3.16.4" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.16.4.tgz#8b23122628d88c560f209812b9b2d9ebbce5e29c" + integrity sha512-bY1K3/1Jy9D8Jd12eoeVahNXHLfHFb4TXWI8SQ4y8bImR9qDPmGITBAfmcffTkgUvbJn87r8dILOTWW5kZzkgA== + +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^3.6.4, core-js@^3.6.5: + version "3.16.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.4.tgz#0fb1029a554fc2688c0963d7c900e188188a78e0" + integrity sha512-Tq4GVE6XCjE+hcyW6hPy0ofN3hwtLudz5ZRdrlCnsnD/xkm/PWQRudzYHiKgZKUcefV6Q57fhDHjZHJP5dpfSg== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@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@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-env@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-6.0.3.tgz#4256b71e49b3a40637a0ce70768a6ef5c72ae941" + integrity sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag== + dependencies: + cross-spawn "^7.0.0" + +cross-fetch@^3.0.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39" + integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== + dependencies: + node-fetch "2.6.1" + +cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cross-spawn@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + 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" + randomfill "^1.0.3" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + +css-blank-pseudo@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" + integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== + dependencies: + postcss "^7.0.5" + +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU= + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-has-pseudo@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" + integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^5.0.0-rc.4" + +css-loader@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" + integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== + dependencies: + camelcase "^6.0.0" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^2.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.3" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.1" + semver "^7.3.2" + +css-prefers-color-scheme@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" + integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== + dependencies: + postcss "^7.0.5" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== + dependencies: + boolbase "^1.0.0" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" + +css-to-react-native@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" + integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-unit-converter@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21" + integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA== + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" + integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== + +css@^2.0.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssdb@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" + integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" + integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.3" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.11" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" + integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.8" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^3.0.2: + version "3.0.8" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" + integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== + +cuid@^2.1.1: + version "2.1.8" + resolved "https://registry.yarnpkg.com/cuid/-/cuid-2.1.8.tgz#cbb88f954171e0d5747606c0139fb65c5101eac0" + integrity sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg== + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +custom-error-instance@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/custom-error-instance/-/custom-error-instance-2.1.1.tgz#3cf6391487a6629a6247eb0ca0ce00081b7e361a" + integrity sha1-PPY5FIemYppiR+sMoM4ACBt+Nho= + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +d3-array@2, d3-array@^2.3.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +"d3-color@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e" + integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ== + +"d3-format@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767" + integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA== + +"d3-interpolate@1.2.0 - 2", d3-interpolate@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163" + integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ== + dependencies: + d3-color "1 - 2" + +"d3-path@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-2.0.0.tgz#55d86ac131a0548adae241eebfb56b4582dd09d8" + integrity sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA== + +d3-scale@^3.2.3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.3.0.tgz#28c600b29f47e5b9cd2df9749c206727966203f3" + integrity sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ== + dependencies: + 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-shape@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-2.1.0.tgz#3b6a82ccafbc45de55b57fcf956c584ded3b666f" + integrity sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA== + dependencies: + d3-path "1 - 2" + +"d3-time-format@2 - 3": + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-3.0.0.tgz#df8056c83659e01f20ac5da5fdeae7c08d5f1bb6" + integrity sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag== + dependencies: + d3-time "1 - 2" + +"d3-time@1 - 2", d3-time@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.1.1.tgz#e9d8a8a88691f4548e68ca085e5ff956724a6682" + integrity sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ== + dependencies: + d3-array "2" + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +damerau-levenshtein@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d" + integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +debug@^3.1.1, debug@^3.2.5, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decimal.js-light@^2.4.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" + integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== + +decimal.js@^10.2.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-equal@^1.0.1, deep-equal@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + 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@^0.1.3, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^4.0.0, deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@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" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-it@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/detect-it/-/detect-it-4.0.1.tgz#3f8de6b8330f5086270571251bedf10aec049e18" + integrity sha512-dg5YBTJYvogK1+dA2mBUDKzOWfYZtHVba89SyZUhc4+e3i2tzgjANFg5lDRCd3UOtRcw00vUTMK8LELcMdicug== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +detect-passive-events@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-passive-events/-/detect-passive-events-2.0.3.tgz#1f75ebf80660a66c615d8be23c3241cdda6977e0" + integrity sha512-QN/1X65Axis6a9D8qg8Py9cwY/fkWAmAH/edTbmLMcv4m5dboLJ7LcAi8CfaCON2tjk904KwKX/HTdsHC6yeRg== + dependencies: + detect-it "^4.0.1" + +detect-port-alt@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" + integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== + dependencies: + "@babel/runtime" "^7.1.2" + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom7@^3.0.0-alpha.7: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dom7/-/dom7-3.0.0.tgz#b861ce5d67a6becd7aaa3ad02942ff14b1240331" + integrity sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g== + dependencies: + ssr-window "^3.0.0-alpha.1" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" + integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== + dependencies: + domelementtype "^2.2.0" + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.5.2, domutils@^2.6.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +draft-js@0.11.7: + version "0.11.7" + resolved "https://registry.yarnpkg.com/draft-js/-/draft-js-0.11.7.tgz#be293aaa255c46d8a6647f3860aa4c178484a206" + integrity sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg== + dependencies: + fbjs "^2.0.0" + immutable "~3.7.4" + object-assign "^4.1.1" + +draftjs-to-html@0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/draftjs-to-html/-/draftjs-to-html-0.9.1.tgz#1c870fbb588d2390204cb4d0ee7e04ad0c709969" + integrity sha512-fFstE6+IayaVFBEvaFt/wN8vdj8FsTRzij7dy7LI9QIwf5LgfHFi9zSpvCg+feJ2tbYVqHxUkjcibwpsTpgFVQ== + +draftjs-utils@^0.10.2: + version "0.10.2" + resolved "https://registry.yarnpkg.com/draftjs-utils/-/draftjs-utils-0.10.2.tgz#a7f16d2c1c174ac38ba3bbf700c256f176b2699c" + integrity sha512-EstHqr3R3JVcilJrBaO/A+01GvwwKmC7e4TCjC7S94ZeMh4IVmf60OuQXtHHpwItK8C2JCi3iljgN5KHkJboUg== + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.811: + version "1.3.826" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.826.tgz#dbe356b1546b39d83bcd47e675a9c5f61dadaed2" + integrity sha512-bpLc4QU4B8PYmdO4MSu2ZBTMD8lAaEXRS43C09lB31BvYwuk9UxgBRXbY5OJBw7VuMGcg2MZG5FyTaP9u4PQnw== + +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.0.0: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-client@~3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.3.3.tgz#aeb45695ced81b787a8a10c92b0bc226b1cb3c53" + integrity sha512-PXIgpzb1brtBzh8Q6vCjzCMeu4nfEPmaDm+L3Qb2sVHwLkxC1qRiBMSjOB0NJNjZ0hbPNUKQa+s8J2XxLOIEeQ== + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~6.1.0" + xmlhttprequest-ssl "~1.6.3" + yeast "0.1.2" + +engine.io-parser@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + +enhanced-resolve@^4.1.0, enhanced-resolve@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== + dependencies: + stackframe "^1.1.1" + +es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" + integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.3" + is-string "^1.0.6" + 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-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escalade@^3.0.2, escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-react-app@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz#ccff9fc8e36b322902844cbd79197982be355a0e" + integrity sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A== + dependencies: + confusing-browser-globals "^1.0.10" + +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-module-utils@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz#94e5540dd15fe1522e8ffa3ec8db3b7fa7e7a534" + integrity sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q== + dependencies: + debug "^3.2.7" + pkg-dir "^2.0.0" + +eslint-plugin-flowtype@^5.2.0: + version "5.9.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.9.2.tgz#aac08cd26ee4da79cba0e40c3877bb4d96a74ebc" + integrity sha512-qxE/eo9DCN7800MIB/O1ToOiFuOPOlaMJWQY2BEm69oY7RCm3s2X1z4CdgtFvDDWf9RSSugZm1KRhdBMBueKbg== + dependencies: + lodash "^4.17.15" + string-natural-compare "^3.0.1" + +eslint-plugin-import@^2.22.0, eslint-plugin-import@^2.22.1: + version "2.24.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da" + integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q== + dependencies: + 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" + +eslint-plugin-jest@^24.1.0: + version "24.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.4.0.tgz#fa4b614dbd46a98b652d830377971f097bda9262" + integrity sha512-8qnt/hgtZ94E9dA6viqfViKBfkJwFHXgJmTWlMGDgunw1XJEGqm3eiPjDsTanM3/u/3Az82nyQM9GX7PM/QGmg== + dependencies: + "@typescript-eslint/experimental-utils" "^4.0.1" + +eslint-plugin-jsx-a11y@^6.3.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd" + integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== + dependencies: + "@babel/runtime" "^7.11.2" + aria-query "^4.2.2" + array-includes "^3.1.1" + ast-types-flow "^0.0.7" + axe-core "^4.0.2" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.6" + emoji-regex "^9.0.0" + has "^1.0.3" + jsx-ast-utils "^3.1.0" + language-tags "^1.0.5" + +eslint-plugin-react-hooks@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" + integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== + +eslint-plugin-react@^7.20.6, eslint-plugin-react@^7.21.5: + version "7.25.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz#9286b7cd9bf917d40309760f403e53016eda8331" + integrity sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug== + dependencies: + array-includes "^3.1.3" + array.prototype.flatmap "^1.2.4" + doctrine "^2.1.0" + estraverse "^5.2.0" + has "^1.0.3" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.0.4" + object.entries "^1.1.4" + object.fromentries "^2.0.4" + object.values "^1.1.4" + prop-types "^15.7.2" + resolve "^2.0.0-next.3" + string.prototype.matchall "^4.0.5" + +eslint-plugin-testing-library@^3.9.2: + version "3.10.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-3.10.2.tgz#609ec2b0369da7cf2e6d9edff5da153cc31d87bd" + integrity sha512-WAmOCt7EbF1XM8XfbCKAEzAPnShkNSwcIsAD2jHdsMUT9mZJPjLCG7pMzbcC8kK366NOuGip8HKLDC+Xk4yIdA== + dependencies: + "@typescript-eslint/experimental-utils" "^3.10.1" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-webpack-plugin@^2.1.0: + version "2.5.4" + resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.4.tgz#473b84932f1a8e2c2b8e66a402d0497bf440b986" + integrity sha512-7rYh0m76KyKSDE+B+2PUQrlNS4HJ51t3WKpkJg6vo2jFMbEPTG99cBV0Dm7LXSHucN4WGCG65wQcRiTFrj7iWw== + dependencies: + "@types/eslint" "^7.2.6" + arrify "^2.0.1" + jest-worker "^26.6.2" + micromatch "^4.0.2" + normalize-path "^3.0.0" + schema-utils "^3.0.0" + +eslint@^7.11.0, eslint@^7.8.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@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" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^4.0.0, eventemitter3@^4.0.1: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +eventsource@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" + integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + 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" + +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exifr@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/exifr/-/exifr-6.3.0.tgz#ba6a49c0a30372a969d109684e1cd8450a05ba43" + integrity sha512-NCSOP15py+4QyvD90etFN0QOVj12ygVE8kfEDG8GDc+SXf9YAOxua2x5kGp6WvxbGjufA5C3r/1ZKHOpHbEWFg== + +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + 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" + +expect@^26.6.0, expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + +express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + 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" + +ext@^1.1.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.5.0.tgz#e93b97ae0cb23f8370380f6107d2d2b7887687ad" + integrity sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q== + dependencies: + type "^2.5.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + 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" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.1.1: + version "3.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastq@^1.6.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" + integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.1: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +fbjs-css-vars@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" + integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== + +fbjs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-2.0.0.tgz#01fb812138d7e31831ed3e374afe27b9169ef442" + integrity sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ== + dependencies: + core-js "^3.6.4" + cross-fetch "^3.0.4" + fbjs-css-vars "^1.0.0" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.18" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.1.1.tgz#a6f29dfb3f5933a1c350b2dbaa20ac5be0539baa" + integrity sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-saver@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.2.tgz#06d6e728a9ea2df2cce2f8d9e84dfcdc338ec17a" + integrity sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filesize@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00" + integrity sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + 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" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatpickr@4.6.3: + version "4.6.3" + resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.3.tgz#15a8b76b6e34e3a072861250503a5995b9d3bc60" + integrity sha512-007VucCkqNOMMb9ggRLNuJowwaJcyOh4sKAFcdGfahfGc7JQbf94zSzjdBq/wVyHWUEs5o3+idhFZ0wbZMRmVQ== + +flatpickr@^4.5.7: + version "4.6.9" + resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.9.tgz#9a13383e8a6814bda5d232eae3fcdccb97dc1499" + integrity sha512-F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw== + +flatted@^3.1.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== + +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.0.0, follow-redirects@^1.10.0: + version "1.14.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.2.tgz#cecb825047c00f5e66b142f90fed4f515dec789b" + integrity sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +fork-ts-checker-webpack-plugin@4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5" + integrity sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw== + dependencies: + "@babel/code-frame" "^7.5.5" + chalk "^2.4.1" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + worker-rpc "^0.1.0" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +frac@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/frac/-/frac-1.1.2.tgz#3d74f7f6478c88a1b5020306d747dc6313c74d0b" + integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@^2.1.2, fsevents@^2.1.3, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +fstream@^1.0.0, fstream@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + 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" + +gaze@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-form-data@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-form-data/-/get-form-data-2.0.0.tgz#f211018ea617cc54678522235f0e2a9025d89411" + integrity sha512-YUpw0aTWeGliifqMYrTohe/YdqVmKLmaNwuscd2WlRNGfba57JHGuuvvv2c6LiZdFys285POVWANTh6SqcwFag== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + 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" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.6.0, globals@^13.9.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" + integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== + dependencies: + type-fest "^0.20.2" + +globby@11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + 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" + +globby@^11.0.3: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + 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" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globule@^1.0.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.3.tgz#811919eeac1ab7344e905f2e3be80a13447973c2" + integrity sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg== + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gud@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" + integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== + +gzip-size@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +harmony-reflect@^1.4.6: + version "1.6.2" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" + integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +history@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/history/-/history-5.0.0.tgz#0cabbb6c4bbf835addb874f8259f6d25101efd08" + integrity sha512-3NyRMKIiFSJmIPdq7FxkNMJkQ7ZEtVblOQ38VtKaA0zZMW1Eo6Q6W8oDKEflr1kNNTItSnk4JMCO1deeSgbLLg== + dependencies: + "@babel/runtime" "^7.7.6" + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@^1.2.1, html-entities@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== + dependencies: + camel-case "^4.1.1" + clean-css "^4.2.3" + commander "^4.1.1" + he "^1.2.0" + param-case "^3.0.3" + relateurl "^0.2.7" + terser "^4.6.3" + +html-to-draftjs@1.5.0, html-to-draftjs@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/html-to-draftjs/-/html-to-draftjs-1.5.0.tgz#0df0eabf429deaedb63f5c859889e2c983606e86" + integrity sha512-kggLXBNciKDwKf+KYsuE+V5gw4dZ7nHyGMX9m0wy7urzWjKGWyNFetmArRLvRV0VrxKN70WylFsJvMTJx02OBQ== + +html-webpack-plugin@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz#625097650886b97ea5dae331c320e3238f6c121c" + integrity sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + "@types/tapable" "^1.0.5" + "@types/webpack" "^4.41.8" + html-minifier-terser "^5.0.1" + loader-utils "^1.2.3" + lodash "^4.17.15" + pretty-error "^2.1.1" + tapable "^1.1.3" + util.promisify "1.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +identity-obj-proxy@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= + dependencies: + harmony-reflect "^1.4.6" + +ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +immer@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656" + integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA== + +immutable@~3.7.4: + version "3.7.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" + integrity sha1-E7TTyxK++hVIKib+Gy665kAHHks= + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +in-publish@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c" + integrity sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ== + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.5: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + +intl-format-cache@^4.2.19, intl-format-cache@^4.2.21: + version "4.3.1" + resolved "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-4.3.1.tgz#484d31a9872161e6c02139349b259a6229ade377" + integrity sha512-OEUYNA7D06agqPOYhbTkl0T8HA3QKSuwWh1HiClEnpd9vw7N+3XsQt5iZ0GUEchp5CW1fQk/tary+NsbF3yQ1Q== + +intl-locales-supported@^1.8.4: + version "1.8.12" + resolved "https://registry.yarnpkg.com/intl-locales-supported/-/intl-locales-supported-1.8.12.tgz#bbd83475a1cda61dc026309ca61f64c450af8ccb" + integrity sha512-FJPl7p1LYO/C+LpwlDcvVpq7AeFTdFgwnq1JjdNYKjb51xkIxssXRR8LaA0fJFogjwRRztqw1ahgSJMSZsSFdw== + +intl-messageformat-parser@^3.6.2, intl-messageformat-parser@^3.6.4: + version "3.6.4" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-3.6.4.tgz#5199d106d816c3dda26ee0694362a9cf823978fb" + integrity sha512-RgPGwue0mJtoX2Ax8EmMzJzttxjnva7gx0Q7mKJ4oALrTZvtmCeAw5Msz2PcjW4dtCh/h7vN/8GJCxZO1uv+OA== + dependencies: + "@formatjs/intl-unified-numberformat" "^3.2.0" + +intl-messageformat@7.8.4, intl-messageformat@^7.8.2: + version "7.8.4" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-7.8.4.tgz#c29146a06b9cd26662978a4d95fff2b133e3642f" + integrity sha512-yS0cLESCKCYjseCOGXuV4pxJm/buTfyCJ1nzQjryHmSehlptbZbn9fnlk1I9peLopZGGbjj46yHHiTAEZ1qOTA== + dependencies: + intl-format-cache "^4.2.21" + intl-messageformat-parser "^3.6.4" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.0.0, is-core-module@^2.2.0, is-core-module@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" + integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-object@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-regex@^1.0.4, is-regex@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-root@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-shallow-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-shallow-equal/-/is-shallow-equal-1.0.1.tgz#c410b51eb1c12ee50cd02891d32d1691a132d73c" + integrity sha512-lq5RvK+85Hs5J3p4oA4256M1FEffzmI533ikeDHvJd42nouRRx5wBzt36JuviiGe5dIPyHON/d0/Up+PBo6XkQ== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-circus@26.6.0: + version "26.6.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-26.6.0.tgz#7d9647b2e7f921181869faae1f90a2629fd70705" + integrity sha512-L2/Y9szN6FJPWFK8kzWXwfp+FOR7xq0cUL4lIsdbIdwz3Vh6P1nrpcqOleSzr28zOtSHQNV9Z7Tl+KkuK7t5Ng== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.0" + "@jest/test-result" "^26.6.0" + "@jest/types" "^26.6.0" + "@types/babel__traverse" "^7.0.4" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^26.6.0" + is-generator-fn "^2.0.0" + jest-each "^26.6.0" + jest-matcher-utils "^26.6.0" + jest-message-util "^26.6.0" + jest-runner "^26.6.0" + jest-runtime "^26.6.0" + jest-snapshot "^26.6.0" + jest-util "^26.6.0" + pretty-format "^26.6.0" + stack-utils "^2.0.2" + throat "^5.0.0" + +jest-cli@^26.6.0: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.0, jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.0, jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-message-util@^26.6.0, jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@26.6.0: + version "26.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.0.tgz#070fe7159af87b03e50f52ea5e17ee95bbee40e1" + integrity sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ== + dependencies: + "@jest/types" "^26.6.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.0" + read-pkg-up "^7.0.1" + resolve "^1.17.0" + slash "^3.0.0" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-runner@^26.6.0, jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.6.0, jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.0, jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-util@^26.6.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-watch-typeahead@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.6.1.tgz#45221b86bb6710b7e97baaa1640ae24a07785e63" + integrity sha512-ITVnHhj3Jd/QkqQcTqZfRgjfyRhDFM/auzgVo2RKvSwi18YMvh0WvXDJFoFED6c7jd/5jxtu4kSOb9PTu2cPVg== + dependencies: + ansi-escapes "^4.3.1" + chalk "^4.0.0" + jest-regex-util "^26.0.0" + jest-watcher "^26.3.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + +jest-watcher@^26.3.0, jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + +jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +jest-worker@^26.5.0, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@26.6.0: + version "26.6.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.0.tgz#546b25a1d8c888569dbbe93cae131748086a4a25" + integrity sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA== + dependencies: + "@jest/core" "^26.6.0" + import-local "^3.0.2" + jest-cli "^26.6.0" + +jquery@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5" + integrity sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg== + +js-base64@^2.1.8, js-base64@^2.6.1: + version "2.6.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^16.4.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonwebtoken@8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" + integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== + dependencies: + array-includes "^3.1.2" + object.assign "^4.1.2" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +klona@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + +language-subtag-registry@~0.3.2: + version "0.3.21" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" + integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== + dependencies: + lodash "^4.17.5" + webpack-sources "^1.1.0" + +leaflet@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.6.0.tgz#aecbb044b949ec29469eeb31c77a88e2f448f308" + integrity sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +linkify-it@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== + dependencies: + uc.micro "^1.0.1" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +load-script@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4" + integrity sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ= + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@2.0.0, loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^1.0.1, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash-es@^4.17.11: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash._baseiteratee@~4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz#34a9b5543572727c3db2e78edae3c0e9e66bd102" + integrity sha1-NKm1VDVycnw9sueO2uPA6eZr0QI= + dependencies: + lodash._stringtopath "~4.8.0" + +lodash._basetostring@~4.12.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz#9327c9dc5158866b7fa4b9d42f4638e5766dd9df" + integrity sha1-kyfJ3FFYhmt/pLnUL0Y45XZt2d8= + +lodash._baseuniq@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" + integrity sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg= + dependencies: + lodash._createset "~4.0.0" + lodash._root "~3.0.0" + +lodash._createset@~4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" + integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash._root@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= + +lodash._stringtopath@~4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz#941bcf0e64266e5fc1d66fed0a6959544c576824" + integrity sha1-lBvPDmQmbl/B1m/tCmlZVExXaCQ= + dependencies: + lodash._basetostring "~4.12.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + +lodash.orderby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.orderby/-/lodash.orderby-4.6.0.tgz#e697f04ce5d78522f54d9338b32b81a3393e4eb3" + integrity sha1-5pfwTOXXhSL1TZM4syuBozk+TrM= + +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash.uniqby@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz#a3a17bbf62eeb6240f491846e97c1c4e2a5e1e21" + integrity sha1-o6F7v2LutiQPSRhG6XwcTipeHiE= + dependencies: + lodash._baseiteratee "~4.7.0" + lodash._baseuniq "~4.6.0" + +"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.7.0, lodash@~4.17.10, lodash@~4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loglevel@^1.6.8: + version "1.7.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" + integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.25.0, magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0, make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +math-log2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/math-log2/-/math-log2-1.0.1.tgz#fb8941be5f5ebe8979e718e6273b178e58694565" + integrity sha1-+4lBvl9evol55xjmJzsXjlhpRWU= + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memoize-one@^5.0.0, memoize-one@^5.0.4, memoize-one@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" + integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +microevent.ts@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" + integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + 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" + +micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.49.0, "mime-db@>= 1.43.0 < 2": + version "1.49.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" + integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== + +mime-match@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mime-match/-/mime-match-1.0.2.tgz#3f87c31e9af1a5fd485fb9db134428b23bbb7ba8" + integrity sha1-P4fDHprxpf1IX7nbE0Qosju7e6g= + dependencies: + wildcard "^1.1.0" + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.32" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" + integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== + dependencies: + mime-db "1.49.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.4: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mini-create-react-context@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== + dependencies: + "@babel/runtime" "^7.12.1" + tiny-warning "^1.0.3" + +mini-css-extract-plugin@0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz#15b0910a7f32e62ffde4a7430cfefbd700724ea6" + integrity sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + dependencies: + yallist "^4.0.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +moment@2.29.1, moment@^2.10.2, moment@^2.22.2: + version "2.29.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" + integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +namespace-emitter@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz#978d51361c61313b4e6b8cf6f3853d08dfa2b17c" + integrity sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g== + +nan@^2.12.1, nan@^2.13.2: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + +nanoclone@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4" + integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA== + +nanoid@^2.1.0: + version "2.1.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" + integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== + +nanoid@^3.1.23: + version "3.1.25" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" + integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + 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-url@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae" + integrity sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA== + dependencies: + querystring "^0.2.0" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-fetch@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-gyp@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" + integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "^2.87.0" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + 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 "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + +node-releases@^1.1.61, node-releases@^1.1.75: + version "1.1.75" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" + integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== + +node-sass@^4.13.1, node-sass@^4.9.0: + version "4.14.1" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" + integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g== + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^3.0.0" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + in-publish "^2.0.0" + lodash "^4.17.15" + meow "^3.7.0" + mkdirp "^0.5.1" + nan "^2.13.2" + node-gyp "^3.8.0" + npmlog "^4.0.0" + request "^2.88.0" + sass-graph "2.2.5" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +nouislider-react@3.3.8: + version "3.3.8" + resolved "https://registry.yarnpkg.com/nouislider-react/-/nouislider-react-3.3.8.tgz#224540f39848e1a52070127f16460ef8f03152a7" + integrity sha512-Le0kUs29iaUEdaO3cdZcc7EXteFNpXVuasxz4F8Z520PUI17sJJAoggiScPu+Nz6vMx0o9SgK0v8bMXcePF20A== + dependencies: + nouislider "^14.5.0" + +nouislider@14.6.2: + version "14.6.2" + resolved "https://registry.yarnpkg.com/nouislider/-/nouislider-14.6.2.tgz#ecf7b7d1554672e705aab6fcd27e195ed3f67c98" + integrity sha512-/lJeqJBghNAZS3P2VYrHzm1RM6YJPvvC/1wNpGaHBRX+05wpzUDafrW/ohAYp4kjKhRH8+BJ0vkorCHiMmgTMQ== + +nouislider@^14.5.0: + version "14.7.0" + resolved "https://registry.yarnpkg.com/nouislider/-/nouislider-14.7.0.tgz#a71db0587c92567b6da1df57d251d3696d942362" + integrity sha512-4RtQ1+LHJKesDCNJrXkQcwXAWCrC2aggdLYMstS/G5fEWL+fXZbUA9pwVNHFghMGuFGRATlDLNInRaPeRKzpFQ== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.entries@^1.1.0, object.entries@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" + integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + +object.fromentries@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" + integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has "^1.0.3" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^7.0.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optimize-css-assets-webpack-plugin@5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" + integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== + dependencies: + cssnano "^4.1.10" + last-call-webpack-plugin "^3.0.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-tmpdir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +perfect-scrollbar@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/perfect-scrollbar/-/perfect-scrollbar-1.5.2.tgz#41167ac6bc95e3a5e87a7402fa36fdacca9bc298" + integrity sha512-McHAinFkyzKbBZrFtb4MT2mxkehp15KvOX/UrjB8C5EZZXHTHgyETo5IGFYtHRTI2Pb2bsV0OE0YnkjT9Cw3aw== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + +popper.js@^1.14.4: + version "1.16.1" + resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" + integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== + +portfinder@^1.0.26: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-attribute-case-insensitive@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" + integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^6.0.2" + +postcss-browser-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz#1248d2d935fb72053c8e1f61a84a57292d9f65e9" + integrity sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig== + dependencies: + postcss "^7" + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-color-functional-notation@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" + integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-gray@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" + integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-color-hex-alpha@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" + integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== + dependencies: + postcss "^7.0.14" + postcss-values-parser "^2.0.1" + +postcss-color-mod-function@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" + integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-rebeccapurple@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" + integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-custom-media@^7.0.8: + version "7.0.8" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" + integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== + dependencies: + postcss "^7.0.14" + +postcss-custom-properties@^8.0.11: + version "8.0.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" + integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== + dependencies: + postcss "^7.0.17" + postcss-values-parser "^2.0.1" + +postcss-custom-selectors@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" + integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-dir-pseudo-class@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" + integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-double-position-gradients@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" + integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== + dependencies: + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-env-function@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" + integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-flexbugs-fixes@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" + integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== + dependencies: + postcss "^7.0.26" + +postcss-focus-visible@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" + integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== + dependencies: + postcss "^7.0.2" + +postcss-focus-within@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" + integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== + dependencies: + postcss "^7.0.2" + +postcss-font-variant@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" + integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== + dependencies: + postcss "^7.0.2" + +postcss-gap-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" + integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== + dependencies: + postcss "^7.0.2" + +postcss-image-set-function@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" + integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-initial@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.4.tgz#9d32069a10531fe2ecafa0b6ac750ee0bc7efc53" + integrity sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg== + dependencies: + postcss "^7.0.2" + +postcss-lab-function@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" + integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-load-config@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@3.0.0, postcss-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-logical@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" + integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== + dependencies: + postcss "^7.0.2" + +postcss-media-minmax@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" + integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== + dependencies: + postcss "^7.0.2" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-nesting@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" + integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== + dependencies: + postcss "^7.0.2" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-8.0.1.tgz#90e80a7763d7fdf2da6f2f0f82be832ce4f66776" + integrity sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ== + dependencies: + "@csstools/normalize.css" "^10.1.0" + browserslist "^4.6.2" + postcss "^7.0.17" + postcss-browser-comments "^3.0.0" + sanitize.css "^10.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-overflow-shorthand@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" + integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== + dependencies: + postcss "^7.0.2" + +postcss-page-break@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" + integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== + dependencies: + postcss "^7.0.2" + +postcss-place@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" + integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-preset-env@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" + integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== + dependencies: + 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" + +postcss-pseudo-class-any-link@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" + integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-replace-overflow-wrap@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" + integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== + dependencies: + postcss "^7.0.2" + +postcss-rtl@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/postcss-rtl/-/postcss-rtl-1.5.0.tgz#75afcd0197d6a02afd93a80c7e69b810a9753209" + integrity sha512-7uQeaMBhAlnu7xgytvTocojFKp08W4FND/xE/ajj/J6ABOGhdDF1mLGzaRrC5/u/Sr71BEUi13xgvs2j8U16AA== + dependencies: + rtlcss "^2.4.0" + +postcss-safe-parser@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-5.0.2.tgz#459dd27df6bc2ba64608824ba39e45dacf5e852d" + integrity sha512-jDUfCPJbKOABhwpUKcqCVbbXiloe/QXMcbJ6Iipf3sDIihEzTqRCeMBfRaOHxhBuTYqtASrI1KJWxzztZU4qUQ== + dependencies: + postcss "^8.1.0" + +postcss-selector-matches@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" + integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-not@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz#263016eef1cf219e0ade9a913780fc1f48204cbf" + integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" + integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" + integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss@7.0.36, postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.36" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" + integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@^6.0.23: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^8.1.0: + version "8.3.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" + integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== + dependencies: + colorette "^1.2.2" + nanoid "^3.1.23" + source-map-js "^0.6.2" + +preact@8.2.9: + version "8.2.9" + resolved "https://registry.yarnpkg.com/preact/-/preact-8.2.9.tgz#813ba9dd45e5d97c5ea0d6c86d375b3be711cc40" + integrity sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA== + +preact@^10.0.5: + version "10.5.14" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.5.14.tgz#0b14a2eefba3c10a57116b90d1a65f5f00cd2701" + integrity sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +pretty-bytes@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-error@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +pretty-format@^26.6.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +printj@~1.1.0, printj@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== + +prismjs@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.19.0.tgz#713afbd45c3baca4b321569f2df39e17e729d4dc" + integrity sha512-IVFtbW9mCWm9eOIaEkNyo2Vl4NnEifis2GQ7/MLRG5TQe6t+4Sj9J5QWI9i3v+SS43uZBlCAOn+zYTVYQcPXJw== + optionalDependencies: + clipboard "^2.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +promise@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" + integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== + dependencies: + asap "~2.0.6" + +prompts@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prompts@^2.0.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" + integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@15.7.2, prop-types@^15.5.10, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +proper-lockfile@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-2.0.1.tgz#159fb06193d32003f4b3691dd2ec1a634aa80d1d" + integrity sha1-FZ+wYZPTIAP0s2kd0uwaY0qoDR0= + dependencies: + graceful-fs "^4.1.2" + retry "^0.10.0" + +property-expr@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.4.tgz#37b925478e58965031bb612ec5b3260f8241e910" + integrity sha512-sFPkHQjVKheDNnPvotjQmm3KD3uk1fWKUN7CrpdbwmUx3CrG3QiM8QpTSimvig5vTXmTvjz7+TDvXOI9+4rkcg== + +proxy-addr@~2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28, psl@^1.1.33: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs-stringify@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/qs-stringify/-/qs-stringify-1.2.1.tgz#9b39ef6b816bd83309628fc9dad435fc0eccc28b" + integrity sha512-2N5xGLGZUxpgAYq1fD1LmBSCbxQVsXYt5JU0nU3FuPWO8PlCnKNFQwXkZgyB6mrTdg7IbexX4wxIR403dJw9pw== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +raf-schd@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.3.tgz#5d6c34ef46f8b2a0e880a8fcdb743efc5bfdbc1a" + integrity sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ== + +raf@^3.4.0, raf@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-apexcharts@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/react-apexcharts/-/react-apexcharts-1.3.6.tgz#6c06e5dacfddd0e0373ec8f614503e655c049122" + integrity sha512-ahpMOnuw1ZdD3/fkk9MYRLpqYQ66cZz72+he1R00HaT1VcSjfYc9editQDhE2jGRDuxubmaxVcO3z4FtAk5N0w== + dependencies: + prop-types "^15.5.7" + +react-app-polyfill@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-2.0.0.tgz#a0bea50f078b8a082970a9d853dc34b6dcc6a3cf" + integrity sha512-0sF4ny9v/B7s6aoehwze9vJNWcmCemAUYBVasscVr92+UYiEqDXOxfKjXN685mDaMRNF3WdhHQs76oTODMocFA== + dependencies: + core-js "^3.6.5" + object-assign "^4.1.1" + promise "^8.1.0" + raf "^3.4.1" + regenerator-runtime "^0.13.7" + whatwg-fetch "^3.4.1" + +react-app-rewire-aliases@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/react-app-rewire-aliases/-/react-app-rewire-aliases-0.2.0.tgz#ef5ffc0099eec05279949fab8d4983c1556a1c1e" + integrity sha1-71/8AJnuwFJ5lJ+rjUmDwVVqHB4= + +react-app-rewire-postcss@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/react-app-rewire-postcss/-/react-app-rewire-postcss-3.0.2.tgz#8a1f98a0c2dd300f406f948f2628d1fa97c6f38d" + integrity sha512-sGjIIzQ4sQE8r2ZeSCokf+hKLxOr5i8J0iAlg0kxwXRdy6bDrPa345EMdYPPzUZQxnZgZIsFL+QyMWtJHulEDg== + dependencies: + postcss-loader "^3.0.0" + +react-app-rewire-sass-rule@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/react-app-rewire-sass-rule/-/react-app-rewire-sass-rule-2.2.1.tgz#a64dbedb7409102827d5b863b695d49d6657f1e2" + integrity sha512-vvm8MO2UD31WAaon3EpqI0CWTBCJNzHKTYRWLf4jjXpZyiPql2XUI+Gfd8mFnIcA4Str98Xrtd5VxCzF4X0j0Q== + dependencies: + node-sass "^4.9.0" + sass-loader "^7.0.3" + +react-app-rewired@^2.1.6: + version "2.1.8" + resolved "https://registry.yarnpkg.com/react-app-rewired/-/react-app-rewired-2.1.8.tgz#e192f93b98daf96889418d33d3e86cf863812b56" + integrity sha512-wjXPdKPLscA7mn0I1de1NHrbfWdXz4S1ladaGgHVKdn1hTgKK5N6EdGIJM0KrS6bKnJBj7WuqJroDTsPKKr66Q== + dependencies: + semver "^5.6.0" + +react-chartjs-2@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/react-chartjs-2/-/react-chartjs-2-2.9.0.tgz#d054dbdd763fbe9a76296a4ae0752ea549b76d9e" + integrity sha512-IYwqUUnQRAJ9SNA978vxulHJTcUFTJk2LDVfbAyk0TnJFZZG7+6U/2flsE4MCw6WCbBjTTypy8T82Ch7XrPtRw== + dependencies: + lodash "^4.17.4" + prop-types "^15.5.8" + +react-contexify@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/react-contexify/-/react-contexify-5.0.0.tgz#11b477550a0ee5a9a144399bc17c7c56bbc60057" + integrity sha512-2FIp7lxJ6dtfGr8EZ4uVV5p5TQjd0n2h/JU7PrejNIMiCeZWvSVPFh4lj1ZvjXosglBvP7q5JQQ8yUCdSaMSaw== + dependencies: + clsx "^1.1.1" + +react-copy-to-clipboard@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz#d82a437e081e68dfca3761fbd57dbf2abdda1316" + integrity sha512-/2t5mLMMPuN5GmdXo6TebFa8IoFxZ+KTDDqYhcDm0PhkgEzSxVvIX26G20s1EB02A4h2UZgwtfymZ3lGJm0OLg== + dependencies: + copy-to-clipboard "^3" + prop-types "^15.5.8" + +react-country-flag@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/react-country-flag/-/react-country-flag-2.0.1.tgz#1028e71cd456b9685adc0447e148b79770c04b4e" + integrity sha512-cZQp+MTQUfSkI++ypDJU6PNgNU2K6Z/9htO4ct4HzvWAs19DoMbnvhzyK31lkBnW1vfx9OkMwskxuaYbEcFjLw== + +react-data-table-component@6.11.2: + version "6.11.2" + resolved "https://registry.yarnpkg.com/react-data-table-component/-/react-data-table-component-6.11.2.tgz#c4fec28aa078df0179573216d1ef3eb53d523ac7" + integrity sha512-xoaTVTX4svgY3norL707GSUZJ5Q0FRZ1g2QY5oI5soiNtGMor9yGTXjnMq6mDmL9A4a7lmA+4xntoEEMJMcIvA== + dependencies: + deepmerge "^4.2.2" + lodash.orderby "^4.6.0" + shortid "^2.2.15" + +react-dev-utils@^11.0.2: + version "11.0.4" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a" + integrity sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A== + dependencies: + "@babel/code-frame" "7.10.4" + address "1.1.2" + browserslist "4.14.2" + chalk "2.4.2" + cross-spawn "7.0.3" + detect-port-alt "1.1.6" + escape-string-regexp "2.0.0" + filesize "6.1.0" + find-up "4.1.0" + fork-ts-checker-webpack-plugin "4.1.6" + global-modules "2.0.0" + globby "11.0.1" + gzip-size "5.1.1" + immer "8.0.1" + is-root "2.1.0" + loader-utils "2.0.0" + open "^7.0.2" + pkg-up "3.1.0" + prompts "2.4.0" + react-error-overlay "^6.0.9" + recursive-readdir "2.2.2" + shell-quote "1.7.2" + strip-ansi "6.0.0" + text-table "0.2.0" + +react-dom@17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6" + integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.1" + +react-draft-wysiwyg@1.14.5: + version "1.14.5" + resolved "https://registry.yarnpkg.com/react-draft-wysiwyg/-/react-draft-wysiwyg-1.14.5.tgz#82e34ae3472b815b5d9f70615f40e13afcbc2055" + integrity sha512-utbJEs91757QXYoBwKRb/4kB3JdswLlj0heUiAeXs/OxZAUISJXxLMFLBIixRlIcUnNkwxOsMikRshDMtWIS3g== + dependencies: + classnames "^2.2.6" + draftjs-utils "^0.10.2" + html-to-draftjs "^1.5.0" + linkify-it "^2.2.0" + prop-types "^15.7.2" + +react-error-overlay@^6.0.9: + version "6.0.9" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" + integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== + +react-fast-compare@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" + integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== + +react-feather@~2.0.3: + version "2.0.9" + resolved "https://registry.yarnpkg.com/react-feather/-/react-feather-2.0.9.tgz#6e42072130d2fa9a09d4476b0e61b0ed17814480" + integrity sha512-yMfCGRkZdXwIs23Zw/zIWCJO3m3tlaUvtHiXlW+3FH7cIT6fiK1iJ7RJWugXq7Fso8ZaQyUm92/GOOHXvkiVUw== + dependencies: + prop-types "^15.7.2" + +react-flatpickr@3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/react-flatpickr/-/react-flatpickr-3.9.1.tgz#2fcee71a2664df9c9290ea3550cb40fe06c99305" + integrity sha512-g3FdnrYfFWOj/cWuPwHhYigpchu8GwAJvUzxUrba20dhrAdW1+dwAQxE+3aGe6eFYhYlTosVYTP8XAefnn5kxg== + dependencies: + flatpickr "^4.5.7" + prop-types "^15.5.10" + +react-hook-form@6.15.1: + version "6.15.1" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-6.15.1.tgz#57d887ec4dac5a6c0099902171aa39cc893f7bca" + integrity sha512-bL0LQuQ3OlM3JYfbacKtBPLOHhmgYz8Lj6ivMrvu2M6e1wnt4sbGRtPEPYCc/8z3WDbjrMwfAfLX92OsB65pFA== + +react-input-autosize@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-3.0.0.tgz#6b5898c790d4478d69420b55441fcc31d5c50a85" + integrity sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg== + dependencies: + prop-types "^15.5.8" + +react-intl@3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-3.11.0.tgz#a8c5392b8345753cd57bba0b45a1b4fdb1a4dd82" + integrity sha512-W5kc9uCkNRjw4ijZ9cBts5VDtK2DkILKZ1WpqmvVLHZ6EIHMFZkhFs6LQJurN+2msdROfB59gc5K1z8kM0u6/w== + dependencies: + "@formatjs/intl-listformat" "^1.3.7" + "@formatjs/intl-relativetimeformat" "^4.5.7" + "@formatjs/intl-unified-numberformat" "^3.0.4" + "@formatjs/intl-utils" "^2.0.4" + "@formatjs/macro" "^0.2.6" + "@types/hoist-non-react-statics" "^3.3.1" + "@types/invariant" "^2.2.31" + hoist-non-react-statics "^3.3.1" + intl-format-cache "^4.2.19" + intl-locales-supported "^1.8.4" + intl-messageformat "^7.8.2" + intl-messageformat-parser "^3.6.2" + shallow-equal "^1.2.1" + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-leaflet@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-3.1.0.tgz#42deb5e454518016eff8bc85511ae58812f910f5" + integrity sha512-kdZS8NYbYFPmkQr7zSDR2gkKGFeWvkxqoqcmZEckzHL4d5c85dJ2gbbqhaPDpmWWgaRw9O29uA/77qpKmK4mTQ== + dependencies: + "@react-leaflet/core" "^1.0.2" + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-paginate@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/react-paginate/-/react-paginate-7.0.0.tgz#af206ef92a2b6ef87646855eb1612157254ad0c0" + integrity sha512-mzPwHGJfSs79JBGX2V0v/FfQp3yWdz0XRrB9JvsUbJdsxqCt4osk1O669+K8VPQ0Lh9v0lJsnLLoJwnsgdJFng== + dependencies: + prop-types "^15.6.1" + +react-perfect-scrollbar@1.5.5: + version "1.5.5" + resolved "https://registry.yarnpkg.com/react-perfect-scrollbar/-/react-perfect-scrollbar-1.5.5.tgz#20696bdcc9ec052078e76f2229f3fcfbf87ad5c8" + integrity sha512-EDJxB57iGF1d3bhMtO9YKTYEutiSEM2RdQRA3bm9fNxG5W5oR7nFtmMaCzsWwW72VMuRufpyLkcgdm2D2gejSQ== + dependencies: + perfect-scrollbar "^1.5.0" + prop-types "^15.6.1" + +react-player@2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/react-player/-/react-player-2.6.2.tgz#d41fe842f5bd6a2b1d3ce1ba9ed82c3eb26e0df4" + integrity sha512-Wi9DynNSVgddKxac5OzsH0Upk6VRYssvLLGgCRw6vsjzqMX6S5N26WDRNYnLaHykxFNtpPSDc53fXDe52hMaCg== + dependencies: + deepmerge "^4.0.0" + load-script "^1.0.0" + memoize-one "^5.1.1" + prop-types "^15.7.2" + react-fast-compare "^3.0.1" + +react-popper@^1.3.6: + version "1.3.11" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.11.tgz#a2cc3f0a67b75b66cfa62d2c409f9dd1fcc71ffd" + integrity sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg== + dependencies: + "@babel/runtime" "^7.1.2" + "@hypnosphi/create-react-context" "^0.3.1" + deep-equal "^1.1.1" + popper.js "^1.14.4" + prop-types "^15.6.1" + typed-styles "^0.0.7" + warning "^4.0.2" + +react-rating@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/react-rating/-/react-rating-2.0.5.tgz#2c9d7ebe5907db0361ba28b7c19f0394e6e4dd76" + integrity sha512-uldxgLCe5bzqGX7V+7/bPgQQj2Kok6eiMgTMxjKOhfhnQkFLDlc4TjMlp7gaJFAHWdbiOnqpiShI7z8as6oWtg== + dependencies: + "@types/lodash" "^4.14.105" + "@types/react" "^16.0.40" + +react-redux@7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.2.tgz#03862e803a30b6b9ef8582dadcc810947f74b736" + integrity sha512-8+CQ1EvIVFkYL/vu6Olo7JFLWop1qRUeb46sGtIMDCSpgwPQq8fPLpirIB0iTqFe9XYEFPHssdX8/UwN6pAkEA== + dependencies: + "@babel/runtime" "^7.12.1" + hoist-non-react-statics "^3.3.2" + loose-envify "^1.4.0" + prop-types "^15.7.2" + react-is "^16.13.1" + +react-refresh@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" + integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== + +react-resize-detector@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-5.2.0.tgz#992083834432308c551a8251a2c52306d9d16718" + integrity sha512-PQAc03J2eyhvaiWgEdQ8+bKbbyGJzLEr70KuivBd1IEmP/iewNakLUMkxm6MWnDqsRPty85pioyg8MvGb0qC8A== + dependencies: + lodash "^4.17.20" + prop-types "^15.7.2" + raf-schd "^4.0.2" + resize-observer-polyfill "^1.5.1" + +react-router-dom@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" + integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.2.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" + integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + mini-create-react-context "^0.4.0" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-scripts@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-4.0.2.tgz#530fd934dfdf31c355e366df40bf488347c28de7" + integrity sha512-okaWNaGDGtnXyM2CLMUl8gYZnAubgxEulC40FYjsxn5bbj+G/mDINdy24wHz4Vypb/LWtIe8rdBU78k/74v8Mw== + dependencies: + "@babel/core" "7.12.3" + "@pmmmwh/react-refresh-webpack-plugin" "0.4.3" + "@svgr/webpack" "5.5.0" + "@typescript-eslint/eslint-plugin" "^4.5.0" + "@typescript-eslint/parser" "^4.5.0" + babel-eslint "^10.1.0" + babel-jest "^26.6.0" + babel-loader "8.1.0" + babel-plugin-named-asset-import "^0.3.7" + babel-preset-react-app "^10.0.0" + bfj "^7.0.2" + camelcase "^6.1.0" + case-sensitive-paths-webpack-plugin "2.3.0" + css-loader "4.3.0" + dotenv "8.2.0" + dotenv-expand "5.1.0" + eslint "^7.11.0" + eslint-config-react-app "^6.0.0" + eslint-plugin-flowtype "^5.2.0" + eslint-plugin-import "^2.22.1" + eslint-plugin-jest "^24.1.0" + eslint-plugin-jsx-a11y "^6.3.1" + eslint-plugin-react "^7.21.5" + eslint-plugin-react-hooks "^4.2.0" + eslint-plugin-testing-library "^3.9.2" + eslint-webpack-plugin "^2.1.0" + file-loader "6.1.1" + fs-extra "^9.0.1" + html-webpack-plugin "4.5.0" + identity-obj-proxy "3.0.0" + jest "26.6.0" + jest-circus "26.6.0" + jest-resolve "26.6.0" + jest-watch-typeahead "0.6.1" + mini-css-extract-plugin "0.11.3" + optimize-css-assets-webpack-plugin "5.0.4" + pnp-webpack-plugin "1.6.4" + postcss-flexbugs-fixes "4.2.1" + postcss-loader "3.0.0" + postcss-normalize "8.0.1" + postcss-preset-env "6.7.0" + postcss-safe-parser "5.0.2" + prompts "2.4.0" + react-app-polyfill "^2.0.0" + react-dev-utils "^11.0.2" + react-refresh "^0.8.3" + resolve "1.18.1" + resolve-url-loader "^3.1.2" + sass-loader "^10.0.5" + semver "7.3.2" + style-loader "1.3.0" + terser-webpack-plugin "4.2.3" + ts-pnp "1.2.0" + url-loader "4.1.1" + webpack "4.44.2" + webpack-dev-server "3.11.0" + webpack-manifest-plugin "2.2.0" + workbox-webpack-plugin "5.1.4" + optionalDependencies: + fsevents "^2.1.3" + +react-scroll-up@1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/react-scroll-up/-/react-scroll-up-1.3.7.tgz#8cbc1ace1d7723a62bf432aef3dcad6a2664fd56" + integrity sha512-STijjW7R/cc2+6GswZzcBb73sQgtQP5IZnSIeJlKGb2I1WDyc1bl5dbHuPeklDY0OAf3opV2DUHXDYhItZe/cw== + dependencies: + detect-passive-events "^2.0.2" + object-assign "^4.0.1" + prop-types "^15.5.8" + tween-functions "^1.1.0" + +react-select@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-4.0.2.tgz#4dcca9f38d6a41e01f2dc7673e244a325e3b4e0e" + integrity sha512-BiihrRpRIBBvNqofNZIBpo08Kw8DBHb/kgpIDW4bxgkttk50Sxf0alEIKobns3U7UJXk/CA4rsFUueQEg9Pm5A== + dependencies: + "@babel/runtime" "^7.4.4" + "@emotion/cache" "^11.0.0" + "@emotion/css" "^11.0.0" + "@emotion/react" "^11.1.1" + memoize-one "^5.0.0" + prop-types "^15.6.0" + react-input-autosize "^3.0.0" + react-transition-group "^4.3.0" + +react-shepherd@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/react-shepherd/-/react-shepherd-3.3.0.tgz#7b231fea26db1104be92e54921af838e16cd56f0" + integrity sha512-w9ulB7ILt+uNJpRQmLsdBZSS600UkquDcToOsWGg2xv52FgcbMkGAIFtHAx7beXha/Pu6FFHy0SM67ZqUGWAxA== + dependencies: + shepherd.js "^8.0.0" + +react-slidedown@2.4.5: + version "2.4.5" + resolved "https://registry.yarnpkg.com/react-slidedown/-/react-slidedown-2.4.5.tgz#d575404256fa0ba81e60161547a8fa9ff62b935d" + integrity sha512-zFDhgqQ1ZLfRr+rQA7p+13OTT/+zUR/+3v3JnwrnXPM8R+1KHhuTNseYHU8jYN3QfxjJXtqve0rgbWCBiFkpiw== + dependencies: + tslib "^1.9.0" + +react-smooth@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/react-smooth/-/react-smooth-1.0.6.tgz#18b964f123f7bca099e078324338cd8739346d0a" + integrity sha512-B2vL4trGpNSMSOzFiAul9kFAsxTukL9Wyy9EXtkQy3GJr6sZqW9e1nShdVOJ3hRYamPZ94O17r3Q0bjSw3UYtg== + dependencies: + lodash "~4.17.4" + prop-types "^15.6.0" + raf "^3.4.0" + react-transition-group "^2.5.0" + +react-sortablejs@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/react-sortablejs/-/react-sortablejs-6.0.0.tgz#ba75ded6dce3fa1b5b3b52c70d1928fcdee2003d" + integrity sha512-vzi+TWOnofcYg+dYnC/Iz/ZZkBGG76uM6KaLwuAqBk0349JQxIy3PZizbK0TJdLlK6NnLt4CiEyyQXSSnVYvEw== + dependencies: + classnames "^2.2.6" + tiny-invariant "^1.1.0" + +react-toastify@7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-7.0.3.tgz#93804c777ecf918872ba3b5be9c654db14547f85" + integrity sha512-cxZ5rfurC8LzcZQMTYc8RHIkQTs+BFur18Pzk6Loz6uS8OXUWm6nXVlH/wqglz4Z7UAE8xxcF5mRjfE13487uQ== + dependencies: + clsx "^1.1.1" + +react-transition-group@^2.3.1, react-transition-group@^2.5.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d" + integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg== + dependencies: + dom-helpers "^3.4.0" + loose-envify "^1.4.0" + prop-types "^15.6.2" + react-lifecycles-compat "^3.0.4" + +react-transition-group@^4.3.0: + version "4.4.2" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470" + integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react-treeview@^0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/react-treeview/-/react-treeview-0.4.7.tgz#f647e04f70496eb11fb0912c35187e80eb60d458" + integrity sha1-9kfgT3BJbrEfsJEsNRh+gOtg1Fg= + dependencies: + prop-types "^15.5.8" + +react@17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" + integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +reactstrap@8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/reactstrap/-/reactstrap-8.6.0.tgz#baee0d12990c9fef3c82199fb05e84d9f0af1a26" + integrity sha512-03/UMbLPR6MhVStVUfCLuKh8xh4JOtNVkRxDB9/uHixN+cEQPOpSYa0K69YyK1/2YdZBs2qS6y0cQkK8NQKBHA== + dependencies: + "@babel/runtime" "^7.2.0" + classnames "^2.2.3" + prop-types "^15.5.8" + react-popper "^1.3.6" + react-transition-group "^2.3.1" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + 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" + +readable-stream@^3.0.6, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +recharts-scale@^0.4.2: + version "0.4.5" + resolved "https://registry.yarnpkg.com/recharts-scale/-/recharts-scale-0.4.5.tgz#0969271f14e732e642fcc5bd4ab270d6e87dd1d9" + integrity sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w== + dependencies: + decimal.js-light "^2.4.1" + +recharts@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/recharts/-/recharts-2.0.4.tgz#0ffaa9437762ed0bf021968af42154777f97c94c" + integrity sha512-XwFRhyOW6APMKvrCqN8e1IPHAQi7lmrOqp48LKi40NFI8WjFWHgTaTfwBBMsGCnTJSezJEEd/41L3bo/tfevkw== + dependencies: + classnames "^2.2.5" + d3-interpolate "^2.0.1" + d3-scale "^3.2.3" + d3-shape "^2.0.0" + eventemitter3 "^4.0.1" + lodash "^4.17.19" + react-resize-detector "^5.2.0" + react-smooth "^1.0.6" + recharts-scale "^0.4.2" + reduce-css-calc "^2.1.7" + +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +reduce-css-calc@^2.1.7: + version "2.1.8" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03" + integrity sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg== + dependencies: + css-unit-converter "^1.1.1" + postcss-value-parser "^3.3.0" + +redux-debounced@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/redux-debounced/-/redux-debounced-0.5.0.tgz#4dde27a3e66ea428afe78215f30a27f22714605b" + integrity sha512-O2anhB0A6yQZH19uLETFtajcUQLcyiJcgC0hHSoFr5T3hWGtt0C5s6KNnb2RX51MwCh5VCl9ehZTv91F/rsZww== + +redux-thunk@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" + integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== + +redux@4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" + integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== + dependencies: + loose-envify "^1.4.0" + symbol-observable "^1.2.0" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regex-parser@^2.2.11: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.9" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== + dependencies: + jsesc "~0.5.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.4: + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +request@^2.87.0, request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + 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" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resize-observer-polyfill@^1.5.0, resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve-url-loader@^3.1.2: + version "3.1.4" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.4.tgz#3c16caebe0b9faea9c7cc252fa49d2353c412320" + integrity sha512-D3sQ04o0eeQEySLrcz4DsX3saHfsr8/N6tfhblxgZKXxMT2Louargg12oGNfoTRLV09GXhVUe5/qgA5vdgNigg== + dependencies: + adjust-sourcemap-loader "3.0.0" + camelcase "5.3.1" + compose-function "3.0.3" + convert-source-map "1.7.0" + es6-iterator "2.0.3" + loader-utils "1.2.3" + postcss "7.0.36" + rework "1.0.1" + rework-visit "1.0.0" + source-map "0.6.1" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" + integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== + dependencies: + is-core-module "^2.0.0" + path-parse "^1.0.6" + +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.20.0, resolve@^1.3.2, resolve@^1.8.1: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +resolve@^2.0.0-next.3: + version "2.0.0-next.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" + integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rework-visit@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" + integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= + +rework@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" + integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rollup-plugin-babel@^4.3.3: + version "4.4.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz#d15bd259466a9d1accbdb2fe2fff17c52d030acb" + integrity sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + rollup-pluginutils "^2.8.1" + +rollup-plugin-terser@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz#8c650062c22a8426c64268548957463bf981b413" + integrity sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w== + dependencies: + "@babel/code-frame" "^7.5.5" + jest-worker "^24.9.0" + rollup-pluginutils "^2.8.2" + serialize-javascript "^4.0.0" + terser "^4.6.2" + +rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +rollup@^1.31.1: + version "1.32.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4" + integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A== + dependencies: + "@types/estree" "*" + "@types/node" "*" + acorn "^7.1.0" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +rtlcss@^2.4.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-2.6.2.tgz#55b572b52c70015ba6e03d497e5c5cb8137104b4" + integrity sha512-06LFAr+GAPo+BvaynsXRfoYTJvSaWRyOhURCQ7aeI1MKph9meM222F+Zkt3bDamyHHJuGi3VPtiRkpyswmQbGA== + dependencies: + "@choojs/findup" "^0.2.1" + chalk "^2.4.2" + mkdirp "^0.5.1" + postcss "^6.0.23" + strip-json-comments "^2.0.0" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sanitize.css@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-10.0.0.tgz#b5cb2547e96d8629a60947544665243b1dc3657a" + integrity sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg== + +sass-graph@2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" + integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag== + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + scss-tokenizer "^0.2.3" + yargs "^13.3.2" + +sass-loader@^10.0.5: + version "10.2.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.2.0.tgz#3d64c1590f911013b3fa48a0b22a83d5e1494716" + integrity sha512-kUceLzC1gIHz0zNJPpqRsJyisWatGYNFRmv2CKZK2/ngMJgLqxTbXwe/hJ85luyvZkgqU3VlJ33UVF2T/0g6mw== + dependencies: + klona "^2.0.4" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + semver "^7.3.2" + +sass-loader@^7.0.3: + version "7.3.1" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.3.1.tgz#a5bf68a04bcea1c13ff842d747150f7ab7d0d23f" + integrity sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA== + dependencies: + clone-deep "^4.0.1" + loader-utils "^1.0.1" + neo-async "^2.5.0" + pify "^4.0.1" + semver "^6.3.0" + +sass-loader@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" + integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== + dependencies: + clone-deep "^4.0.1" + loader-utils "^1.2.3" + neo-async "^2.6.1" + schema-utils "^2.6.1" + semver "^6.3.0" + +sass@1.26.8: + version "1.26.8" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.26.8.tgz#312652530721f9568d4c4000b0db07ec6eb23325" + integrity sha512-yvtzyrKLGiXQu7H12ekXqsfoGT/aTKeMDyVzCB675k1HYuaj0py63i8Uf4SI9CHXj6apDhpfwbUr3gGOjdpu2Q== + dependencies: + chokidar ">=2.0.0 <4.0.0" + +sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scheduler@^0.20.1: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.2.0, schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.7.0, schema-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +screenfull@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.0.2.tgz#b9acdcf1ec676a948674df5cd0ff66b902b0bed7" + integrity sha512-cCF2b+L/mnEiORLN5xSAz6H3t18i2oHh9BA8+CQlAh5DRw2+NFAGQJOSYbcGw8B2k04g/lVvFcfZ83b3ysH5UQ== + +scss-tokenizer@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= + dependencies: + js-base64 "^2.1.8" + source-map "^0.4.2" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + +selfsigned@^1.10.7: + version "1.10.11" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" + integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== + dependencies: + node-forge "^0.10.0" + +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + 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" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + 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" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4, setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallow-equal@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" + integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +shepherd.js@^8.0.0: + version "8.3.1" + resolved "https://registry.yarnpkg.com/shepherd.js/-/shepherd.js-8.3.1.tgz#131eeefc5eb2bc44c9e23d0da139db46b2b55339" + integrity sha512-IhxZNhnK2m/pNTXudNfYrcwvcZNWkeYngQbQee8nC3xJ2GjeIatGqivhdZAMZ+LeogZvKMakB931d/V534uhrw== + dependencies: + "@popperjs/core" "^2.9.2" + deepmerge "^4.2.2" + smoothscroll-polyfill "^0.4.4" + +shortid@^2.2.15: + version "2.2.16" + resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608" + integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g== + dependencies: + nanoid "^2.1.0" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +smoothscroll-polyfill@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz#3a259131dc6930e6ca80003e1cb03b603b69abf8" + integrity sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + 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" + +socket.io-client@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz#84e73ee3c43d5020ccc1a258faeeb9aec2723af7" + integrity sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA== + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~3.1.0" + engine.io-client "~3.3.1" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" + integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== + dependencies: + component-emitter "~1.3.0" + debug "~3.1.0" + isarray "2.0.1" + +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.20: + version "0.3.20" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" + integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.4.0" + websocket-driver "0.6.5" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +sortablejs@1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.12.0.tgz#ee6d7ece3598c2af0feb1559d98595e5ea37cbd6" + integrity sha512-bPn57rCjBRlt2sC24RBsu40wZsmLkSo2XeqG8k6DC1zru5eObQUIPPZAQG7W2SJ8FZQYq+BEJmvuw1Zxb3chqg== + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha1-66T12pwNyZneaAMti092FzZSA2s= + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.7.3, source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.10" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" + integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +ssf@~0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/ssf/-/ssf-0.10.3.tgz#8eae1fc29c90a552e7921208f81892d6f77acb2b" + integrity sha512-pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w== + dependencies: + frac "~1.1.2" + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + 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" + +ssr-window@^3.0.0-alpha.1, ssr-window@^3.0.0-alpha.4: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ssr-window/-/ssr-window-3.0.0.tgz#fd5b82801638943e0cc704c4691801435af7ac37" + integrity sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA== + +ssri@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + +stackframe@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" + integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stdout-stream@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" + integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== + dependencies: + readable-stream "^2.0.1" + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-natural-compare@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" + integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.matchall@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da" + integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + get-intrinsic "^1.1.1" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.3.1" + side-channel "^1.0.4" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@6.0.0, strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-comments@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" + integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw== + dependencies: + babel-extract-comments "^1.0.0" + babel-plugin-transform-object-rest-spread "^6.26.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +style-loader@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" + integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^2.7.0" + +styled-components@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.1.1.tgz#96dfb02a8025794960863b9e8e365e3b6be5518d" + integrity sha512-1ps8ZAYu2Husx+Vz8D+MvXwEwvMwFv+hqqUwhNlDN5ybg6A+3xyW1ECrAgywhvXapNfXiz79jJyU0x22z0FFTg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/traverse" "^7.4.5" + "@emotion/is-prop-valid" "^0.8.8" + "@emotion/stylis" "^0.8.4" + "@emotion/unitless" "^0.7.4" + babel-plugin-styled-components ">= 1" + css-to-react-native "^3.0.0" + hoist-non-react-statics "^3.0.0" + shallowequal "^1.1.0" + supports-color "^5.5.0" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +stylis@^4.0.3: + version "4.0.10" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.10.tgz#446512d1097197ab3f02fb3c258358c3f7a14240" + integrity sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg== + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +svg-parser@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svg.draggable.js@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz#c514a2f1405efb6f0263e7958f5b68fce50603ba" + integrity sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw== + dependencies: + svg.js "^2.0.1" + +svg.easing.js@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/svg.easing.js/-/svg.easing.js-2.0.0.tgz#8aa9946b0a8e27857a5c40a10eba4091e5691f12" + integrity sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI= + dependencies: + svg.js ">=2.3.x" + +svg.filter.js@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/svg.filter.js/-/svg.filter.js-2.0.2.tgz#91008e151389dd9230779fcbe6e2c9a362d1c203" + integrity sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM= + dependencies: + svg.js "^2.2.5" + +svg.js@>=2.3.x, svg.js@^2.0.1, svg.js@^2.2.5, svg.js@^2.4.0, svg.js@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/svg.js/-/svg.js-2.7.1.tgz#eb977ed4737001eab859949b4a398ee1bb79948d" + integrity sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA== + +svg.pathmorphing.js@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz#c25718a1cc7c36e852ecabc380e758ac09bb2b65" + integrity sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww== + dependencies: + svg.js "^2.4.0" + +svg.resize.js@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/svg.resize.js/-/svg.resize.js-1.4.3.tgz#885abd248e0cd205b36b973c4b578b9a36f23332" + integrity sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw== + dependencies: + svg.js "^2.6.5" + svg.select.js "^2.1.2" + +svg.select.js@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-2.1.2.tgz#e41ce13b1acff43a7441f9f8be87a2319c87be73" + integrity sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ== + dependencies: + svg.js "^2.2.5" + +svg.select.js@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-3.0.1.tgz#a4198e359f3825739226415f82176a90ea5cc917" + integrity sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw== + dependencies: + svg.js "^2.6.5" + +svgo@^1.0.0, svgo@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +sweetalert2-react-content@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sweetalert2-react-content/-/sweetalert2-react-content-3.0.1.tgz#aed5fda272988a81fac576cffbbd2b7d30d6913d" + integrity sha512-VBybIRTIzY2bTkUddcp2wMJ3mp3gfGGX6+BfW2dDrEv6bXM2WtzJpFkM2imFpcPhpkOIf2/J8gLxEu0jBZq0DQ== + +sweetalert2@10.14.0: + version "10.14.0" + resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-10.14.0.tgz#73a7487b12b56dec4c1e47d7d4926e8fe880e727" + integrity sha512-EBUh4k9qyRRsttm9X9j7WUhLExetvTJpcbp1VTMJCpuI2UwHLesXMIw9M+UeuqBywv0UjNMR5PKH7Qnv65m8rw== + +swiper@6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/swiper/-/swiper-6.0.4.tgz#d3889383369e780e8d905e6aaf78a43dc3690176" + integrity sha512-D+DBxgg81+uocgsvhmdzrpr4GHzhAt2yImArqzunrC80y7+/yCEAq/EJw1VASD+CBFNacF4F8FEIqJMLyDFM0g== + dependencies: + dom7 "^3.0.0-alpha.7" + ssr-window "^3.0.0-alpha.4" + +symbol-observable@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^6.0.9: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== + dependencies: + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" + integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== + dependencies: + block-stream "*" + fstream "^1.0.12" + inherits "2" + +tar@^6.0.2: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + 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-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + +tempy@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8" + integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ== + dependencies: + temp-dir "^1.0.0" + type-fest "^0.3.1" + unique-string "^1.0.0" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" + integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== + dependencies: + cacache "^15.0.5" + find-cache-dir "^3.3.1" + jest-worker "^26.5.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + terser "^5.3.4" + webpack-sources "^1.4.3" + +terser-webpack-plugin@^1.4.3: + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2, terser@^4.6.2, terser@^4.6.3: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^5.3.4: + version "5.7.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.2.tgz#d4d95ed4f8bf735cb933e802f2a1829abf545e3f" + integrity sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@0.2.0, text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tiny-invariant@^1.0.2, tiny-invariant@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + +tiny-warning@^1.0.0, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +toposort@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" + integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= + +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +"true-case-path@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" + integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== + dependencies: + glob "^7.1.2" + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-pnp@1.2.0, ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tsconfig-paths@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" + integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@^1.8.1, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +tsutils@^3.17.1, tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tus-js-client@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/tus-js-client/-/tus-js-client-2.3.0.tgz#5d76145476cea46a4e7c045a0054637cddf8dc39" + integrity sha512-I4cSwm6N5qxqCmBqenvutwSHe9ntf81lLrtf6BmLpG2v4wTl89atCQKqGgqvkodE6Lx+iKIjMbaXmfvStTg01g== + dependencies: + buffer-from "^0.1.1" + combine-errors "^3.0.3" + is-stream "^2.0.0" + js-base64 "^2.6.1" + lodash.throttle "^4.1.1" + proper-lockfile "^2.0.1" + url-parse "^1.4.3" + +tween-functions@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tween-functions/-/tween-functions-1.2.0.tgz#1ae3a50e7c60bb3def774eac707acbca73bbc3ff" + integrity sha1-GuOlDnxguz3vd06scHrLynO7w/8= + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" + integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== + +typed-styles@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" + integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +ua-parser-js@^0.7.18: + version "0.7.28" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== + +uc.micro@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + +universalify@^0.1.0, universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1, upath@^1.1.2, upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uppy@1.21.2: + version "1.21.2" + resolved "https://registry.yarnpkg.com/uppy/-/uppy-1.21.2.tgz#34cfc1ec59aeaafcad0e9a0cce87a9f43fa295e1" + integrity sha512-4qkdvtMiVysDjb3p+BoEA9G8wVjXg8Hs2F3IiPzWOArbIfKB2pJf8QhdNgg9o6RuKZeq4wx2ynzk+KP1h6nEtQ== + dependencies: + "@uppy/aws-s3" "^1.7.0" + "@uppy/aws-s3-multipart" "^1.8.6" + "@uppy/companion-client" "^1.5.4" + "@uppy/core" "^1.13.2" + "@uppy/dashboard" "^1.12.8" + "@uppy/drag-drop" "^1.4.19" + "@uppy/dropbox" "^1.4.16" + "@uppy/facebook" "^1.1.16" + "@uppy/file-input" "^1.4.17" + "@uppy/form" "^1.3.20" + "@uppy/golden-retriever" "^1.3.19" + "@uppy/google-drive" "^1.5.16" + "@uppy/informer" "^1.5.11" + "@uppy/instagram" "^1.4.16" + "@uppy/onedrive" "^1.1.16" + "@uppy/progress-bar" "^1.3.19" + "@uppy/provider-views" "^1.7.7" + "@uppy/redux-dev-tools" "^1.3.5" + "@uppy/screen-capture" "^1.0.8" + "@uppy/status-bar" "^1.7.6" + "@uppy/store-default" "^1.2.4" + "@uppy/store-redux" "^1.2.4" + "@uppy/thumbnail-generator" "^1.6.7" + "@uppy/transloadit" "^1.6.11" + "@uppy/tus" "^1.7.7" + "@uppy/url" "^1.5.11" + "@uppy/webcam" "^1.7.0" + "@uppy/xhr-upload" "^1.6.4" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +url-parse@^1.4.3, url-parse@^1.4.7: + version "1.5.3" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" + integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.3.2, uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +v8-to-istanbul@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" + integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +warning@^4.0.2, warning@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.6.1, watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-dev-middleware@^3.7.2: + version "3.7.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" + integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== + dependencies: + 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.7" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "0.3.20" + sockjs-client "1.4.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" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-manifest-plugin@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz#19ca69b435b0baec7e29fbe90fb4015de2de4f16" + integrity sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ== + dependencies: + fs-extra "^7.0.0" + lodash ">=3.5 <5" + object.entries "^1.1.0" + tapable "^1.0.0" + +webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@4.43.0: + version "4.43.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" + integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.6.1" + webpack-sources "^1.4.1" + +webpack@4.44.2: + version "4.44.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.3.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +websocket-driver@0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= + dependencies: + websocket-extensions ">=0.1.1" + +websocket-driver@>=0.5.1: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@^3.4.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@1, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +wildcard@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-1.1.2.tgz#a7020453084d8cd2efe70ba9d3696263de1710a5" + integrity sha1-pwIEUwhNjNLv5wup02liY94XEKU= + +wmf@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wmf/-/wmf-1.0.2.tgz#7d19d621071a08c2bdc6b7e688a9c435298cc2da" + integrity sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw== + +wnumb@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/wnumb/-/wnumb-1.2.0.tgz#f6fa5bfa739b9ca3b1e472094e1feeeb189484d9" + integrity sha512-eYut5K/dW7usfk/Mwm6nxBNoTPp/uP7PlXld+hhg7lDtHLdHFnNclywGYM9BRC7Ohd4JhwuHg+vmOUGfd3NhVA== + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +workbox-background-sync@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-5.1.4.tgz#5ae0bbd455f4e9c319e8d827c055bb86c894fd12" + integrity sha512-AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA== + dependencies: + workbox-core "^5.1.4" + +workbox-broadcast-update@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-5.1.4.tgz#0eeb89170ddca7f6914fa3523fb14462891f2cfc" + integrity sha512-HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA== + dependencies: + workbox-core "^5.1.4" + +workbox-build@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-5.1.4.tgz#23d17ed5c32060c363030c8823b39d0eabf4c8c7" + integrity sha512-xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow== + dependencies: + "@babel/core" "^7.8.4" + "@babel/preset-env" "^7.8.4" + "@babel/runtime" "^7.8.4" + "@hapi/joi" "^15.1.0" + "@rollup/plugin-node-resolve" "^7.1.1" + "@rollup/plugin-replace" "^2.3.1" + "@surma/rollup-plugin-off-main-thread" "^1.1.1" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^8.1.0" + glob "^7.1.6" + lodash.template "^4.5.0" + pretty-bytes "^5.3.0" + rollup "^1.31.1" + rollup-plugin-babel "^4.3.3" + rollup-plugin-terser "^5.3.1" + source-map "^0.7.3" + source-map-url "^0.4.0" + stringify-object "^3.3.0" + strip-comments "^1.0.2" + tempy "^0.3.0" + upath "^1.2.0" + workbox-background-sync "^5.1.4" + workbox-broadcast-update "^5.1.4" + workbox-cacheable-response "^5.1.4" + workbox-core "^5.1.4" + workbox-expiration "^5.1.4" + workbox-google-analytics "^5.1.4" + workbox-navigation-preload "^5.1.4" + workbox-precaching "^5.1.4" + workbox-range-requests "^5.1.4" + workbox-routing "^5.1.4" + workbox-strategies "^5.1.4" + workbox-streams "^5.1.4" + workbox-sw "^5.1.4" + workbox-window "^5.1.4" + +workbox-cacheable-response@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz#9ff26e1366214bdd05cf5a43da9305b274078a54" + integrity sha512-0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA== + dependencies: + workbox-core "^5.1.4" + +workbox-core@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-5.1.4.tgz#8bbfb2362ecdff30e25d123c82c79ac65d9264f4" + integrity sha512-+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg== + +workbox-expiration@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-5.1.4.tgz#92b5df461e8126114943a3b15c55e4ecb920b163" + integrity sha512-oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ== + dependencies: + workbox-core "^5.1.4" + +workbox-google-analytics@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz#b3376806b1ac7d7df8418304d379707195fa8517" + integrity sha512-0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA== + dependencies: + workbox-background-sync "^5.1.4" + workbox-core "^5.1.4" + workbox-routing "^5.1.4" + workbox-strategies "^5.1.4" + +workbox-navigation-preload@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz#30d1b720d26a05efc5fa11503e5cc1ed5a78902a" + integrity sha512-Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ== + dependencies: + workbox-core "^5.1.4" + +workbox-precaching@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-5.1.4.tgz#874f7ebdd750dd3e04249efae9a1b3f48285fe6b" + integrity sha512-gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA== + dependencies: + workbox-core "^5.1.4" + +workbox-range-requests@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz#7066a12c121df65bf76fdf2b0868016aa2bab859" + integrity sha512-1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw== + dependencies: + workbox-core "^5.1.4" + +workbox-routing@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-5.1.4.tgz#3e8cd86bd3b6573488d1a2ce7385e547b547e970" + integrity sha512-8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw== + dependencies: + workbox-core "^5.1.4" + +workbox-strategies@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-5.1.4.tgz#96b1418ccdfde5354612914964074d466c52d08c" + integrity sha512-VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA== + dependencies: + workbox-core "^5.1.4" + workbox-routing "^5.1.4" + +workbox-streams@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-5.1.4.tgz#05754e5e3667bdc078df2c9315b3f41210d8cac0" + integrity sha512-xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw== + dependencies: + workbox-core "^5.1.4" + workbox-routing "^5.1.4" + +workbox-sw@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-5.1.4.tgz#2bb34c9f7381f90d84cef644816d45150011d3db" + integrity sha512-9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA== + +workbox-webpack-plugin@5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-5.1.4.tgz#7bfe8c16e40fe9ed8937080ac7ae9c8bde01e79c" + integrity sha512-PZafF4HpugZndqISi3rZ4ZK4A4DxO8rAqt2FwRptgsDx7NF8TVKP86/huHquUsRjMGQllsNdn4FNl8CD/UvKmQ== + dependencies: + "@babel/runtime" "^7.5.5" + fast-json-stable-stringify "^2.0.0" + source-map-url "^0.4.0" + upath "^1.1.2" + webpack-sources "^1.3.0" + workbox-build "^5.1.4" + +workbox-window@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-5.1.4.tgz#2740f7dea7f93b99326179a62f1cc0ca2c93c863" + integrity sha512-vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw== + dependencies: + workbox-core "^5.1.4" + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +worker-rpc@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" + integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== + dependencies: + microevent.ts "~0.1.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^6.2.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + dependencies: + async-limiter "~1.0.0" + +ws@^7.4.6: + version "7.5.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.4.tgz#56bfa20b167427e138a7795de68d134fe92e21f9" + integrity sha512-zP9z6GXm6zC27YtspwH99T3qTG7bBFv2VIkeHstMLrLlDJuzA7tQ5ls3OJ1hOGGCzTQPniNJoHXIAOS0Jljohg== + +ws@~6.1.0: + version "6.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== + dependencies: + async-limiter "~1.0.0" + +xlsx@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/xlsx/-/xlsx-0.16.2.tgz#84043c36b76ddd776b3b49973530303b21894266" + integrity sha512-XTqOy7YpCUtGbvCYaCh1t1RsZ/y8cSCbZCOYtqqZ4/EmHkyv+/ghxmCvvR8yc4Tn5fhny+3j7voKwJaRlffNKA== + dependencies: + adler-32 "~1.2.0" + cfb "^1.1.4" + codepage "~1.14.0" + commander "~2.17.1" + crc-32 "~1.2.0" + exit-on-epipe "~1.0.1" + ssf "~0.10.3" + wmf "~1.0.1" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xmlhttprequest-ssl@~1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6" + integrity sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q== + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0, yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + 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" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + 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" + +yarn@1.21.1: + version "1.21.1" + resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.21.1.tgz#1d5da01a9a03492dc4a5957befc1fd12da83d89c" + integrity sha512-dQgmJv676X/NQczpbiDtc2hsE/pppGDJAzwlRiADMTvFzYbdxPj2WO4PcNyriSt2c4jsCMpt8UFRKHUozt21GQ== + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yup@0.32.8: + version "0.32.8" + resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.8.tgz#16e4a949a86a69505abf99fd0941305ac9adfc39" + integrity sha512-SZulv5FIZ9d5H99EN5tRCRPXL0eyoYxWIP1AacCrjC9d4DfP13J1dROdKGfpfRHT3eQB6/ikBl5jG21smAfCkA== + dependencies: + "@babel/runtime" "^7.10.5" + "@types/lodash" "^4.14.165" + lodash "^4.17.20" + lodash-es "^4.17.11" + nanoclone "^0.2.1" + property-expr "^2.0.4" + toposort "^2.0.2"