diff --git a/.prettierrc b/.prettierrc index 222861c3..ebf57913 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,4 +1,6 @@ { "tabWidth": 2, + "semi": true, + "printWidth": 80, "useTabs": false } diff --git a/config/paths.js b/config/paths.js index a11d1e69..56021c30 100644 --- a/config/paths.js +++ b/config/paths.js @@ -1,7 +1,7 @@ -const path = require('path'); +const path = require("path"); module.exports = { - public: path.resolve(__dirname, '../public'), - src: path.resolve(__dirname, '../src'), - build: path.resolve(__dirname, '../build'), - '@node_modules': path.resolve(__dirname, '../node_modules'), + public: path.resolve(__dirname, "../public"), + src: path.resolve(__dirname, "../src"), + build: path.resolve(__dirname, "../build"), + "@node_modules": path.resolve(__dirname, "../node_modules"), }; diff --git a/config/webpack/analyze.js b/config/webpack/analyze.js index 9718b610..3932d696 100644 --- a/config/webpack/analyze.js +++ b/config/webpack/analyze.js @@ -1,10 +1,10 @@ -const { merge } = require('webpack-merge'); +const { merge } = require("webpack-merge"); -const BundleAnalyzerPlugin = require('webpack-bundle-analyzer') - .BundleAnalyzerPlugin; +const BundleAnalyzerPlugin = + require("webpack-bundle-analyzer").BundleAnalyzerPlugin; -const prod = require('./prod'); +const prod = require("./prod"); module.exports = merge(prod, { - plugins: [new BundleAnalyzerPlugin()] -}); \ No newline at end of file + plugins: [new BundleAnalyzerPlugin()], +}); diff --git a/config/webpack/common.js b/config/webpack/common.js index a2d2b439..35abe6d5 100644 --- a/config/webpack/common.js +++ b/config/webpack/common.js @@ -1,45 +1,44 @@ -const paths = require('../paths'); +const paths = require("../paths"); -const webpack = require('webpack'); +const webpack = require("webpack"); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); - -const Dotenv = require('dotenv-webpack'); +const CopyWebpackPlugin = require("copy-webpack-plugin"); +const HtmlWebpackPlugin = require("html-webpack-plugin"); +const Dotenv = require("dotenv-webpack"); const plugins = [ - '@babel/plugin-proposal-class-properties', - '@babel/plugin-syntax-dynamic-import', - '@babel/plugin-transform-runtime' + "@babel/plugin-proposal-class-properties", + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-transform-runtime", ]; -if (process.env.NODE_ENV === 'development') { - plugins.push('react-refresh/babel'); +if (process.env.NODE_ENV === "development") { + plugins.push("react-refresh/babel"); } const babelLoader = { - loader: 'babel-loader', + loader: "babel-loader", options: { presets: [ // "react-app", - '@babel/preset-env', - '@babel/preset-react', + "@babel/preset-env", + "@babel/preset-react", ], - plugins: plugins - } + plugins: plugins, + }, }; module.exports = { entry: `${paths.src}/index.js`, output: { path: paths.build, - filename: '[name].bundle.js', - publicPath: '/', + filename: "[name].bundle.js", + publicPath: "/", // publicPath: 'https://itguild.info', asyncChunks: true, clean: true, - crossOriginLoading: 'anonymous', + crossOriginLoading: "anonymous", module: true, environment: { arrowFunction: true, @@ -47,57 +46,65 @@ module.exports = { const: true, destructuring: true, dynamicImport: false, - forOf: true - } + forOf: true, + }, }, resolve: { alias: { - '@': `${paths.src}/modules` + "@": `${paths.src}/modules`, + assets: `${paths.src}/assets`, + "@components": `${paths.src}/components`, + "@utils": `${paths.src}/utils`, + "@pages": `${paths.src}/pages`, + "@redux": `${paths.src}/redux`, + "@store": `${paths.src}/store`, + "@api": `${paths.src}/api`, + "@hooks": `${paths.src}/hooks`, }, - extensions: ['.mjs', '.js', '.jsx', '.ts', '.tsx', '.json'] + // extensions: [".mjs", ".js", ".jsx", ".ts", ".tsx", ".json"], + extensions: [".jsx", "..."], }, experiments: { topLevelAwait: true, - outputModule: true + outputModule: true, }, module: { rules: [ - // JavaScript, React { test: /\.m?jsx?$/i, exclude: /node_modules/, - use: babelLoader + use: babelLoader, }, // TypeScript { test: /.tsx?$/i, exclude: /node_modules/, - use: [babelLoader, 'ts-loader'] + use: [babelLoader, "ts-loader"], }, // CSS, SASS { test: /\.(c|sa|sc)ss$/i, use: [ - 'style-loader', + "style-loader", { - loader: 'css-loader', - options: {importLoaders: 1} + loader: "css-loader", + options: { importLoaders: 1 }, }, - 'sass-loader' - ] + "sass-loader", + ], }, // MD { test: /\.md$/i, - use: ['html-loader', 'markdown-loader'] + use: ["html-loader", "markdown-loader"], }, // static files { - test: /\.(jpe?g|png|gif|svg|eot|ttf|woff2|woff?)$/i, - type: 'asset/resource' - } - ] + test: /\.(jpe?g|png|gif|webp|svg|eot|ttf|woff2|woff?)$/i, + type: "asset/resource", + }, + ], }, plugins: [ new webpack.ProgressPlugin(), @@ -107,10 +114,10 @@ module.exports = { { from: `${paths.public}`, globOptions: { - ignore: ["**/index.html"] - } - } - ] + ignore: ["**/index.html"], + }, + }, + ], }), new HtmlWebpackPlugin({ @@ -119,11 +126,11 @@ module.exports = { }), new webpack.ProvidePlugin({ - React: 'react' + React: "react", }), new Dotenv({ - path: '.env' - }) - ] -}; \ No newline at end of file + path: ".env", + }), + ], +}; diff --git a/config/webpack/dev.js b/config/webpack/dev.js index bd080cdf..e6f78bfb 100644 --- a/config/webpack/dev.js +++ b/config/webpack/dev.js @@ -1,14 +1,14 @@ -const paths = require('../paths'); +const paths = require("../paths"); -const webpack = require('webpack'); -const {merge} = require('webpack-merge'); +const webpack = require("webpack"); +const { merge } = require("webpack-merge"); -const common = require('./common'); +const common = require("./common"); module.exports = merge(common, { - target : 'web', - mode: 'development', - devtool: 'eval-cheap-source-map', + target: "web", + mode: "development", + devtool: "eval-cheap-source-map", devServer: { compress: true, @@ -17,7 +17,6 @@ module.exports = merge(common, { historyApiFallback: true, // open: true, port: 3000, - }, - plugins: [new webpack.HotModuleReplacementPlugin()] -}); \ No newline at end of file + plugins: [new webpack.HotModuleReplacementPlugin()], +}); diff --git a/config/webpack/prod.js b/config/webpack/prod.js index a08140ba..d40296dd 100644 --- a/config/webpack/prod.js +++ b/config/webpack/prod.js @@ -1,62 +1,59 @@ -const paths = require('../paths'); -const {merge} = require('webpack-merge'); -const common = require('./common'); - -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const paths = require("../paths"); +const { merge } = require("webpack-merge"); +const common = require("./common"); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = merge(common, { - mode: 'production', - target :'browserslist', - entry: { - index: { - import: `${paths.src}/index.js`, - dependOn: ['react', 'helpers'] - }, - react: ['react', 'react-dom', 'prop-types'], - helpers: ['immer', 'nanoid'] + mode: "production", + target: "browserslist", + entry: { + index: { + import: `${paths.src}/index.js`, + dependOn: ["react", "helpers"], }, - devtool: false, - output: { - filename: 'js/[name].[hash:8].bundle.js', - publicPath: '/', - assetModuleFilename: '[hash][ext][query]' - }, - module: { - rules: [ - { - test: /\.(c|sa|sc)ss$/i, - use: [ - MiniCssExtractPlugin.loader, - { - loader: 'css-loader', - options: {importLoaders: 1} - }, - 'postcss-loader', - 'sass-loader' - ] - }, - { - test: /\.(jpe?g|png|gif|svg)$/i, - type: 'asset/resource' - // type: 'asset' - }, - - ] - }, - plugins: [ - new MiniCssExtractPlugin({ - filename: '[name].[contenthash].css', - chunkFilename: '[id].css' - }), - + react: ["react", "react-dom", "prop-types"], + helpers: ["immer", "nanoid"], + }, + devtool: false, + output: { + filename: "js/[name].[hash:8].bundle.js", + publicPath: "/", + assetModuleFilename: "[hash][ext][query]", + }, + module: { + rules: [ + { + test: /\.(c|sa|sc)ss$/i, + use: [ + MiniCssExtractPlugin.loader, + { + loader: "css-loader", + options: { importLoaders: 1 }, + }, + "postcss-loader", + "sass-loader", + ], + }, + { + test: /\.(jpe?g|png|gif|svg|webp)$/i, + type: "asset/resource", + // type: 'asset' + }, ], - optimization: { - runtimeChunk: 'single' - }, - performance: { - hints: 'warning', - maxEntrypointSize: 512000, - maxAssetSize: 512000 - } -}); \ No newline at end of file + }, + plugins: [ + new MiniCssExtractPlugin({ + filename: "[name].[contenthash].css", + chunkFilename: "[id].css", + }), + ], + optimization: { + runtimeChunk: "single", + }, + performance: { + hints: "warning", + maxEntrypointSize: 512000, + maxAssetSize: 512000, + }, +}); diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 00000000..3371db77 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "baseUrl": "./src", + "paths": { + "assets/*": ["./assets/*"], + "@components/*": ["./components/*"], + "@utils/*": ["./utils/*"], + "@pages/*": ["./pages/*"], + "@redux/*": ["./redux/*"], + "@store/*": ["./store/*"], + "@api/*": ["./api/*"], + "@hooks/*": ["./hooks/*"] + } + } +} diff --git a/package-lock.json b/package-lock.json index 4de78244..6ff4ed7b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,15 +18,6 @@ "bfj": "^7.0.2", "bootstrap": "^4.6.0", "camelcase": "^6.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", "form-data": "^4.0.0", "fs-extra": "^9.0.1", "identity-obj-proxy": "3.0.0", @@ -195,6 +186,7 @@ "version": "7.21.1", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "dev": true, "dependencies": { "@babel/types": "^7.21.0", "@jridgewell/gen-mapping": "^0.3.2", @@ -209,6 +201,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -339,6 +332,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -359,6 +353,7 @@ "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, "dependencies": { "@babel/template": "^7.20.7", "@babel/types": "^7.21.0" @@ -371,6 +366,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -504,6 +500,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -582,6 +579,7 @@ "version": "7.21.2", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -1998,6 +1996,7 @@ "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.20.7", @@ -2011,6 +2010,7 @@ "version": "7.21.2", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.21.1", @@ -2464,10 +2464,47 @@ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "peer": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", @@ -2487,6 +2524,7 @@ "version": "13.20.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "peer": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -2501,6 +2539,7 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "peer": true, "engines": { "node": ">= 4" } @@ -2509,6 +2548,7 @@ "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==", + "peer": true, "engines": { "node": ">=10" }, @@ -2517,9 +2557,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", - "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz", + "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2548,6 +2588,7 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "peer": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.0", "debug": "^4.1.1", @@ -5262,7 +5303,8 @@ "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true }, "node_modules/@types/mime": { "version": "3.0.1", @@ -6317,6 +6359,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "peer": true, "engines": { "node": ">=6" } @@ -6447,6 +6490,7 @@ "version": "3.1.6", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -6487,6 +6531,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -6504,6 +6549,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -6540,6 +6586,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -6587,12 +6634,14 @@ "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "dev": true }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "peer": true, "engines": { "node": ">=8" } @@ -6703,6 +6752,7 @@ "version": "4.6.3", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz", "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==", + "dev": true, "engines": { "node": ">=4" } @@ -6719,6 +6769,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, "dependencies": { "deep-equal": "^2.0.5" } @@ -6734,36 +6785,6 @@ "babel-node": "lib/cli.js" } }, - "node_modules/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==", - "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", - "peer": true, - "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" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "eslint": ">= 4.12.1" - } - }, - "node_modules/babel-eslint/node_modules/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==", - "peer": true, - "engines": { - "node": ">=4" - } - }, "node_modules/babel-jest": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", @@ -7956,7 +7977,8 @@ "node_modules/confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", @@ -8715,7 +8737,8 @@ "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true }, "node_modules/dashdash": { "version": "1.14.1", @@ -9290,7 +9313,8 @@ "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true }, "node_modules/emojis-list": { "version": "3.0.0", @@ -9340,6 +9364,7 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "peer": true, "dependencies": { "ansi-colors": "^4.1.1" }, @@ -9655,6 +9680,7 @@ "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==", + "peer": true, "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", @@ -9707,42 +9733,11 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/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==", - "dependencies": { - "confusing-browser-globals": "^1.0.10" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0", - "@typescript-eslint/parser": "^4.0.0", - "babel-eslint": "^10.0.0", - "eslint": "^7.5.0", - "eslint-plugin-flowtype": "^5.2.0", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-jest": "^24.0.0", - "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-react": "^7.20.3", - "eslint-plugin-react-hooks": "^4.0.8", - "eslint-plugin-testing-library": "^3.9.0" - }, - "peerDependenciesMeta": { - "eslint-plugin-jest": { - "optional": true - }, - "eslint-plugin-testing-library": { - "optional": true - } - } - }, "node_modules/eslint-import-resolver-node": { "version": "0.3.7", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dev": true, "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.11.0", @@ -9753,6 +9748,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { "ms": "^2.1.1" } @@ -9761,6 +9757,7 @@ "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -9777,6 +9774,7 @@ "version": "2.7.4", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, "dependencies": { "debug": "^3.2.7" }, @@ -9793,29 +9791,16 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-flowtype": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz", - "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==", - "dependencies": { - "lodash": "^4.17.15", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.1.0" - } - }, "node_modules/eslint-plugin-import": { "version": "2.27.5", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "dev": true, "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -9844,6 +9829,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { "ms": "^2.1.1" } @@ -9852,6 +9838,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, "dependencies": { "esutils": "^2.0.2" }, @@ -9863,6 +9850,7 @@ "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -9879,34 +9867,16 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { "semver": "bin/semver.js" } }, - "node_modules/eslint-plugin-jest": { - "version": "24.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz", - "integrity": "sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA==", - "dependencies": { - "@typescript-eslint/experimental-utils": "^4.0.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">= 4", - "eslint": ">=5" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - } - } - }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", + "dev": true, "dependencies": { "@babel/runtime": "^7.20.7", "aria-query": "^5.1.3", @@ -9936,6 +9906,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { "semver": "bin/semver.js" } @@ -9944,6 +9915,7 @@ "version": "7.32.2", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "dev": true, "dependencies": { "array-includes": "^3.1.6", "array.prototype.flatmap": "^1.3.1", @@ -9972,6 +9944,7 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, "engines": { "node": ">=10" }, @@ -9983,6 +9956,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, "dependencies": { "esutils": "^2.0.2" }, @@ -9994,6 +9968,7 @@ "version": "2.0.0-next.4", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -10010,123 +9985,11 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { "semver": "bin/semver.js" } }, - "node_modules/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==", - "dependencies": { - "@typescript-eslint/experimental-utils": "^3.10.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0", - "npm": ">=6" - }, - "peerDependencies": { - "eslint": "^5 || ^6 || ^7" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/@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==", - "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" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/@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==", - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/@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==", - "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" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/@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==", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/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==", - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -10291,6 +10154,7 @@ "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "peer": true, "dependencies": { "@babel/highlight": "^7.10.4" } @@ -10299,6 +10163,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10313,6 +10178,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10328,6 +10194,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -10338,12 +10205,14 @@ "node_modules/eslint/node_modules/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==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true }, "node_modules/eslint/node_modules/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==", + "peer": true, "engines": { "node": ">=10" }, @@ -10355,6 +10224,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "peer": true, "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -10369,6 +10239,7 @@ "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==", + "peer": true, "engines": { "node": ">=4" } @@ -10377,6 +10248,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "peer": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -10388,6 +10260,7 @@ "version": "13.20.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "peer": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -10402,6 +10275,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, "engines": { "node": ">=8" } @@ -10410,6 +10284,7 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "peer": true, "engines": { "node": ">= 4" } @@ -10418,6 +10293,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -10429,6 +10305,7 @@ "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==", + "peer": true, "engines": { "node": ">=10" }, @@ -10440,6 +10317,7 @@ "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "peer": true, "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -10453,6 +10331,7 @@ "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==", + "peer": true, "engines": { "node": ">=4" } @@ -11227,6 +11106,19 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -11461,6 +11353,7 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, "engines": { "node": ">=4" } @@ -11566,6 +11459,12 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", @@ -16455,16 +16354,6 @@ "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", "dev": true }, - "node_modules/js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -16589,6 +16478,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, "bin": { "jsesc": "bin/jsesc" }, @@ -16685,6 +16575,7 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "dev": true, "dependencies": { "array-includes": "^3.1.5", "object.assign": "^4.1.3" @@ -16721,12 +16612,14 @@ "node_modules/language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "dev": true }, "node_modules/language-tags": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "dev": true, "dependencies": { "language-subtag-registry": "~0.3.2" } @@ -16840,7 +16733,8 @@ "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "peer": true }, "node_modules/lodash.uniq": { "version": "4.5.0", @@ -18021,6 +17915,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -18055,6 +17950,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "dev": true, "dependencies": { "define-properties": "^1.1.4", "es-abstract": "^1.20.4" @@ -19895,6 +19791,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "peer": true, "engines": { "node": ">=0.4.0" } @@ -20656,14 +20553,14 @@ } }, "node_modules/react-scripts/node_modules/@eslint/eslintrc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", - "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.2", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -20982,13 +20879,15 @@ } }, "node_modules/react-scripts/node_modules/eslint": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", - "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz", + "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^2.0.0", - "@eslint/js": "8.35.0", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.41.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -20998,10 +20897,9 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -21009,13 +20907,12 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -21023,7 +20920,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -21125,9 +21021,9 @@ } }, "node_modules/react-scripts/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -21135,26 +21031,32 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/react-scripts/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/react-scripts/node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -22909,6 +22811,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -22925,6 +22828,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -22939,6 +22843,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -22949,7 +22854,8 @@ "node_modules/slice-ansi/node_modules/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==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true }, "node_modules/slick-carousel": { "version": "1.8.1", @@ -23338,7 +23244,8 @@ "node_modules/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==" + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", + "dev": true }, "node_modules/string-width": { "version": "4.2.3", @@ -23362,6 +23269,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -23704,6 +23612,7 @@ "version": "6.8.1", "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "peer": true, "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -23719,6 +23628,7 @@ "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -23733,7 +23643,8 @@ "node_modules/table/node_modules/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==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true }, "node_modules/tailwindcss": { "version": "3.2.7", @@ -24218,6 +24129,7 @@ "version": "3.14.2", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -24229,6 +24141,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, "dependencies": { "minimist": "^1.2.0" }, @@ -24240,6 +24153,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, "engines": { "node": ">=4" } @@ -24633,7 +24547,8 @@ "node_modules/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==" + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "peer": true }, "node_modules/v8-to-istanbul": { "version": "8.1.1", diff --git a/package.json b/package.json index 2c10fbd6..4e4ccbad 100644 --- a/package.json +++ b/package.json @@ -14,15 +14,6 @@ "bfj": "^7.0.2", "bootstrap": "^4.6.0", "camelcase": "^6.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", "form-data": "^4.0.0", "fs-extra": "^9.0.1", "identity-obj-proxy": "3.0.0", diff --git a/src/App.js b/src/App.js index 432bc36f..609e416d 100644 --- a/src/App.js +++ b/src/App.js @@ -12,11 +12,11 @@ import Home from "./pages/Home/Home"; import Candidate from "./components/Candidate/Candidate"; import Calendar from "./components/Calendar/Calendar"; import ReportForm from "./components/ReportForm/ReportForm"; -import FreeDevelopers from "./components/UI/FreeDevelopers/FreeDevelopers"; -import { TicketFullScreen } from "./components/UI/TicketFullScreen/TicketFullScreen"; +import FreeDevelopers from "./components/FreeDevelopers/FreeDevelopers"; +import { TicketFullScreen } from "./components/Modal/Tracker/TicketFullScreen/TicketFullScreen"; import { ProfileCalendar } from "./components/ProfileCalendar/ProfileCalendar"; import Article from "./pages/Article/Article"; -import FormPage from "./pages/FormPage/FormPage.js"; +import FormPage from "./pages/FormPage/FormPage"; import SingleReportPage from "./pages/SingleReportPage/SingleReportPage"; import { QuizPage } from "./pages/quiz/QuizPage"; import { QuizReportPage } from "./pages/quiz/QuizReportPage"; @@ -42,7 +42,7 @@ import { FrequentlyAskedQuestions } from "./pages/FrequentlyAskedQuestions/Frequ import { FrequentlyAskedQuestion } from "./pages/FrequentlyAskedQuestion/FrequentlyAskedQuestion"; import "./assets/global.scss"; -import "./fonts/stylesheet.css"; +import "./assets/fonts/stylesheet.css"; import "bootstrap/dist/css/bootstrap.min.css"; const App = () => { diff --git a/src/api/request.js b/src/api/request.js index 4b40d8b1..9d4ed184 100644 --- a/src/api/request.js +++ b/src/api/request.js @@ -1,7 +1,5 @@ -import axios from 'axios'; -import {getToken, urlHasParams} from "../helper"; - - +import axios from "axios"; +import { getToken, urlHasParams } from "@utils/helper"; const instance = axios.create({ baseURL: process.env.REACT_APP_API_URL, @@ -10,40 +8,47 @@ const instance = axios.create({ }, }); -export const apiRequest = (url, { - method = 'get', params, data, - headers = { - 'Access-Control-Allow-Origin': '*', - 'Content-Type': 'application/json' - }, -} = {}) => { - const fullHeaders = {...headers, ...getToken()}; +export const apiRequest = ( + url, + { + method = "get", + params, + data, + headers = { + "Access-Control-Allow-Origin": "*", + "Content-Type": "application/json", + }, + } = {} +) => { + const fullHeaders = { ...headers, ...getToken() }; let urWithParams = urlHasParams(url); - return instance - .request({ - url: urWithParams, - method, - params, - data, - headers: {...fullHeaders}, - }) - .then(response => new Promise(resolve => { - if (response.data.redirect || response.status === 401) { - window.location.replace('/auth'); - localStorage.clear(); - // dispatch(auth(false)); - } - return resolve(response) - })) - .then(response => new Promise(resolve => resolve(response.data))) + .request({ + url: urWithParams, + method, + params, + data, + headers: { ...fullHeaders }, + }) + .then( + (response) => + new Promise((resolve) => { + if (response.data.redirect || response.status === 401) { + window.location.replace("/auth"); + localStorage.clear(); + // dispatch(auth(false)); + } + return resolve(response); + }) + ) + .then((response) => new Promise((resolve) => resolve(response.data))); }; const RequestError = (code, msg, data) => { - const description = msg ? `- ${msg}` : ''; + const description = msg ? `- ${msg}` : ""; - this.name = 'RequestError'; + this.name = "RequestError"; this.message = `API returned: ${code}${description}.`; this.code = code; this.description = msg; diff --git a/src/fonts/BasierCircle-Regular.ttf b/src/assets/fonts/BasierCircle-Regular.ttf similarity index 100% rename from src/fonts/BasierCircle-Regular.ttf rename to src/assets/fonts/BasierCircle-Regular.ttf diff --git a/src/fonts/BasierCircle-Regular.woff b/src/assets/fonts/BasierCircle-Regular.woff similarity index 100% rename from src/fonts/BasierCircle-Regular.woff rename to src/assets/fonts/BasierCircle-Regular.woff diff --git a/src/fonts/BasierCircle-Regular.woff2 b/src/assets/fonts/BasierCircle-Regular.woff2 similarity index 100% rename from src/fonts/BasierCircle-Regular.woff2 rename to src/assets/fonts/BasierCircle-Regular.woff2 diff --git a/src/fonts/CeraPro-Bold.ttf b/src/assets/fonts/CeraPro-Bold.ttf similarity index 100% rename from src/fonts/CeraPro-Bold.ttf rename to src/assets/fonts/CeraPro-Bold.ttf diff --git a/src/fonts/CeraPro-Bold.woff b/src/assets/fonts/CeraPro-Bold.woff similarity index 100% rename from src/fonts/CeraPro-Bold.woff rename to src/assets/fonts/CeraPro-Bold.woff diff --git a/src/fonts/CeraPro-Bold.woff2 b/src/assets/fonts/CeraPro-Bold.woff2 similarity index 100% rename from src/fonts/CeraPro-Bold.woff2 rename to src/assets/fonts/CeraPro-Bold.woff2 diff --git a/src/fonts/GTEestiProDisplay-Bold.eot b/src/assets/fonts/GTEestiProDisplay-Bold.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-Bold.eot rename to src/assets/fonts/GTEestiProDisplay-Bold.eot diff --git a/src/fonts/GTEestiProDisplay-Bold.ttf b/src/assets/fonts/GTEestiProDisplay-Bold.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-Bold.ttf rename to src/assets/fonts/GTEestiProDisplay-Bold.ttf diff --git a/src/fonts/GTEestiProDisplay-Bold.woff b/src/assets/fonts/GTEestiProDisplay-Bold.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-Bold.woff rename to src/assets/fonts/GTEestiProDisplay-Bold.woff diff --git a/src/fonts/GTEestiProDisplay-Bold.woff2 b/src/assets/fonts/GTEestiProDisplay-Bold.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-Bold.woff2 rename to src/assets/fonts/GTEestiProDisplay-Bold.woff2 diff --git a/src/fonts/GTEestiProDisplay-BoldItalic.eot b/src/assets/fonts/GTEestiProDisplay-BoldItalic.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-BoldItalic.eot rename to src/assets/fonts/GTEestiProDisplay-BoldItalic.eot diff --git a/src/fonts/GTEestiProDisplay-BoldItalic.ttf b/src/assets/fonts/GTEestiProDisplay-BoldItalic.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-BoldItalic.ttf rename to src/assets/fonts/GTEestiProDisplay-BoldItalic.ttf diff --git a/src/fonts/GTEestiProDisplay-BoldItalic.woff b/src/assets/fonts/GTEestiProDisplay-BoldItalic.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-BoldItalic.woff rename to src/assets/fonts/GTEestiProDisplay-BoldItalic.woff diff --git a/src/fonts/GTEestiProDisplay-BoldItalic.woff2 b/src/assets/fonts/GTEestiProDisplay-BoldItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-BoldItalic.woff2 rename to src/assets/fonts/GTEestiProDisplay-BoldItalic.woff2 diff --git a/src/fonts/GTEestiProDisplay-Light.eot b/src/assets/fonts/GTEestiProDisplay-Light.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-Light.eot rename to src/assets/fonts/GTEestiProDisplay-Light.eot diff --git a/src/fonts/GTEestiProDisplay-Light.ttf b/src/assets/fonts/GTEestiProDisplay-Light.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-Light.ttf rename to src/assets/fonts/GTEestiProDisplay-Light.ttf diff --git a/src/fonts/GTEestiProDisplay-Light.woff b/src/assets/fonts/GTEestiProDisplay-Light.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-Light.woff rename to src/assets/fonts/GTEestiProDisplay-Light.woff diff --git a/src/fonts/GTEestiProDisplay-Light.woff2 b/src/assets/fonts/GTEestiProDisplay-Light.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-Light.woff2 rename to src/assets/fonts/GTEestiProDisplay-Light.woff2 diff --git a/src/fonts/GTEestiProDisplay-LightItalic.eot b/src/assets/fonts/GTEestiProDisplay-LightItalic.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-LightItalic.eot rename to src/assets/fonts/GTEestiProDisplay-LightItalic.eot diff --git a/src/fonts/GTEestiProDisplay-LightItalic.ttf b/src/assets/fonts/GTEestiProDisplay-LightItalic.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-LightItalic.ttf rename to src/assets/fonts/GTEestiProDisplay-LightItalic.ttf diff --git a/src/fonts/GTEestiProDisplay-LightItalic.woff b/src/assets/fonts/GTEestiProDisplay-LightItalic.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-LightItalic.woff rename to src/assets/fonts/GTEestiProDisplay-LightItalic.woff diff --git a/src/fonts/GTEestiProDisplay-LightItalic.woff2 b/src/assets/fonts/GTEestiProDisplay-LightItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-LightItalic.woff2 rename to src/assets/fonts/GTEestiProDisplay-LightItalic.woff2 diff --git a/src/fonts/GTEestiProDisplay-Medium.eot b/src/assets/fonts/GTEestiProDisplay-Medium.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-Medium.eot rename to src/assets/fonts/GTEestiProDisplay-Medium.eot diff --git a/src/fonts/GTEestiProDisplay-Medium.ttf b/src/assets/fonts/GTEestiProDisplay-Medium.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-Medium.ttf rename to src/assets/fonts/GTEestiProDisplay-Medium.ttf diff --git a/src/fonts/GTEestiProDisplay-Medium.woff b/src/assets/fonts/GTEestiProDisplay-Medium.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-Medium.woff rename to src/assets/fonts/GTEestiProDisplay-Medium.woff diff --git a/src/fonts/GTEestiProDisplay-Medium.woff2 b/src/assets/fonts/GTEestiProDisplay-Medium.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-Medium.woff2 rename to src/assets/fonts/GTEestiProDisplay-Medium.woff2 diff --git a/src/fonts/GTEestiProDisplay-MediumItalic.eot b/src/assets/fonts/GTEestiProDisplay-MediumItalic.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-MediumItalic.eot rename to src/assets/fonts/GTEestiProDisplay-MediumItalic.eot diff --git a/src/fonts/GTEestiProDisplay-MediumItalic.ttf b/src/assets/fonts/GTEestiProDisplay-MediumItalic.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-MediumItalic.ttf rename to src/assets/fonts/GTEestiProDisplay-MediumItalic.ttf diff --git a/src/fonts/GTEestiProDisplay-MediumItalic.woff b/src/assets/fonts/GTEestiProDisplay-MediumItalic.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-MediumItalic.woff rename to src/assets/fonts/GTEestiProDisplay-MediumItalic.woff diff --git a/src/fonts/GTEestiProDisplay-MediumItalic.woff2 b/src/assets/fonts/GTEestiProDisplay-MediumItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-MediumItalic.woff2 rename to src/assets/fonts/GTEestiProDisplay-MediumItalic.woff2 diff --git a/src/fonts/GTEestiProDisplay-Regular.eot b/src/assets/fonts/GTEestiProDisplay-Regular.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-Regular.eot rename to src/assets/fonts/GTEestiProDisplay-Regular.eot diff --git a/src/fonts/GTEestiProDisplay-Regular.ttf b/src/assets/fonts/GTEestiProDisplay-Regular.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-Regular.ttf rename to src/assets/fonts/GTEestiProDisplay-Regular.ttf diff --git a/src/fonts/GTEestiProDisplay-Regular.woff b/src/assets/fonts/GTEestiProDisplay-Regular.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-Regular.woff rename to src/assets/fonts/GTEestiProDisplay-Regular.woff diff --git a/src/fonts/GTEestiProDisplay-Regular.woff2 b/src/assets/fonts/GTEestiProDisplay-Regular.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-Regular.woff2 rename to src/assets/fonts/GTEestiProDisplay-Regular.woff2 diff --git a/src/fonts/GTEestiProDisplay-RegularItalic.eot b/src/assets/fonts/GTEestiProDisplay-RegularItalic.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-RegularItalic.eot rename to src/assets/fonts/GTEestiProDisplay-RegularItalic.eot diff --git a/src/fonts/GTEestiProDisplay-RegularItalic.ttf b/src/assets/fonts/GTEestiProDisplay-RegularItalic.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-RegularItalic.ttf rename to src/assets/fonts/GTEestiProDisplay-RegularItalic.ttf diff --git a/src/fonts/GTEestiProDisplay-RegularItalic.woff b/src/assets/fonts/GTEestiProDisplay-RegularItalic.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-RegularItalic.woff rename to src/assets/fonts/GTEestiProDisplay-RegularItalic.woff diff --git a/src/fonts/GTEestiProDisplay-RegularItalic.woff2 b/src/assets/fonts/GTEestiProDisplay-RegularItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-RegularItalic.woff2 rename to src/assets/fonts/GTEestiProDisplay-RegularItalic.woff2 diff --git a/src/fonts/GTEestiProDisplay-Thin.eot b/src/assets/fonts/GTEestiProDisplay-Thin.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-Thin.eot rename to src/assets/fonts/GTEestiProDisplay-Thin.eot diff --git a/src/fonts/GTEestiProDisplay-Thin.ttf b/src/assets/fonts/GTEestiProDisplay-Thin.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-Thin.ttf rename to src/assets/fonts/GTEestiProDisplay-Thin.ttf diff --git a/src/fonts/GTEestiProDisplay-Thin.woff b/src/assets/fonts/GTEestiProDisplay-Thin.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-Thin.woff rename to src/assets/fonts/GTEestiProDisplay-Thin.woff diff --git a/src/fonts/GTEestiProDisplay-Thin.woff2 b/src/assets/fonts/GTEestiProDisplay-Thin.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-Thin.woff2 rename to src/assets/fonts/GTEestiProDisplay-Thin.woff2 diff --git a/src/fonts/GTEestiProDisplay-ThinItalic.eot b/src/assets/fonts/GTEestiProDisplay-ThinItalic.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-ThinItalic.eot rename to src/assets/fonts/GTEestiProDisplay-ThinItalic.eot diff --git a/src/fonts/GTEestiProDisplay-ThinItalic.ttf b/src/assets/fonts/GTEestiProDisplay-ThinItalic.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-ThinItalic.ttf rename to src/assets/fonts/GTEestiProDisplay-ThinItalic.ttf diff --git a/src/fonts/GTEestiProDisplay-ThinItalic.woff b/src/assets/fonts/GTEestiProDisplay-ThinItalic.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-ThinItalic.woff rename to src/assets/fonts/GTEestiProDisplay-ThinItalic.woff diff --git a/src/fonts/GTEestiProDisplay-ThinItalic.woff2 b/src/assets/fonts/GTEestiProDisplay-ThinItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-ThinItalic.woff2 rename to src/assets/fonts/GTEestiProDisplay-ThinItalic.woff2 diff --git a/src/fonts/GTEestiProDisplay-UltraBold.eot b/src/assets/fonts/GTEestiProDisplay-UltraBold.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraBold.eot rename to src/assets/fonts/GTEestiProDisplay-UltraBold.eot diff --git a/src/fonts/GTEestiProDisplay-UltraBold.ttf b/src/assets/fonts/GTEestiProDisplay-UltraBold.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraBold.ttf rename to src/assets/fonts/GTEestiProDisplay-UltraBold.ttf diff --git a/src/fonts/GTEestiProDisplay-UltraBold.woff b/src/assets/fonts/GTEestiProDisplay-UltraBold.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraBold.woff rename to src/assets/fonts/GTEestiProDisplay-UltraBold.woff diff --git a/src/fonts/GTEestiProDisplay-UltraBold.woff2 b/src/assets/fonts/GTEestiProDisplay-UltraBold.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraBold.woff2 rename to src/assets/fonts/GTEestiProDisplay-UltraBold.woff2 diff --git a/src/fonts/GTEestiProDisplay-UltraBoldItalic.eot b/src/assets/fonts/GTEestiProDisplay-UltraBoldItalic.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraBoldItalic.eot rename to src/assets/fonts/GTEestiProDisplay-UltraBoldItalic.eot diff --git a/src/fonts/GTEestiProDisplay-UltraBoldItalic.ttf b/src/assets/fonts/GTEestiProDisplay-UltraBoldItalic.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraBoldItalic.ttf rename to src/assets/fonts/GTEestiProDisplay-UltraBoldItalic.ttf diff --git a/src/fonts/GTEestiProDisplay-UltraBoldItalic.woff b/src/assets/fonts/GTEestiProDisplay-UltraBoldItalic.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraBoldItalic.woff rename to src/assets/fonts/GTEestiProDisplay-UltraBoldItalic.woff diff --git a/src/fonts/GTEestiProDisplay-UltraBoldItalic.woff2 b/src/assets/fonts/GTEestiProDisplay-UltraBoldItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraBoldItalic.woff2 rename to src/assets/fonts/GTEestiProDisplay-UltraBoldItalic.woff2 diff --git a/src/fonts/GTEestiProDisplay-UltraLight.eot b/src/assets/fonts/GTEestiProDisplay-UltraLight.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraLight.eot rename to src/assets/fonts/GTEestiProDisplay-UltraLight.eot diff --git a/src/fonts/GTEestiProDisplay-UltraLight.ttf b/src/assets/fonts/GTEestiProDisplay-UltraLight.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraLight.ttf rename to src/assets/fonts/GTEestiProDisplay-UltraLight.ttf diff --git a/src/fonts/GTEestiProDisplay-UltraLight.woff b/src/assets/fonts/GTEestiProDisplay-UltraLight.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraLight.woff rename to src/assets/fonts/GTEestiProDisplay-UltraLight.woff diff --git a/src/fonts/GTEestiProDisplay-UltraLight.woff2 b/src/assets/fonts/GTEestiProDisplay-UltraLight.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraLight.woff2 rename to src/assets/fonts/GTEestiProDisplay-UltraLight.woff2 diff --git a/src/fonts/GTEestiProDisplay-UltraLightItalic.eot b/src/assets/fonts/GTEestiProDisplay-UltraLightItalic.eot similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraLightItalic.eot rename to src/assets/fonts/GTEestiProDisplay-UltraLightItalic.eot diff --git a/src/fonts/GTEestiProDisplay-UltraLightItalic.ttf b/src/assets/fonts/GTEestiProDisplay-UltraLightItalic.ttf similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraLightItalic.ttf rename to src/assets/fonts/GTEestiProDisplay-UltraLightItalic.ttf diff --git a/src/fonts/GTEestiProDisplay-UltraLightItalic.woff b/src/assets/fonts/GTEestiProDisplay-UltraLightItalic.woff similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraLightItalic.woff rename to src/assets/fonts/GTEestiProDisplay-UltraLightItalic.woff diff --git a/src/fonts/GTEestiProDisplay-UltraLightItalic.woff2 b/src/assets/fonts/GTEestiProDisplay-UltraLightItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProDisplay-UltraLightItalic.woff2 rename to src/assets/fonts/GTEestiProDisplay-UltraLightItalic.woff2 diff --git a/src/fonts/GTEestiProText-Bold.eot b/src/assets/fonts/GTEestiProText-Bold.eot similarity index 100% rename from src/fonts/GTEestiProText-Bold.eot rename to src/assets/fonts/GTEestiProText-Bold.eot diff --git a/src/fonts/GTEestiProText-Bold.ttf b/src/assets/fonts/GTEestiProText-Bold.ttf similarity index 100% rename from src/fonts/GTEestiProText-Bold.ttf rename to src/assets/fonts/GTEestiProText-Bold.ttf diff --git a/src/fonts/GTEestiProText-Bold.woff b/src/assets/fonts/GTEestiProText-Bold.woff similarity index 100% rename from src/fonts/GTEestiProText-Bold.woff rename to src/assets/fonts/GTEestiProText-Bold.woff diff --git a/src/fonts/GTEestiProText-Bold.woff2 b/src/assets/fonts/GTEestiProText-Bold.woff2 similarity index 100% rename from src/fonts/GTEestiProText-Bold.woff2 rename to src/assets/fonts/GTEestiProText-Bold.woff2 diff --git a/src/fonts/GTEestiProText-BoldItalic.eot b/src/assets/fonts/GTEestiProText-BoldItalic.eot similarity index 100% rename from src/fonts/GTEestiProText-BoldItalic.eot rename to src/assets/fonts/GTEestiProText-BoldItalic.eot diff --git a/src/fonts/GTEestiProText-BoldItalic.ttf b/src/assets/fonts/GTEestiProText-BoldItalic.ttf similarity index 100% rename from src/fonts/GTEestiProText-BoldItalic.ttf rename to src/assets/fonts/GTEestiProText-BoldItalic.ttf diff --git a/src/fonts/GTEestiProText-BoldItalic.woff b/src/assets/fonts/GTEestiProText-BoldItalic.woff similarity index 100% rename from src/fonts/GTEestiProText-BoldItalic.woff rename to src/assets/fonts/GTEestiProText-BoldItalic.woff diff --git a/src/fonts/GTEestiProText-BoldItalic.woff2 b/src/assets/fonts/GTEestiProText-BoldItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProText-BoldItalic.woff2 rename to src/assets/fonts/GTEestiProText-BoldItalic.woff2 diff --git a/src/fonts/GTEestiProText-Book.eot b/src/assets/fonts/GTEestiProText-Book.eot similarity index 100% rename from src/fonts/GTEestiProText-Book.eot rename to src/assets/fonts/GTEestiProText-Book.eot diff --git a/src/fonts/GTEestiProText-Book.ttf b/src/assets/fonts/GTEestiProText-Book.ttf similarity index 100% rename from src/fonts/GTEestiProText-Book.ttf rename to src/assets/fonts/GTEestiProText-Book.ttf diff --git a/src/fonts/GTEestiProText-Book.woff b/src/assets/fonts/GTEestiProText-Book.woff similarity index 100% rename from src/fonts/GTEestiProText-Book.woff rename to src/assets/fonts/GTEestiProText-Book.woff diff --git a/src/fonts/GTEestiProText-Book.woff2 b/src/assets/fonts/GTEestiProText-Book.woff2 similarity index 100% rename from src/fonts/GTEestiProText-Book.woff2 rename to src/assets/fonts/GTEestiProText-Book.woff2 diff --git a/src/fonts/GTEestiProText-BookItalic.eot b/src/assets/fonts/GTEestiProText-BookItalic.eot similarity index 100% rename from src/fonts/GTEestiProText-BookItalic.eot rename to src/assets/fonts/GTEestiProText-BookItalic.eot diff --git a/src/fonts/GTEestiProText-BookItalic.ttf b/src/assets/fonts/GTEestiProText-BookItalic.ttf similarity index 100% rename from src/fonts/GTEestiProText-BookItalic.ttf rename to src/assets/fonts/GTEestiProText-BookItalic.ttf diff --git a/src/fonts/GTEestiProText-BookItalic.woff b/src/assets/fonts/GTEestiProText-BookItalic.woff similarity index 100% rename from src/fonts/GTEestiProText-BookItalic.woff rename to src/assets/fonts/GTEestiProText-BookItalic.woff diff --git a/src/fonts/GTEestiProText-BookItalic.woff2 b/src/assets/fonts/GTEestiProText-BookItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProText-BookItalic.woff2 rename to src/assets/fonts/GTEestiProText-BookItalic.woff2 diff --git a/src/fonts/GTEestiProText-Light.eot b/src/assets/fonts/GTEestiProText-Light.eot similarity index 100% rename from src/fonts/GTEestiProText-Light.eot rename to src/assets/fonts/GTEestiProText-Light.eot diff --git a/src/fonts/GTEestiProText-Light.ttf b/src/assets/fonts/GTEestiProText-Light.ttf similarity index 100% rename from src/fonts/GTEestiProText-Light.ttf rename to src/assets/fonts/GTEestiProText-Light.ttf diff --git a/src/fonts/GTEestiProText-Light.woff b/src/assets/fonts/GTEestiProText-Light.woff similarity index 100% rename from src/fonts/GTEestiProText-Light.woff rename to src/assets/fonts/GTEestiProText-Light.woff diff --git a/src/fonts/GTEestiProText-Light.woff2 b/src/assets/fonts/GTEestiProText-Light.woff2 similarity index 100% rename from src/fonts/GTEestiProText-Light.woff2 rename to src/assets/fonts/GTEestiProText-Light.woff2 diff --git a/src/fonts/GTEestiProText-LightItalic.eot b/src/assets/fonts/GTEestiProText-LightItalic.eot similarity index 100% rename from src/fonts/GTEestiProText-LightItalic.eot rename to src/assets/fonts/GTEestiProText-LightItalic.eot diff --git a/src/fonts/GTEestiProText-LightItalic.ttf b/src/assets/fonts/GTEestiProText-LightItalic.ttf similarity index 100% rename from src/fonts/GTEestiProText-LightItalic.ttf rename to src/assets/fonts/GTEestiProText-LightItalic.ttf diff --git a/src/fonts/GTEestiProText-LightItalic.woff b/src/assets/fonts/GTEestiProText-LightItalic.woff similarity index 100% rename from src/fonts/GTEestiProText-LightItalic.woff rename to src/assets/fonts/GTEestiProText-LightItalic.woff diff --git a/src/fonts/GTEestiProText-LightItalic.woff2 b/src/assets/fonts/GTEestiProText-LightItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProText-LightItalic.woff2 rename to src/assets/fonts/GTEestiProText-LightItalic.woff2 diff --git a/src/fonts/GTEestiProText-Medium.eot b/src/assets/fonts/GTEestiProText-Medium.eot similarity index 100% rename from src/fonts/GTEestiProText-Medium.eot rename to src/assets/fonts/GTEestiProText-Medium.eot diff --git a/src/fonts/GTEestiProText-Medium.ttf b/src/assets/fonts/GTEestiProText-Medium.ttf similarity index 100% rename from src/fonts/GTEestiProText-Medium.ttf rename to src/assets/fonts/GTEestiProText-Medium.ttf diff --git a/src/fonts/GTEestiProText-Medium.woff b/src/assets/fonts/GTEestiProText-Medium.woff similarity index 100% rename from src/fonts/GTEestiProText-Medium.woff rename to src/assets/fonts/GTEestiProText-Medium.woff diff --git a/src/fonts/GTEestiProText-Medium.woff2 b/src/assets/fonts/GTEestiProText-Medium.woff2 similarity index 100% rename from src/fonts/GTEestiProText-Medium.woff2 rename to src/assets/fonts/GTEestiProText-Medium.woff2 diff --git a/src/fonts/GTEestiProText-MediumItalic.eot b/src/assets/fonts/GTEestiProText-MediumItalic.eot similarity index 100% rename from src/fonts/GTEestiProText-MediumItalic.eot rename to src/assets/fonts/GTEestiProText-MediumItalic.eot diff --git a/src/fonts/GTEestiProText-MediumItalic.ttf b/src/assets/fonts/GTEestiProText-MediumItalic.ttf similarity index 100% rename from src/fonts/GTEestiProText-MediumItalic.ttf rename to src/assets/fonts/GTEestiProText-MediumItalic.ttf diff --git a/src/fonts/GTEestiProText-MediumItalic.woff b/src/assets/fonts/GTEestiProText-MediumItalic.woff similarity index 100% rename from src/fonts/GTEestiProText-MediumItalic.woff rename to src/assets/fonts/GTEestiProText-MediumItalic.woff diff --git a/src/fonts/GTEestiProText-MediumItalic.woff2 b/src/assets/fonts/GTEestiProText-MediumItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProText-MediumItalic.woff2 rename to src/assets/fonts/GTEestiProText-MediumItalic.woff2 diff --git a/src/fonts/GTEestiProText-Regular.eot b/src/assets/fonts/GTEestiProText-Regular.eot similarity index 100% rename from src/fonts/GTEestiProText-Regular.eot rename to src/assets/fonts/GTEestiProText-Regular.eot diff --git a/src/fonts/GTEestiProText-Regular.ttf b/src/assets/fonts/GTEestiProText-Regular.ttf similarity index 100% rename from src/fonts/GTEestiProText-Regular.ttf rename to src/assets/fonts/GTEestiProText-Regular.ttf diff --git a/src/fonts/GTEestiProText-Regular.woff b/src/assets/fonts/GTEestiProText-Regular.woff similarity index 100% rename from src/fonts/GTEestiProText-Regular.woff rename to src/assets/fonts/GTEestiProText-Regular.woff diff --git a/src/fonts/GTEestiProText-Regular.woff2 b/src/assets/fonts/GTEestiProText-Regular.woff2 similarity index 100% rename from src/fonts/GTEestiProText-Regular.woff2 rename to src/assets/fonts/GTEestiProText-Regular.woff2 diff --git a/src/fonts/GTEestiProText-RegularItalic.eot b/src/assets/fonts/GTEestiProText-RegularItalic.eot similarity index 100% rename from src/fonts/GTEestiProText-RegularItalic.eot rename to src/assets/fonts/GTEestiProText-RegularItalic.eot diff --git a/src/fonts/GTEestiProText-RegularItalic.ttf b/src/assets/fonts/GTEestiProText-RegularItalic.ttf similarity index 100% rename from src/fonts/GTEestiProText-RegularItalic.ttf rename to src/assets/fonts/GTEestiProText-RegularItalic.ttf diff --git a/src/fonts/GTEestiProText-RegularItalic.woff b/src/assets/fonts/GTEestiProText-RegularItalic.woff similarity index 100% rename from src/fonts/GTEestiProText-RegularItalic.woff rename to src/assets/fonts/GTEestiProText-RegularItalic.woff diff --git a/src/fonts/GTEestiProText-RegularItalic.woff2 b/src/assets/fonts/GTEestiProText-RegularItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProText-RegularItalic.woff2 rename to src/assets/fonts/GTEestiProText-RegularItalic.woff2 diff --git a/src/fonts/GTEestiProText-Thin.eot b/src/assets/fonts/GTEestiProText-Thin.eot similarity index 100% rename from src/fonts/GTEestiProText-Thin.eot rename to src/assets/fonts/GTEestiProText-Thin.eot diff --git a/src/fonts/GTEestiProText-Thin.ttf b/src/assets/fonts/GTEestiProText-Thin.ttf similarity index 100% rename from src/fonts/GTEestiProText-Thin.ttf rename to src/assets/fonts/GTEestiProText-Thin.ttf diff --git a/src/fonts/GTEestiProText-Thin.woff b/src/assets/fonts/GTEestiProText-Thin.woff similarity index 100% rename from src/fonts/GTEestiProText-Thin.woff rename to src/assets/fonts/GTEestiProText-Thin.woff diff --git a/src/fonts/GTEestiProText-Thin.woff2 b/src/assets/fonts/GTEestiProText-Thin.woff2 similarity index 100% rename from src/fonts/GTEestiProText-Thin.woff2 rename to src/assets/fonts/GTEestiProText-Thin.woff2 diff --git a/src/fonts/GTEestiProText-ThinItalic.eot b/src/assets/fonts/GTEestiProText-ThinItalic.eot similarity index 100% rename from src/fonts/GTEestiProText-ThinItalic.eot rename to src/assets/fonts/GTEestiProText-ThinItalic.eot diff --git a/src/fonts/GTEestiProText-ThinItalic.ttf b/src/assets/fonts/GTEestiProText-ThinItalic.ttf similarity index 100% rename from src/fonts/GTEestiProText-ThinItalic.ttf rename to src/assets/fonts/GTEestiProText-ThinItalic.ttf diff --git a/src/fonts/GTEestiProText-ThinItalic.woff b/src/assets/fonts/GTEestiProText-ThinItalic.woff similarity index 100% rename from src/fonts/GTEestiProText-ThinItalic.woff rename to src/assets/fonts/GTEestiProText-ThinItalic.woff diff --git a/src/fonts/GTEestiProText-ThinItalic.woff2 b/src/assets/fonts/GTEestiProText-ThinItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProText-ThinItalic.woff2 rename to src/assets/fonts/GTEestiProText-ThinItalic.woff2 diff --git a/src/fonts/GTEestiProText-UltraLight.eot b/src/assets/fonts/GTEestiProText-UltraLight.eot similarity index 100% rename from src/fonts/GTEestiProText-UltraLight.eot rename to src/assets/fonts/GTEestiProText-UltraLight.eot diff --git a/src/fonts/GTEestiProText-UltraLight.ttf b/src/assets/fonts/GTEestiProText-UltraLight.ttf similarity index 100% rename from src/fonts/GTEestiProText-UltraLight.ttf rename to src/assets/fonts/GTEestiProText-UltraLight.ttf diff --git a/src/fonts/GTEestiProText-UltraLight.woff b/src/assets/fonts/GTEestiProText-UltraLight.woff similarity index 100% rename from src/fonts/GTEestiProText-UltraLight.woff rename to src/assets/fonts/GTEestiProText-UltraLight.woff diff --git a/src/fonts/GTEestiProText-UltraLight.woff2 b/src/assets/fonts/GTEestiProText-UltraLight.woff2 similarity index 100% rename from src/fonts/GTEestiProText-UltraLight.woff2 rename to src/assets/fonts/GTEestiProText-UltraLight.woff2 diff --git a/src/fonts/GTEestiProText-UltraLightItalic.eot b/src/assets/fonts/GTEestiProText-UltraLightItalic.eot similarity index 100% rename from src/fonts/GTEestiProText-UltraLightItalic.eot rename to src/assets/fonts/GTEestiProText-UltraLightItalic.eot diff --git a/src/fonts/GTEestiProText-UltraLightItalic.ttf b/src/assets/fonts/GTEestiProText-UltraLightItalic.ttf similarity index 100% rename from src/fonts/GTEestiProText-UltraLightItalic.ttf rename to src/assets/fonts/GTEestiProText-UltraLightItalic.ttf diff --git a/src/fonts/GTEestiProText-UltraLightItalic.woff b/src/assets/fonts/GTEestiProText-UltraLightItalic.woff similarity index 100% rename from src/fonts/GTEestiProText-UltraLightItalic.woff rename to src/assets/fonts/GTEestiProText-UltraLightItalic.woff diff --git a/src/fonts/GTEestiProText-UltraLightItalic.woff2 b/src/assets/fonts/GTEestiProText-UltraLightItalic.woff2 similarity index 100% rename from src/fonts/GTEestiProText-UltraLightItalic.woff2 rename to src/assets/fonts/GTEestiProText-UltraLightItalic.woff2 diff --git a/src/fonts/LabGrotesque-Bold.eot b/src/assets/fonts/LabGrotesque-Bold.eot similarity index 100% rename from src/fonts/LabGrotesque-Bold.eot rename to src/assets/fonts/LabGrotesque-Bold.eot diff --git a/src/fonts/LabGrotesque-Bold.ttf b/src/assets/fonts/LabGrotesque-Bold.ttf similarity index 100% rename from src/fonts/LabGrotesque-Bold.ttf rename to src/assets/fonts/LabGrotesque-Bold.ttf diff --git a/src/fonts/LabGrotesque-Bold.woff b/src/assets/fonts/LabGrotesque-Bold.woff similarity index 100% rename from src/fonts/LabGrotesque-Bold.woff rename to src/assets/fonts/LabGrotesque-Bold.woff diff --git a/src/fonts/LabGrotesque-Bold.woff2 b/src/assets/fonts/LabGrotesque-Bold.woff2 similarity index 100% rename from src/fonts/LabGrotesque-Bold.woff2 rename to src/assets/fonts/LabGrotesque-Bold.woff2 diff --git a/src/fonts/LabGrotesque-Light.eot b/src/assets/fonts/LabGrotesque-Light.eot similarity index 100% rename from src/fonts/LabGrotesque-Light.eot rename to src/assets/fonts/LabGrotesque-Light.eot diff --git a/src/fonts/LabGrotesque-Light.ttf b/src/assets/fonts/LabGrotesque-Light.ttf similarity index 100% rename from src/fonts/LabGrotesque-Light.ttf rename to src/assets/fonts/LabGrotesque-Light.ttf diff --git a/src/fonts/LabGrotesque-Light.woff b/src/assets/fonts/LabGrotesque-Light.woff similarity index 100% rename from src/fonts/LabGrotesque-Light.woff rename to src/assets/fonts/LabGrotesque-Light.woff diff --git a/src/fonts/LabGrotesque-Light.woff2 b/src/assets/fonts/LabGrotesque-Light.woff2 similarity index 100% rename from src/fonts/LabGrotesque-Light.woff2 rename to src/assets/fonts/LabGrotesque-Light.woff2 diff --git a/src/fonts/LabGrotesque-Medium.eot b/src/assets/fonts/LabGrotesque-Medium.eot similarity index 100% rename from src/fonts/LabGrotesque-Medium.eot rename to src/assets/fonts/LabGrotesque-Medium.eot diff --git a/src/fonts/LabGrotesque-Medium.ttf b/src/assets/fonts/LabGrotesque-Medium.ttf similarity index 100% rename from src/fonts/LabGrotesque-Medium.ttf rename to src/assets/fonts/LabGrotesque-Medium.ttf diff --git a/src/fonts/LabGrotesque-Medium.woff b/src/assets/fonts/LabGrotesque-Medium.woff similarity index 100% rename from src/fonts/LabGrotesque-Medium.woff rename to src/assets/fonts/LabGrotesque-Medium.woff diff --git a/src/fonts/LabGrotesque-Medium.woff2 b/src/assets/fonts/LabGrotesque-Medium.woff2 similarity index 100% rename from src/fonts/LabGrotesque-Medium.woff2 rename to src/assets/fonts/LabGrotesque-Medium.woff2 diff --git a/src/fonts/LabGrotesque-Regular.eot b/src/assets/fonts/LabGrotesque-Regular.eot similarity index 100% rename from src/fonts/LabGrotesque-Regular.eot rename to src/assets/fonts/LabGrotesque-Regular.eot diff --git a/src/fonts/LabGrotesque-Regular.ttf b/src/assets/fonts/LabGrotesque-Regular.ttf similarity index 100% rename from src/fonts/LabGrotesque-Regular.ttf rename to src/assets/fonts/LabGrotesque-Regular.ttf diff --git a/src/fonts/LabGrotesque-Regular.woff b/src/assets/fonts/LabGrotesque-Regular.woff similarity index 100% rename from src/fonts/LabGrotesque-Regular.woff rename to src/assets/fonts/LabGrotesque-Regular.woff diff --git a/src/fonts/LabGrotesque-Regular.woff2 b/src/assets/fonts/LabGrotesque-Regular.woff2 similarity index 100% rename from src/fonts/LabGrotesque-Regular.woff2 rename to src/assets/fonts/LabGrotesque-Regular.woff2 diff --git a/src/fonts/MullerBold.ttf b/src/assets/fonts/MullerBold.ttf similarity index 100% rename from src/fonts/MullerBold.ttf rename to src/assets/fonts/MullerBold.ttf diff --git a/src/fonts/MullerBold.woff b/src/assets/fonts/MullerBold.woff similarity index 100% rename from src/fonts/MullerBold.woff rename to src/assets/fonts/MullerBold.woff diff --git a/src/fonts/MullerBold.woff2 b/src/assets/fonts/MullerBold.woff2 similarity index 100% rename from src/fonts/MullerBold.woff2 rename to src/assets/fonts/MullerBold.woff2 diff --git a/src/fonts/MullerLight.ttf b/src/assets/fonts/MullerLight.ttf similarity index 100% rename from src/fonts/MullerLight.ttf rename to src/assets/fonts/MullerLight.ttf diff --git a/src/fonts/MullerLight.woff b/src/assets/fonts/MullerLight.woff similarity index 100% rename from src/fonts/MullerLight.woff rename to src/assets/fonts/MullerLight.woff diff --git a/src/fonts/MullerLight.woff2 b/src/assets/fonts/MullerLight.woff2 similarity index 100% rename from src/fonts/MullerLight.woff2 rename to src/assets/fonts/MullerLight.woff2 diff --git a/src/fonts/MullerRegular.ttf b/src/assets/fonts/MullerRegular.ttf similarity index 100% rename from src/fonts/MullerRegular.ttf rename to src/assets/fonts/MullerRegular.ttf diff --git a/src/fonts/MullerRegular.woff b/src/assets/fonts/MullerRegular.woff similarity index 100% rename from src/fonts/MullerRegular.woff rename to src/assets/fonts/MullerRegular.woff diff --git a/src/fonts/MullerRegular.woff2 b/src/assets/fonts/MullerRegular.woff2 similarity index 100% rename from src/fonts/MullerRegular.woff2 rename to src/assets/fonts/MullerRegular.woff2 diff --git a/src/fonts/muller_extrabold_demo.ttf b/src/assets/fonts/muller_extrabold_demo.ttf similarity index 100% rename from src/fonts/muller_extrabold_demo.ttf rename to src/assets/fonts/muller_extrabold_demo.ttf diff --git a/src/fonts/muller_extrabold_demo.woff b/src/assets/fonts/muller_extrabold_demo.woff similarity index 100% rename from src/fonts/muller_extrabold_demo.woff rename to src/assets/fonts/muller_extrabold_demo.woff diff --git a/src/fonts/muller_extrabold_demo.woff2 b/src/assets/fonts/muller_extrabold_demo.woff2 similarity index 100% rename from src/fonts/muller_extrabold_demo.woff2 rename to src/assets/fonts/muller_extrabold_demo.woff2 diff --git a/src/fonts/stylesheet.css b/src/assets/fonts/stylesheet.css similarity index 100% rename from src/fonts/stylesheet.css rename to src/assets/fonts/stylesheet.css diff --git a/src/pages/PartnerTreaties/Images/actTreaties.png b/src/assets/icons/actTreaties.png similarity index 100% rename from src/pages/PartnerTreaties/Images/actTreaties.png rename to src/assets/icons/actTreaties.png diff --git a/src/images/anyMoment.svg b/src/assets/icons/anyMoment.svg similarity index 100% rename from src/images/anyMoment.svg rename to src/assets/icons/anyMoment.svg diff --git a/src/images/archive.svg b/src/assets/icons/archive.svg similarity index 100% rename from src/images/archive.svg rename to src/assets/icons/archive.svg diff --git a/src/images/archiveTracker.svg b/src/assets/icons/archiveTracker.svg similarity index 100% rename from src/images/archiveTracker.svg rename to src/assets/icons/archiveTracker.svg diff --git a/src/images/ArrovLeftSlider.png b/src/assets/icons/arrows/ArrovLeftSlider.png similarity index 100% rename from src/images/ArrovLeftSlider.png rename to src/assets/icons/arrows/ArrovLeftSlider.png diff --git a/src/images/BreadcrumbsArrow.png b/src/assets/icons/arrows/BreadcrumbsArrow.png similarity index 100% rename from src/images/BreadcrumbsArrow.png rename to src/assets/icons/arrows/BreadcrumbsArrow.png diff --git a/src/images/arrowCalendar.png b/src/assets/icons/arrows/arrowCalendar.png similarity index 100% rename from src/images/arrowCalendar.png rename to src/assets/icons/arrows/arrowCalendar.png diff --git a/src/pages/PartnerTreaties/Images/arrowCheck.png b/src/assets/icons/arrows/arrowCheck.png similarity index 100% rename from src/pages/PartnerTreaties/Images/arrowCheck.png rename to src/assets/icons/arrows/arrowCheck.png diff --git a/src/pages/PartnerTreaties/Images/arrowDown.png b/src/assets/icons/arrows/arrowDown.png similarity index 100% rename from src/pages/PartnerTreaties/Images/arrowDown.png rename to src/assets/icons/arrows/arrowDown.png diff --git a/src/assets/icons/arrows/arrowRight.svg b/src/assets/icons/arrows/arrowRight.svg new file mode 100644 index 00000000..3ec09a0f --- /dev/null +++ b/src/assets/icons/arrows/arrowRight.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/images/arrowSelect.png b/src/assets/icons/arrows/arrowSelect.png similarity index 100% rename from src/images/arrowSelect.png rename to src/assets/icons/arrows/arrowSelect.png diff --git a/src/images/arrowStart.png b/src/assets/icons/arrows/arrowStart.png similarity index 100% rename from src/images/arrowStart.png rename to src/assets/icons/arrows/arrowStart.png diff --git a/src/images/arrowViewReport.png b/src/assets/icons/arrows/arrowViewReport.png similarity index 100% rename from src/images/arrowViewReport.png rename to src/assets/icons/arrows/arrowViewReport.png diff --git a/src/images/arrowViewReport.svg b/src/assets/icons/arrows/arrowViewReport.svg similarity index 100% rename from src/images/arrowViewReport.svg rename to src/assets/icons/arrows/arrowViewReport.svg diff --git a/src/images/arrow__login_page.png b/src/assets/icons/arrows/arrow__login_page.png similarity index 100% rename from src/images/arrow__login_page.png rename to src/assets/icons/arrows/arrow__login_page.png diff --git a/src/images/arrow_left.png b/src/assets/icons/arrows/arrow_left.png similarity index 100% rename from src/images/arrow_left.png rename to src/assets/icons/arrows/arrow_left.png diff --git a/src/images/arrow_right.png b/src/assets/icons/arrows/arrow_right.png similarity index 100% rename from src/images/arrow_right.png rename to src/assets/icons/arrows/arrow_right.png diff --git a/src/images/blogArrow.svg b/src/assets/icons/arrows/blogArrow.svg similarity index 100% rename from src/images/blogArrow.svg rename to src/assets/icons/arrows/blogArrow.svg diff --git a/src/images/dateArrow.svg b/src/assets/icons/arrows/dateArrow.svg similarity index 100% rename from src/images/dateArrow.svg rename to src/assets/icons/arrows/dateArrow.svg diff --git a/src/images/inFullScreen.svg b/src/assets/icons/arrows/inFullScreen.svg similarity index 100% rename from src/images/inFullScreen.svg rename to src/assets/icons/arrows/inFullScreen.svg diff --git a/src/images/right-arrow.png b/src/assets/icons/arrows/left-arrow.png similarity index 100% rename from src/images/right-arrow.png rename to src/assets/icons/arrows/left-arrow.png diff --git a/src/images/select.svg b/src/assets/icons/arrows/select.svg similarity index 100% rename from src/images/select.svg rename to src/assets/icons/arrows/select.svg diff --git a/src/images/selectArrow.png b/src/assets/icons/arrows/selectArrow.png similarity index 100% rename from src/images/selectArrow.png rename to src/assets/icons/arrows/selectArrow.png diff --git a/src/images/calendar.svg b/src/assets/icons/calendar.svg similarity index 100% rename from src/images/calendar.svg rename to src/assets/icons/calendar.svg diff --git a/src/images/cardCalendar.svg b/src/assets/icons/cardCalendar.svg similarity index 100% rename from src/images/cardCalendar.svg rename to src/assets/icons/cardCalendar.svg diff --git a/src/assets/icons/category.svg b/src/assets/icons/category.svg new file mode 100644 index 00000000..834b2cf8 --- /dev/null +++ b/src/assets/icons/category.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/pages/PartnerTreaties/Images/checkTreaties.png b/src/assets/icons/checkTreaties.png similarity index 100% rename from src/pages/PartnerTreaties/Images/checkTreaties.png rename to src/assets/icons/checkTreaties.png diff --git a/src/images/close.png b/src/assets/icons/close.png similarity index 100% rename from src/images/close.png rename to src/assets/icons/close.png diff --git a/src/images/closeProjectPersons.svg b/src/assets/icons/closeProjectPersons.svg similarity index 100% rename from src/images/closeProjectPersons.svg rename to src/assets/icons/closeProjectPersons.svg diff --git a/src/images/comment.jpg b/src/assets/icons/comment.jpg similarity index 100% rename from src/images/comment.jpg rename to src/assets/icons/comment.jpg diff --git a/src/images/commentsBoard.svg b/src/assets/icons/commentsBoard.svg similarity index 100% rename from src/images/commentsBoard.svg rename to src/assets/icons/commentsBoard.svg diff --git a/src/assets/icons/cursorImg.svg b/src/assets/icons/cursorImg.svg new file mode 100644 index 00000000..f65488b8 --- /dev/null +++ b/src/assets/icons/cursorImg.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/delete.svg b/src/assets/icons/delete.svg similarity index 100% rename from src/images/delete.svg rename to src/assets/icons/delete.svg diff --git a/src/images/doc.svg b/src/assets/icons/doc.svg similarity index 100% rename from src/images/doc.svg rename to src/assets/icons/doc.svg diff --git a/src/images/edit.svg b/src/assets/icons/edit.svg similarity index 100% rename from src/images/edit.svg rename to src/assets/icons/edit.svg diff --git a/src/images/ellipse.png b/src/assets/icons/ellipse.png similarity index 100% rename from src/images/ellipse.png rename to src/assets/icons/ellipse.png diff --git a/src/images/emailLogo.svg b/src/assets/icons/emailLogo.svg similarity index 100% rename from src/images/emailLogo.svg rename to src/assets/icons/emailLogo.svg diff --git a/src/images/fileModal.svg b/src/assets/icons/fileModal.svg similarity index 100% rename from src/images/fileModal.svg rename to src/assets/icons/fileModal.svg diff --git a/src/images/filesBoard.svg b/src/assets/icons/filesBoard.svg similarity index 100% rename from src/images/filesBoard.svg rename to src/assets/icons/filesBoard.svg diff --git a/src/assets/icons/gitItemImg.svg b/src/assets/icons/gitItemImg.svg new file mode 100644 index 00000000..85cc5559 --- /dev/null +++ b/src/assets/icons/gitItemImg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/images/link.svg b/src/assets/icons/link.svg similarity index 100% rename from src/images/link.svg rename to src/assets/icons/link.svg diff --git a/src/pages/PartnerTreaties/Images/lock.svg b/src/assets/icons/lock.svg similarity index 100% rename from src/pages/PartnerTreaties/Images/lock.svg rename to src/assets/icons/lock.svg diff --git a/src/pages/PartnerTreaties/Images/lockDone.svg b/src/assets/icons/lockDone.svg similarity index 100% rename from src/pages/PartnerTreaties/Images/lockDone.svg rename to src/assets/icons/lockDone.svg diff --git a/src/pages/PartnerTreaties/Images/mainTreaties.png b/src/assets/icons/mainTreaties.png similarity index 100% rename from src/pages/PartnerTreaties/Images/mainTreaties.png rename to src/assets/icons/mainTreaties.png diff --git a/src/images/paymentIcon.png b/src/assets/icons/paymentIcon.png similarity index 100% rename from src/images/paymentIcon.png rename to src/assets/icons/paymentIcon.png diff --git a/src/images/plus.svg b/src/assets/icons/plus.svg similarity index 100% rename from src/images/plus.svg rename to src/assets/icons/plus.svg diff --git a/src/assets/icons/remove.svg b/src/assets/icons/remove.svg new file mode 100644 index 00000000..436e6b38 --- /dev/null +++ b/src/assets/icons/remove.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/images/search.svg b/src/assets/icons/search.svg similarity index 100% rename from src/images/search.svg rename to src/assets/icons/search.svg diff --git a/src/images/send.svg b/src/assets/icons/send.svg similarity index 100% rename from src/images/send.svg rename to src/assets/icons/send.svg diff --git a/src/images/serchIcon.png b/src/assets/icons/serchIcon.png similarity index 100% rename from src/images/serchIcon.png rename to src/assets/icons/serchIcon.png diff --git a/src/images/settingIcon.png b/src/assets/icons/settingIcon.png similarity index 100% rename from src/images/settingIcon.png rename to src/assets/icons/settingIcon.png diff --git a/src/images/sideBarArrow.svg b/src/assets/icons/sideBarArrow.svg similarity index 100% rename from src/images/sideBarArrow.svg rename to src/assets/icons/sideBarArrow.svg diff --git a/src/images/summaryIcon.png b/src/assets/icons/summaryIcon.png similarity index 100% rename from src/images/summaryIcon.png rename to src/assets/icons/summaryIcon.png diff --git a/src/images/telegram-icon.svg b/src/assets/icons/telegram-icon.svg similarity index 100% rename from src/images/telegram-icon.svg rename to src/assets/icons/telegram-icon.svg diff --git a/src/images/telegram.png b/src/assets/icons/telegram.png similarity index 100% rename from src/images/telegram.png rename to src/assets/icons/telegram.png diff --git a/src/assets/icons/tgFooter.svg b/src/assets/icons/tgFooter.svg new file mode 100644 index 00000000..2f482db1 --- /dev/null +++ b/src/assets/icons/tgFooter.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/tgLogo.svg b/src/assets/icons/tgLogo.svg similarity index 100% rename from src/images/tgLogo.svg rename to src/assets/icons/tgLogo.svg diff --git a/src/images/timerIcon.png b/src/assets/icons/timerIcon.png similarity index 100% rename from src/images/timerIcon.png rename to src/assets/icons/timerIcon.png diff --git a/src/images/trackerProject.svg b/src/assets/icons/trackerProject.svg similarity index 100% rename from src/images/trackerProject.svg rename to src/assets/icons/trackerProject.svg diff --git a/src/images/trackerTasks.svg b/src/assets/icons/trackerTasks.svg similarity index 100% rename from src/images/trackerTasks.svg rename to src/assets/icons/trackerTasks.svg diff --git a/src/assets/icons/userIcon.svg b/src/assets/icons/userIcon.svg new file mode 100644 index 00000000..5b71af7d --- /dev/null +++ b/src/assets/icons/userIcon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/images/vkLogo.svg b/src/assets/icons/vkLogo.svg similarity index 100% rename from src/images/vkLogo.svg rename to src/assets/icons/vkLogo.svg diff --git a/src/assets/icons/watch.svg b/src/assets/icons/watch.svg new file mode 100644 index 00000000..b206961c --- /dev/null +++ b/src/assets/icons/watch.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/images/yandexZen.svg b/src/assets/icons/yandexZen.svg similarity index 100% rename from src/images/yandexZen.svg rename to src/assets/icons/yandexZen.svg diff --git a/src/images/Body_Text.png b/src/assets/images/Body_Text.png similarity index 100% rename from src/images/Body_Text.png rename to src/assets/images/Body_Text.png diff --git a/src/images/Contract.png b/src/assets/images/Contract.png similarity index 100% rename from src/images/Contract.png rename to src/assets/images/Contract.png diff --git a/src/images/Kek.png b/src/assets/images/Kek.png similarity index 100% rename from src/images/Kek.png rename to src/assets/images/Kek.png diff --git a/src/images/QualificationInfo.png b/src/assets/images/QualificationInfo.png similarity index 100% rename from src/images/QualificationInfo.png rename to src/assets/images/QualificationInfo.png diff --git a/src/images/QualificationInfoMiddle.png b/src/assets/images/QualificationInfoMiddle.png similarity index 100% rename from src/images/QualificationInfoMiddle.png rename to src/assets/images/QualificationInfoMiddle.png diff --git a/src/images/Reporting-1.png b/src/assets/images/Reporting-1.png similarity index 100% rename from src/images/Reporting-1.png rename to src/assets/images/Reporting-1.png diff --git a/src/images/Reporting-2.png b/src/assets/images/Reporting-2.png similarity index 100% rename from src/images/Reporting-2.png rename to src/assets/images/Reporting-2.png diff --git a/src/images/Reporting-3.png b/src/assets/images/Reporting-3.png similarity index 100% rename from src/images/Reporting-3.png rename to src/assets/images/Reporting-3.png diff --git a/src/images/Tax.png b/src/assets/images/Tax.png similarity index 100% rename from src/images/Tax.png rename to src/assets/images/Tax.png diff --git a/src/images/Taxes.png b/src/assets/images/Taxes.png similarity index 100% rename from src/images/Taxes.png rename to src/assets/images/Taxes.png diff --git a/src/images/Vector_Smart_Object.png b/src/assets/images/Vector_Smart_Object.png similarity index 100% rename from src/images/Vector_Smart_Object.png rename to src/assets/images/Vector_Smart_Object.png diff --git a/src/images/Vector_Smart_Object_black.png b/src/assets/images/Vector_Smart_Object_black.png similarity index 100% rename from src/images/Vector_Smart_Object_black.png rename to src/assets/images/Vector_Smart_Object_black.png diff --git a/src/images/act.png b/src/assets/images/act.png similarity index 100% rename from src/images/act.png rename to src/assets/images/act.png diff --git a/src/images/addIcon.png b/src/assets/images/addIcon.png similarity index 100% rename from src/images/addIcon.png rename to src/assets/images/addIcon.png diff --git a/src/images/align-left.png b/src/assets/images/align-left.png similarity index 100% rename from src/images/align-left.png rename to src/assets/images/align-left.png diff --git a/src/images/auth_img.png b/src/assets/images/auth_img.png similarity index 100% rename from src/images/auth_img.png rename to src/assets/images/auth_img.png diff --git a/src/pages/PartnerEmployees/avatarMok.png b/src/assets/images/avatarMok.png similarity index 100% rename from src/pages/PartnerEmployees/avatarMok.png rename to src/assets/images/avatarMok.png diff --git a/src/images/cross.png b/src/assets/images/cross.png similarity index 100% rename from src/images/cross.png rename to src/assets/images/cross.png diff --git a/src/images/deleteBtn.png b/src/assets/images/deleteBtn.png similarity index 100% rename from src/images/deleteBtn.png rename to src/assets/images/deleteBtn.png diff --git a/src/images/dog.jpg b/src/assets/images/dog.jpg similarity index 100% rename from src/images/dog.jpg rename to src/assets/images/dog.jpg diff --git a/src/pages/PartnerEmployees/emplInfo.png b/src/assets/images/emplInfo.png similarity index 100% rename from src/pages/PartnerEmployees/emplInfo.png rename to src/assets/images/emplInfo.png diff --git a/src/images/faq/arrow.svg b/src/assets/images/faq/arrow.svg similarity index 100% rename from src/images/faq/arrow.svg rename to src/assets/images/faq/arrow.svg diff --git a/src/images/faq/question.svg b/src/assets/images/faq/question.svg similarity index 100% rename from src/images/faq/question.svg rename to src/assets/images/faq/question.svg diff --git a/src/images/LogoITguild.svg b/src/assets/images/logo/LogoITguild.svg similarity index 100% rename from src/images/LogoITguild.svg rename to src/assets/images/logo/LogoITguild.svg diff --git a/src/images/astralLogo.png b/src/assets/images/logo/astralLogo.png similarity index 100% rename from src/images/astralLogo.png rename to src/assets/images/logo/astralLogo.png diff --git a/src/images/interviewLogo.svg b/src/assets/images/logo/interviewLogo.svg similarity index 100% rename from src/images/interviewLogo.svg rename to src/assets/images/logo/interviewLogo.svg diff --git a/src/images/konturLogo.png b/src/assets/images/logo/konturLogo.png similarity index 100% rename from src/images/konturLogo.png rename to src/assets/images/logo/konturLogo.png diff --git a/src/images/medium_male.png b/src/assets/images/medium_male.png similarity index 100% rename from src/images/medium_male.png rename to src/assets/images/medium_male.png diff --git a/src/images/medium_male_big.png b/src/assets/images/medium_male_big.png similarity index 100% rename from src/images/medium_male_big.png rename to src/assets/images/medium_male_big.png diff --git a/src/images/AvatarTest .png b/src/assets/images/mock/AvatarTest .png similarity index 100% rename from src/images/AvatarTest .png rename to src/assets/images/mock/AvatarTest .png diff --git a/src/images/avatarMoсk1.png b/src/assets/images/mock/avatarMoсk1.png similarity index 100% rename from src/images/avatarMoсk1.png rename to src/assets/images/mock/avatarMoсk1.png diff --git a/src/images/avatarMoсk2.png b/src/assets/images/mock/avatarMoсk2.png similarity index 100% rename from src/images/avatarMoсk2.png rename to src/assets/images/mock/avatarMoсk2.png diff --git a/src/images/avatarMoсkCreator.png b/src/assets/images/mock/avatarMoсkCreator.png similarity index 100% rename from src/images/avatarMoсkCreator.png rename to src/assets/images/mock/avatarMoсkCreator.png diff --git a/src/images/cardArticleItem.png b/src/assets/images/mock/cardArticleItem.png similarity index 100% rename from src/images/cardArticleItem.png rename to src/assets/images/mock/cardArticleItem.png diff --git a/src/images/cardArticleItem2.png b/src/assets/images/mock/cardArticleItem2.png similarity index 100% rename from src/images/cardArticleItem2.png rename to src/assets/images/mock/cardArticleItem2.png diff --git a/src/images/cardArticleItem3.png b/src/assets/images/mock/cardArticleItem3.png similarity index 100% rename from src/images/cardArticleItem3.png rename to src/assets/images/mock/cardArticleItem3.png diff --git a/src/images/cardArticleItem4.png b/src/assets/images/mock/cardArticleItem4.png similarity index 100% rename from src/images/cardArticleItem4.png rename to src/assets/images/mock/cardArticleItem4.png diff --git a/src/images/cardArticleItem5.png b/src/assets/images/mock/cardArticleItem5.png similarity index 100% rename from src/images/cardArticleItem5.png rename to src/assets/images/mock/cardArticleItem5.png diff --git a/src/images/cardArticleItem6.png b/src/assets/images/mock/cardArticleItem6.png similarity index 100% rename from src/images/cardArticleItem6.png rename to src/assets/images/mock/cardArticleItem6.png diff --git a/src/images/mockImgArticle.png b/src/assets/images/mock/mockImgArticle.png similarity index 100% rename from src/images/mockImgArticle.png rename to src/assets/images/mock/mockImgArticle.png diff --git a/src/images/mokPerson.png b/src/assets/images/mock/mokPerson.png similarity index 100% rename from src/images/mokPerson.png rename to src/assets/images/mock/mokPerson.png diff --git a/src/images/tasksMock.png b/src/assets/images/mock/tasksMock.png similarity index 100% rename from src/images/tasksMock.png rename to src/assets/images/mock/tasksMock.png diff --git a/src/images/money.png b/src/assets/images/money.png similarity index 100% rename from src/images/money.png rename to src/assets/images/money.png diff --git a/src/images/noProjects.png b/src/assets/images/noProjects.png similarity index 100% rename from src/images/noProjects.png rename to src/assets/images/noProjects.png diff --git a/src/images/note.png b/src/assets/images/note.png similarity index 100% rename from src/images/note.png rename to src/assets/images/note.png diff --git a/src/assets/images/partnerProfile/PersonalAdmin.svg b/src/assets/images/partnerProfile/PersonalAdmin.svg new file mode 100644 index 00000000..c0c28229 --- /dev/null +++ b/src/assets/images/partnerProfile/PersonalAdmin.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/partnerProfile/PersonalArchitecture.svg b/src/assets/images/partnerProfile/PersonalArchitecture.svg new file mode 100644 index 00000000..e64e4f3b --- /dev/null +++ b/src/assets/images/partnerProfile/PersonalArchitecture.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/images/partnerProfile/PersonalCopy.svg b/src/assets/images/partnerProfile/PersonalCopy.svg new file mode 100644 index 00000000..12dee899 --- /dev/null +++ b/src/assets/images/partnerProfile/PersonalCopy.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/images/partnerProfile/PersonalDesign.svg b/src/assets/images/partnerProfile/PersonalDesign.svg new file mode 100644 index 00000000..1efc40ab --- /dev/null +++ b/src/assets/images/partnerProfile/PersonalDesign.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/images/partnerProfile/PersonalFrontend.svg b/src/assets/images/partnerProfile/PersonalFrontend.svg new file mode 100644 index 00000000..fef9d024 --- /dev/null +++ b/src/assets/images/partnerProfile/PersonalFrontend.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/partnerProfile/PersonalMng.svg b/src/assets/images/partnerProfile/PersonalMng.svg new file mode 100644 index 00000000..c0095185 --- /dev/null +++ b/src/assets/images/partnerProfile/PersonalMng.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/partnerProfile/PersonalSMM.svg b/src/assets/images/partnerProfile/PersonalSMM.svg new file mode 100644 index 00000000..2b714fb6 --- /dev/null +++ b/src/assets/images/partnerProfile/PersonalSMM.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/images/partnerProfile/PersonalTesters.svg b/src/assets/images/partnerProfile/PersonalTesters.svg new file mode 100644 index 00000000..ade01be8 --- /dev/null +++ b/src/assets/images/partnerProfile/PersonalTesters.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/images/authCandidateFormImg.png b/src/assets/images/partnerProfile/authCandidateFormImg.png similarity index 100% rename from src/images/authCandidateFormImg.png rename to src/assets/images/partnerProfile/authCandidateFormImg.png diff --git a/src/assets/images/partnerProfile/back-end.webp b/src/assets/images/partnerProfile/back-end.webp new file mode 100644 index 00000000..b741daad Binary files /dev/null and b/src/assets/images/partnerProfile/back-end.webp differ diff --git a/src/assets/images/partnerProfile/design.webp b/src/assets/images/partnerProfile/design.webp new file mode 100644 index 00000000..9a572ebe Binary files /dev/null and b/src/assets/images/partnerProfile/design.webp differ diff --git a/src/assets/images/partnerProfile/front-end.webp b/src/assets/images/partnerProfile/front-end.webp new file mode 100644 index 00000000..83342725 Binary files /dev/null and b/src/assets/images/partnerProfile/front-end.webp differ diff --git a/src/images/partnerAddRequestFirstImg.png b/src/assets/images/partnerProfile/partnerAddRequestFirstImg.png similarity index 100% rename from src/images/partnerAddRequestFirstImg.png rename to src/assets/images/partnerProfile/partnerAddRequestFirstImg.png diff --git a/src/images/partnerAddRequestSecondImg.png b/src/assets/images/partnerProfile/partnerAddRequestSecondImg.png similarity index 100% rename from src/images/partnerAddRequestSecondImg.png rename to src/assets/images/partnerProfile/partnerAddRequestSecondImg.png diff --git a/src/images/partnerAddRequestThirdInfo.png b/src/assets/images/partnerProfile/partnerAddRequestThirdInfo.png similarity index 100% rename from src/images/partnerAddRequestThirdInfo.png rename to src/assets/images/partnerProfile/partnerAddRequestThirdInfo.png diff --git a/src/assets/images/partnerProfile/personalBackEnd.svg b/src/assets/images/partnerProfile/personalBackEnd.svg new file mode 100644 index 00000000..1e9e7bb9 --- /dev/null +++ b/src/assets/images/partnerProfile/personalBackEnd.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/images/phone.png b/src/assets/images/phone.png similarity index 100% rename from src/images/phone.png rename to src/assets/images/phone.png diff --git a/src/images/question.png b/src/assets/images/question.png similarity index 100% rename from src/images/question.png rename to src/assets/images/question.png diff --git a/src/images/quiz/accempt.png b/src/assets/images/quiz/accempt.png similarity index 100% rename from src/images/quiz/accempt.png rename to src/assets/images/quiz/accempt.png diff --git a/src/images/quiz/compltedImage.png b/src/assets/images/quiz/compltedImage.png similarity index 100% rename from src/images/quiz/compltedImage.png rename to src/assets/images/quiz/compltedImage.png diff --git a/src/images/quiz/success.png b/src/assets/images/quiz/success.png similarity index 100% rename from src/images/quiz/success.png rename to src/assets/images/quiz/success.png diff --git a/src/images/quiz/timer.png b/src/assets/images/quiz/timer.png similarity index 100% rename from src/images/quiz/timer.png rename to src/assets/images/quiz/timer.png diff --git a/src/images/rectangle__calendar.png b/src/assets/images/rectangle__calendar.png similarity index 100% rename from src/images/rectangle__calendar.png rename to src/assets/images/rectangle__calendar.png diff --git a/src/images/rectangle_secondPage.png b/src/assets/images/rectangle_secondPage.png similarity index 100% rename from src/images/rectangle_secondPage.png rename to src/assets/images/rectangle_secondPage.png diff --git a/src/images/reports.png b/src/assets/images/reports.png similarity index 100% rename from src/images/reports.png rename to src/assets/images/reports.png diff --git a/src/images/specialists.png b/src/assets/images/specialists.png similarity index 100% rename from src/images/specialists.png rename to src/assets/images/specialists.png diff --git a/src/components/Achievement/Achievement.js b/src/components/Achievement/Achievement.js deleted file mode 100644 index 2e89f3d6..00000000 --- a/src/components/Achievement/Achievement.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react' - -import './achievement.scss' - -export const Achievement = ({ achievement }) => { - return ( -
-
- achievement -
-
-
{achievement.title}
-
- {achievement.description} -
-
-
- ) -} diff --git a/src/components/Achievement/Achievement.jsx b/src/components/Achievement/Achievement.jsx new file mode 100644 index 00000000..e9d4e32a --- /dev/null +++ b/src/components/Achievement/Achievement.jsx @@ -0,0 +1,19 @@ +import React from "react"; + +import "./achievement.scss"; + +export const Achievement = ({ achievement }) => { + return ( +
+
+ achievement +
+
+
{achievement.title}
+
+ {achievement.description} +
+
+
+ ); +}; diff --git a/src/components/AuthBox/AuthBox.js b/src/components/AuthBox/AuthBox.jsx similarity index 81% rename from src/components/AuthBox/AuthBox.js rename to src/components/AuthBox/AuthBox.jsx index 6954fb7e..0dd8af66 100644 --- a/src/components/AuthBox/AuthBox.js +++ b/src/components/AuthBox/AuthBox.jsx @@ -1,20 +1,17 @@ import React, { useEffect, useRef, useState } from "react"; -import { Link, useNavigate } from "react-router-dom"; +import { useNavigate } from "react-router-dom"; import { useDispatch, useSelector } from "react-redux"; -import { Loader } from "../Loader/Loader"; +import { auth, selectAuth, setUserInfo } from "@redux/outstaffingSlice"; +import { loading, selectIsLoading } from "@redux/loaderSlice"; +import { setRole } from "@redux/roleSlice"; -import { auth, selectAuth, setUserInfo } from "../../redux/outstaffingSlice"; -import { loading } from "../../redux/loaderSlice"; -import { setRole } from "../../redux/roleSlice"; -import { selectIsLoading } from "../../redux/loaderSlice"; +import ModalRegistration from "@components/Modal/ModalRegistration/ModalRegistration"; +import ModalErrorLogin from "@components/Modal/ModalErrorLogin/ModalErrorLogin"; +import { Loader } from "@components/Common/Loader/Loader"; +import { apiRequest } from "@api/request"; -import ModalErrorLogin from "../../components/UI/ModalErrorLogin/ModalErrorLogin"; - -import { apiRequest } from "../../api/request"; - -import ellipse from "../../images/ellipse.png"; -import ModalRegistration from "../UI/ModalRegistration/ModalRegistration"; +import ellipse from "assets/icons/ellipse.png"; import "./authBox.scss"; @@ -51,7 +48,7 @@ export const AuthBox = ({ title }) => { data: formData, }).then((res) => { if (!res.access_token) { - setError("Некорректные данные для входа"); + setError("Введены некоректные данные для входа"); setModalError(true); dispatch(loading(false)); } else { @@ -78,7 +75,7 @@ export const AuthBox = ({ title }) => { Войти в систему
- + . {title}
diff --git a/src/components/Calendar/Calendar.js b/src/components/Calendar/Calendar.js deleted file mode 100644 index 9b35e7be..00000000 --- a/src/components/Calendar/Calendar.js +++ /dev/null @@ -1,78 +0,0 @@ -import React, {useEffect, useState} from 'react' -import {useSelector} from 'react-redux' -import {Link, Navigate, useNavigate} from 'react-router-dom' - -import CalendarComponent from './CalendarComponent' -import {currentMonth} from './calendarHelper' -import {Footer} from '../Footer/Footer' -import {LogoutButton} from "../LogoutButton/LogoutButton"; - -import {selectCurrentCandidate} from '../../redux/outstaffingSlice' - -import rectangle from '../../images/rectangle_secondPage.png' - -import './calendar.scss' -import {urlForLocal} from "../../helper"; - - -const Calendar = () => { - if(localStorage.getItem('role_status') !== '18') { - return - } - - const candidateForCalendar = useSelector(selectCurrentCandidate); - - const [month, setMonth] = useState(''); - - const navigate = useNavigate(); - - useEffect(() => { - setMonth(currentMonth) - }, [month]); - - const {name, skillsName, photo} = candidateForCalendar; - - const abbreviatedName = name && name.substring(0, name.lastIndexOf(' ')); - - return ( -
-
-
-
-

- Добрый день, Александр ! -

- -
-
-
- {photo && img} -

{abbreviatedName}

-
-
-

{skillsName} разработчик

- img -
-
- - - -
-
-
- -
-
- { navigate('/report/0') }}/> -

- {month} : 60 часов -

-
-
-
-
-
- ) -}; - -export default Calendar diff --git a/src/components/Calendar/Calendar.jsx b/src/components/Calendar/Calendar.jsx new file mode 100644 index 00000000..8b28333f --- /dev/null +++ b/src/components/Calendar/Calendar.jsx @@ -0,0 +1,88 @@ +import React, { useEffect, useState } from "react"; +import { useSelector } from "react-redux"; +import { Link, Navigate, useNavigate } from "react-router-dom"; + +import CalendarComponent from "./CalendarComponent"; +import { currentMonth } from "./calendarHelper"; +import { Footer } from "@components/Common/Footer/Footer"; +import { LogoutButton } from "@components/LogoutButton/LogoutButton"; +import { urlForLocal } from "@utils/helper"; +import { selectCurrentCandidate } from "@redux/outstaffingSlice"; + +import rectangle from "assets/images/rectangle_secondPage.png"; + +import "./calendar.scss"; + +const Calendar = () => { + if (localStorage.getItem("role_status") !== "18") { + return ; + } + + const candidateForCalendar = useSelector(selectCurrentCandidate); + + const [month, setMonth] = useState(""); + + const navigate = useNavigate(); + + useEffect(() => { + setMonth(currentMonth); + }, [month]); + + const { name, skillsName, photo } = candidateForCalendar; + + const abbreviatedName = name && name.substring(0, name.lastIndexOf(" ")); + + return ( +
+
+
+
+

+ Добрый день, Александр ! +

+ +
+
+
+ {photo && ( + img + )} +

{abbreviatedName}

+
+
+

{skillsName} разработчик

+ img +
+
+ + + +
+
+
+ +
+
+ { + navigate("/report/0"); + }} + /> +

+ {month} : 60 часов +

+
+
+
+
+
+ ); +}; + +export default Calendar; diff --git a/src/components/Calendar/CalendarComponent.js b/src/components/Calendar/CalendarComponent.js deleted file mode 100644 index ddf41a3a..00000000 --- a/src/components/Calendar/CalendarComponent.js +++ /dev/null @@ -1,92 +0,0 @@ -import React, { useState, useEffect } from 'react' -import ellipse from '../../images/ellipse.png' -import rectangle from '../../images/rectangle__calendar.png' -import calendarIcon from '../../images/calendar_icon.png' -import moment from 'moment' -import 'moment/locale/ru' -import { calendarHelper, currentMonthAndDay, } from './calendarHelper' - -import './calendarComponent.scss' - -const CalendarComponent = ({ onSelect }) => { - const [value, setValue] = useState(moment()) - const [calendar, setCalendar] = useState([]) - - useEffect(() => { - setCalendar(calendarHelper(value)) - }, [value]) - - function beforeToday(day) { - return day.isBefore(new Date(), 'day') - } - - function isToday(day) { - return day.isSame(new Date(), 'day') - } - - function dayStyles(day) { - if (beforeToday(day)) return `before` - if (isToday(day)) return `today` - if (day.day() === 6 || day.day() === 0) return `selected` - return '' - } - - function prevMonth() { - return value.clone().subtract(1, 'month') - } - - function nextMonth() { - return value.clone().add(1, 'month'); - } - - return ( -
-
-

Мои отчеты

-
- - setValue(prevMonth())}>{prevMonth().format('MMMM')} -
-
- - setValue(nextMonth())}>{nextMonth().format('MMMM')} -
-
- -
- -
- -
-
-

Пн

-

Вт

-

Ср

-

Чт

-

Пт

-

Сб

-

Вс

-
- -
- {calendar.map((week) => - week.map((day) => ( - - )) - )} -
-
-
- ) -} - -export default CalendarComponent diff --git a/src/components/Calendar/CalendarComponent.jsx b/src/components/Calendar/CalendarComponent.jsx new file mode 100644 index 00000000..9694cb73 --- /dev/null +++ b/src/components/Calendar/CalendarComponent.jsx @@ -0,0 +1,102 @@ +import React, { useState, useEffect } from "react"; +import { calendarHelper, currentMonthAndDay } from "./calendarHelper"; + +import ellipse from "assets/icons/ellipse.png"; +import rectangle from "assets/images/rectangle__calendar.png"; +import calendarIcon from "assets/icons/calendar.svg"; + +import moment from "moment"; + +import "moment/locale/ru"; + +import "./calendarComponent.scss"; + +const CalendarComponent = ({ onSelect }) => { + const [value, setValue] = useState(moment()); + const [calendar, setCalendar] = useState([]); + + useEffect(() => { + setCalendar(calendarHelper(value)); + }, [value]); + + function beforeToday(day) { + return day.isBefore(new Date(), "day"); + } + + function isToday(day) { + return day.isSame(new Date(), "day"); + } + + function dayStyles(day) { + if (beforeToday(day)) return `before`; + if (isToday(day)) return `today`; + if (day.day() === 6 || day.day() === 0) return `selected`; + return ""; + } + + function prevMonth() { + return value.clone().subtract(1, "month"); + } + + function nextMonth() { + return value.clone().add(1, "month"); + } + + return ( +
+
+

Мои отчеты

+
+ + setValue(prevMonth())}> + {prevMonth().format("MMMM")} + +
+
+ + setValue(nextMonth())}> + {nextMonth().format("MMMM")} + +
+
+ +
+ +
+ +
+
+

Пн

+

Вт

+

Ср

+

Чт

+

Пт

+

Сб

+

Вс

+
+ +
+ {calendar.map((week) => + week.map((day) => ( + + )) + )} +
+
+
+ ); +}; + +export default CalendarComponent; diff --git a/src/components/Calendar/calendar.scss b/src/components/Calendar/calendar.scss index 07dbf74e..6a04eb14 100644 --- a/src/components/Calendar/calendar.scss +++ b/src/components/Calendar/calendar.scss @@ -1,6 +1,6 @@ .calendar { margin-bottom: 40px; - font-family: 'LabGrotesque', sans-serif; + font-family: "LabGrotesque", sans-serif; &__header { display: flex; @@ -85,7 +85,7 @@ ); border: none; color: #ffffff; - font-family: 'Muller'; + font-family: "Muller"; font-size: 1.6em; letter-spacing: normal; text-align: center; diff --git a/src/components/Calendar/calendarComponent.scss b/src/components/Calendar/calendarComponent.scss index 5ae4d7ce..4beb3afe 100644 --- a/src/components/Calendar/calendarComponent.scss +++ b/src/components/Calendar/calendarComponent.scss @@ -210,12 +210,6 @@ padding: 28px 10px 48px 10px; &__header { - //h3 { - // position: absolute; - // top: -10%; - // left: 25%; - //} - &-box { margin-left: 20px; } @@ -233,101 +227,6 @@ } } -//@media (max-width: 768px) { -// .calendar-component__form > button { -// width: 70px; -// height: 40px; -// -// img { -// display: none; -// } -// } -//} - -//@media (max-width: 540.98px) { -// .calendar-component__form > button { -// width: 68px; -// height: 40px; -// } -//} -// -//@media (max-width: 520.98px) { -// .calendar-component__form > button { -// width: 66px; -// height: 40px; -// } -//} -// -//@media (max-width: 500.98px) { -// .calendar-component__form > button { -// width: 64px; -// height: 40px; -// } -//} -// -//@media (max-width: 480.98px) { -// .calendar-component__form > button { -// width: 60px; -// height: 40px; -// } -//} -// -//@media (max-width: 460.98px) { -// .calendar-component__form > button { -// width: 56px; -// height: 40px; -// } -//} -// -//@media (max-width: 440.98px) { -// .calendar-component__form > button { -// width: 52px; -// height: 40px; -// } -//} -// -//@media (max-width: 428.98px) { -// .calendar-component__form > button { -// width: 50px; -// height: 40px; -// } -//} -// -//@media (max-width: 414.98px) { -// .calendar-component__form > button { -// width: 49px; -// height: 40px; -// } -//} -// -//@media (max-width: 395.98px) { -// .calendar-component__form > button { -// width: 46px; -// height: 40px; -// } -//} -// -//@media (max-width: 350.98px) { -// .calendar-component__form > button { -// width: 44px; -// height: 40px; -// } -//} -// -//@media (max-width: 349.98px) { -// .calendar-component__form > button { -// width: 42px; -// height: 40px; -// } -//} -// -//@media (max-width: 346.98px) { -// .calendar-component__form > button { -// width: 40px; -// height: 40px; -// } -//} - .calendar__icon { margin-right: 10px; margin-top: -4px; diff --git a/src/components/Candidate/Candidate.js b/src/components/Candidate/Candidate.jsx similarity index 89% rename from src/components/Candidate/Candidate.js rename to src/components/Candidate/Candidate.jsx index d22dfc28..387915d4 100644 --- a/src/components/Candidate/Candidate.js +++ b/src/components/Candidate/Candidate.jsx @@ -2,31 +2,30 @@ import React, { useEffect, useState } from "react"; import { useParams, Link, useNavigate, Navigate } from "react-router-dom"; import { useSelector, useDispatch } from "react-redux"; -import SkillSection from "../SkillSection/SkillSection"; -import Sidebar from "../CandidateSidebar/CandidateSidebar"; -import { ProfileHeader } from "../ProfileHeader/ProfileHeader"; -import { ProfileBreadcrumbs } from "../ProfileBreadcrumbs/ProfileBreadcrumbs"; -import { Footer } from "../Footer/Footer"; +import SkillSection from "@components/SkillSection/SkillSection"; +import Sidebar from "@components/CandidateSidebar/CandidateSidebar"; +import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader"; +import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs"; +import { Footer } from "@components/Common/Footer/Footer"; +import { Navigation } from "@components/Navigation/Navigation"; import { currentCandidate, selectCurrentCandidate, -} from "../../redux/outstaffingSlice"; +} from "@redux/outstaffingSlice"; -import { apiRequest } from "../../api/request"; -import { createMarkup } from "../../helper"; +import { apiRequest } from "@api/request"; +import { createMarkup } from "@utils/helper"; +import { LEVELS, SKILLS } from "@utils/constants"; -import gitImgItem from "../../images/gitItemImg.png"; -import rectangle from "../../images/rectangle_secondPage.png"; -import front from "../Outstaffing/images/front_end.png"; -import back from "../Outstaffing/images/back_end.png"; -import design from "../Outstaffing/images/design.png"; -import rightArrow from "../../images/arrowRight.png"; - -import { LEVELS, SKILLS } from "../../constants/constants"; +import gitImgItem from "assets/icons/gitItemImg.svg"; +import rectangle from "assets/images/rectangle_secondPage.png"; +import front from "assets/images/partnerProfile/front-end.webp"; +import back from "assets/images/partnerProfile/back-end.webp"; +import design from "assets/images/partnerProfile/design.webp"; +import rightArrow from "assets/icons/arrows/arrowRight.svg"; import "./candidate.scss"; -import { Navigation } from "../Navigation/Navigation"; const Candidate = () => { if (localStorage.getItem("role_status") !== "18") { diff --git a/src/components/Candidate/candidate.scss b/src/components/Candidate/candidate.scss index 1b6af0ee..ce21ac29 100644 --- a/src/components/Candidate/candidate.scss +++ b/src/components/Candidate/candidate.scss @@ -156,41 +156,6 @@ } } -//@media (max-width: 575.98px) { -// .candidate { -// &__title { -// h2 { -// font-size: 5em; -// line-height: normal; -// } -// } -// -// &__arrow { -// margin-bottom: 40px; -// -// &-img { -// img { -// cursor: pointer; -// } -// } -// -// &-sp { -// span { -// margin-left: 40px; -// margin-right: 120px; -// font-family: 'GT Eesti Pro Display', sans-serif; -// font-size: 1.8em; -// font-weight: 100; -// font-style: normal; -// letter-spacing: normal; -// line-height: 36px; -// text-align: left; -// } -// } -// } -// } -//} - @media (max-width: 375.98px) { .candidate { &__title { @@ -216,29 +181,6 @@ @media (max-width: 575.98px) { .candidate { - //&__header { - // display: flex; - // flex-direction: column; - // margin-left: 0; - // margin-top: 40px; - //} - - //&__main { - // &-description { - // h2 { - // font-size: 3.2em; - // text-align: center; - // position: absolute; - // top: -410px; - // left: 0; - // } - // - // img { - // display: none; - // } - // } - //} - &__btn { display: block; width: 221px; diff --git a/src/components/CandidateSidebar/CandidateSidebar.js b/src/components/CandidateSidebar/CandidateSidebar.jsx similarity index 89% rename from src/components/CandidateSidebar/CandidateSidebar.js rename to src/components/CandidateSidebar/CandidateSidebar.jsx index 2062cf02..574f18b2 100644 --- a/src/components/CandidateSidebar/CandidateSidebar.js +++ b/src/components/CandidateSidebar/CandidateSidebar.jsx @@ -1,10 +1,10 @@ import React, { useState } from "react"; -import { Link } from "react-router-dom"; -import { Achievement } from "../Achievement/Achievement"; -import ModalAspt from "../UI/ModalAspt/ModalAspt"; -import { urlForLocal } from "../../helper"; -import { LEVELS, SKILLS } from "../../constants/constants"; +import { Achievement } from "@components/Achievement/Achievement"; +import ModalAspirant from "@components/Modal/ModalAspirant/ModalAspirant"; + +import { urlForLocal } from "@utils/helper"; +import { LEVELS, SKILLS } from "@utils/constants"; import "./candidateSidebar.scss"; @@ -39,11 +39,11 @@ const CandidateSidebar = ({ candidate, setActiveSnippet, activeSnippet }) => { return (
- + >
diff --git a/src/components/UI/CardArticle/CardArticle.jsx b/src/components/CardArticle/CardArticle.jsx similarity index 88% rename from src/components/UI/CardArticle/CardArticle.jsx rename to src/components/CardArticle/CardArticle.jsx index be8ca4b1..2bd52b99 100644 --- a/src/components/UI/CardArticle/CardArticle.jsx +++ b/src/components/CardArticle/CardArticle.jsx @@ -1,7 +1,8 @@ import React from "react"; -import cardCalendar from "../../../images/cardCalendar.svg"; import { Link } from "react-router-dom"; +import cardCalendar from "assets/icons/cardCalendar.svg"; + import "./cardArticle.scss"; export const CardArticle = ({ images, title, data, id }) => { diff --git a/src/components/UI/CardArticle/cardArticle.scss b/src/components/CardArticle/cardArticle.scss similarity index 100% rename from src/components/UI/CardArticle/cardArticle.scss rename to src/components/CardArticle/cardArticle.scss diff --git a/src/components/CardControl/CardControl.js b/src/components/CardControl/CardControl.js deleted file mode 100644 index 3458ebea..00000000 --- a/src/components/CardControl/CardControl.js +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react' -import rightArrow from "../../images/arrowRight.png" -import { Link } from 'react-router-dom' -import './CardControl.scss' - -export const CardControl = ({title,path,description, img}) => { - return ( - -
- itemImg -

{title}

-
-
-

-
- arrow -
-
- ) -} diff --git a/src/components/CardControl/CardControl.jsx b/src/components/CardControl/CardControl.jsx new file mode 100644 index 00000000..7abaa411 --- /dev/null +++ b/src/components/CardControl/CardControl.jsx @@ -0,0 +1,23 @@ +import React from "react"; +import { Link } from "react-router-dom"; + +import rightArrow from "assets/icons/arrows/arrowRight.svg"; + +import "./CardControl.scss"; + +export const CardControl = ({ title, path, description, img }) => { + return ( + +
+ itemImg +

{title}

+
+
+

+
+ arrow +
+
+ + ); +}; diff --git a/src/components/CardControl/CardControl.scss b/src/components/CardControl/CardControl.scss index df4d85a0..f7d68f91 100644 --- a/src/components/CardControl/CardControl.scss +++ b/src/components/CardControl/CardControl.scss @@ -1,73 +1,73 @@ -.control-card{ - max-width: 353px; - width: 100%; - padding: 35px 45px 15px 30px; - background: #FFFFFF; - border-radius: 12px; - text-decoration: none; - cursor: pointer; - transition: all 0.3s ease; +.control-card { + max-width: 353px; + width: 100%; + padding: 35px 45px 15px 30px; + background: #ffffff; + border-radius: 12px; + text-decoration: none; + cursor: pointer; + transition: all 0.3s ease; - &:hover { - box-shadow: 6px 5px 20px rgb(87 98 80 / 21%); - transform: scale(1.02); - } + &:hover { + box-shadow: 6px 5px 20px rgb(87 98 80 / 21%); + transform: scale(1.02); + } - @media (max-width: 1175px) { - width: 48%; - max-width: none; - } + @media (max-width: 1175px) { + width: 48%; + max-width: none; + } - @media (max-width: 925px) { - width: 100%; - padding: 15px 25px; - } + @media (max-width: 925px) { + width: 100%; + padding: 15px 25px; + } - &__about { - display: flex; - column-gap: 20px; - align-items: center; - margin-bottom: 30px; + &__about { + display: flex; + column-gap: 20px; + align-items: center; + margin-bottom: 30px; - @media (max-width: 925px) { - margin-bottom: 15px; - } + @media (max-width: 925px) { + margin-bottom: 15px; + } - h3 { - color: #000000; - font-weight: 500; - font-size: 18px; - line-height: 22px; - max-width: 125px; - margin-bottom: 0; - } - } + h3 { + color: #000000; + font-weight: 500; + font-size: 18px; + line-height: 22px; + max-width: 125px; + margin-bottom: 0; + } + } - &__info { - display: flex; - justify-content: space-between; - align-items: center; + &__info { + display: flex; + justify-content: space-between; + align-items: center; - p { - font-weight: 700; - font-size: 12px; - line-height: 20px; - color: #000000; - margin-bottom: 0; + p { + font-weight: 700; + font-size: 12px; + line-height: 20px; + color: #000000; + margin-bottom: 0; - span { - color: #52B709; - font-weight: 700; - } - } - &Link { - width: 48px; - height: 48px; - background: #DDEEC6; - border-radius: 50px; - display: flex; - justify-content: center; - align-items: center; - } - } - } \ No newline at end of file + span { + color: #52b709; + font-weight: 700; + } + } + &Link { + width: 48px; + height: 48px; + background: #ddeec6; + border-radius: 50px; + display: flex; + justify-content: center; + align-items: center; + } + } +} diff --git a/src/components/CategoriesItem/CategoriesItem.js b/src/components/CategoriesItem/CategoriesItem.js deleted file mode 100644 index 97b472b3..00000000 --- a/src/components/CategoriesItem/CategoriesItem.js +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import {Link} from "react-router-dom"; - -import rightArrow from "../../images/arrowRight.png" - -import './categoriesItem.scss' - -export const CategoriesItem = ({img, title, skills, available, link}) => { - return( - -
- img -
{title}
-
-
-

{skills}

-
- arrow -
-
- - ) -}; - -export default CategoriesItem diff --git a/src/components/CategoriesItem/CategoriesItem.jsx b/src/components/CategoriesItem/CategoriesItem.jsx new file mode 100644 index 00000000..a91eeccc --- /dev/null +++ b/src/components/CategoriesItem/CategoriesItem.jsx @@ -0,0 +1,30 @@ +import React from "react"; +import { Link } from "react-router-dom"; + +import rightArrow from "assets/icons/arrows/arrowRight.svg"; + +import "./categoriesItem.scss"; + +export const CategoriesItem = ({ img, title, skills, available, link }) => { + return ( + +
+ img +
{title}
+
+
+

{skills}

+
+ arrow +
+
+ + ); +}; + +export default CategoriesItem; diff --git a/src/components/CategoriesItem/categoriesItem.scss b/src/components/CategoriesItem/categoriesItem.scss index 55805cfd..eabcad44 100644 --- a/src/components/CategoriesItem/categoriesItem.scss +++ b/src/components/CategoriesItem/categoriesItem.scss @@ -2,7 +2,7 @@ display: flex; flex-direction: column; padding: 33px 32px 25px 28px; - background: #FFFFFF; + background: #ffffff; border-radius: 12px; transition: all 0.3s ease; position: relative; @@ -18,7 +18,6 @@ pointer-events: none; } - &__title { display: flex; align-items: center; @@ -43,7 +42,7 @@ p { max-width: 181px; margin-bottom: 0; - color: #6F6F6F; + color: #6f6f6f; font-weight: 400; font-size: 12px; line-height: 20px; @@ -55,7 +54,7 @@ justify-content: center; width: 48px; height: 48px; - background: #DDEEC6; + background: #ddeec6; border-radius: 50px; } } diff --git a/src/components/AuthHeader/AuthHeader.js b/src/components/Common/AuthHeader/AuthHeader.jsx similarity index 93% rename from src/components/AuthHeader/AuthHeader.js rename to src/components/Common/AuthHeader/AuthHeader.jsx index 1b072eed..7a87abb6 100644 --- a/src/components/AuthHeader/AuthHeader.js +++ b/src/components/Common/AuthHeader/AuthHeader.jsx @@ -1,8 +1,9 @@ import React from "react"; import { NavLink } from "react-router-dom"; -import { scrollToForm } from "../../helper"; -import userIcon from "../../images/userIcon.png"; +import { scrollToForm } from "@utils/helper"; + +import userIcon from "assets/icons/userIcon.svg"; import "./authHeader.scss"; diff --git a/src/components/AuthHeader/authHeader.scss b/src/components/Common/AuthHeader/authHeader.scss similarity index 97% rename from src/components/AuthHeader/authHeader.scss rename to src/components/Common/AuthHeader/authHeader.scss index a5a968f2..c54781ef 100644 --- a/src/components/AuthHeader/authHeader.scss +++ b/src/components/Common/AuthHeader/authHeader.scss @@ -53,7 +53,7 @@ } .candidate { - color: #1458DD; + color: #1458dd; } } } diff --git a/src/components/Common/BaseButton/BaseButton.jsx b/src/components/Common/BaseButton/BaseButton.jsx new file mode 100644 index 00000000..58cf2b15 --- /dev/null +++ b/src/components/Common/BaseButton/BaseButton.jsx @@ -0,0 +1,16 @@ +import React from "react"; + +import classes from "./basebutton.module.scss"; + +export const BaseButton = ({ children, styles, ...props }) => { + return ( + + ); +}; + +export default BaseButton; diff --git a/src/components/Common/BaseButton/basebutton.module.scss b/src/components/Common/BaseButton/basebutton.module.scss new file mode 100644 index 00000000..17551290 --- /dev/null +++ b/src/components/Common/BaseButton/basebutton.module.scss @@ -0,0 +1,18 @@ +.button { + display: flex; + align-items: center; + justify-content: center; + background-color: #52b709; + border-radius: 44px; + color: white; + font-style: normal; + font-family: "LabGrotesque", sans-serif; + border: none; + transition: 0.5s; + + &:hover { + transition: 0.5s; + background-color: #52b709a8; + text-decoration: none; + } +} diff --git a/src/components/Common/Footer/Footer.jsx b/src/components/Common/Footer/Footer.jsx new file mode 100644 index 00000000..24fc8e70 --- /dev/null +++ b/src/components/Common/Footer/Footer.jsx @@ -0,0 +1,53 @@ +import React from "react"; + +import logo from "assets/images/logo/LogoITguild.svg"; +import vk from "assets/icons/vkLogo.svg"; +import tg from "assets/icons/tgFooter.svg"; +import email from "assets/icons/emailLogo.svg"; + +import "./footer.scss"; + +export const Footer = () => { + return ( +
+
+
+
+ logo +

+ Подберем и документально оформим IT-специалистов, после чего + передадим исполнителей под ваше руководство. Вы получаете полное + управление над сотрудниками, имея возможность контролировать и + заменять IT штат. +

+
+ © {new Date().getFullYear()} - Все права защищены +
+
+
+
+ +

Войти в команду

+
+ +
+
+
+
+ ); +}; diff --git a/src/components/Common/Footer/footer.scss b/src/components/Common/Footer/footer.scss new file mode 100644 index 00000000..6680a50d --- /dev/null +++ b/src/components/Common/Footer/footer.scss @@ -0,0 +1,121 @@ +footer { + border-top: 1px solid #ebebeb; + padding: 35px 0 50px; +} + +.footer { + &__top { + display: flex; + align-items: start; + + @media (max-width: 620px) { + flex-direction: column; + align-items: center; + row-gap: 15px; + } + + .logo { + width: 83px; + } + + p { + max-width: 620px; + margin-left: 33px; + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: #5b6871; + + @media (max-width: 620px) { + margin-left: 0; + text-align: center; + } + } + } + + &__bottom { + display: flex; + align-items: center; + margin-top: 22px; + justify-content: space-between; + + @media (max-width: 590px) { + flex-direction: column; + } + } + + &__social { + display: flex; + align-items: center; + + @media (max-width: 590px) { + flex-direction: column; + justify-content: center; + } + + &__icons { + display: flex; + column-gap: 10px; + } + + p { + cursor: pointer; + margin-left: 60px; + font-weight: 500; + font-size: 14px; + line-height: 33px; + + @media (max-width: 590px) { + margin-left: 0; + } + } + } + + &__info { + display: flex; + align-items: center; + } + + &__mail { + display: flex; + align-items: center; + column-gap: 13px; + + p { + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: #5b6871; + } + } + + &__policy { + font-weight: 400; + font-size: 10px; + line-height: 16px; + color: #5b6871; + margin-left: 150px; + + @media (max-width: 720px) { + margin-left: 30px; + } + + &:hover { + color: #5b6871; + text-decoration: none; + } + } + + &__copyright { + margin-left: auto; + + @media (max-width: 910px) { + min-width: 142px; + margin-left: 15px; + } + + @media (max-width: 620px) { + margin-left: 0; + } + } +} diff --git a/src/components/Common/Loader/Loader.jsx b/src/components/Common/Loader/Loader.jsx new file mode 100644 index 00000000..d61acb83 --- /dev/null +++ b/src/components/Common/Loader/Loader.jsx @@ -0,0 +1,17 @@ +import React from "react"; +import SVGLoader from "react-loader-spinner"; + +import "./loader.scss"; + +export const Loader = ({ width = 50, height = 50, style }) => { + return ( +
+ +
+ ); +}; diff --git a/src/components/Loader/loader.scss b/src/components/Common/Loader/loader.scss similarity index 99% rename from src/components/Loader/loader.scss rename to src/components/Common/Loader/loader.scss index 8793f929..bfb8b104 100644 --- a/src/components/Loader/loader.scss +++ b/src/components/Common/Loader/loader.scss @@ -5,6 +5,7 @@ justify-content: center; align-items: center; position: relative; + &:hover { path { fill: #6aaf5c; diff --git a/src/components/Common/ModalLayout/ModalLayout.jsx b/src/components/Common/ModalLayout/ModalLayout.jsx new file mode 100644 index 00000000..7c6f034c --- /dev/null +++ b/src/components/Common/ModalLayout/ModalLayout.jsx @@ -0,0 +1,30 @@ +import React from "react"; + +import "./modalLayout.scss"; + +export const ModalLayout = ({ + active, + setActive, + children, + styles, + ...props +}) => { + return ( +
setActive(false)} + {...props} + > +
e.stopPropagation()} + > + {children} +
+
+ ); +}; + +export default ModalLayout; diff --git a/src/components/Common/ModalLayout/modalLayout.scss b/src/components/Common/ModalLayout/modalLayout.scss new file mode 100644 index 00000000..0f9639c2 --- /dev/null +++ b/src/components/Common/ModalLayout/modalLayout.scss @@ -0,0 +1,28 @@ +.modal-layout { + z-index: 9; + height: 100%; + width: 100%; + background-color: rgba(0, 0, 0, 0.11); + position: fixed; + top: 0; + left: 0; + display: flex; + align-items: center; + justify-content: center; + transform: scale(0); + + &__content { + position: relative; + background: linear-gradient(180deg, #ffffff 0%, #ebebeb 100%); + border-radius: 24px; + padding: 60px 60px 30px 60px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + } +} + +.modal-layout.active { + transform: scale(1); +} diff --git a/src/components/Description/Description.js b/src/components/Description/Description.jsx similarity index 91% rename from src/components/Description/Description.js rename to src/components/Description/Description.jsx index 031a07be..3fdcef9b 100644 --- a/src/components/Description/Description.js +++ b/src/components/Description/Description.jsx @@ -4,14 +4,12 @@ import { Link } from "react-router-dom"; import ErrorBoundary from "../../hoc/ErrorBoundary"; -import { LEVELS, SKILLS } from "../../constants/constants"; -import { selectProfiles } from "../../redux/outstaffingSlice"; +import { LEVELS, SKILLS } from "@utils/constants"; +import { urlForLocal } from "@utils/helper"; +import { selectProfiles } from "@redux/outstaffingSlice"; -import { urlForLocal } from "../../helper"; - -import male from "../../images/medium_male.png"; -import rectangle from "../../images/rectangle_secondPage.png"; -import cursorImg from "../../images/cursorImg.png"; +import rectangle from "assets/images/rectangle_secondPage.png"; +import cursorImg from "assets/icons/cursorImg.svg"; import "./description.scss"; diff --git a/src/components/Footer/Footer.js b/src/components/Footer/Footer.js deleted file mode 100644 index 77347884..00000000 --- a/src/components/Footer/Footer.js +++ /dev/null @@ -1,49 +0,0 @@ -import React from 'react' - -import logo from '../../images/logoGuild.png' -import vk from '../../images/vkLogo.svg' -import tg from '../../images/tgFooter.png' -import email from '../../images/emailLogo.svg' - -import './footer.scss' - -export const Footer = () => { - return ( -
-
-
-
- logo -

Подберем и документально оформим IT-специалистов, после чего передадим исполнителей под ваше руководство. - Вы получаете полное управление над сотрудниками, имея возможность контролировать и заменять IT штат.

-
- © {new Date().getFullYear()} - Все права защищены -
-
-
-
- -

Войти в команду

-
- -
-
-
-
- ) -} diff --git a/src/components/Footer/footer.scss b/src/components/Footer/footer.scss deleted file mode 100644 index 59f2c49d..00000000 --- a/src/components/Footer/footer.scss +++ /dev/null @@ -1,215 +0,0 @@ -footer { - border-top: 1px solid #ebebeb; - padding: 35px 0 50px; -} - -.footer { - - &__top { - display: flex; - align-items: start; - - @media (max-width: 620px) { - flex-direction: column; - align-items: center; - row-gap: 15px; - } - - p { - max-width: 620px; - margin-left: 33px; - font-weight: 400; - font-size: 12px; - line-height: 16px; - color: #5B6871; - - @media (max-width: 620px) { - margin-left: 0; - text-align: center; - } - } - } - - &__bottom { - display: flex; - align-items: center; - margin-top: 22px; - justify-content: space-between; - - @media (max-width: 590px) { - flex-direction: column; - } - } - - &__social { - display: flex; - align-items: center; - - @media (max-width: 590px) { - flex-direction: column; - justify-content: center; - } - - &__icons { - display: flex; - column-gap: 10px; - } - - p { - cursor: pointer; - margin-left: 60px; - font-weight: 500; - font-size: 14px; - line-height: 33px; - - @media (max-width: 590px) { - margin-left: 0; - } - } - } - - &__info { - display: flex; - align-items: center; - } - - &__mail { - display: flex; - align-items: center; - column-gap: 13px; - - p { - font-weight: 400; - font-size: 12px; - line-height: 16px; - color: #5B6871; - } - } - - &__policy { - font-weight: 400; - font-size: 10px; - line-height: 16px; - color: #5B6871; - margin-left: 150px; - - @media (max-width: 720px) { - margin-left: 30px; - } - - &:hover { - color: #5B6871; - text-decoration: none; - } - } - - &__copyright { - margin-left: auto; - - @media (max-width: 910px) { - min-width: 142px; - margin-left: 15px; - } - - @media (max-width: 620px) { - margin-left: 0; - } - } - //margin-top: -3rem; - // - //&__left { - // display: flex; - // align-items: center; - //} - // - //&__description { - // padding: 0 100px 0 34px; - // - // span { - // color: #18586e; - // font-family: 'GT Eesti Pro Display'; - // font-size: 1.6em; - // font-weight: 400; - // font-style: normal; - // letter-spacing: normal; - // line-height: 16.81px; - // text-align: left; - // } - //} - // - //&__icon { - // text-align: end; - // - // img { - // margin-left: 20px; - // } - //} - // - //&__right { - // display: flex; - // flex-direction: column; - // align-items: left; - //} - // - //&__phone { - // color: #003b65; - // font-family: 'CeraPro'; - // font-size: 2.1em; - // letter-spacing: normal; - // line-height: 25px; - // text-align: left; - //} - // - //&__working-hours { - // color: #003b65; - // font-family: 'CeraPro'; - // font-size: 1.2em; - // font-weight: 400; - // font-style: normal; - // letter-spacing: normal; - // line-height: normal; - // margin-left: 24px; - //} - // - //&__copyright { - // padding: 1rem 1rem 1rem 5.6rem; - // font-family: 'Muller'; - // font-weight: 300; - // font-size: 1.2em; - //} -} - -//@media (max-width: 1199px) { -// .footer { -// &__left { -// margin-bottom: 20px; -// } -// } -//} -// -//@media (max-width: 575.98px) { -// .footer { -// &__left { -// margin-top: 80px; -// } -// -// &__description { -// padding: 0; -// margin-left: 10px; -// -// span { -// font-size: 1.2em; -// } -// } -// -// &__icon { -// img { -// margin-left: 10px; -// } -// } -// -// &__right { -// margin-bottom: 20px; -// } -// } -//} diff --git a/src/components/Form/Form.js b/src/components/Form/Form.js deleted file mode 100644 index af4d5b11..00000000 --- a/src/components/Form/Form.js +++ /dev/null @@ -1,134 +0,0 @@ -import React, {useEffect, useState} from 'react' -import {useParams, useNavigate} from 'react-router-dom' -import {Loader} from '../Loader/Loader' -import PhoneInput from 'react-phone-input-2' -import 'react-phone-input-2/lib/style.css' -import './form.scss' - -import {apiRequest} from "../../api/request"; - -import Swal from 'sweetalert2' -import withReactContent from 'sweetalert2-react-content' - -const SweetAlert = withReactContent(Swal); - -const Form = () => { - - const navigate = useNavigate(); - - const urlParams = useParams(); - - const [status, setStatus] = useState(null); - const [data, setData] = useState({ - email: '', - phone: '', - comment: '' - }); - const [isFetching, setIsFetching] = useState(false); - - const handleModal = (status) => { - SweetAlert.fire({ - text: status !== 200 || 201 - ? 'Какие-то неполадки =(' - : 'Форма отправлена', - preConfirm: () => - status !== 200 || 201 ? () => { - setStatus(null) - } : () => { - setStatus(null); - navigate(`/candidate/${urlParams.id}`) - } - }); - }; - - useEffect(() => { - if (status) { - handleModal(status) - } - }, [status]); - - const handleChange = (e) => { - const {id, value} = e.target; - - setData((prev) => ({ - ...prev, - [id]: value - })) - }; - - const handleSubmit = (e) => { - e.preventDefault(); - - setIsFetching(true); - const formData = new FormData(); - formData.append('profile_id', urlParams.id); - formData.append('Email', data.email); - formData.append('phone', data.phone); - formData.append('comment', data.comment); - - apiRequest('/interview-request/create-interview-request', { - method: 'POST', - params: { - profile_id: urlParams.id, - ...data - } - }).then((res) => { - setStatus(res); - setIsFetching(false) - } - ) - }; - - return ( -
-
- - - - - - - handleChange({target: {value: e, id: 'phone'}}) - } - /> - {/* */} - - - - - -
-
- ) -}; - -export default Form diff --git a/src/components/Form/Form.jsx b/src/components/Form/Form.jsx new file mode 100644 index 00000000..b0d07445 --- /dev/null +++ b/src/components/Form/Form.jsx @@ -0,0 +1,125 @@ +import React, { useEffect, useState } from "react"; +import { useParams, useNavigate } from "react-router-dom"; +import PhoneInput from "react-phone-input-2"; + +import { apiRequest } from "@api/request"; +import { Loader } from "@components/Common/Loader/Loader"; +import Swal from "sweetalert2"; +import withReactContent from "sweetalert2-react-content"; + +import "react-phone-input-2/lib/style.css"; +import "./form.scss"; + +const SweetAlert = withReactContent(Swal); + +const Form = () => { + const navigate = useNavigate(); + + const urlParams = useParams(); + + const [status, setStatus] = useState(null); + const [data, setData] = useState({ + email: "", + phone: "", + comment: "", + }); + const [isFetching, setIsFetching] = useState(false); + + const handleModal = (status) => { + SweetAlert.fire({ + text: + status !== 200 || 201 ? "Какие-то неполадки =(" : "Форма отправлена", + preConfirm: () => + status !== 200 || 201 + ? () => { + setStatus(null); + } + : () => { + setStatus(null); + navigate(`/candidate/${urlParams.id}`); + }, + }); + }; + + useEffect(() => { + if (status) { + handleModal(status); + } + }, [status]); + + const handleChange = (e) => { + const { id, value } = e.target; + + setData((prev) => ({ + ...prev, + [id]: value, + })); + }; + + const handleSubmit = (e) => { + e.preventDefault(); + + setIsFetching(true); + const formData = new FormData(); + formData.append("profile_id", urlParams.id); + formData.append("Email", data.email); + formData.append("phone", data.phone); + formData.append("comment", data.comment); + + apiRequest("/interview-request/create-interview-request", { + method: "POST", + params: { + profile_id: urlParams.id, + ...data, + }, + }).then((res) => { + setStatus(res); + setIsFetching(false); + }); + }; + + return ( +
+
+
+ + + + + + handleChange({ target: { value: e, id: "phone" } }) + } + /> + + + + + +
+
+ ); +}; + +export default Form; diff --git a/src/components/UI/FreeDevelopers/FreeDevelopers.jsx b/src/components/FreeDevelopers/FreeDevelopers.jsx similarity index 82% rename from src/components/UI/FreeDevelopers/FreeDevelopers.jsx rename to src/components/FreeDevelopers/FreeDevelopers.jsx index 53fa1ec3..5b52026b 100644 --- a/src/components/UI/FreeDevelopers/FreeDevelopers.jsx +++ b/src/components/FreeDevelopers/FreeDevelopers.jsx @@ -1,15 +1,16 @@ import React from "react"; - -import AuthHeader from "../../AuthHeader/AuthHeader"; -import SideBar from "../../SideBar/SideBar"; -import { Footer } from "../../Footer/Footer"; - import { Link } from "react-router-dom"; -import { scrollToForm } from "../../../helper"; -import { ProfileBreadcrumbs } from "../../ProfileBreadcrumbs/ProfileBreadcrumbs"; -import mockWorker from "../../../images/mokPerson.png"; -import arrow from "../../../images/arrow_left.png"; +import { scrollToForm } from "@utils/helper"; + +import AuthHeader from "@components/Common/AuthHeader/AuthHeader"; +import SideBar from "@components/SideBar/SideBar"; +import { Footer } from "@components/Common/Footer/Footer"; +import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs"; +import BaseButton from "@components/Common/BaseButton/BaseButton"; + +import mockWorker from "assets/images/mock/mokPerson.png"; +import arrow from "assets/icons/arrows/arrow_left.png"; import "./freeDevelopers.scss"; @@ -42,9 +43,9 @@ export const FreeDevelopers = ({}) => {
- +
@@ -84,14 +85,13 @@ export const FreeDevelopers = ({}) => {
-
+

Для просмотра полного резюме разработчика авторизуйтесь

- - Войти - + + Войти +
-