commit 8278a33443bd266a68fcadf4b76673192d9b96a8 Author: Olu Amey Date: Sat Mar 25 23:06:51 2023 -0400 first commit diff --git a/.env b/.env new file mode 100644 index 0000000..0db2203 --- /dev/null +++ b/.env @@ -0,0 +1,16 @@ +PUBLIC_URL=http://localhost:3000/ +PORT=3000 +PRIMARY_APP_API_URL=https://preview.keenthemes.com/metronic8/laravel/api +REACT_APP_BASE_LAYOUT_CONFIG_KEY='metronic-react-demo1-8150' +REACT_APP_API_URL=https://preview.keenthemes.com/metronic8/laravel/api +REACT_APP_VERSION=v8.1.5 +REACT_APP_THEME_NAME=WrenchBoard +REACT_APP_THEME_DEMO=dashboard +REACT_APP_BOOTSTRAP_DOCS_LINK=https://getbootstrap.com/docs/5.0 +REACT_APP_SASS_PATH=src/_metronic/assets/sass/core/components +REACT_APP_SASS_VARIABLES_PATH=src/_metronic/assets/sass/core/components/_variables.scss +REACT_APP_PURCHASE_URL=https://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469 +REACT_APP_PREVIEW_URL=https://preview.keenthemes.com/metronic8/react/demo1/ +REACT_APP_PREVIEW_REACT_URL=https://preview.keenthemes.com/metronic8/react +REACT_APP_PREVIEW_DOCS_URL=https://preview.keenthemes.com/metronic8/react/docs +REACT_APP_THEME_API_URL=https://preview.keenthemes.com/theme-api/api \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2eec5e5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..77599e6 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +node_modules +build +coverage +.vscode \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..f04daaf --- /dev/null +++ b/.prettierrc @@ -0,0 +1,16 @@ +{ + "printWidth": 100, + "trailingComma": "es5", + "tabWidth": 2, + "semi": false, + "singleQuote": true, + "bracketSpacing": false, + "jsxBracketSameLine": false, + "arrowParens": "always", + "endOfLine": "auto", + "jsxSingleQuote": true, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "useTabs": false, + "htmlWhitespaceSensitivity": "css" +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..b58e0af --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `yarn start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.\ +You will also see any lint errors in the console. + +### `yarn test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `yarn build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `yarn eject` + +**Note: this is a one-way operation. Once you `eject`, you can’t go back!** + +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. + +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ff021ef --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,27 @@ +version: '3' +services: + float-users: + build: + context: . + dockerfile: docker/Dockerfile + restart: unless-stopped + ports: + - 5502:3000 + # - 3800:3011 + extra_hosts: + - backend.wrenchboard.api.live:10.10.33.15 + - backend.wrenchboard.api.test:10.10.33.15 + # #- backend.wrenchboard.api.live:172.31.4.27 + # #- backend.wrenchboard.api.test:10.20.30.27 + - apigateway.wrenchboard.app.dev.fluxtra.net:10.20.30.19 + - apigateway.wrenchboard.app.lotus.fluxtra.net:172.31.4.19 + environment: + - CHOKIDAR_USEPOLLING=true + # volumes: + # - ./:/app + # - /app/node_modules + tty: true + stdin_open: true + # working_dir: /app +volumes: + src: diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..3eac1fd --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,23 @@ +# pull official base image +FROM node:18.12.1-alpine + +# set working directory +WORKDIR /app + +# add `/app/node_modules/.bin` to $PATH +ENV PATH /app/node_modules/.bin:$PATH + +# install app dependencies +COPY package.json ./ +#COPY package-lock.json ./ +RUN npm install --silent +# RUN npm install react-scripts@3.4.1 -g --silent + +# add app +COPY . ./ + +# start app +CMD ["npm","run", "start"] + +# CMD ["yarn", "start"] + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..df579c2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,27510 @@ +{ + "name": "demo1", + "version": "8.1.5", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "demo1", + "version": "8.1.5", + "dependencies": { + "@formatjs/intl-pluralrules": "4.3.3", + "@formatjs/intl-relativetimeformat": "10.0.1", + "@fortawesome/fontawesome-free": "6.1.1", + "@popperjs/core": "2.11.5", + "animate.css": "4.1.1", + "apexcharts": "3.35.0", + "axios": "0.26.1", + "bootstrap": "5.2.0-beta1", + "bootstrap-icons": "^1.5.0", + "chart.js": "3.7.1", + "clsx": "1.1.1", + "formik": "2.2.9", + "line-awesome": "1.3.0", + "nouislider": "15.5.1", + "prism-react-renderer": "1.3.1", + "prism-themes": "1.9.0", + "prismjs": "1.28.0", + "qs": "6.10.3", + "react": "18.0.0", + "react-apexcharts": "1.4.0", + "react-bootstrap": "2.5.0-beta.1", + "react-copy-to-clipboard": "5.1.0", + "react-dom": "18.0.0", + "react-inlinesvg": "3.0.0", + "react-intl": "5.25.0", + "react-query": "3.38.0", + "react-router-dom": "6.3.0", + "react-scripts": "5.0.1", + "react-table": "^7.7.0", + "react-topbar-progress-indicator": "4.1.1", + "sass": "1.50.1", + "socicon": "3.0.5", + "yup": "0.32.11" + }, + "devDependencies": { + "@testing-library/jest-dom": "5.16.4", + "@testing-library/react": "13.1.1", + "@testing-library/user-event": "13.5.0", + "@types/bootstrap": "5.1.10", + "@types/chart.js": "2.9.37", + "@types/jest": "27.4.1", + "@types/node": "16.11.27", + "@types/prismjs": "1.26.0", + "@types/qs": "6.9.7", + "@types/react": "18.0.6", + "@types/react-copy-to-clipboard": "5.0.2", + "@types/react-dom": "18.0.2", + "@types/react-table": "^7.7.9", + "@types/sass-loader": "8.0.3", + "css-loader": "6.7.1", + "del": "6.0.0", + "mini-css-extract-plugin": "2.6.1", + "prettier": "2.6.2", + "rtlcss-webpack-plugin": "4.0.7", + "sass-loader": "13.0.2", + "typescript": "4.6.3", + "webpack": "5.74.0", + "webpack-cli": "4.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@apideck/better-ajv-errors": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", + "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "dependencies": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", + "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", + "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz", + "integrity": "sha512-EfH2LZ/vPa2wuPwJ26j+kYRkaubf89UlwxKXtxqEm57HrgSEYDB8t4swFP+p8LcI9yiP9ZRJJjo/58hS6BnaDA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.9", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "dependencies": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", + "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", + "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", + "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-flow": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", + "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", + "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz", + "integrity": "sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", + "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", + "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", + "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", + "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz", + "integrity": "sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==", + "dependencies": { + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", + "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dependencies": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", + "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-react-display-name": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", + "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", + "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz", + "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==", + "dependencies": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.9", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.0.tgz", + "integrity": "sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", + "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", + "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", + "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.2.tgz", + "integrity": "sha512-L9h1yxXMj7KpgNzlMrw3isvHJYkikZgZE4ASwssTnGEH8tm50L6QsM9QQT5wR4/eO5mU0rN5axH7UzNxEYg5CA==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", + "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.0.tgz", + "integrity": "sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", + "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "1.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", + "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", + "dependencies": { + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz", + "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.0.19.tgz", + "integrity": "sha512-8HsLm9YLyVVIDMyBJb7wmve2wGd461cUwJ470eUog5YH5ZsF4p5lgvaJ+oGKxz1mrSMNNdDHU9v/NDsS+z+ilg==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-skeleton-parser": "1.3.6", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz", + "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.0.tgz", + "integrity": "sha512-2wLE64ns7QcQvqeNmwIFZBnDZ6XcL1QKx+x7A9J25XykCIgIMZNF5Dx7LAxJplCLRCqh2Eh0Q4ZVC1GLcZA4MQ==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.0.19", + "@formatjs/intl-displaynames": "5.4.3", + "@formatjs/intl-listformat": "6.5.3", + "intl-messageformat": "9.12.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "typescript": "^4.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@formatjs/intl-displaynames": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz", + "integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl-listformat": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz", + "integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.2.25", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz", + "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl-pluralrules": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.3.3.tgz", + "integrity": "sha512-NLZN8gf2qLpCuc0m565IbKLNUarEGOzk0mkdTkE4XTuNCofzoQTurW6lL3fmDlneAoYl2FiTdHa5q4o2vZF50g==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl-relativetimeformat": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-10.0.1.tgz", + "integrity": "sha512-AABPQtPjFilXegQsnmVHrSlzjFNUffAEk5DgowY6b7WSwDI7g2W6QgW903/lbZ58emhphAbgHdtKeUBXqTiLpw==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "node_modules/@fortawesome/fontawesome-free": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.1.1.tgz", + "integrity": "sha512-J/3yg2AIXc9wznaVqpHVX3Wa5jwKovVF0AMYSnbmcXTiL3PpRPfF58pzWucCwEiCJBp+hCNRLWClTomD8SseKg==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", + "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", + "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.5.tgz", + "integrity": "sha512-RbG7h6TuP6nFFYKJwbcToA1rjC1FyPg25NR2noAZ0vKI+la01KTSRPkuVPE+U88jXv7javx2JHglUcL1MHcshQ==", + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.8.1", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <3.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.2.0.tgz", + "integrity": "sha512-wwJFdkl+Q8NU5yJ4NvdAOqx5LM3QtUVoSjuK7Ey8jZ4WS4bB0EqT3Kr3IInBs257HzZ5nXCiKXKE4NGXXuIRWA==", + "dependencies": { + "@babel/runtime": "^7.6.2" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@restart/hooks": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz", + "integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==", + "dependencies": { + "dequal": "^2.0.2" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@restart/ui": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.3.0.tgz", + "integrity": "sha512-VRb330/6tDaHAHRkqe0GOawuj+hcZM7Zp5piWk/3AVwW18+0sQxGqqFeiH1ZeEMdn7w+D8bZPaY3QoLTmDKcGg==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@popperjs/core": "^2.11.5", + "@react-aria/ssr": "^3.2.0", + "@restart/hooks": "^0.4.7", + "@types/warning": "^3.0.0", + "dequal": "^2.0.2", + "dom-helpers": "^5.2.0", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz", + "integrity": "sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo/node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.13.0.tgz", + "integrity": "sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.16.4", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.4.tgz", + "integrity": "sha512-Gy+IoFutbMQcky0k+bqqumXZ1cTGswLsFqmNLzNdSKkU9KGV2u9oXhukCbbJ9/LRPKiqwxEE8VpV/+YZlfkPUA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/react": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.1.1.tgz", + "integrity": "sha512-8mirlAa0OKaUvnqnZF6MdAh2tReYA2KtWVw1PKvaF5EcCZqgK5pl8iF+3uW90JdG5Ua2c2c2E2wtLdaug3dsVg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.0.tgz", + "integrity": "sha512-r8aveDbd+rzGP+ykSdF3oPuTVRWRfbBiHl0rVDM2yNEmSMXfkObQLV46b4RnCv3Lra51OlfnZhkkFaDl2MIRaA==", + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/bootstrap": { + "version": "5.1.10", + "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.1.10.tgz", + "integrity": "sha512-N93bSEnlUuRkzZim83hE36dIExrXf+6NlUQRJfOfT7N9kk53j6UtMNXG4TgCUACsmc7XVPwtnJyGVfSrD2KvOA==", + "dev": true, + "dependencies": { + "@popperjs/core": "^2.9.2", + "@types/jquery": "*" + } + }, + "node_modules/@types/chart.js": { + "version": "2.9.37", + "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.37.tgz", + "integrity": "sha512-9bosRfHhkXxKYfrw94EmyDQcdjMaQPkU1fH2tDxu8DWXxf1mjzWQAV4laJF51ZbC2ycYwNDvIm1rGez8Bug0vg==", + "dev": true, + "dependencies": { + "moment": "^2.10.2" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "27.4.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz", + "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==", + "dev": true, + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "node_modules/@types/jquery": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz", + "integrity": "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==", + "dev": true, + "dependencies": { + "@types/sizzle": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + }, + "node_modules/@types/lodash": { + "version": "4.14.182", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", + "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==" + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "node_modules/@types/node": { + "version": "16.11.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.27.tgz", + "integrity": "sha512-C1pD3kgLoZ56Uuy5lhfOxie4aZlA3UMGLX9rXteq4WitEZH6Rl80mwactt9QG0w0gLFlN/kLBTFnGXtDVWvWQw==" + }, + "node_modules/@types/node-sass": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@types/node-sass/-/node-sass-4.11.3.tgz", + "integrity": "sha512-wXPCn3t9uu5rR4zXNSLasZHQMuRzUKBsdi4MsgT8uq4Lp1gQQo+T2G23tGj4SSgDHeNBle6vGseZtM2XV/X9bw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "node_modules/@types/prettier": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz", + "integrity": "sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw==" + }, + "node_modules/@types/prismjs": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.0.tgz", + "integrity": "sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "node_modules/@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "node_modules/@types/react": { + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.6.tgz", + "integrity": "sha512-bPqwzJRzKtfI0mVYr5R+1o9BOE8UEXefwc1LwcBtfnaAn6OoqMhLa/91VA8aeWfDPJt1kHvYKI8RHcQybZLHHA==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-copy-to-clipboard": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz", + "integrity": "sha512-O29AThfxrkUFRsZXjfSWR2yaWo0ppB1yLEnHA+Oh24oNetjBAwTDu1PmolIqdJKzsZiO4J1jn6R6TmO96uBvGg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.2.tgz", + "integrity": "sha512-UxeS+Wtj5bvLRREz9tIgsK4ntCuLDo0EcAcACgw3E+9wE8ePDr9uQpq53MfcyxyIS55xJ+0B6mDS8c4qkkHLBg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-table": { + "version": "7.7.11", + "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-7.7.11.tgz", + "integrity": "sha512-Ntfr4EMWgqf/m/CxfmiHww5HvE1nOfK3yEm3NJ3ZWv9IkdteqTOklG3rJtFCtICKAkr3q5pqajkm0y1+WnmdbA==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", + "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + }, + "node_modules/@types/sass": { + "version": "1.43.1", + "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz", + "integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/sass-loader": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@types/sass-loader/-/sass-loader-8.0.3.tgz", + "integrity": "sha512-lwOlTt9erV7A9rwTYGqya+swf6D/2OqiHjegr1No9Lu/2KAUFONyyZD5jjVKPO1BHgtr+7r0R/IbwzQcmsPoYg==", + "dev": true, + "dependencies": { + "@types/node-sass": "*", + "@types/sass": "*", + "@types/webpack": "^4" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + }, + "node_modules/@types/tapable": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", + "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==", + "dev": true + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.3", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz", + "integrity": "sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==", + "dev": true, + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", + "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" + }, + "node_modules/@types/uglify-js": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.0.tgz", + "integrity": "sha512-3HO6rm0y+/cqvOyA8xcYLweF0TKXlAxmQASjbOi49Co51A1N4nR4bEwBgRoD9kNM+rqFGArjKr654SLp2CoGmQ==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" + }, + "node_modules/@types/webpack": { + "version": "4.41.32", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz", + "integrity": "sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@types/webpack-sources": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", + "integrity": "sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + } + }, + "node_modules/@types/webpack-sources/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz", + "integrity": "sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.20.0", + "@typescript-eslint/type-utils": "5.20.0", + "@typescript-eslint/utils": "5.20.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.20.0.tgz", + "integrity": "sha512-w5qtx2Wr9x13Dp/3ic9iGOGmVXK5gMwyc8rwVgZU46K9WTjPZSyPvdER9Ycy+B5lNHvoz+z2muWhUvlTpQeu+g==", + "dependencies": { + "@typescript-eslint/utils": "5.20.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz", + "integrity": "sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.20.0", + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/typescript-estree": "5.20.0", + "debug": "^4.3.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", + "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", + "dependencies": { + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/visitor-keys": "5.20.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz", + "integrity": "sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==", + "dependencies": { + "@typescript-eslint/utils": "5.20.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", + "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", + "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", + "dependencies": { + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/visitor-keys": "5.20.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz", + "integrity": "sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.20.0", + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/typescript-estree": "5.20.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", + "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", + "dependencies": { + "@typescript-eslint/types": "5.20.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "dev": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/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==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/animate.css": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz", + "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==" + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apexcharts": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.35.0.tgz", + "integrity": "sha512-oipJRkaxt8DPGRmn1kur6aPzML1JSpf2M3ecu+gyw+8xiNmT2C0p1uuuqPZrk+Lr2hmDxzNBPR7TvxwRl3ozgw==", + "dependencies": { + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, + "node_modules/arg": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", + "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "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": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz", + "integrity": "sha512-Fvd8yCoA7lNX/OUllvS+aS1I7WRBclGXsepbvT8ZaPgrH24rgXpZzF0/6Hh3ZEkwg+0AES/Osd196VZmYoEFtw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001332", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axe-core": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", + "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "node_modules/axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/babel-runtime": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz", + "integrity": "sha512-zeCYxDePWYAT/DfmQWIHsMSFW2vv45UIwIAMjGvQVsTd47RwsiRH0uK1yzyWZ7LDBKdhnGDPM6NYEO5CZyhPrg==", + "dev": true, + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.10.0" + } + }, + "node_modules/babel-runtime/node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "node_modules/bfj": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", + "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "dependencies": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.7", + "raw-body": "2.4.3", + "type-is": "~1.6.18" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/bonjour-service": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.12.tgz", + "integrity": "sha512-pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw==", + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.4" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "node_modules/bootstrap": { + "version": "5.2.0-beta1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.0-beta1.tgz", + "integrity": "sha512-6qbgs177WZEFY4SLQUq3tEHayYG80nfDmyTpdKi0MJqRMdS+HAoq24+YKfx6wf+nHY0rx8zrh477J1lFu4WzOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.5" + } + }, + "node_modules/bootstrap-icons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.8.1.tgz", + "integrity": "sha512-IXUqislddPJfwq6H+2nTkHyr9epO9h6u1AG0OZCx616w+TgzeoCjfmI3qJMQqt1J586gN2IxzB4M99Ip4sTZ1w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/broadcast-channel": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz", + "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "detect-node": "^2.1.0", + "js-sha3": "0.8.0", + "microseconds": "0.2.0", + "nano-time": "1.0.0", + "oblivious-set": "1.0.0", + "rimraf": "3.0.2", + "unload": "2.2.0" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/browserslist": { + "version": "4.20.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001332", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", + "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/chart.js": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.7.1.tgz", + "integrity": "sha512-8knRegQLFnPQAheZV8MjxIXc5gQEfDFD897BJgv/klO/vtIyFFmgMXrNfgrXpbTr/XbTturxRgxIXx/Y+ASJBA==" + }, + "node_modules/check-types": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", + "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + }, + "node_modules/classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + }, + "node_modules/clean-css": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", + "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/coa/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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==" + }, + "node_modules/colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "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==" + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/core-js": { + "version": "3.22.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.2.tgz", + "integrity": "sha512-Z5I2vzDnEIqO2YhELVMFcL1An2CIsFe9Q7byZhs8c/QxummxZlAHw33TUHbIte987LkisOgL0LwQ1P9D6VISnA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.22.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.2.tgz", + "integrity": "sha512-Fns9lU06ZJ07pdfmPMu7OnkIKGPKDzXKIiuGlSvHHapwqMUF2QnnsWwtueFZtSyZEilP0o6iUeHQwpn7LxtLUw==", + "dependencies": { + "browserslist": "^4.20.2", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-js-pure": { + "version": "3.22.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.2.tgz", + "integrity": "sha512-Lb+/XT4WC4PaCWWtZpNPaXmjiNDUe5CJuUtbkMrIM1kb1T/jJoAIp+bkVP/r5lHzMr+ZAAF8XHp7+my6Ol0ysQ==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", + "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/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==" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", + "dev": true + }, + "node_modules/cssdb": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz", + "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.7.tgz", + "integrity": "sha512-pVsUV6LcTXif7lvKKW9ZrmX+rGRzxkEdJuVJcp5ftUjWITgwam5LMZOgaTvUrWPkcORBey6he7JKb4XAJvrpKg==", + "dependencies": { + "cssnano-preset-default": "^5.2.7", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.7.tgz", + "integrity": "sha512-JiKP38ymZQK+zVKevphPzNSGHSlTI+AOwlasoSRtSVMUU285O7/6uZyd5NbW92ZHp41m0sSHe6JoZosakj63uA==", + "dependencies": { + "css-declaration-sorter": "^6.2.2", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.0", + "postcss-discard-comments": "^5.1.1", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.4", + "postcss-merge-rules": "^5.1.1", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.2", + "postcss-minify-selectors": "^5.2.0", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/csstype": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", + "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==" + }, + "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==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "node_modules/del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dependencies": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "node_modules/dns-packet": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", + "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz", + "integrity": "sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw==", + "dev": true + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/ejs": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz", + "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.118", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.118.tgz", + "integrity": "sha512-maZIKjnYDvF7Fs35nvVcyr44UcKNwybr93Oba2n3HkKDFAtk0svERkLN/HyczJDS3Fo4wU9th9fUQd09ZLtj1w==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "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==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", + "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "dependencies": { + "stackframe": "^1.1.1" + } + }, + "node_modules/es-abstract": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", + "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", + "dependencies": { + "@eslint/eslintrc": "^1.2.2", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", + "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "dependencies": { + "@babel/runtime": "^7.16.3", + "aria-query": "^4.2.2", + "array-includes": "^3.1.4", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.3.5", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.7", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.2.1", + "language-tags": "^1.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", + "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz", + "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.3.1.tgz", + "integrity": "sha512-OfF4dlG/q6ck6DL3P8Z0FPdK0dU5K57gsBu7eUcaVbwYKaNzjgejnXiM9CCUevppORkvfek+9D3Uj/9ZZ8Vz8g==", + "dependencies": { + "@typescript-eslint/utils": "^5.13.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "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==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "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==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", + "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", + "dependencies": { + "@types/eslint": "^7.28.2", + "jest-worker": "^27.3.1", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "dependencies": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.19.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.7", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/express/node_modules/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz", + "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + }, + "node_modules/follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.1.tgz", + "integrity": "sha512-x1wumpHOEf4gDROmKTaB6i4/Q6H3LwmjVO7fIX47vBwlZbtPjU33hgoMuD/Q/y6SU8bnuYSoN6ZQOLshGp0T/g==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formik": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", + "integrity": "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==", + "funding": [ + { + "type": "individual", + "url": "https://opencollective.com/formik" + } + ], + "dependencies": { + "deepmerge": "^2.1.1", + "hoist-non-react-statics": "^3.3.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-fast-compare": "^2.0.1", + "tiny-warning": "^1.0.2", + "tslib": "^1.10.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/formik/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "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", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "dependencies": { + "@babel/runtime": "^7.7.6" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", + "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.12", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz", + "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/intl-messageformat": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.12.0.tgz", + "integrity": "sha512-5Q9j21JreB1G27/CqMYsA+pvJ19JjHyhiTSeUuvZK9BCDJGHtOLgpUUcGM+GLHiUuoVMKVeeX1smamiVHQrSKQ==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.0.19", + "tslib": "^2.1.0" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz", + "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^27.0.0", + "jest-watcher": "^27.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", + "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", + "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==", + "dependencies": { + "array-includes": "^3.1.4", + "object.assign": "^4.1.2" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==" + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/line-awesome": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/line-awesome/-/line-awesome-1.3.0.tgz", + "integrity": "sha512-Y0YHksL37ixDsHz+ihCwOtF5jwJgCDxQ3q+zOVgaSW8VugHGTsZZXMacPYZB1/JULBi6BAuTCTek+4ZY/UIwcw==" + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/match-sorter": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.1.tgz", + "integrity": "sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "remove-accents": "0.4.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/microseconds": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz", + "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", + "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/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==" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz", + "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nano-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz", + "integrity": "sha1-sFVPaa2J4i0JB/ehKwmTpdlhN+8=", + "dependencies": { + "big-integer": "^1.6.16" + } + }, + "node_modules/nanoclone": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", + "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==" + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node_modules/node-releases": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nouislider": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/nouislider/-/nouislider-15.5.1.tgz", + "integrity": "sha512-V8LNPhLPXLNjkgXLfyzDRGDeKvzZeaiIx5YagMiHnOMqgcRzT75jqvEZYXbSrEffXouwcEShSd8Vllm2Nkwqew==" + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/oblivious-set": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz", + "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "dependencies": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "engines": { + "node": ">=4" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/postcss": { + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.1", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", + "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.2" + }, + "peerDependencies": { + "postcss": "^8.0.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", + "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", + "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", + "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz", + "integrity": "sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", + "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz", + "integrity": "sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", + "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.2" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", + "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", + "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", + "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", + "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", + "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", + "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz", + "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.4.tgz", + "integrity": "sha512-hbqRRqYfmXoGpzYKeW0/NCZhvNyQIlQeWVSao5iKWdyx7skLvCfQFGIUsP9NUs3dSbPac2IC4Go85/zG+7MlmA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", + "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz", + "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==", + "dependencies": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", + "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", + "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "dependencies": { + "postcss-selector-parser": "^6.0.6" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.4.tgz", + "integrity": "sha512-2ixdQ59ik/Gt1+oPHiI1kHdwEI8lLKEmui9B1nl6163ANLC+GewQn7fXMxJF2JSb4i2MKL96GU8fIiQztK4TTA==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", + "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", + "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dependencies": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", + "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", + "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", + "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz", + "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==", + "dependencies": { + "@csstools/postcss-color-function": "^1.0.3", + "@csstools/postcss-font-format-keywords": "^1.0.0", + "@csstools/postcss-hwb-function": "^1.0.0", + "@csstools/postcss-ic-unit": "^1.0.0", + "@csstools/postcss-is-pseudo-class": "^2.0.1", + "@csstools/postcss-normalize-display-values": "^1.0.0", + "@csstools/postcss-oklab-function": "^1.0.2", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "autoprefixer": "^10.4.4", + "browserslist": "^4.20.2", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^6.5.0", + "postcss-attribute-case-insensitive": "^5.0.0", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.2", + "postcss-color-hex-alpha": "^8.0.3", + "postcss-color-rebeccapurple": "^7.0.2", + "postcss-custom-media": "^8.0.0", + "postcss-custom-properties": "^12.1.5", + "postcss-custom-selectors": "^6.0.0", + "postcss-dir-pseudo-class": "^6.0.4", + "postcss-double-position-gradients": "^3.1.1", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.3", + "postcss-image-set-function": "^4.0.6", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.1.2", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.1.3", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.3", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.4", + "postcss-pseudo-class-any-link": "^7.1.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^5.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.2.tgz", + "integrity": "sha512-76XzEQv3g+Vgnz3tmqh3pqQyRojkcJ+pjaePsyhcyf164p9aZsu3t+NWxkZYbcHLK1ju5Qmalti2jPI5IWCe5w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", + "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "dependencies": { + "balanced-match": "^1.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/prism-react-renderer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.1.tgz", + "integrity": "sha512-xUeDMEz074d0zc5y6rxiMp/dlC7C+5IDDlaEUlcBOFE2wddz7hz5PNupb087mPwTt7T9BrFmewObfCBuf/LKwQ==", + "peerDependencies": { + "react": ">=0.14.9" + } + }, + "node_modules/prism-themes": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/prism-themes/-/prism-themes-1.9.0.tgz", + "integrity": "sha512-tX2AYsehKDw1EORwBps+WhBFKc2kxfoFpQAjxBndbZKr4fRmMkv47XN0BghC/K1qwodB1otbe4oF23vUTFDokw==" + }, + "node_modules/prismjs": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.28.0.tgz", + "integrity": "sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types-extra": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "dependencies": { + "react-is": "^16.3.2", + "warning": "^4.0.0" + }, + "peerDependencies": { + "react": ">=0.14.0" + } + }, + "node_modules/property-expr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", + "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.0.0.tgz", + "integrity": "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-apexcharts": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.4.0.tgz", + "integrity": "sha512-DrcMV4aAMrUG+n6412yzyATWEyCDWlpPBBhVbpzBC4PDeuYU6iF84SmExbck+jx5MUm4U5PM3/T307Mc3kzc9Q==", + "dependencies": { + "prop-types": "^15.5.7" + }, + "peerDependencies": { + "apexcharts": "^3.18.0", + "react": ">=0.13" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-bootstrap": { + "version": "2.5.0-beta.1", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.5.0-beta.1.tgz", + "integrity": "sha512-brHUvpjJrNmShg2xjT3qNfZ7mKLEUyGvh+wp+IgxcFKrh7BPKzpbAtJYa2S1QJx5MuPBT/D0ywMFbz1LBY0Qvg==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@restart/hooks": "^0.4.6", + "@restart/ui": "^1.3.0", + "@types/react-transition-group": "^4.4.4", + "classnames": "^2.3.1", + "dom-helpers": "^5.2.1", + "invariant": "^2.2.4", + "prop-types": "^15.8.1", + "prop-types-extra": "^1.1.0", + "react-transition-group": "^4.4.2", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "@types/react": ">=16.14.8", + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-copy-to-clipboard": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz", + "integrity": "sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==", + "dependencies": { + "copy-to-clipboard": "^3.3.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": "^15.3.0 || 16 || 17 || 18" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dom": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz", + "integrity": "sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.21.0" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "node_modules/react-fast-compare": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + }, + "node_modules/react-from-dom": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.6.2.tgz", + "integrity": "sha512-qvWWTL/4xw4k/Dywd41RBpLQUSq97csuv15qrxN+izNeLYlD9wn5W8LspbfYe5CWbaSdkZ72BsaYBPQf2x4VbQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-inlinesvg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-3.0.0.tgz", + "integrity": "sha512-zUt0DW3cKBk+vYZJJCzJqA9STRb+ZFmKLQFWurTvM4UR6vyHT8kHZSzyZZseX9BUNbTFJAfirtwpt97BWDJoSg==", + "dependencies": { + "exenv": "^1.2.2", + "react-from-dom": "^0.6.2" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-intl": { + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.25.0.tgz", + "integrity": "sha512-jIgmCy9s2IVFdQHEe2LzW023wKDQwgKXPdxg6WwuUJxR9BHPBPGLj01rxc3gLZ3aKDuL91SsFPAlx+qEy7+k0w==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-messageformat-parser": "2.0.19", + "@formatjs/intl": "2.2.0", + "@formatjs/intl-displaynames": "5.4.3", + "@formatjs/intl-listformat": "6.5.3", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/react": "16 || 17 || 18", + "hoist-non-react-statics": "^3.3.2", + "intl-messageformat": "9.12.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": "^16.3.0 || 17 || 18", + "typescript": "^4.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-query": { + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.38.0.tgz", + "integrity": "sha512-VRbCTRrDfC5FsB70+JfZuxFRv9SAvkZ1h36MsN8+QaDN+NWB6s1vJndqpoLQnJqN0COTG2zsInMq0KFdYze6TA==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "broadcast-channel": "^3.4.1", + "match-sorter": "^6.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz", + "integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==", + "dependencies": { + "history": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.3.0.tgz", + "integrity": "sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==", + "dependencies": { + "history": "^5.2.0", + "react-router": "6.3.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-scripts/node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/react-table": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/react-table/-/react-table-7.7.0.tgz", + "integrity": "sha512-jBlj70iBwOTvvImsU9t01LjFjy4sXEtclBovl3mTiqjz23Reu0DKnRza4zlLtOPACx6j2/7MrQIthIK1Wi+LIA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.3 || ^17.0.0-0" + } + }, + "node_modules/react-topbar-progress-indicator": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/react-topbar-progress-indicator/-/react-topbar-progress-indicator-4.1.1.tgz", + "integrity": "sha512-Oy3ENNKfymt16zoz5SYy/WOepMurB0oeZEyvuHm8JZ3jrTCe1oAUD7fG6HhYt5sg8Wcg5gdkzSWItaFF6c6VhA==", + "dependencies": { + "topbar": "^0.1.3" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "dependencies": { + "minimatch": "3.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/recursive-readdir/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-accents": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", + "integrity": "sha1-CkPTqq4egNuRngeuJUsoXZ4ce7U=" + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.70.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.2.tgz", + "integrity": "sha512-EitogNZnfku65I1DD5Mxe8JYRUCy0hkK5X84IlDtUs+O6JRMpRciXTzyCUuX11b5L5pvjH+OmFXiQ3XjabcXgg==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rtlcss": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", + "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.3.11", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + } + }, + "node_modules/rtlcss-webpack-plugin": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/rtlcss-webpack-plugin/-/rtlcss-webpack-plugin-4.0.7.tgz", + "integrity": "sha512-ouSbJtgcLBBQIsMgarxsDnfgRqm/AS4BKls/mz/Xb6HSl+PdEzefTR+Wz5uWQx4odoX0g261Z7yb3QBz0MTm0g==", + "dev": true, + "dependencies": { + "babel-runtime": "~6.25.0", + "rtlcss": "^3.5.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "node_modules/sass": { + "version": "1.50.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.50.1.tgz", + "integrity": "sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass-loader": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz", + "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", + "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "node_modules/selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/socicon": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/socicon/-/socicon-3.0.5.tgz", + "integrity": "sha1-v6Bvz38rbzzcOUQzd0I1jp4FC20=" + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", + "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", + "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dependencies": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "dependencies": { + "svg.js": "^2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=", + "dependencies": { + "svg.js": ">=2.3.x" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + }, + "node_modules/svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "dependencies": { + "svg.js": "^2.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "dependencies": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js/node_modules/svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "dependencies": { + "svg.js": "^2.6.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/svgo/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svgo/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tailwindcss": { + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz", + "integrity": "sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==", + "dependencies": { + "arg": "^5.0.1", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.12", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "5.0.6", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", + "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "dependencies": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dependencies": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "node_modules/throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/topbar": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/topbar/-/topbar-0.1.4.tgz", + "integrity": "sha512-P3n4WnN4GFd2mQXDo30rQmsAGe4V1bVkggtTreSbNyL50Fyc+eVkW5oatSLeGQmJoan2TLIgoXUZypN+6nw4MQ==" + }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=" + }, + "node_modules/tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "dependencies": { + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unload": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", + "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", + "dependencies": { + "@babel/runtime": "^7.6.2", + "detect-node": "^2.0.4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "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==" + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", + "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/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==" + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.8.1.tgz", + "integrity": "sha512-dwld70gkgNJa33czmcj/PlKY/nOy/BimbrgZRaR9vDATBQAYgLzggR0nxDtPLJiLrMgZwbE6RRfJ5vnBBasTyg==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/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==" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.3.tgz", + "integrity": "sha512-0DD/V05FAcek6tWv9XYj2w5T/plxhDSpclIcAGjA/b7t/6PdaRkQ7ZgtAX6Q/L7kV7wZ8uYRJUoH11VjNipMZw==", + "dependencies": { + "idb": "^6.1.4", + "workbox-core": "6.5.3" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.3.tgz", + "integrity": "sha512-4AwCIA5DiDrYhlN+Miv/fp5T3/whNmSL+KqhTwRBTZIL6pvTgE4lVuRzAt1JltmqyMcQ3SEfCdfxczuI4kwFQg==", + "dependencies": { + "workbox-core": "6.5.3" + } + }, + "node_modules/workbox-build": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.3.tgz", + "integrity": "sha512-8JNHHS7u13nhwIYCDea9MNXBNPHXCs5KDZPKI/ZNTr3f4sMGoD7hgFGecbyjX1gw4z6e9bMpMsOEJNyH5htA/w==", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.5.3", + "workbox-broadcast-update": "6.5.3", + "workbox-cacheable-response": "6.5.3", + "workbox-core": "6.5.3", + "workbox-expiration": "6.5.3", + "workbox-google-analytics": "6.5.3", + "workbox-navigation-preload": "6.5.3", + "workbox-precaching": "6.5.3", + "workbox-range-requests": "6.5.3", + "workbox-recipes": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3", + "workbox-streams": "6.5.3", + "workbox-sw": "6.5.3", + "workbox-window": "6.5.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/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==" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.3.tgz", + "integrity": "sha512-6JE/Zm05hNasHzzAGKDkqqgYtZZL2H06ic2GxuRLStA4S/rHUfm2mnLFFXuHAaGR1XuuYyVCEey1M6H3PdZ7SQ==", + "dependencies": { + "workbox-core": "6.5.3" + } + }, + "node_modules/workbox-core": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.3.tgz", + "integrity": "sha512-Bb9ey5n/M9x+l3fBTlLpHt9ASTzgSGj6vxni7pY72ilB/Pb3XtN+cZ9yueboVhD5+9cNQrC9n/E1fSrqWsUz7Q==" + }, + "node_modules/workbox-expiration": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.3.tgz", + "integrity": "sha512-jzYopYR1zD04ZMdlbn/R2Ik6ixiXbi15c9iX5H8CTi6RPDz7uhvMLZPKEndZTpfgmUk8mdmT9Vx/AhbuCl5Sqw==", + "dependencies": { + "idb": "^6.1.4", + "workbox-core": "6.5.3" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.3.tgz", + "integrity": "sha512-3GLCHotz5umoRSb4aNQeTbILETcrTVEozSfLhHSBaegHs1PnqCmN0zbIy2TjTpph2AGXiNwDrWGF0AN+UgDNTw==", + "dependencies": { + "workbox-background-sync": "6.5.3", + "workbox-core": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.3.tgz", + "integrity": "sha512-bK1gDFTc5iu6lH3UQ07QVo+0ovErhRNGvJJO/1ngknT0UQ702nmOUhoN9qE5mhuQSrnK+cqu7O7xeaJ+Rd9Tmg==", + "dependencies": { + "workbox-core": "6.5.3" + } + }, + "node_modules/workbox-precaching": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.3.tgz", + "integrity": "sha512-sjNfgNLSsRX5zcc63H/ar/hCf+T19fRtTqvWh795gdpghWb5xsfEkecXEvZ8biEi1QD7X/ljtHphdaPvXDygMQ==", + "dependencies": { + "workbox-core": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.3.tgz", + "integrity": "sha512-pGCP80Bpn/0Q0MQsfETSfmtXsQcu3M2QCJwSFuJ6cDp8s2XmbUXkzbuQhCUzKR86ZH2Vex/VUjb2UaZBGamijA==", + "dependencies": { + "workbox-core": "6.5.3" + } + }, + "node_modules/workbox-recipes": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.3.tgz", + "integrity": "sha512-IcgiKYmbGiDvvf3PMSEtmwqxwfQ5zwI7OZPio3GWu4PfehA8jI8JHI3KZj+PCfRiUPZhjQHJ3v1HbNs+SiSkig==", + "dependencies": { + "workbox-cacheable-response": "6.5.3", + "workbox-core": "6.5.3", + "workbox-expiration": "6.5.3", + "workbox-precaching": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3" + } + }, + "node_modules/workbox-routing": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.3.tgz", + "integrity": "sha512-DFjxcuRAJjjt4T34RbMm3MCn+xnd36UT/2RfPRfa8VWJGItGJIn7tG+GwVTdHmvE54i/QmVTJepyAGWtoLPTmg==", + "dependencies": { + "workbox-core": "6.5.3" + } + }, + "node_modules/workbox-strategies": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.3.tgz", + "integrity": "sha512-MgmGRrDVXs7rtSCcetZgkSZyMpRGw8HqL2aguszOc3nUmzGZsT238z/NN9ZouCxSzDu3PQ3ZSKmovAacaIhu1w==", + "dependencies": { + "workbox-core": "6.5.3" + } + }, + "node_modules/workbox-streams": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.3.tgz", + "integrity": "sha512-vN4Qi8o+b7zj1FDVNZ+PlmAcy1sBoV7SC956uhqYvZ9Sg1fViSbOpydULOssVJ4tOyKRifH/eoi6h99d+sJ33w==", + "dependencies": { + "workbox-core": "6.5.3", + "workbox-routing": "6.5.3" + } + }, + "node_modules/workbox-sw": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.3.tgz", + "integrity": "sha512-BQBzm092w+NqdIEF2yhl32dERt9j9MDGUTa2Eaa+o3YKL4Qqw55W9yQC6f44FdAHdAJrJvp0t+HVrfh8AiGj8A==" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-Es8Xr02Gi6Kc3zaUwR691ZLy61hz3vhhs5GztcklQ7kl5k2qAusPh0s6LF3wEtlpfs9ZDErnmy5SErwoll7jBA==", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.5.3" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.3.tgz", + "integrity": "sha512-GnJbx1kcKXDtoJBVZs/P7ddP0Yt52NNy4nocjBpYPiRhMqTpJCNrSL+fGHZ/i/oP6p/vhE8II0sA6AZGKGnssw==", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.5.3" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yup": { + "version": "0.32.11", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz", + "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==", + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/lodash": "^4.14.175", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, + "@apideck/better-ajv-errors": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", + "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", + "requires": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + } + }, + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==" + }, + "@babel/core": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/eslint-parser": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "requires": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/generator": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", + "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "requires": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + }, + "@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "requires": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helpers": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" + } + }, + "@babel/highlight": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", + "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz", + "integrity": "sha512-EfH2LZ/vPa2wuPwJ26j+kYRkaubf89UlwxKXtxqEm57HrgSEYDB8t4swFP+p8LcI9yiP9ZRJJjo/58hS6BnaDA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.9", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "requires": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", + "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", + "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", + "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-flow": "^7.16.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "requires": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", + "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", + "requires": { + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", + "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "requires": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz", + "integrity": "sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", + "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", + "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", + "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "requires": { + "@babel/plugin-transform-react-jsx": "^7.16.7" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", + "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz", + "integrity": "sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==", + "requires": { + "regenerator-transform": "^0.15.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", + "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "requires": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", + "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-react-display-name": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + } + }, + "@babel/preset-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", + "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.16.7" + } + }, + "@babel/runtime": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", + "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz", + "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==", + "requires": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.9", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" + }, + "@csstools/postcss-color-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.0.tgz", + "integrity": "sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-font-format-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", + "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-hwb-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", + "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-ic-unit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", + "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-is-pseudo-class": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.2.tgz", + "integrity": "sha512-L9h1yxXMj7KpgNzlMrw3isvHJYkikZgZE4ASwssTnGEH8tm50L6QsM9QQT5wR4/eO5mU0rN5axH7UzNxEYg5CA==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "@csstools/postcss-normalize-display-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", + "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-oklab-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.0.tgz", + "integrity": "sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", + "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + } + } + }, + "@formatjs/ecma402-abstract": { + "version": "1.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", + "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", + "requires": { + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "@formatjs/fast-memoize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz", + "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@formatjs/icu-messageformat-parser": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.0.19.tgz", + "integrity": "sha512-8HsLm9YLyVVIDMyBJb7wmve2wGd461cUwJ470eUog5YH5ZsF4p5lgvaJ+oGKxz1mrSMNNdDHU9v/NDsS+z+ilg==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-skeleton-parser": "1.3.6", + "tslib": "^2.1.0" + } + }, + "@formatjs/icu-skeleton-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz", + "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "tslib": "^2.1.0" + } + }, + "@formatjs/intl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.0.tgz", + "integrity": "sha512-2wLE64ns7QcQvqeNmwIFZBnDZ6XcL1QKx+x7A9J25XykCIgIMZNF5Dx7LAxJplCLRCqh2Eh0Q4ZVC1GLcZA4MQ==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.0.19", + "@formatjs/intl-displaynames": "5.4.3", + "@formatjs/intl-listformat": "6.5.3", + "intl-messageformat": "9.12.0", + "tslib": "^2.1.0" + } + }, + "@formatjs/intl-displaynames": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz", + "integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "@formatjs/intl-listformat": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz", + "integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "@formatjs/intl-localematcher": { + "version": "0.2.25", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz", + "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@formatjs/intl-pluralrules": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.3.3.tgz", + "integrity": "sha512-NLZN8gf2qLpCuc0m565IbKLNUarEGOzk0mkdTkE4XTuNCofzoQTurW6lL3fmDlneAoYl2FiTdHa5q4o2vZF50g==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "@formatjs/intl-relativetimeformat": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-10.0.1.tgz", + "integrity": "sha512-AABPQtPjFilXegQsnmVHrSlzjFNUffAEk5DgowY6b7WSwDI7g2W6QgW903/lbZ58emhphAbgHdtKeUBXqTiLpw==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "@fortawesome/fontawesome-free": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.1.1.tgz", + "integrity": "sha512-J/3yg2AIXc9wznaVqpHVX3Wa5jwKovVF0AMYSnbmcXTiL3PpRPfF58pzWucCwEiCJBp+hCNRLWClTomD8SseKg==" + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + }, + "@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "requires": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + } + }, + "@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "requires": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + } + }, + "@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "requires": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + } + }, + "@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", + "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", + "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.5.tgz", + "integrity": "sha512-RbG7h6TuP6nFFYKJwbcToA1rjC1FyPg25NR2noAZ0vKI+la01KTSRPkuVPE+U88jXv7javx2JHglUcL1MHcshQ==", + "requires": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.8.1", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "@popperjs/core": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" + }, + "@react-aria/ssr": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.2.0.tgz", + "integrity": "sha512-wwJFdkl+Q8NU5yJ4NvdAOqx5LM3QtUVoSjuK7Ey8jZ4WS4bB0EqT3Kr3IInBs257HzZ5nXCiKXKE4NGXXuIRWA==", + "requires": { + "@babel/runtime": "^7.6.2" + } + }, + "@restart/hooks": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz", + "integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==", + "requires": { + "dequal": "^2.0.2" + } + }, + "@restart/ui": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.3.0.tgz", + "integrity": "sha512-VRb330/6tDaHAHRkqe0GOawuj+hcZM7Zp5piWk/3AVwW18+0sQxGqqFeiH1ZeEMdn7w+D8bZPaY3QoLTmDKcGg==", + "requires": { + "@babel/runtime": "^7.18.3", + "@popperjs/core": "^2.11.5", + "@react-aria/ssr": "^3.2.0", + "@restart/hooks": "^0.4.7", + "@types/warning": "^3.0.0", + "dequal": "^2.0.2", + "dom-helpers": "^5.2.0", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + } + }, + "@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + } + }, + "@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "dependencies": { + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + } + } + }, + "@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + } + } + }, + "@rushstack/eslint-patch": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz", + "integrity": "sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==" + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "requires": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==" + }, + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==" + }, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==" + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==" + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==" + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==" + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==" + }, + "@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + } + }, + "@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "requires": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "requires": { + "@babel/types": "^7.12.6" + } + }, + "@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "requires": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + } + }, + "@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "requires": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "dependencies": { + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + } + } + }, + "@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "requires": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + } + }, + "@testing-library/dom": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.13.0.tgz", + "integrity": "sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@testing-library/jest-dom": { + "version": "5.16.4", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.4.tgz", + "integrity": "sha512-Gy+IoFutbMQcky0k+bqqumXZ1cTGswLsFqmNLzNdSKkU9KGV2u9oXhukCbbJ9/LRPKiqwxEE8VpV/+YZlfkPUA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + } + }, + "@testing-library/react": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.1.1.tgz", + "integrity": "sha512-8mirlAa0OKaUvnqnZF6MdAh2tReYA2KtWVw1PKvaF5EcCZqgK5pl8iF+3uW90JdG5Ua2c2c2E2wtLdaug3dsVg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + } + }, + "@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" + }, + "@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.0.tgz", + "integrity": "sha512-r8aveDbd+rzGP+ykSdF3oPuTVRWRfbBiHl0rVDM2yNEmSMXfkObQLV46b4RnCv3Lra51OlfnZhkkFaDl2MIRaA==", + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "requires": { + "@types/node": "*" + } + }, + "@types/bootstrap": { + "version": "5.1.10", + "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.1.10.tgz", + "integrity": "sha512-N93bSEnlUuRkzZim83hE36dIExrXf+6NlUQRJfOfT7N9kk53j6UtMNXG4TgCUACsmc7XVPwtnJyGVfSrD2KvOA==", + "dev": true, + "requires": { + "@popperjs/core": "^2.9.2", + "@types/jquery": "*" + } + }, + "@types/chart.js": { + "version": "2.9.37", + "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.37.tgz", + "integrity": "sha512-9bosRfHhkXxKYfrw94EmyDQcdjMaQPkU1fH2tDxu8DWXxf1mjzWQAV4laJF51ZbC2ycYwNDvIm1rGez8Bug0vg==", + "dev": true, + "requires": { + "moment": "^2.10.2" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/eslint": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + }, + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "requires": { + "@types/node": "*" + } + }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "27.4.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz", + "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==", + "dev": true, + "requires": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "@types/jquery": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz", + "integrity": "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==", + "dev": true, + "requires": { + "@types/sizzle": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + }, + "@types/lodash": { + "version": "4.14.182", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", + "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==" + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "@types/node": { + "version": "16.11.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.27.tgz", + "integrity": "sha512-C1pD3kgLoZ56Uuy5lhfOxie4aZlA3UMGLX9rXteq4WitEZH6Rl80mwactt9QG0w0gLFlN/kLBTFnGXtDVWvWQw==" + }, + "@types/node-sass": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@types/node-sass/-/node-sass-4.11.3.tgz", + "integrity": "sha512-wXPCn3t9uu5rR4zXNSLasZHQMuRzUKBsdi4MsgT8uq4Lp1gQQo+T2G23tGj4SSgDHeNBle6vGseZtM2XV/X9bw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/prettier": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz", + "integrity": "sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw==" + }, + "@types/prismjs": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.0.tgz", + "integrity": "sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==", + "dev": true + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/react": { + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.6.tgz", + "integrity": "sha512-bPqwzJRzKtfI0mVYr5R+1o9BOE8UEXefwc1LwcBtfnaAn6OoqMhLa/91VA8aeWfDPJt1kHvYKI8RHcQybZLHHA==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-copy-to-clipboard": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz", + "integrity": "sha512-O29AThfxrkUFRsZXjfSWR2yaWo0ppB1yLEnHA+Oh24oNetjBAwTDu1PmolIqdJKzsZiO4J1jn6R6TmO96uBvGg==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-dom": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.2.tgz", + "integrity": "sha512-UxeS+Wtj5bvLRREz9tIgsK4ntCuLDo0EcAcACgw3E+9wE8ePDr9uQpq53MfcyxyIS55xJ+0B6mDS8c4qkkHLBg==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-table": { + "version": "7.7.11", + "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-7.7.11.tgz", + "integrity": "sha512-Ntfr4EMWgqf/m/CxfmiHww5HvE1nOfK3yEm3NJ3ZWv9IkdteqTOklG3rJtFCtICKAkr3q5pqajkm0y1+WnmdbA==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-transition-group": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", + "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", + "requires": { + "@types/react": "*" + } + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "requires": { + "@types/node": "*" + } + }, + "@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + }, + "@types/sass": { + "version": "1.43.1", + "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz", + "integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/sass-loader": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@types/sass-loader/-/sass-loader-8.0.3.tgz", + "integrity": "sha512-lwOlTt9erV7A9rwTYGqya+swf6D/2OqiHjegr1No9Lu/2KAUFONyyZD5jjVKPO1BHgtr+7r0R/IbwzQcmsPoYg==", + "dev": true, + "requires": { + "@types/node-sass": "*", + "@types/sass": "*", + "@types/webpack": "^4" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "requires": { + "@types/node": "*" + } + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + }, + "@types/tapable": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", + "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==", + "dev": true + }, + "@types/testing-library__jest-dom": { + "version": "5.14.3", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz", + "integrity": "sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==", + "dev": true, + "requires": { + "@types/jest": "*" + } + }, + "@types/trusted-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", + "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" + }, + "@types/uglify-js": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.0.tgz", + "integrity": "sha512-3HO6rm0y+/cqvOyA8xcYLweF0TKXlAxmQASjbOi49Co51A1N4nR4bEwBgRoD9kNM+rqFGArjKr654SLp2CoGmQ==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" + }, + "@types/webpack": { + "version": "4.41.32", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz", + "integrity": "sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "@types/webpack-sources": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", + "integrity": "sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + } + } + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "requires": { + "@types/node": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz", + "integrity": "sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==", + "requires": { + "@typescript-eslint/scope-manager": "5.20.0", + "@typescript-eslint/type-utils": "5.20.0", + "@typescript-eslint/utils": "5.20.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.20.0.tgz", + "integrity": "sha512-w5qtx2Wr9x13Dp/3ic9iGOGmVXK5gMwyc8rwVgZU46K9WTjPZSyPvdER9Ycy+B5lNHvoz+z2muWhUvlTpQeu+g==", + "requires": { + "@typescript-eslint/utils": "5.20.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz", + "integrity": "sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==", + "requires": { + "@typescript-eslint/scope-manager": "5.20.0", + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/typescript-estree": "5.20.0", + "debug": "^4.3.2" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", + "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", + "requires": { + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/visitor-keys": "5.20.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz", + "integrity": "sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==", + "requires": { + "@typescript-eslint/utils": "5.20.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", + "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==" + }, + "@typescript-eslint/typescript-estree": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", + "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", + "requires": { + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/visitor-keys": "5.20.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz", + "integrity": "sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==", + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.20.0", + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/typescript-estree": "5.20.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", + "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", + "requires": { + "@typescript-eslint/types": "5.20.0", + "eslint-visitor-keys": "^3.0.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "dev": true + }, + "@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "dev": true + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" + }, + "adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + }, + "animate.css": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz", + "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==" + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "apexcharts": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.35.0.tgz", + "integrity": "sha512-oipJRkaxt8DPGRmn1kur6aPzML1JSpf2M3ecu+gyw+8xiNmT2C0p1uuuqPZrk+Lr2hmDxzNBPR7TvxwRl3ozgw==", + "requires": { + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, + "arg": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", + "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "requires": { + "lodash": "^4.17.14" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz", + "integrity": "sha512-Fvd8yCoA7lNX/OUllvS+aS1I7WRBclGXsepbvT8ZaPgrH24rgXpZzF0/6Hh3ZEkwg+0AES/Osd196VZmYoEFtw==", + "requires": { + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001332", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "axe-core": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", + "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==" + }, + "axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "requires": { + "follow-redirects": "^1.14.8" + } + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "requires": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, + "babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==" + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + } + }, + "babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "requires": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "requires": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "babel-runtime": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz", + "integrity": "sha512-zeCYxDePWYAT/DfmQWIHsMSFW2vv45UIwIAMjGvQVsTd47RwsiRH0uK1yzyWZ7LDBKdhnGDPM6NYEO5CZyhPrg==", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.10.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==", + "dev": true + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "bfj": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", + "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "requires": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.7", + "raw-body": "2.4.3", + "type-is": "~1.6.18" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" + } + } + }, + "bonjour-service": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.12.tgz", + "integrity": "sha512-pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw==", + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.4" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "bootstrap": { + "version": "5.2.0-beta1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.0-beta1.tgz", + "integrity": "sha512-6qbgs177WZEFY4SLQUq3tEHayYG80nfDmyTpdKi0MJqRMdS+HAoq24+YKfx6wf+nHY0rx8zrh477J1lFu4WzOA==" + }, + "bootstrap-icons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.8.1.tgz", + "integrity": "sha512-IXUqislddPJfwq6H+2nTkHyr9epO9h6u1AG0OZCx616w+TgzeoCjfmI3qJMQqt1J586gN2IxzB4M99Ip4sTZ1w==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "broadcast-channel": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz", + "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", + "requires": { + "@babel/runtime": "^7.7.2", + "detect-node": "^2.1.0", + "js-sha3": "0.8.0", + "microseconds": "0.2.0", + "nano-time": "1.0.0", + "oblivious-set": "1.0.0", + "rimraf": "3.0.2", + "unload": "2.2.0" + } + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "browserslist": { + "version": "4.20.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "requires": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001332", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", + "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==" + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" + }, + "charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==" + }, + "chart.js": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.7.1.tgz", + "integrity": "sha512-8knRegQLFnPQAheZV8MjxIXc5gQEfDFD897BJgv/klO/vtIyFFmgMXrNfgrXpbTr/XbTturxRgxIXx/Y+ASJBA==" + }, + "check-types": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", + "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + }, + "ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + }, + "classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + }, + "clean-css": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", + "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" + }, + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + }, + "common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "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==" + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "requires": { + "toggle-selection": "^1.0.6" + } + }, + "core-js": { + "version": "3.22.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.2.tgz", + "integrity": "sha512-Z5I2vzDnEIqO2YhELVMFcL1An2CIsFe9Q7byZhs8c/QxummxZlAHw33TUHbIte987LkisOgL0LwQ1P9D6VISnA==" + }, + "core-js-compat": { + "version": "3.22.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.2.tgz", + "integrity": "sha512-Fns9lU06ZJ07pdfmPMu7OnkIKGPKDzXKIiuGlSvHHapwqMUF2QnnsWwtueFZtSyZEilP0o6iUeHQwpn7LxtLUw==", + "requires": { + "browserslist": "^4.20.2", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "core-js-pure": { + "version": "3.22.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.2.tgz", + "integrity": "sha512-Lb+/XT4WC4PaCWWtZpNPaXmjiNDUe5CJuUtbkMrIM1kb1T/jJoAIp+bkVP/r5lHzMr+ZAAF8XHp7+my6Ol0ysQ==" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "css-declaration-sorter": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", + "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==" + }, + "css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + } + }, + "css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "requires": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "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==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==" + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", + "dev": true + }, + "cssdb": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz", + "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.7.tgz", + "integrity": "sha512-pVsUV6LcTXif7lvKKW9ZrmX+rGRzxkEdJuVJcp5ftUjWITgwam5LMZOgaTvUrWPkcORBey6he7JKb4XAJvrpKg==", + "requires": { + "cssnano-preset-default": "^5.2.7", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.7.tgz", + "integrity": "sha512-JiKP38ymZQK+zVKevphPzNSGHSlTI+AOwlasoSRtSVMUU285O7/6uZyd5NbW92ZHp41m0sSHe6JoZosakj63uA==", + "requires": { + "css-declaration-sorter": "^6.2.2", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.0", + "postcss-discard-comments": "^5.1.1", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.4", + "postcss-merge-rules": "^5.1.1", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.2", + "postcss-minify-selectors": "^5.2.0", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==" + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + } + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + } + } + }, + "csstype": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", + "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==" + }, + "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==" + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "requires": { + "execa": "^5.0.0" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "dns-packet": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", + "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-accessibility-api": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz", + "integrity": "sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw==", + "dev": true + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz", + "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==", + "requires": { + "jake": "^10.8.5" + } + }, + "electron-to-chromium": { + "version": "1.4.118", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.118.tgz", + "integrity": "sha512-maZIKjnYDvF7Fs35nvVcyr44UcKNwybr93Oba2n3HkKDFAtk0svERkLN/HyczJDS3Fo4wU9th9fUQd09ZLtj1w==" + }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", + "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", + "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", + "requires": { + "@eslint/eslintrc": "^1.2.2", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + } + } + }, + "eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "requires": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "requires": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "requires": { + "@typescript-eslint/experimental-utils": "^5.0.0" + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", + "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "requires": { + "@babel/runtime": "^7.16.3", + "aria-query": "^4.2.2", + "array-includes": "^3.1.4", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.3.5", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.7", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.2.1", + "language-tags": "^1.0.5", + "minimatch": "^3.0.4" + }, + "dependencies": { + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + } + } + }, + "eslint-plugin-react": { + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", + "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz", + "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==" + }, + "eslint-plugin-testing-library": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.3.1.tgz", + "integrity": "sha512-OfF4dlG/q6ck6DL3P8Z0FPdK0dU5K57gsBu7eUcaVbwYKaNzjgejnXiM9CCUevppORkvfek+9D3Uj/9ZZ8Vz8g==", + "requires": { + "@typescript-eslint/utils": "^5.13.0" + } + }, + "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==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + } + } + }, + "eslint-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==" + }, + "eslint-webpack-plugin": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", + "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", + "requires": { + "@types/eslint": "^7.28.2", + "jest-worker": "^27.3.1", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1" + } + }, + "espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "requires": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "requires": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + } + }, + "express": { + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.19.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.7", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, + "filelist": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz", + "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==", + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + }, + "follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + }, + "fork-ts-checker-webpack-plugin": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.1.tgz", + "integrity": "sha512-x1wumpHOEf4gDROmKTaB6i4/Q6H3LwmjVO7fIX47vBwlZbtPjU33hgoMuD/Q/y6SU8bnuYSoN6ZQOLshGp0T/g==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + } + } + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formik": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", + "integrity": "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==", + "requires": { + "deepmerge": "^2.1.1", + "hoist-non-react-statics": "^3.3.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-fast-compare": "^2.0.1", + "tiny-warning": "^1.0.2", + "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "requires": { + "duplexer": "^0.1.2" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "requires": { + "@babel/runtime": "^7.7.6" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + } + }, + "html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "requires": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==" + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==" + }, + "idb": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", + "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==" + }, + "identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "requires": { + "harmony-reflect": "^1.4.6" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + }, + "immer": { + "version": "9.0.12", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz", + "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==" + }, + "immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + } + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true + }, + "intl-messageformat": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.12.0.tgz", + "integrity": "sha512-5Q9j21JreB1G27/CqMYsA+pvJ19JjHyhiTSeUuvZK9BCDJGHtOLgpUUcGM+GLHiUuoVMKVeeX1smamiVHQrSKQ==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.0.19", + "tslib": "^2.1.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" + }, + "istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "requires": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + } + }, + "jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "requires": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + } + }, + "jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "requires": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "requires": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + } + } + }, + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + } + }, + "jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" + }, + "jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "requires": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" + }, + "jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" + }, + "jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "requires": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + } + }, + "jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "requires": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-watch-typeahead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz", + "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==", + "requires": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^27.0.0", + "jest-watcher": "^27.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==" + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + }, + "string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "requires": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "requires": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonpointer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", + "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==" + }, + "jsx-ast-utils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", + "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==", + "requires": { + "array-includes": "^3.1.4", + "object.assign": "^4.1.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==" + }, + "language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==" + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==" + }, + "line-awesome": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/line-awesome/-/line-awesome-1.3.0.tgz", + "integrity": "sha512-Y0YHksL37ixDsHz+ihCwOtF5jwJgCDxQ3q+zOVgaSW8VugHGTsZZXMacPYZB1/JULBi6BAuTCTek+4ZY/UIwcw==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" + }, + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", + "dev": true + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "requires": { + "tmpl": "1.0.5" + } + }, + "match-sorter": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.1.tgz", + "integrity": "sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==", + "requires": { + "@babel/runtime": "^7.12.5", + "remove-accents": "0.4.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "requires": { + "fs-monkey": "1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "microseconds": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz", + "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", + "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", + "requires": { + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "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==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz", + "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "nano-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz", + "integrity": "sha1-sFVPaa2J4i0JB/ehKwmTpdlhN+8=", + "requires": { + "big-integer": "^1.6.16" + } + }, + "nanoclone": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", + "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==" + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-releases": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "nouislider": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/nouislider/-/nouislider-15.5.1.tgz", + "integrity": "sha512-V8LNPhLPXLNjkgXLfyzDRGDeKvzZeaiIx5YagMiHnOMqgcRzT75jqvEZYXbSrEffXouwcEShSd8Vllm2Nkwqew==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "requires": { + "boolbase": "^1.0.0" + } + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + "object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "oblivious-set": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz", + "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "requires": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "postcss": { + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "requires": { + "nanoid": "^3.3.1", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-attribute-case-insensitive": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", + "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "requires": { + "postcss-selector-parser": "^6.0.2" + } + }, + "postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==" + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-functional-notation": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", + "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-hex-alpha": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", + "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-rebeccapurple": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", + "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz", + "integrity": "sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-media": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", + "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==" + }, + "postcss-custom-properties": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz", + "integrity": "sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-selectors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", + "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-dir-pseudo-class": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", + "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-discard-comments": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", + "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==" + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==" + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==" + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==" + }, + "postcss-double-position-gradients": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", + "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==" + }, + "postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==" + }, + "postcss-gap-properties": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", + "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==" + }, + "postcss-image-set-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", + "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==" + }, + "postcss-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", + "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-lab-function": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz", + "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + } + }, + "postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + } + }, + "postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==" + }, + "postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==" + }, + "postcss-merge-longhand": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.4.tgz", + "integrity": "sha512-hbqRRqYfmXoGpzYKeW0/NCZhvNyQIlQeWVSao5iKWdyx7skLvCfQFGIUsP9NUs3dSbPac2IC4Go85/zG+7MlmA==", + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + } + }, + "postcss-merge-rules": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", + "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz", + "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==", + "requires": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", + "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==" + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-nested": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", + "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "requires": { + "postcss-selector-parser": "^6.0.6" + } + }, + "postcss-nesting": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.4.tgz", + "integrity": "sha512-2ixdQ59ik/Gt1+oPHiI1kHdwEI8lLKEmui9B1nl6163ANLC+GewQn7fXMxJF2JSb4i2MKL96GU8fIiQztK4TTA==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "requires": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==" + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", + "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", + "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "requires": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-opacity-percentage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", + "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==" + }, + "postcss-ordered-values": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-overflow-shorthand": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", + "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==" + }, + "postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==" + }, + "postcss-place": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", + "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-preset-env": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz", + "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==", + "requires": { + "@csstools/postcss-color-function": "^1.0.3", + "@csstools/postcss-font-format-keywords": "^1.0.0", + "@csstools/postcss-hwb-function": "^1.0.0", + "@csstools/postcss-ic-unit": "^1.0.0", + "@csstools/postcss-is-pseudo-class": "^2.0.1", + "@csstools/postcss-normalize-display-values": "^1.0.0", + "@csstools/postcss-oklab-function": "^1.0.2", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "autoprefixer": "^10.4.4", + "browserslist": "^4.20.2", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^6.5.0", + "postcss-attribute-case-insensitive": "^5.0.0", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.2", + "postcss-color-hex-alpha": "^8.0.3", + "postcss-color-rebeccapurple": "^7.0.2", + "postcss-custom-media": "^8.0.0", + "postcss-custom-properties": "^12.1.5", + "postcss-custom-selectors": "^6.0.0", + "postcss-dir-pseudo-class": "^6.0.4", + "postcss-double-position-gradients": "^3.1.1", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.3", + "postcss-image-set-function": "^4.0.6", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.1.2", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.1.3", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.3", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.4", + "postcss-pseudo-class-any-link": "^7.1.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^5.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-pseudo-class-any-link": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.2.tgz", + "integrity": "sha512-76XzEQv3g+Vgnz3tmqh3pqQyRojkcJ+pjaePsyhcyf164p9aZsu3t+NWxkZYbcHLK1ju5Qmalti2jPI5IWCe5w==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==" + }, + "postcss-selector-not": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", + "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + } + } + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + }, + "prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" + }, + "pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "requires": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + } + } + }, + "prism-react-renderer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.1.tgz", + "integrity": "sha512-xUeDMEz074d0zc5y6rxiMp/dlC7C+5IDDlaEUlcBOFE2wddz7hz5PNupb087mPwTt7T9BrFmewObfCBuf/LKwQ==" + }, + "prism-themes": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/prism-themes/-/prism-themes-1.9.0.tgz", + "integrity": "sha512-tX2AYsehKDw1EORwBps+WhBFKc2kxfoFpQAjxBndbZKr4fRmMkv47XN0BghC/K1qwodB1otbe4oF23vUTFDokw==" + }, + "prismjs": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.28.0.tgz", + "integrity": "sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "requires": { + "asap": "~2.0.6" + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "prop-types-extra": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "requires": { + "react-is": "^16.3.2", + "warning": "^4.0.0" + } + }, + "property-expr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", + "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + } + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "requires": { + "bytes": "3.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "react": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.0.0.tgz", + "integrity": "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-apexcharts": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.4.0.tgz", + "integrity": "sha512-DrcMV4aAMrUG+n6412yzyATWEyCDWlpPBBhVbpzBC4PDeuYU6iF84SmExbck+jx5MUm4U5PM3/T307Mc3kzc9Q==", + "requires": { + "prop-types": "^15.5.7" + } + }, + "react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "requires": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + } + }, + "react-bootstrap": { + "version": "2.5.0-beta.1", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.5.0-beta.1.tgz", + "integrity": "sha512-brHUvpjJrNmShg2xjT3qNfZ7mKLEUyGvh+wp+IgxcFKrh7BPKzpbAtJYa2S1QJx5MuPBT/D0ywMFbz1LBY0Qvg==", + "requires": { + "@babel/runtime": "^7.17.2", + "@restart/hooks": "^0.4.6", + "@restart/ui": "^1.3.0", + "@types/react-transition-group": "^4.4.4", + "classnames": "^2.3.1", + "dom-helpers": "^5.2.1", + "invariant": "^2.2.4", + "prop-types": "^15.8.1", + "prop-types-extra": "^1.1.0", + "react-transition-group": "^4.4.2", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + } + }, + "react-copy-to-clipboard": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz", + "integrity": "sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==", + "requires": { + "copy-to-clipboard": "^3.3.1", + "prop-types": "^15.8.1" + } + }, + "react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "requires": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" + } + } + }, + "react-dom": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz", + "integrity": "sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.21.0" + } + }, + "react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "react-fast-compare": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + }, + "react-from-dom": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.6.2.tgz", + "integrity": "sha512-qvWWTL/4xw4k/Dywd41RBpLQUSq97csuv15qrxN+izNeLYlD9wn5W8LspbfYe5CWbaSdkZ72BsaYBPQf2x4VbQ==" + }, + "react-inlinesvg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-3.0.0.tgz", + "integrity": "sha512-zUt0DW3cKBk+vYZJJCzJqA9STRb+ZFmKLQFWurTvM4UR6vyHT8kHZSzyZZseX9BUNbTFJAfirtwpt97BWDJoSg==", + "requires": { + "exenv": "^1.2.2", + "react-from-dom": "^0.6.2" + } + }, + "react-intl": { + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.25.0.tgz", + "integrity": "sha512-jIgmCy9s2IVFdQHEe2LzW023wKDQwgKXPdxg6WwuUJxR9BHPBPGLj01rxc3gLZ3aKDuL91SsFPAlx+qEy7+k0w==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-messageformat-parser": "2.0.19", + "@formatjs/intl": "2.2.0", + "@formatjs/intl-displaynames": "5.4.3", + "@formatjs/intl-listformat": "6.5.3", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/react": "16 || 17 || 18", + "hoist-non-react-statics": "^3.3.2", + "intl-messageformat": "9.12.0", + "tslib": "^2.1.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-query": { + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.38.0.tgz", + "integrity": "sha512-VRbCTRrDfC5FsB70+JfZuxFRv9SAvkZ1h36MsN8+QaDN+NWB6s1vJndqpoLQnJqN0COTG2zsInMq0KFdYze6TA==", + "requires": { + "@babel/runtime": "^7.5.5", + "broadcast-channel": "^3.4.1", + "match-sorter": "^6.0.2" + } + }, + "react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" + }, + "react-router": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz", + "integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==", + "requires": { + "history": "^5.2.0" + } + }, + "react-router-dom": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.3.0.tgz", + "integrity": "sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==", + "requires": { + "history": "^5.2.0", + "react-router": "6.3.0" + } + }, + "react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "requires": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "fsevents": "^2.3.2", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "dependencies": { + "sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + } + } + }, + "react-table": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/react-table/-/react-table-7.7.0.tgz", + "integrity": "sha512-jBlj70iBwOTvvImsU9t01LjFjy4sXEtclBovl3mTiqjz23Reu0DKnRza4zlLtOPACx6j2/7MrQIthIK1Wi+LIA==" + }, + "react-topbar-progress-indicator": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/react-topbar-progress-indicator/-/react-topbar-progress-indicator-4.1.1.tgz", + "integrity": "sha512-Oy3ENNKfymt16zoz5SYy/WOepMurB0oeZEyvuHm8JZ3jrTCe1oAUD7fG6HhYt5sg8Wcg5gdkzSWItaFF6c6VhA==", + "requires": { + "topbar": "^0.1.3" + } + }, + "react-transition-group": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "requires": { + "minimatch": "3.0.4" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" + }, + "regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + }, + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "remove-accents": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", + "integrity": "sha1-CkPTqq4egNuRngeuJUsoXZ4ce7U=" + }, + "renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + }, + "resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "requires": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.70.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.2.tgz", + "integrity": "sha512-EitogNZnfku65I1DD5Mxe8JYRUCy0hkK5X84IlDtUs+O6JRMpRciXTzyCUuX11b5L5pvjH+OmFXiQ3XjabcXgg==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "dependencies": { + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + } + } + }, + "rtlcss": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", + "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", + "dev": true, + "requires": { + "find-up": "^5.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.3.11", + "strip-json-comments": "^3.1.1" + } + }, + "rtlcss-webpack-plugin": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/rtlcss-webpack-plugin/-/rtlcss-webpack-plugin-4.0.7.tgz", + "integrity": "sha512-ouSbJtgcLBBQIsMgarxsDnfgRqm/AS4BKls/mz/Xb6HSl+PdEzefTR+Wz5uWQx4odoX0g261Z7yb3QBz0MTm0g==", + "dev": true, + "requires": { + "babel-runtime": "~6.25.0", + "rtlcss": "^3.5.0" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "sass": { + "version": "1.50.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.50.1.tgz", + "integrity": "sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==", + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sass-loader": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz", + "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "scheduler": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", + "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "requires": { + "node-forge": "^1" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + } + } + }, + "serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "socicon": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/socicon/-/socicon-3.0.5.tgz", + "integrity": "sha1-v6Bvz38rbzzcOUQzd0I1jp4FC20=" + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", + "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "requires": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + } + }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } + }, + "stackframe": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", + "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + } + } + }, + "string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + }, + "strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "style-loader": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==" + }, + "stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "requires": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "requires": { + "svg.js": "^2.0.1" + } + }, + "svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=", + "requires": { + "svg.js": ">=2.3.x" + } + }, + "svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=", + "requires": { + "svg.js": "^2.2.5" + } + }, + "svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + }, + "svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "requires": { + "svg.js": "^2.4.0" + } + }, + "svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "requires": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "dependencies": { + "svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "requires": { + "svg.js": "^2.2.5" + } + } + } + }, + "svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "requires": { + "svg.js": "^2.6.5" + } + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + }, + "dependencies": { + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + } + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "tailwindcss": { + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz", + "integrity": "sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==", + "requires": { + "arg": "^5.0.1", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.12", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "5.0.6", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.0" + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==" + }, + "tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "requires": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" + } + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", + "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "requires": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "requires": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "topbar": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/topbar/-/topbar-0.1.4.tgz", + "integrity": "sha512-P3n4WnN4GFd2mQXDo30rQmsAGe4V1bVkggtTreSbNyL50Fyc+eVkW5oatSLeGQmJoan2TLIgoXUZypN+6nw4MQ==" + }, + "toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=" + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "dependencies": { + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "requires": { + "punycode": "^2.1.1" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + } + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "requires": { + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "unload": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", + "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", + "requires": { + "@babel/runtime": "^7.6.2", + "detect-node": "^2.0.4" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + }, + "v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "requires": { + "makeerror": "1.0.12" + } + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + } + } + }, + "webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", + "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "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==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.8.1.tgz", + "integrity": "sha512-dwld70gkgNJa33czmcj/PlKY/nOy/BimbrgZRaR9vDATBQAYgLzggR0nxDtPLJiLrMgZwbE6RRfJ5vnBBasTyg==", + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "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==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==" + } + } + }, + "webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "requires": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "dependencies": { + "webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "requires": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + } + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "workbox-background-sync": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.3.tgz", + "integrity": "sha512-0DD/V05FAcek6tWv9XYj2w5T/plxhDSpclIcAGjA/b7t/6PdaRkQ7ZgtAX6Q/L7kV7wZ8uYRJUoH11VjNipMZw==", + "requires": { + "idb": "^6.1.4", + "workbox-core": "6.5.3" + } + }, + "workbox-broadcast-update": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.3.tgz", + "integrity": "sha512-4AwCIA5DiDrYhlN+Miv/fp5T3/whNmSL+KqhTwRBTZIL6pvTgE4lVuRzAt1JltmqyMcQ3SEfCdfxczuI4kwFQg==", + "requires": { + "workbox-core": "6.5.3" + } + }, + "workbox-build": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.3.tgz", + "integrity": "sha512-8JNHHS7u13nhwIYCDea9MNXBNPHXCs5KDZPKI/ZNTr3f4sMGoD7hgFGecbyjX1gw4z6e9bMpMsOEJNyH5htA/w==", + "requires": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.5.3", + "workbox-broadcast-update": "6.5.3", + "workbox-cacheable-response": "6.5.3", + "workbox-core": "6.5.3", + "workbox-expiration": "6.5.3", + "workbox-google-analytics": "6.5.3", + "workbox-navigation-preload": "6.5.3", + "workbox-precaching": "6.5.3", + "workbox-range-requests": "6.5.3", + "workbox-recipes": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3", + "workbox-streams": "6.5.3", + "workbox-sw": "6.5.3", + "workbox-window": "6.5.3" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "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==" + }, + "source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "requires": { + "whatwg-url": "^7.0.0" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "requires": { + "punycode": "^2.1.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } + } + }, + "workbox-cacheable-response": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.3.tgz", + "integrity": "sha512-6JE/Zm05hNasHzzAGKDkqqgYtZZL2H06ic2GxuRLStA4S/rHUfm2mnLFFXuHAaGR1XuuYyVCEey1M6H3PdZ7SQ==", + "requires": { + "workbox-core": "6.5.3" + } + }, + "workbox-core": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.3.tgz", + "integrity": "sha512-Bb9ey5n/M9x+l3fBTlLpHt9ASTzgSGj6vxni7pY72ilB/Pb3XtN+cZ9yueboVhD5+9cNQrC9n/E1fSrqWsUz7Q==" + }, + "workbox-expiration": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.3.tgz", + "integrity": "sha512-jzYopYR1zD04ZMdlbn/R2Ik6ixiXbi15c9iX5H8CTi6RPDz7uhvMLZPKEndZTpfgmUk8mdmT9Vx/AhbuCl5Sqw==", + "requires": { + "idb": "^6.1.4", + "workbox-core": "6.5.3" + } + }, + "workbox-google-analytics": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.3.tgz", + "integrity": "sha512-3GLCHotz5umoRSb4aNQeTbILETcrTVEozSfLhHSBaegHs1PnqCmN0zbIy2TjTpph2AGXiNwDrWGF0AN+UgDNTw==", + "requires": { + "workbox-background-sync": "6.5.3", + "workbox-core": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3" + } + }, + "workbox-navigation-preload": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.3.tgz", + "integrity": "sha512-bK1gDFTc5iu6lH3UQ07QVo+0ovErhRNGvJJO/1ngknT0UQ702nmOUhoN9qE5mhuQSrnK+cqu7O7xeaJ+Rd9Tmg==", + "requires": { + "workbox-core": "6.5.3" + } + }, + "workbox-precaching": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.3.tgz", + "integrity": "sha512-sjNfgNLSsRX5zcc63H/ar/hCf+T19fRtTqvWh795gdpghWb5xsfEkecXEvZ8biEi1QD7X/ljtHphdaPvXDygMQ==", + "requires": { + "workbox-core": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3" + } + }, + "workbox-range-requests": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.3.tgz", + "integrity": "sha512-pGCP80Bpn/0Q0MQsfETSfmtXsQcu3M2QCJwSFuJ6cDp8s2XmbUXkzbuQhCUzKR86ZH2Vex/VUjb2UaZBGamijA==", + "requires": { + "workbox-core": "6.5.3" + } + }, + "workbox-recipes": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.3.tgz", + "integrity": "sha512-IcgiKYmbGiDvvf3PMSEtmwqxwfQ5zwI7OZPio3GWu4PfehA8jI8JHI3KZj+PCfRiUPZhjQHJ3v1HbNs+SiSkig==", + "requires": { + "workbox-cacheable-response": "6.5.3", + "workbox-core": "6.5.3", + "workbox-expiration": "6.5.3", + "workbox-precaching": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3" + } + }, + "workbox-routing": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.3.tgz", + "integrity": "sha512-DFjxcuRAJjjt4T34RbMm3MCn+xnd36UT/2RfPRfa8VWJGItGJIn7tG+GwVTdHmvE54i/QmVTJepyAGWtoLPTmg==", + "requires": { + "workbox-core": "6.5.3" + } + }, + "workbox-strategies": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.3.tgz", + "integrity": "sha512-MgmGRrDVXs7rtSCcetZgkSZyMpRGw8HqL2aguszOc3nUmzGZsT238z/NN9ZouCxSzDu3PQ3ZSKmovAacaIhu1w==", + "requires": { + "workbox-core": "6.5.3" + } + }, + "workbox-streams": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.3.tgz", + "integrity": "sha512-vN4Qi8o+b7zj1FDVNZ+PlmAcy1sBoV7SC956uhqYvZ9Sg1fViSbOpydULOssVJ4tOyKRifH/eoi6h99d+sJ33w==", + "requires": { + "workbox-core": "6.5.3", + "workbox-routing": "6.5.3" + } + }, + "workbox-sw": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.3.tgz", + "integrity": "sha512-BQBzm092w+NqdIEF2yhl32dERt9j9MDGUTa2Eaa+o3YKL4Qqw55W9yQC6f44FdAHdAJrJvp0t+HVrfh8AiGj8A==" + }, + "workbox-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-Es8Xr02Gi6Kc3zaUwR691ZLy61hz3vhhs5GztcklQ7kl5k2qAusPh0s6LF3wEtlpfs9ZDErnmy5SErwoll7jBA==", + "requires": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.5.3" + }, + "dependencies": { + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "workbox-window": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.3.tgz", + "integrity": "sha512-GnJbx1kcKXDtoJBVZs/P7ddP0Yt52NNy4nocjBpYPiRhMqTpJCNrSL+fGHZ/i/oP6p/vhE8II0sA6AZGKGnssw==", + "requires": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.5.3" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==" + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "yup": { + "version": "0.32.11", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz", + "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==", + "requires": { + "@babel/runtime": "^7.15.4", + "@types/lodash": "^4.14.175", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..316c064 --- /dev/null +++ b/package.json @@ -0,0 +1,96 @@ +{ + "name": "demo1", + "version": "8.1.5", + "private": true, + "homepage": "/metronic8/react/demo1", + "dependencies": { + "@formatjs/intl-pluralrules": "4.3.3", + "@formatjs/intl-relativetimeformat": "10.0.1", + "@fortawesome/fontawesome-free": "6.1.1", + "@popperjs/core": "2.11.6", + "animate.css": "4.1.1", + "apexcharts": "3.35.0", + "axios": "0.26.1", + "bootstrap": "5.2.2", + "bootstrap-icons": "^1.5.0", + "chart.js": "3.7.1", + "clsx": "1.1.1", + "formik": "2.2.9", + "line-awesome": "1.3.0", + "nouislider": "15.5.1", + "prism-react-renderer": "1.3.1", + "prism-themes": "1.9.0", + "prismjs": "1.28.0", + "qs": "6.10.3", + "react": "18.0.0", + "react-dom": "18.0.0", + "react-scripts": "5.0.1", + "react-inlinesvg": "3.0.0", + "react-apexcharts": "1.4.0", + "react-bootstrap": "2.5.0-beta.1", + "react-copy-to-clipboard": "5.1.0", + "react-intl": "5.25.0", + "react-query": "3.38.0", + "react-router-dom": "6.3.0", + "react-table": "^7.7.0", + "react-topbar-progress-indicator": "4.1.1", + "socicon": "3.0.5", + "sass": "1.50.1", + "yup": "0.32.11" + }, + "devDependencies": { + "@testing-library/jest-dom": "5.16.4", + "@testing-library/react": "13.1.1", + "@testing-library/user-event": "13.5.0", + "@types/bootstrap": "5.1.10", + "@types/chart.js": "2.9.37", + "@types/jest": "27.4.1", + "@types/node": "16.11.27", + "@types/react": "18.0.6", + "@types/react-dom": "18.0.2", + "@types/react-table": "^7.7.9", + "@types/prismjs": "1.26.0", + "@types/qs": "6.9.7", + "@types/react-copy-to-clipboard": "5.0.2", + "@types/sass-loader": "8.0.3", + "css-loader": "6.7.1", + "del": "6.0.0", + "mini-css-extract-plugin": "2.6.1", + "prettier": "2.6.2", + "rtlcss-webpack-plugin": "4.0.7", + "sass-loader": "13.0.2", + "typescript": "4.6.3", + "webpack": "5.74.0", + "webpack-cli": "4.10.0" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject", + "lint": "prettier --check .", + "format": "prettier --write .", + "rtl": "webpack --config=rtl.config.js" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "eslintIgnore": [ + "dist/*" + ] +} \ No newline at end of file diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..94838e5 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..49fad37 --- /dev/null +++ b/public/index.html @@ -0,0 +1,45 @@ + + + + + + + + + + WrenchBoard + + + + + + + + + + +
+
+ WrenchBoard + Loading ... +
+
+ + + \ No newline at end of file diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..6abc28e --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,5 @@ +{ + "short_name": "Metronic React App", + "name": "Metronic React App demo1", + "start_url": "." +} diff --git a/public/media/auth/404-error-dark.png b/public/media/auth/404-error-dark.png new file mode 100644 index 0000000..43af447 Binary files /dev/null and b/public/media/auth/404-error-dark.png differ diff --git a/public/media/auth/404-error.png b/public/media/auth/404-error.png new file mode 100644 index 0000000..5e8542f Binary files /dev/null and b/public/media/auth/404-error.png differ diff --git a/public/media/auth/500-error-dark.png b/public/media/auth/500-error-dark.png new file mode 100644 index 0000000..00c1da1 Binary files /dev/null and b/public/media/auth/500-error-dark.png differ diff --git a/public/media/auth/500-error.png b/public/media/auth/500-error.png new file mode 100644 index 0000000..923294e Binary files /dev/null and b/public/media/auth/500-error.png differ diff --git a/public/media/auth/505-error-dark.png b/public/media/auth/505-error-dark.png new file mode 100644 index 0000000..4b202a9 Binary files /dev/null and b/public/media/auth/505-error-dark.png differ diff --git a/public/media/auth/505-error.png b/public/media/auth/505-error.png new file mode 100644 index 0000000..c839fd2 Binary files /dev/null and b/public/media/auth/505-error.png differ diff --git a/public/media/auth/agency-dark.png b/public/media/auth/agency-dark.png new file mode 100644 index 0000000..2e32b40 Binary files /dev/null and b/public/media/auth/agency-dark.png differ diff --git a/public/media/auth/agency.png b/public/media/auth/agency.png new file mode 100644 index 0000000..fefddd5 Binary files /dev/null and b/public/media/auth/agency.png differ diff --git a/public/media/auth/bg1-dark.jpg b/public/media/auth/bg1-dark.jpg new file mode 100644 index 0000000..7d6fa9d Binary files /dev/null and b/public/media/auth/bg1-dark.jpg differ diff --git a/public/media/auth/bg1.jpg b/public/media/auth/bg1.jpg new file mode 100644 index 0000000..a305a07 Binary files /dev/null and b/public/media/auth/bg1.jpg differ diff --git a/public/media/auth/bg10-dark.jpeg b/public/media/auth/bg10-dark.jpeg new file mode 100644 index 0000000..5c73472 Binary files /dev/null and b/public/media/auth/bg10-dark.jpeg differ diff --git a/public/media/auth/bg10.jpeg b/public/media/auth/bg10.jpeg new file mode 100644 index 0000000..5e5040f Binary files /dev/null and b/public/media/auth/bg10.jpeg differ diff --git a/public/media/auth/bg11.png b/public/media/auth/bg11.png new file mode 100644 index 0000000..dae20f6 Binary files /dev/null and b/public/media/auth/bg11.png differ diff --git a/public/media/auth/bg2-dark.jpg b/public/media/auth/bg2-dark.jpg new file mode 100644 index 0000000..8f215d0 Binary files /dev/null and b/public/media/auth/bg2-dark.jpg differ diff --git a/public/media/auth/bg2.jpg b/public/media/auth/bg2.jpg new file mode 100644 index 0000000..801c893 Binary files /dev/null and b/public/media/auth/bg2.jpg differ diff --git a/public/media/auth/bg3-dark.jpg b/public/media/auth/bg3-dark.jpg new file mode 100644 index 0000000..af52b55 Binary files /dev/null and b/public/media/auth/bg3-dark.jpg differ diff --git a/public/media/auth/bg3.jpg b/public/media/auth/bg3.jpg new file mode 100644 index 0000000..582b667 Binary files /dev/null and b/public/media/auth/bg3.jpg differ diff --git a/public/media/auth/bg4-dark.jpg b/public/media/auth/bg4-dark.jpg new file mode 100644 index 0000000..13d1d2d Binary files /dev/null and b/public/media/auth/bg4-dark.jpg differ diff --git a/public/media/auth/bg4.jpg b/public/media/auth/bg4.jpg new file mode 100644 index 0000000..9c7b2d9 Binary files /dev/null and b/public/media/auth/bg4.jpg differ diff --git a/public/media/auth/bg5-dark.jpg b/public/media/auth/bg5-dark.jpg new file mode 100644 index 0000000..4c62196 Binary files /dev/null and b/public/media/auth/bg5-dark.jpg differ diff --git a/public/media/auth/bg5.jpg b/public/media/auth/bg5.jpg new file mode 100644 index 0000000..c8bd5b3 Binary files /dev/null and b/public/media/auth/bg5.jpg differ diff --git a/public/media/auth/bg6-dark.jpg b/public/media/auth/bg6-dark.jpg new file mode 100644 index 0000000..04bcc3e Binary files /dev/null and b/public/media/auth/bg6-dark.jpg differ diff --git a/public/media/auth/bg6.jpg b/public/media/auth/bg6.jpg new file mode 100644 index 0000000..fe2b508 Binary files /dev/null and b/public/media/auth/bg6.jpg differ diff --git a/public/media/auth/bg7-dark.jpg b/public/media/auth/bg7-dark.jpg new file mode 100644 index 0000000..2a3c51c Binary files /dev/null and b/public/media/auth/bg7-dark.jpg differ diff --git a/public/media/auth/bg7.jpg b/public/media/auth/bg7.jpg new file mode 100644 index 0000000..de6d180 Binary files /dev/null and b/public/media/auth/bg7.jpg differ diff --git a/public/media/auth/bg8-dark.jpg b/public/media/auth/bg8-dark.jpg new file mode 100644 index 0000000..e6bf942 Binary files /dev/null and b/public/media/auth/bg8-dark.jpg differ diff --git a/public/media/auth/bg8.jpg b/public/media/auth/bg8.jpg new file mode 100644 index 0000000..2cc808e Binary files /dev/null and b/public/media/auth/bg8.jpg differ diff --git a/public/media/auth/bg9-dark.jpg b/public/media/auth/bg9-dark.jpg new file mode 100644 index 0000000..befbba9 Binary files /dev/null and b/public/media/auth/bg9-dark.jpg differ diff --git a/public/media/auth/bg9.jpg b/public/media/auth/bg9.jpg new file mode 100644 index 0000000..c6a390f Binary files /dev/null and b/public/media/auth/bg9.jpg differ diff --git a/public/media/auth/chart-graph-dark.png b/public/media/auth/chart-graph-dark.png new file mode 100644 index 0000000..f3dd735 Binary files /dev/null and b/public/media/auth/chart-graph-dark.png differ diff --git a/public/media/auth/chart-graph.png b/public/media/auth/chart-graph.png new file mode 100644 index 0000000..7770796 Binary files /dev/null and b/public/media/auth/chart-graph.png differ diff --git a/public/media/auth/membership-dark.png b/public/media/auth/membership-dark.png new file mode 100644 index 0000000..d5ef702 Binary files /dev/null and b/public/media/auth/membership-dark.png differ diff --git a/public/media/auth/membership.png b/public/media/auth/membership.png new file mode 100644 index 0000000..e5be8d3 Binary files /dev/null and b/public/media/auth/membership.png differ diff --git a/public/media/auth/ok-dark.png b/public/media/auth/ok-dark.png new file mode 100644 index 0000000..d423365 Binary files /dev/null and b/public/media/auth/ok-dark.png differ diff --git a/public/media/auth/ok.png b/public/media/auth/ok.png new file mode 100644 index 0000000..c02b046 Binary files /dev/null and b/public/media/auth/ok.png differ diff --git a/public/media/auth/please-verify-your-email-dark.png b/public/media/auth/please-verify-your-email-dark.png new file mode 100644 index 0000000..e25dd76 Binary files /dev/null and b/public/media/auth/please-verify-your-email-dark.png differ diff --git a/public/media/auth/please-verify-your-email.png b/public/media/auth/please-verify-your-email.png new file mode 100644 index 0000000..85e333c Binary files /dev/null and b/public/media/auth/please-verify-your-email.png differ diff --git a/public/media/auth/welcome-dark.png b/public/media/auth/welcome-dark.png new file mode 100644 index 0000000..ef8cc86 Binary files /dev/null and b/public/media/auth/welcome-dark.png differ diff --git a/public/media/auth/welcome.png b/public/media/auth/welcome.png new file mode 100644 index 0000000..70fe04b Binary files /dev/null and b/public/media/auth/welcome.png differ diff --git a/public/media/avatars/300-1.jpg b/public/media/avatars/300-1.jpg new file mode 100644 index 0000000..7b5fb2e Binary files /dev/null and b/public/media/avatars/300-1.jpg differ diff --git a/public/media/avatars/300-10.jpg b/public/media/avatars/300-10.jpg new file mode 100644 index 0000000..584e21b Binary files /dev/null and b/public/media/avatars/300-10.jpg differ diff --git a/public/media/avatars/300-11.jpg b/public/media/avatars/300-11.jpg new file mode 100644 index 0000000..71545c8 Binary files /dev/null and b/public/media/avatars/300-11.jpg differ diff --git a/public/media/avatars/300-12.jpg b/public/media/avatars/300-12.jpg new file mode 100644 index 0000000..0c55f99 Binary files /dev/null and b/public/media/avatars/300-12.jpg differ diff --git a/public/media/avatars/300-13.jpg b/public/media/avatars/300-13.jpg new file mode 100644 index 0000000..40366a6 Binary files /dev/null and b/public/media/avatars/300-13.jpg differ diff --git a/public/media/avatars/300-14.jpg b/public/media/avatars/300-14.jpg new file mode 100644 index 0000000..b2b417e Binary files /dev/null and b/public/media/avatars/300-14.jpg differ diff --git a/public/media/avatars/300-15.jpg b/public/media/avatars/300-15.jpg new file mode 100644 index 0000000..bc63b3a Binary files /dev/null and b/public/media/avatars/300-15.jpg differ diff --git a/public/media/avatars/300-16.jpg b/public/media/avatars/300-16.jpg new file mode 100644 index 0000000..457d37f Binary files /dev/null and b/public/media/avatars/300-16.jpg differ diff --git a/public/media/avatars/300-17.jpg b/public/media/avatars/300-17.jpg new file mode 100644 index 0000000..bb2a1d1 Binary files /dev/null and b/public/media/avatars/300-17.jpg differ diff --git a/public/media/avatars/300-18.jpg b/public/media/avatars/300-18.jpg new file mode 100644 index 0000000..4bdaf32 Binary files /dev/null and b/public/media/avatars/300-18.jpg differ diff --git a/public/media/avatars/300-19.jpg b/public/media/avatars/300-19.jpg new file mode 100644 index 0000000..4ec2eb8 Binary files /dev/null and b/public/media/avatars/300-19.jpg differ diff --git a/public/media/avatars/300-2.jpg b/public/media/avatars/300-2.jpg new file mode 100644 index 0000000..ff8e430 Binary files /dev/null and b/public/media/avatars/300-2.jpg differ diff --git a/public/media/avatars/300-20.jpg b/public/media/avatars/300-20.jpg new file mode 100644 index 0000000..1b20072 Binary files /dev/null and b/public/media/avatars/300-20.jpg differ diff --git a/public/media/avatars/300-21.jpg b/public/media/avatars/300-21.jpg new file mode 100644 index 0000000..f069199 Binary files /dev/null and b/public/media/avatars/300-21.jpg differ diff --git a/public/media/avatars/300-22.jpg b/public/media/avatars/300-22.jpg new file mode 100644 index 0000000..1c96e39 Binary files /dev/null and b/public/media/avatars/300-22.jpg differ diff --git a/public/media/avatars/300-23.jpg b/public/media/avatars/300-23.jpg new file mode 100644 index 0000000..27a2fa7 Binary files /dev/null and b/public/media/avatars/300-23.jpg differ diff --git a/public/media/avatars/300-24.jpg b/public/media/avatars/300-24.jpg new file mode 100644 index 0000000..599b2b2 Binary files /dev/null and b/public/media/avatars/300-24.jpg differ diff --git a/public/media/avatars/300-25.jpg b/public/media/avatars/300-25.jpg new file mode 100644 index 0000000..91ee2e2 Binary files /dev/null and b/public/media/avatars/300-25.jpg differ diff --git a/public/media/avatars/300-26.jpg b/public/media/avatars/300-26.jpg new file mode 100644 index 0000000..02c9ca1 Binary files /dev/null and b/public/media/avatars/300-26.jpg differ diff --git a/public/media/avatars/300-27.jpg b/public/media/avatars/300-27.jpg new file mode 100644 index 0000000..b5252de Binary files /dev/null and b/public/media/avatars/300-27.jpg differ diff --git a/public/media/avatars/300-28.jpg b/public/media/avatars/300-28.jpg new file mode 100644 index 0000000..8928cd1 Binary files /dev/null and b/public/media/avatars/300-28.jpg differ diff --git a/public/media/avatars/300-29.jpg b/public/media/avatars/300-29.jpg new file mode 100644 index 0000000..8b893f3 Binary files /dev/null and b/public/media/avatars/300-29.jpg differ diff --git a/public/media/avatars/300-3.jpg b/public/media/avatars/300-3.jpg new file mode 100644 index 0000000..6378a6a Binary files /dev/null and b/public/media/avatars/300-3.jpg differ diff --git a/public/media/avatars/300-30.jpg b/public/media/avatars/300-30.jpg new file mode 100644 index 0000000..62af080 Binary files /dev/null and b/public/media/avatars/300-30.jpg differ diff --git a/public/media/avatars/300-4.jpg b/public/media/avatars/300-4.jpg new file mode 100644 index 0000000..693ca71 Binary files /dev/null and b/public/media/avatars/300-4.jpg differ diff --git a/public/media/avatars/300-5.jpg b/public/media/avatars/300-5.jpg new file mode 100644 index 0000000..b439db5 Binary files /dev/null and b/public/media/avatars/300-5.jpg differ diff --git a/public/media/avatars/300-6.jpg b/public/media/avatars/300-6.jpg new file mode 100644 index 0000000..8497aa9 Binary files /dev/null and b/public/media/avatars/300-6.jpg differ diff --git a/public/media/avatars/300-7.jpg b/public/media/avatars/300-7.jpg new file mode 100644 index 0000000..4a05372 Binary files /dev/null and b/public/media/avatars/300-7.jpg differ diff --git a/public/media/avatars/300-8.jpg b/public/media/avatars/300-8.jpg new file mode 100644 index 0000000..3f2b4c1 Binary files /dev/null and b/public/media/avatars/300-8.jpg differ diff --git a/public/media/avatars/300-9.jpg b/public/media/avatars/300-9.jpg new file mode 100644 index 0000000..ff7e424 Binary files /dev/null and b/public/media/avatars/300-9.jpg differ diff --git a/public/media/avatars/blank.png b/public/media/avatars/blank.png new file mode 100644 index 0000000..a8598bc Binary files /dev/null and b/public/media/avatars/blank.png differ diff --git a/public/media/books/1.png b/public/media/books/1.png new file mode 100644 index 0000000..e31f1b8 Binary files /dev/null and b/public/media/books/1.png differ diff --git a/public/media/books/10.png b/public/media/books/10.png new file mode 100644 index 0000000..0fc7bb5 Binary files /dev/null and b/public/media/books/10.png differ diff --git a/public/media/books/11.png b/public/media/books/11.png new file mode 100644 index 0000000..e931cc8 Binary files /dev/null and b/public/media/books/11.png differ diff --git a/public/media/books/12.png b/public/media/books/12.png new file mode 100644 index 0000000..7a41e96 Binary files /dev/null and b/public/media/books/12.png differ diff --git a/public/media/books/13.png b/public/media/books/13.png new file mode 100644 index 0000000..42dbdf3 Binary files /dev/null and b/public/media/books/13.png differ diff --git a/public/media/books/2.png b/public/media/books/2.png new file mode 100644 index 0000000..72d2213 Binary files /dev/null and b/public/media/books/2.png differ diff --git a/public/media/books/3.png b/public/media/books/3.png new file mode 100644 index 0000000..ad23d7a Binary files /dev/null and b/public/media/books/3.png differ diff --git a/public/media/books/4.png b/public/media/books/4.png new file mode 100644 index 0000000..0c34922 Binary files /dev/null and b/public/media/books/4.png differ diff --git a/public/media/books/5.png b/public/media/books/5.png new file mode 100644 index 0000000..11870d7 Binary files /dev/null and b/public/media/books/5.png differ diff --git a/public/media/books/6.png b/public/media/books/6.png new file mode 100644 index 0000000..6514f70 Binary files /dev/null and b/public/media/books/6.png differ diff --git a/public/media/books/7.png b/public/media/books/7.png new file mode 100644 index 0000000..44e0211 Binary files /dev/null and b/public/media/books/7.png differ diff --git a/public/media/books/8.png b/public/media/books/8.png new file mode 100644 index 0000000..318cf8d Binary files /dev/null and b/public/media/books/8.png differ diff --git a/public/media/books/9.png b/public/media/books/9.png new file mode 100644 index 0000000..d3154bf Binary files /dev/null and b/public/media/books/9.png differ diff --git a/public/media/books/img-72.jpg b/public/media/books/img-72.jpg new file mode 100644 index 0000000..11d45eb Binary files /dev/null and b/public/media/books/img-72.jpg differ diff --git a/public/media/demos/demo1.png b/public/media/demos/demo1.png new file mode 100644 index 0000000..fc1f89d Binary files /dev/null and b/public/media/demos/demo1.png differ diff --git a/public/media/demos/demo10.png b/public/media/demos/demo10.png new file mode 100644 index 0000000..ad6447d Binary files /dev/null and b/public/media/demos/demo10.png differ diff --git a/public/media/demos/demo11.png b/public/media/demos/demo11.png new file mode 100644 index 0000000..c1b9edc Binary files /dev/null and b/public/media/demos/demo11.png differ diff --git a/public/media/demos/demo12.png b/public/media/demos/demo12.png new file mode 100644 index 0000000..bfc12ee Binary files /dev/null and b/public/media/demos/demo12.png differ diff --git a/public/media/demos/demo13.png b/public/media/demos/demo13.png new file mode 100644 index 0000000..438e64b Binary files /dev/null and b/public/media/demos/demo13.png differ diff --git a/public/media/demos/demo14.png b/public/media/demos/demo14.png new file mode 100644 index 0000000..b06dbcd Binary files /dev/null and b/public/media/demos/demo14.png differ diff --git a/public/media/demos/demo15.png b/public/media/demos/demo15.png new file mode 100644 index 0000000..ed8ec6d Binary files /dev/null and b/public/media/demos/demo15.png differ diff --git a/public/media/demos/demo16.png b/public/media/demos/demo16.png new file mode 100644 index 0000000..fb0f913 Binary files /dev/null and b/public/media/demos/demo16.png differ diff --git a/public/media/demos/demo17.png b/public/media/demos/demo17.png new file mode 100644 index 0000000..341c1b5 Binary files /dev/null and b/public/media/demos/demo17.png differ diff --git a/public/media/demos/demo18.png b/public/media/demos/demo18.png new file mode 100644 index 0000000..529cb49 Binary files /dev/null and b/public/media/demos/demo18.png differ diff --git a/public/media/demos/demo19.png b/public/media/demos/demo19.png new file mode 100644 index 0000000..8547e27 Binary files /dev/null and b/public/media/demos/demo19.png differ diff --git a/public/media/demos/demo2.png b/public/media/demos/demo2.png new file mode 100644 index 0000000..dde653f Binary files /dev/null and b/public/media/demos/demo2.png differ diff --git a/public/media/demos/demo20.png b/public/media/demos/demo20.png new file mode 100644 index 0000000..1917209 Binary files /dev/null and b/public/media/demos/demo20.png differ diff --git a/public/media/demos/demo21.png b/public/media/demos/demo21.png new file mode 100644 index 0000000..84f9f54 Binary files /dev/null and b/public/media/demos/demo21.png differ diff --git a/public/media/demos/demo22.png b/public/media/demos/demo22.png new file mode 100644 index 0000000..634bac6 Binary files /dev/null and b/public/media/demos/demo22.png differ diff --git a/public/media/demos/demo23.png b/public/media/demos/demo23.png new file mode 100644 index 0000000..ec9bb94 Binary files /dev/null and b/public/media/demos/demo23.png differ diff --git a/public/media/demos/demo24.png b/public/media/demos/demo24.png new file mode 100644 index 0000000..ec45b45 Binary files /dev/null and b/public/media/demos/demo24.png differ diff --git a/public/media/demos/demo3.png b/public/media/demos/demo3.png new file mode 100644 index 0000000..a3245d0 Binary files /dev/null and b/public/media/demos/demo3.png differ diff --git a/public/media/demos/demo4.png b/public/media/demos/demo4.png new file mode 100644 index 0000000..8605b72 Binary files /dev/null and b/public/media/demos/demo4.png differ diff --git a/public/media/demos/demo5.png b/public/media/demos/demo5.png new file mode 100644 index 0000000..1edc613 Binary files /dev/null and b/public/media/demos/demo5.png differ diff --git a/public/media/demos/demo6.png b/public/media/demos/demo6.png new file mode 100644 index 0000000..c2315cf Binary files /dev/null and b/public/media/demos/demo6.png differ diff --git a/public/media/demos/demo7.png b/public/media/demos/demo7.png new file mode 100644 index 0000000..4646d13 Binary files /dev/null and b/public/media/demos/demo7.png differ diff --git a/public/media/demos/demo8.png b/public/media/demos/demo8.png new file mode 100644 index 0000000..4f78656 Binary files /dev/null and b/public/media/demos/demo8.png differ diff --git a/public/media/demos/demo9.png b/public/media/demos/demo9.png new file mode 100644 index 0000000..6957cf1 Binary files /dev/null and b/public/media/demos/demo9.png differ diff --git a/public/media/email/icon-bullet.svg b/public/media/email/icon-bullet.svg new file mode 100644 index 0000000..5f233d8 --- /dev/null +++ b/public/media/email/icon-bullet.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/email/icon-dribbble.svg b/public/media/email/icon-dribbble.svg new file mode 100644 index 0000000..5cd6759 --- /dev/null +++ b/public/media/email/icon-dribbble.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/email/icon-facebook.svg b/public/media/email/icon-facebook.svg new file mode 100644 index 0000000..16af3e0 --- /dev/null +++ b/public/media/email/icon-facebook.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/media/email/icon-linkedin.svg b/public/media/email/icon-linkedin.svg new file mode 100644 index 0000000..55901a2 --- /dev/null +++ b/public/media/email/icon-linkedin.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/media/email/icon-polygon.svg b/public/media/email/icon-polygon.svg new file mode 100644 index 0000000..bba0b99 --- /dev/null +++ b/public/media/email/icon-polygon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/email/icon-positive-vote-1.svg b/public/media/email/icon-positive-vote-1.svg new file mode 100644 index 0000000..cfb36ab --- /dev/null +++ b/public/media/email/icon-positive-vote-1.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/email/icon-positive-vote-2.svg b/public/media/email/icon-positive-vote-2.svg new file mode 100644 index 0000000..5ccf96d --- /dev/null +++ b/public/media/email/icon-positive-vote-2.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/email/icon-positive-vote-3.svg b/public/media/email/icon-positive-vote-3.svg new file mode 100644 index 0000000..4df3548 --- /dev/null +++ b/public/media/email/icon-positive-vote-3.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/email/icon-positive-vote-4.svg b/public/media/email/icon-positive-vote-4.svg new file mode 100644 index 0000000..95c05b6 --- /dev/null +++ b/public/media/email/icon-positive-vote-4.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/email/icon-twitter.svg b/public/media/email/icon-twitter.svg new file mode 100644 index 0000000..c08c172 --- /dev/null +++ b/public/media/email/icon-twitter.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/media/email/img-1.png b/public/media/email/img-1.png new file mode 100644 index 0000000..18f9b47 Binary files /dev/null and b/public/media/email/img-1.png differ diff --git a/public/media/email/img-2.png b/public/media/email/img-2.png new file mode 100644 index 0000000..c56cd34 Binary files /dev/null and b/public/media/email/img-2.png differ diff --git a/public/media/email/img-3.jpg b/public/media/email/img-3.jpg new file mode 100644 index 0000000..c313339 Binary files /dev/null and b/public/media/email/img-3.jpg differ diff --git a/public/media/email/img-4.jpg b/public/media/email/img-4.jpg new file mode 100644 index 0000000..4f73c84 Binary files /dev/null and b/public/media/email/img-4.jpg differ diff --git a/public/media/email/img-5.jpg b/public/media/email/img-5.jpg new file mode 100644 index 0000000..8cb9841 Binary files /dev/null and b/public/media/email/img-5.jpg differ diff --git a/public/media/email/img-6.jpg b/public/media/email/img-6.jpg new file mode 100644 index 0000000..162b8cf Binary files /dev/null and b/public/media/email/img-6.jpg differ diff --git a/public/media/email/logo-1.svg b/public/media/email/logo-1.svg new file mode 100644 index 0000000..d2cacc5 --- /dev/null +++ b/public/media/email/logo-1.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/email/logo-2.svg b/public/media/email/logo-2.svg new file mode 100644 index 0000000..3e312a4 --- /dev/null +++ b/public/media/email/logo-2.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/afghanistan.svg b/public/media/flags/afghanistan.svg new file mode 100644 index 0000000..b3cb5bc --- /dev/null +++ b/public/media/flags/afghanistan.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/aland-islands.svg b/public/media/flags/aland-islands.svg new file mode 100644 index 0000000..71ae0d7 --- /dev/null +++ b/public/media/flags/aland-islands.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/albania.svg b/public/media/flags/albania.svg new file mode 100644 index 0000000..53b8683 --- /dev/null +++ b/public/media/flags/albania.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/algeria.svg b/public/media/flags/algeria.svg new file mode 100644 index 0000000..8692d52 --- /dev/null +++ b/public/media/flags/algeria.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/american-samoa.svg b/public/media/flags/american-samoa.svg new file mode 100644 index 0000000..da124ea --- /dev/null +++ b/public/media/flags/american-samoa.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/andorra.svg b/public/media/flags/andorra.svg new file mode 100644 index 0000000..448f90e --- /dev/null +++ b/public/media/flags/andorra.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/angola.svg b/public/media/flags/angola.svg new file mode 100644 index 0000000..734bbf1 --- /dev/null +++ b/public/media/flags/angola.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/anguilla.svg b/public/media/flags/anguilla.svg new file mode 100644 index 0000000..2255268 --- /dev/null +++ b/public/media/flags/anguilla.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/antigua-and-barbuda.svg b/public/media/flags/antigua-and-barbuda.svg new file mode 100644 index 0000000..b4c7c93 --- /dev/null +++ b/public/media/flags/antigua-and-barbuda.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/argentina.svg b/public/media/flags/argentina.svg new file mode 100644 index 0000000..0cd84ab --- /dev/null +++ b/public/media/flags/argentina.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/armenia.svg b/public/media/flags/armenia.svg new file mode 100644 index 0000000..67a5a53 --- /dev/null +++ b/public/media/flags/armenia.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/aruba.svg b/public/media/flags/aruba.svg new file mode 100644 index 0000000..4f53a45 --- /dev/null +++ b/public/media/flags/aruba.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/australia.svg b/public/media/flags/australia.svg new file mode 100644 index 0000000..8fb8c0a --- /dev/null +++ b/public/media/flags/australia.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/austria.svg b/public/media/flags/austria.svg new file mode 100644 index 0000000..0be23ae --- /dev/null +++ b/public/media/flags/austria.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/azerbaijan.svg b/public/media/flags/azerbaijan.svg new file mode 100644 index 0000000..fa12d8d --- /dev/null +++ b/public/media/flags/azerbaijan.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/azores-islands.svg b/public/media/flags/azores-islands.svg new file mode 100644 index 0000000..40b29de --- /dev/null +++ b/public/media/flags/azores-islands.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/bahamas.svg b/public/media/flags/bahamas.svg new file mode 100644 index 0000000..c84792d --- /dev/null +++ b/public/media/flags/bahamas.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/bahrain.svg b/public/media/flags/bahrain.svg new file mode 100644 index 0000000..374a7db --- /dev/null +++ b/public/media/flags/bahrain.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/balearic-islands.svg b/public/media/flags/balearic-islands.svg new file mode 100644 index 0000000..c134fbf --- /dev/null +++ b/public/media/flags/balearic-islands.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/bangladesh.svg b/public/media/flags/bangladesh.svg new file mode 100644 index 0000000..0c948a0 --- /dev/null +++ b/public/media/flags/bangladesh.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/barbados.svg b/public/media/flags/barbados.svg new file mode 100644 index 0000000..bc5d4c1 --- /dev/null +++ b/public/media/flags/barbados.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/basque-country.svg b/public/media/flags/basque-country.svg new file mode 100644 index 0000000..619592a --- /dev/null +++ b/public/media/flags/basque-country.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/belarus.svg b/public/media/flags/belarus.svg new file mode 100644 index 0000000..02d6a04 --- /dev/null +++ b/public/media/flags/belarus.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/belgium.svg b/public/media/flags/belgium.svg new file mode 100644 index 0000000..5359447 --- /dev/null +++ b/public/media/flags/belgium.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/belize.svg b/public/media/flags/belize.svg new file mode 100644 index 0000000..b89ae5f --- /dev/null +++ b/public/media/flags/belize.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/benin.svg b/public/media/flags/benin.svg new file mode 100644 index 0000000..7599965 --- /dev/null +++ b/public/media/flags/benin.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/bermuda.svg b/public/media/flags/bermuda.svg new file mode 100644 index 0000000..7be8ebd --- /dev/null +++ b/public/media/flags/bermuda.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/bhutan.svg b/public/media/flags/bhutan.svg new file mode 100644 index 0000000..31fdde0 --- /dev/null +++ b/public/media/flags/bhutan.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/bolivia.svg b/public/media/flags/bolivia.svg new file mode 100644 index 0000000..ee7868f --- /dev/null +++ b/public/media/flags/bolivia.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/bonaire.svg b/public/media/flags/bonaire.svg new file mode 100644 index 0000000..b7806da --- /dev/null +++ b/public/media/flags/bonaire.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/bosnia-and-herzegovina.svg b/public/media/flags/bosnia-and-herzegovina.svg new file mode 100644 index 0000000..28e70bc --- /dev/null +++ b/public/media/flags/bosnia-and-herzegovina.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/botswana.svg b/public/media/flags/botswana.svg new file mode 100644 index 0000000..69a6911 --- /dev/null +++ b/public/media/flags/botswana.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/brazil.svg b/public/media/flags/brazil.svg new file mode 100644 index 0000000..6d38a61 --- /dev/null +++ b/public/media/flags/brazil.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/british-columbia.svg b/public/media/flags/british-columbia.svg new file mode 100644 index 0000000..9793c4c --- /dev/null +++ b/public/media/flags/british-columbia.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/british-indian-ocean-territory.svg b/public/media/flags/british-indian-ocean-territory.svg new file mode 100644 index 0000000..6e1fcaf --- /dev/null +++ b/public/media/flags/british-indian-ocean-territory.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/british-virgin-islands.svg b/public/media/flags/british-virgin-islands.svg new file mode 100644 index 0000000..52174ad --- /dev/null +++ b/public/media/flags/british-virgin-islands.svg @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/brunei.svg b/public/media/flags/brunei.svg new file mode 100644 index 0000000..4cca334 --- /dev/null +++ b/public/media/flags/brunei.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/bulgaria.svg b/public/media/flags/bulgaria.svg new file mode 100644 index 0000000..60671ef --- /dev/null +++ b/public/media/flags/bulgaria.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/burkina-faso.svg b/public/media/flags/burkina-faso.svg new file mode 100644 index 0000000..694be06 --- /dev/null +++ b/public/media/flags/burkina-faso.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/burundi.svg b/public/media/flags/burundi.svg new file mode 100644 index 0000000..3ffb8c8 --- /dev/null +++ b/public/media/flags/burundi.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/cambodia.svg b/public/media/flags/cambodia.svg new file mode 100644 index 0000000..cbba946 --- /dev/null +++ b/public/media/flags/cambodia.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/cameroon.svg b/public/media/flags/cameroon.svg new file mode 100644 index 0000000..06a0179 --- /dev/null +++ b/public/media/flags/cameroon.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/canada.svg b/public/media/flags/canada.svg new file mode 100644 index 0000000..aa6531c --- /dev/null +++ b/public/media/flags/canada.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/canary-islands.svg b/public/media/flags/canary-islands.svg new file mode 100644 index 0000000..1b55832 --- /dev/null +++ b/public/media/flags/canary-islands.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/cape-verde.svg b/public/media/flags/cape-verde.svg new file mode 100644 index 0000000..71f38fa --- /dev/null +++ b/public/media/flags/cape-verde.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/cayman-islands.svg b/public/media/flags/cayman-islands.svg new file mode 100644 index 0000000..8756e61 --- /dev/null +++ b/public/media/flags/cayman-islands.svg @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/central-african-republic.svg b/public/media/flags/central-african-republic.svg new file mode 100644 index 0000000..00b434a --- /dev/null +++ b/public/media/flags/central-african-republic.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/ceuta.svg b/public/media/flags/ceuta.svg new file mode 100644 index 0000000..38998e1 --- /dev/null +++ b/public/media/flags/ceuta.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/chad.svg b/public/media/flags/chad.svg new file mode 100644 index 0000000..a1afd0d --- /dev/null +++ b/public/media/flags/chad.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/chile.svg b/public/media/flags/chile.svg new file mode 100644 index 0000000..bea60c7 --- /dev/null +++ b/public/media/flags/chile.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/china.svg b/public/media/flags/china.svg new file mode 100644 index 0000000..c4f7a0c --- /dev/null +++ b/public/media/flags/china.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/christmas-island.svg b/public/media/flags/christmas-island.svg new file mode 100644 index 0000000..0107ea6 --- /dev/null +++ b/public/media/flags/christmas-island.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/cocos-island.svg b/public/media/flags/cocos-island.svg new file mode 100644 index 0000000..5868744 --- /dev/null +++ b/public/media/flags/cocos-island.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/colombia.svg b/public/media/flags/colombia.svg new file mode 100644 index 0000000..3f67537 --- /dev/null +++ b/public/media/flags/colombia.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/comoros.svg b/public/media/flags/comoros.svg new file mode 100644 index 0000000..923141a --- /dev/null +++ b/public/media/flags/comoros.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/cook-islands.svg b/public/media/flags/cook-islands.svg new file mode 100644 index 0000000..671a871 --- /dev/null +++ b/public/media/flags/cook-islands.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/corsica.svg b/public/media/flags/corsica.svg new file mode 100644 index 0000000..528f6b1 --- /dev/null +++ b/public/media/flags/corsica.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/costa-rica.svg b/public/media/flags/costa-rica.svg new file mode 100644 index 0000000..596a10e --- /dev/null +++ b/public/media/flags/costa-rica.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/croatia.svg b/public/media/flags/croatia.svg new file mode 100644 index 0000000..b37f9ba --- /dev/null +++ b/public/media/flags/croatia.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/cuba.svg b/public/media/flags/cuba.svg new file mode 100644 index 0000000..b84b10e --- /dev/null +++ b/public/media/flags/cuba.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/curacao.svg b/public/media/flags/curacao.svg new file mode 100644 index 0000000..286b87d --- /dev/null +++ b/public/media/flags/curacao.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/czech-republic.svg b/public/media/flags/czech-republic.svg new file mode 100644 index 0000000..6e082b4 --- /dev/null +++ b/public/media/flags/czech-republic.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/democratic-republic-of-congo.svg b/public/media/flags/democratic-republic-of-congo.svg new file mode 100644 index 0000000..7fd9cc3 --- /dev/null +++ b/public/media/flags/democratic-republic-of-congo.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/denmark.svg b/public/media/flags/denmark.svg new file mode 100644 index 0000000..d2c9e7f --- /dev/null +++ b/public/media/flags/denmark.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/djibouti.svg b/public/media/flags/djibouti.svg new file mode 100644 index 0000000..852b206 --- /dev/null +++ b/public/media/flags/djibouti.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/dominica.svg b/public/media/flags/dominica.svg new file mode 100644 index 0000000..c1228c6 --- /dev/null +++ b/public/media/flags/dominica.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/dominican-republic.svg b/public/media/flags/dominican-republic.svg new file mode 100644 index 0000000..d96b67e --- /dev/null +++ b/public/media/flags/dominican-republic.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/east-timor.svg b/public/media/flags/east-timor.svg new file mode 100644 index 0000000..c6b2e2d --- /dev/null +++ b/public/media/flags/east-timor.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/ecuador.svg b/public/media/flags/ecuador.svg new file mode 100644 index 0000000..4978a74 --- /dev/null +++ b/public/media/flags/ecuador.svg @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/egypt.svg b/public/media/flags/egypt.svg new file mode 100644 index 0000000..065d536 --- /dev/null +++ b/public/media/flags/egypt.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/el-salvador.svg b/public/media/flags/el-salvador.svg new file mode 100644 index 0000000..b2de291 --- /dev/null +++ b/public/media/flags/el-salvador.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/england.svg b/public/media/flags/england.svg new file mode 100644 index 0000000..574257a --- /dev/null +++ b/public/media/flags/england.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/equatorial-guinea.svg b/public/media/flags/equatorial-guinea.svg new file mode 100644 index 0000000..3cb6f88 --- /dev/null +++ b/public/media/flags/equatorial-guinea.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/eritrea.svg b/public/media/flags/eritrea.svg new file mode 100644 index 0000000..0c737c0 --- /dev/null +++ b/public/media/flags/eritrea.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/estonia.svg b/public/media/flags/estonia.svg new file mode 100644 index 0000000..f44b53a --- /dev/null +++ b/public/media/flags/estonia.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/ethiopia.svg b/public/media/flags/ethiopia.svg new file mode 100644 index 0000000..8990365 --- /dev/null +++ b/public/media/flags/ethiopia.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/european-union.svg b/public/media/flags/european-union.svg new file mode 100644 index 0000000..76377e8 --- /dev/null +++ b/public/media/flags/european-union.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/falkland-islands.svg b/public/media/flags/falkland-islands.svg new file mode 100644 index 0000000..f5f0c22 --- /dev/null +++ b/public/media/flags/falkland-islands.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/fiji.svg b/public/media/flags/fiji.svg new file mode 100644 index 0000000..21b61b7 --- /dev/null +++ b/public/media/flags/fiji.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/finland.svg b/public/media/flags/finland.svg new file mode 100644 index 0000000..bae8824 --- /dev/null +++ b/public/media/flags/finland.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/flag.svg b/public/media/flags/flag.svg new file mode 100644 index 0000000..2f091d5 --- /dev/null +++ b/public/media/flags/flag.svg @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/france.svg b/public/media/flags/france.svg new file mode 100644 index 0000000..d271892 --- /dev/null +++ b/public/media/flags/france.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/french-polynesia.svg b/public/media/flags/french-polynesia.svg new file mode 100644 index 0000000..9eb56ae --- /dev/null +++ b/public/media/flags/french-polynesia.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/gabon.svg b/public/media/flags/gabon.svg new file mode 100644 index 0000000..e7590c7 --- /dev/null +++ b/public/media/flags/gabon.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/galapagos-islands.svg b/public/media/flags/galapagos-islands.svg new file mode 100644 index 0000000..5c9bb4a --- /dev/null +++ b/public/media/flags/galapagos-islands.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/gambia.svg b/public/media/flags/gambia.svg new file mode 100644 index 0000000..db309a4 --- /dev/null +++ b/public/media/flags/gambia.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/georgia.svg b/public/media/flags/georgia.svg new file mode 100644 index 0000000..19aeac1 --- /dev/null +++ b/public/media/flags/georgia.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/germany.svg b/public/media/flags/germany.svg new file mode 100644 index 0000000..4290c77 --- /dev/null +++ b/public/media/flags/germany.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/ghana.svg b/public/media/flags/ghana.svg new file mode 100644 index 0000000..3f83f4d --- /dev/null +++ b/public/media/flags/ghana.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/gibraltar.svg b/public/media/flags/gibraltar.svg new file mode 100644 index 0000000..d7c167e --- /dev/null +++ b/public/media/flags/gibraltar.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/greece.svg b/public/media/flags/greece.svg new file mode 100644 index 0000000..9632b6f --- /dev/null +++ b/public/media/flags/greece.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/greenland.svg b/public/media/flags/greenland.svg new file mode 100644 index 0000000..c2b7355 --- /dev/null +++ b/public/media/flags/greenland.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/grenada.svg b/public/media/flags/grenada.svg new file mode 100644 index 0000000..9ec3356 --- /dev/null +++ b/public/media/flags/grenada.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/guam.svg b/public/media/flags/guam.svg new file mode 100644 index 0000000..64bf9fd --- /dev/null +++ b/public/media/flags/guam.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/guatemala.svg b/public/media/flags/guatemala.svg new file mode 100644 index 0000000..4b4ff32 --- /dev/null +++ b/public/media/flags/guatemala.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/guernsey.svg b/public/media/flags/guernsey.svg new file mode 100644 index 0000000..250079e --- /dev/null +++ b/public/media/flags/guernsey.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/guinea-bissau.svg b/public/media/flags/guinea-bissau.svg new file mode 100644 index 0000000..03c737b --- /dev/null +++ b/public/media/flags/guinea-bissau.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/guinea.svg b/public/media/flags/guinea.svg new file mode 100644 index 0000000..309f35d --- /dev/null +++ b/public/media/flags/guinea.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/haiti.svg b/public/media/flags/haiti.svg new file mode 100644 index 0000000..fd0497d --- /dev/null +++ b/public/media/flags/haiti.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/hawaii.svg b/public/media/flags/hawaii.svg new file mode 100644 index 0000000..4955f12 --- /dev/null +++ b/public/media/flags/hawaii.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/honduras.svg b/public/media/flags/honduras.svg new file mode 100644 index 0000000..08d48d8 --- /dev/null +++ b/public/media/flags/honduras.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/hong-kong.svg b/public/media/flags/hong-kong.svg new file mode 100644 index 0000000..bc23f8a --- /dev/null +++ b/public/media/flags/hong-kong.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/hungary.svg b/public/media/flags/hungary.svg new file mode 100644 index 0000000..62a7816 --- /dev/null +++ b/public/media/flags/hungary.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/iceland.svg b/public/media/flags/iceland.svg new file mode 100644 index 0000000..93a5806 --- /dev/null +++ b/public/media/flags/iceland.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/india.svg b/public/media/flags/india.svg new file mode 100644 index 0000000..a35952d --- /dev/null +++ b/public/media/flags/india.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/indonesia.svg b/public/media/flags/indonesia.svg new file mode 100644 index 0000000..2f61500 --- /dev/null +++ b/public/media/flags/indonesia.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/iran.svg b/public/media/flags/iran.svg new file mode 100644 index 0000000..8f00529 --- /dev/null +++ b/public/media/flags/iran.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/iraq.svg b/public/media/flags/iraq.svg new file mode 100644 index 0000000..a78b6e9 --- /dev/null +++ b/public/media/flags/iraq.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/ireland.svg b/public/media/flags/ireland.svg new file mode 100644 index 0000000..c1f75ba --- /dev/null +++ b/public/media/flags/ireland.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/isle-of-man.svg b/public/media/flags/isle-of-man.svg new file mode 100644 index 0000000..9ff50f6 --- /dev/null +++ b/public/media/flags/isle-of-man.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/israel.svg b/public/media/flags/israel.svg new file mode 100644 index 0000000..0c1f226 --- /dev/null +++ b/public/media/flags/israel.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/italy.svg b/public/media/flags/italy.svg new file mode 100644 index 0000000..2c3a2e3 --- /dev/null +++ b/public/media/flags/italy.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/ivory-coast.svg b/public/media/flags/ivory-coast.svg new file mode 100644 index 0000000..eea20db --- /dev/null +++ b/public/media/flags/ivory-coast.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/jamaica.svg b/public/media/flags/jamaica.svg new file mode 100644 index 0000000..a709601 --- /dev/null +++ b/public/media/flags/jamaica.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/japan.svg b/public/media/flags/japan.svg new file mode 100644 index 0000000..7d0e0cb --- /dev/null +++ b/public/media/flags/japan.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/jersey.svg b/public/media/flags/jersey.svg new file mode 100644 index 0000000..04130bb --- /dev/null +++ b/public/media/flags/jersey.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/jordan.svg b/public/media/flags/jordan.svg new file mode 100644 index 0000000..d05aa3d --- /dev/null +++ b/public/media/flags/jordan.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/kazakhstan.svg b/public/media/flags/kazakhstan.svg new file mode 100644 index 0000000..40975f7 --- /dev/null +++ b/public/media/flags/kazakhstan.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/kenya.svg b/public/media/flags/kenya.svg new file mode 100644 index 0000000..12ef6bc --- /dev/null +++ b/public/media/flags/kenya.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/kiribati.svg b/public/media/flags/kiribati.svg new file mode 100644 index 0000000..700fa69 --- /dev/null +++ b/public/media/flags/kiribati.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/kosovo.svg b/public/media/flags/kosovo.svg new file mode 100644 index 0000000..7a9aea7 --- /dev/null +++ b/public/media/flags/kosovo.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/kuwait.svg b/public/media/flags/kuwait.svg new file mode 100644 index 0000000..5f9514f --- /dev/null +++ b/public/media/flags/kuwait.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/kyrgyzstan.svg b/public/media/flags/kyrgyzstan.svg new file mode 100644 index 0000000..646fd34 --- /dev/null +++ b/public/media/flags/kyrgyzstan.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/laos.svg b/public/media/flags/laos.svg new file mode 100644 index 0000000..d05646e --- /dev/null +++ b/public/media/flags/laos.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/latvia.svg b/public/media/flags/latvia.svg new file mode 100644 index 0000000..a2e0615 --- /dev/null +++ b/public/media/flags/latvia.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/lebanon.svg b/public/media/flags/lebanon.svg new file mode 100644 index 0000000..f41f74f --- /dev/null +++ b/public/media/flags/lebanon.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/lesotho.svg b/public/media/flags/lesotho.svg new file mode 100644 index 0000000..57f22a4 --- /dev/null +++ b/public/media/flags/lesotho.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/liberia.svg b/public/media/flags/liberia.svg new file mode 100644 index 0000000..b0f6ecb --- /dev/null +++ b/public/media/flags/liberia.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/libya.svg b/public/media/flags/libya.svg new file mode 100644 index 0000000..33e2c2f --- /dev/null +++ b/public/media/flags/libya.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/liechtenstein.svg b/public/media/flags/liechtenstein.svg new file mode 100644 index 0000000..b6075b9 --- /dev/null +++ b/public/media/flags/liechtenstein.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/lithuania.svg b/public/media/flags/lithuania.svg new file mode 100644 index 0000000..e2ae265 --- /dev/null +++ b/public/media/flags/lithuania.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/luxembourg.svg b/public/media/flags/luxembourg.svg new file mode 100644 index 0000000..c81d754 --- /dev/null +++ b/public/media/flags/luxembourg.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/macao.svg b/public/media/flags/macao.svg new file mode 100644 index 0000000..25cbedc --- /dev/null +++ b/public/media/flags/macao.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/madagascar.svg b/public/media/flags/madagascar.svg new file mode 100644 index 0000000..7b0360b --- /dev/null +++ b/public/media/flags/madagascar.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/madeira.svg b/public/media/flags/madeira.svg new file mode 100644 index 0000000..202611f --- /dev/null +++ b/public/media/flags/madeira.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/malawi.svg b/public/media/flags/malawi.svg new file mode 100644 index 0000000..dd13a37 --- /dev/null +++ b/public/media/flags/malawi.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/malaysia.svg b/public/media/flags/malaysia.svg new file mode 100644 index 0000000..d54136a --- /dev/null +++ b/public/media/flags/malaysia.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/maldives.svg b/public/media/flags/maldives.svg new file mode 100644 index 0000000..1459140 --- /dev/null +++ b/public/media/flags/maldives.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/mali.svg b/public/media/flags/mali.svg new file mode 100644 index 0000000..9059f81 --- /dev/null +++ b/public/media/flags/mali.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/malta.svg b/public/media/flags/malta.svg new file mode 100644 index 0000000..83bc352 --- /dev/null +++ b/public/media/flags/malta.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/marshall-island.svg b/public/media/flags/marshall-island.svg new file mode 100644 index 0000000..7e51ddc --- /dev/null +++ b/public/media/flags/marshall-island.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/martinique.svg b/public/media/flags/martinique.svg new file mode 100644 index 0000000..e80b49c --- /dev/null +++ b/public/media/flags/martinique.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/mauritania.svg b/public/media/flags/mauritania.svg new file mode 100644 index 0000000..f5dba04 --- /dev/null +++ b/public/media/flags/mauritania.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/mauritius.svg b/public/media/flags/mauritius.svg new file mode 100644 index 0000000..96a7abf --- /dev/null +++ b/public/media/flags/mauritius.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/melilla.svg b/public/media/flags/melilla.svg new file mode 100644 index 0000000..10b20a4 --- /dev/null +++ b/public/media/flags/melilla.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/mexico.svg b/public/media/flags/mexico.svg new file mode 100644 index 0000000..8f5d9b4 --- /dev/null +++ b/public/media/flags/mexico.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/micronesia.svg b/public/media/flags/micronesia.svg new file mode 100644 index 0000000..07f6f94 --- /dev/null +++ b/public/media/flags/micronesia.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/moldova.svg b/public/media/flags/moldova.svg new file mode 100644 index 0000000..5e403f3 --- /dev/null +++ b/public/media/flags/moldova.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/monaco.svg b/public/media/flags/monaco.svg new file mode 100644 index 0000000..565cf5f --- /dev/null +++ b/public/media/flags/monaco.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/mongolia.svg b/public/media/flags/mongolia.svg new file mode 100644 index 0000000..0037448 --- /dev/null +++ b/public/media/flags/mongolia.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/montenegro.svg b/public/media/flags/montenegro.svg new file mode 100644 index 0000000..bf10070 --- /dev/null +++ b/public/media/flags/montenegro.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/montserrat.svg b/public/media/flags/montserrat.svg new file mode 100644 index 0000000..cf1b3ec --- /dev/null +++ b/public/media/flags/montserrat.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/morocco.svg b/public/media/flags/morocco.svg new file mode 100644 index 0000000..5acea60 --- /dev/null +++ b/public/media/flags/morocco.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/mozambique.svg b/public/media/flags/mozambique.svg new file mode 100644 index 0000000..63f579e --- /dev/null +++ b/public/media/flags/mozambique.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/myanmar.svg b/public/media/flags/myanmar.svg new file mode 100644 index 0000000..6bcce7d --- /dev/null +++ b/public/media/flags/myanmar.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/namibia.svg b/public/media/flags/namibia.svg new file mode 100644 index 0000000..dd6fb2c --- /dev/null +++ b/public/media/flags/namibia.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/nato.svg b/public/media/flags/nato.svg new file mode 100644 index 0000000..f8603fe --- /dev/null +++ b/public/media/flags/nato.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/nauru.svg b/public/media/flags/nauru.svg new file mode 100644 index 0000000..e922d0e --- /dev/null +++ b/public/media/flags/nauru.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/nepal.svg b/public/media/flags/nepal.svg new file mode 100644 index 0000000..8009e9e --- /dev/null +++ b/public/media/flags/nepal.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/netherlands.svg b/public/media/flags/netherlands.svg new file mode 100644 index 0000000..2f71030 --- /dev/null +++ b/public/media/flags/netherlands.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/new-zealand.svg b/public/media/flags/new-zealand.svg new file mode 100644 index 0000000..cc0ee7f --- /dev/null +++ b/public/media/flags/new-zealand.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/nicaragua.svg b/public/media/flags/nicaragua.svg new file mode 100644 index 0000000..27b6cca --- /dev/null +++ b/public/media/flags/nicaragua.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/niger.svg b/public/media/flags/niger.svg new file mode 100644 index 0000000..60a73a2 --- /dev/null +++ b/public/media/flags/niger.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/nigeria.svg b/public/media/flags/nigeria.svg new file mode 100644 index 0000000..41da495 --- /dev/null +++ b/public/media/flags/nigeria.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/niue.svg b/public/media/flags/niue.svg new file mode 100644 index 0000000..0c3b6d0 --- /dev/null +++ b/public/media/flags/niue.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/norfolk-island.svg b/public/media/flags/norfolk-island.svg new file mode 100644 index 0000000..2082bdf --- /dev/null +++ b/public/media/flags/norfolk-island.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/north-korea.svg b/public/media/flags/north-korea.svg new file mode 100644 index 0000000..31d1463 --- /dev/null +++ b/public/media/flags/north-korea.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/northern-cyprus.svg b/public/media/flags/northern-cyprus.svg new file mode 100644 index 0000000..0587fe0 --- /dev/null +++ b/public/media/flags/northern-cyprus.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/northern-mariana-islands.svg b/public/media/flags/northern-mariana-islands.svg new file mode 100644 index 0000000..4029970 --- /dev/null +++ b/public/media/flags/northern-mariana-islands.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/norway.svg b/public/media/flags/norway.svg new file mode 100644 index 0000000..46ab6bf --- /dev/null +++ b/public/media/flags/norway.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/oman.svg b/public/media/flags/oman.svg new file mode 100644 index 0000000..5030fca --- /dev/null +++ b/public/media/flags/oman.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/ossetia.svg b/public/media/flags/ossetia.svg new file mode 100644 index 0000000..7d8cdd0 --- /dev/null +++ b/public/media/flags/ossetia.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/pakistan.svg b/public/media/flags/pakistan.svg new file mode 100644 index 0000000..f792bfe --- /dev/null +++ b/public/media/flags/pakistan.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/palau.svg b/public/media/flags/palau.svg new file mode 100644 index 0000000..19623a2 --- /dev/null +++ b/public/media/flags/palau.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/palestine.svg b/public/media/flags/palestine.svg new file mode 100644 index 0000000..0072a44 --- /dev/null +++ b/public/media/flags/palestine.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/panama.svg b/public/media/flags/panama.svg new file mode 100644 index 0000000..e89f18c --- /dev/null +++ b/public/media/flags/panama.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/papua-new-guinea.svg b/public/media/flags/papua-new-guinea.svg new file mode 100644 index 0000000..05a76f9 --- /dev/null +++ b/public/media/flags/papua-new-guinea.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/paraguay.svg b/public/media/flags/paraguay.svg new file mode 100644 index 0000000..8f2e962 --- /dev/null +++ b/public/media/flags/paraguay.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/peru.svg b/public/media/flags/peru.svg new file mode 100644 index 0000000..cd23022 --- /dev/null +++ b/public/media/flags/peru.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/philippines.svg b/public/media/flags/philippines.svg new file mode 100644 index 0000000..a6772d6 --- /dev/null +++ b/public/media/flags/philippines.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/pitcairn-islands.svg b/public/media/flags/pitcairn-islands.svg new file mode 100644 index 0000000..ccd508d --- /dev/null +++ b/public/media/flags/pitcairn-islands.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/poland.svg b/public/media/flags/poland.svg new file mode 100644 index 0000000..f4cd957 --- /dev/null +++ b/public/media/flags/poland.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/portugal.svg b/public/media/flags/portugal.svg new file mode 100644 index 0000000..91a14e6 --- /dev/null +++ b/public/media/flags/portugal.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/puerto-rico.svg b/public/media/flags/puerto-rico.svg new file mode 100644 index 0000000..6622b48 --- /dev/null +++ b/public/media/flags/puerto-rico.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/qatar.svg b/public/media/flags/qatar.svg new file mode 100644 index 0000000..718a769 --- /dev/null +++ b/public/media/flags/qatar.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/rapa-nui.svg b/public/media/flags/rapa-nui.svg new file mode 100644 index 0000000..0cb703e --- /dev/null +++ b/public/media/flags/rapa-nui.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/republic-of-macedonia.svg b/public/media/flags/republic-of-macedonia.svg new file mode 100644 index 0000000..5966f94 --- /dev/null +++ b/public/media/flags/republic-of-macedonia.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/republic-of-the-congo.svg b/public/media/flags/republic-of-the-congo.svg new file mode 100644 index 0000000..1d96ea7 --- /dev/null +++ b/public/media/flags/republic-of-the-congo.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/romania.svg b/public/media/flags/romania.svg new file mode 100644 index 0000000..f274915 --- /dev/null +++ b/public/media/flags/romania.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/russia.svg b/public/media/flags/russia.svg new file mode 100644 index 0000000..17299e2 --- /dev/null +++ b/public/media/flags/russia.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/rwanda.svg b/public/media/flags/rwanda.svg new file mode 100644 index 0000000..18810be --- /dev/null +++ b/public/media/flags/rwanda.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/saba-island.svg b/public/media/flags/saba-island.svg new file mode 100644 index 0000000..fbd7ffc --- /dev/null +++ b/public/media/flags/saba-island.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/sahrawi-arab-democratic-republic.svg b/public/media/flags/sahrawi-arab-democratic-republic.svg new file mode 100644 index 0000000..29e3d7f --- /dev/null +++ b/public/media/flags/sahrawi-arab-democratic-republic.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/saint-kitts-and-nevis.svg b/public/media/flags/saint-kitts-and-nevis.svg new file mode 100644 index 0000000..d503337 --- /dev/null +++ b/public/media/flags/saint-kitts-and-nevis.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/samoa.svg b/public/media/flags/samoa.svg new file mode 100644 index 0000000..1327d3f --- /dev/null +++ b/public/media/flags/samoa.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/san-marino.svg b/public/media/flags/san-marino.svg new file mode 100644 index 0000000..3334f79 --- /dev/null +++ b/public/media/flags/san-marino.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/sao-tome-and-prince.svg b/public/media/flags/sao-tome-and-prince.svg new file mode 100644 index 0000000..2be137a --- /dev/null +++ b/public/media/flags/sao-tome-and-prince.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/sardinia.svg b/public/media/flags/sardinia.svg new file mode 100644 index 0000000..9c122f5 --- /dev/null +++ b/public/media/flags/sardinia.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/saudi-arabia.svg b/public/media/flags/saudi-arabia.svg new file mode 100644 index 0000000..fffb816 --- /dev/null +++ b/public/media/flags/saudi-arabia.svg @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/scotland.svg b/public/media/flags/scotland.svg new file mode 100644 index 0000000..995b18b --- /dev/null +++ b/public/media/flags/scotland.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/senegal.svg b/public/media/flags/senegal.svg new file mode 100644 index 0000000..43aeda2 --- /dev/null +++ b/public/media/flags/senegal.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/serbia.svg b/public/media/flags/serbia.svg new file mode 100644 index 0000000..f2d47b2 --- /dev/null +++ b/public/media/flags/serbia.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/seychelles.svg b/public/media/flags/seychelles.svg new file mode 100644 index 0000000..9c48b97 --- /dev/null +++ b/public/media/flags/seychelles.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/sicily.svg b/public/media/flags/sicily.svg new file mode 100644 index 0000000..6b382a4 --- /dev/null +++ b/public/media/flags/sicily.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/sierra-leone.svg b/public/media/flags/sierra-leone.svg new file mode 100644 index 0000000..3ef894d --- /dev/null +++ b/public/media/flags/sierra-leone.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/singapore.svg b/public/media/flags/singapore.svg new file mode 100644 index 0000000..c1bbe0d --- /dev/null +++ b/public/media/flags/singapore.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/sint-eustatius.svg b/public/media/flags/sint-eustatius.svg new file mode 100644 index 0000000..317526e --- /dev/null +++ b/public/media/flags/sint-eustatius.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/sint-maarten.svg b/public/media/flags/sint-maarten.svg new file mode 100644 index 0000000..bf2c035 --- /dev/null +++ b/public/media/flags/sint-maarten.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/slovakia.svg b/public/media/flags/slovakia.svg new file mode 100644 index 0000000..8ca0933 --- /dev/null +++ b/public/media/flags/slovakia.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/slovenia.svg b/public/media/flags/slovenia.svg new file mode 100644 index 0000000..8b63232 --- /dev/null +++ b/public/media/flags/slovenia.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/solomon-islands.svg b/public/media/flags/solomon-islands.svg new file mode 100644 index 0000000..7203b62 --- /dev/null +++ b/public/media/flags/solomon-islands.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/somalia.svg b/public/media/flags/somalia.svg new file mode 100644 index 0000000..3b72d5c --- /dev/null +++ b/public/media/flags/somalia.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/somaliland.svg b/public/media/flags/somaliland.svg new file mode 100644 index 0000000..deb11fe --- /dev/null +++ b/public/media/flags/somaliland.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/south-africa.svg b/public/media/flags/south-africa.svg new file mode 100644 index 0000000..2e657ba --- /dev/null +++ b/public/media/flags/south-africa.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/south-korea.svg b/public/media/flags/south-korea.svg new file mode 100644 index 0000000..acd5c90 --- /dev/null +++ b/public/media/flags/south-korea.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/south-sudan.svg b/public/media/flags/south-sudan.svg new file mode 100644 index 0000000..ac0a21e --- /dev/null +++ b/public/media/flags/south-sudan.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/spain.svg b/public/media/flags/spain.svg new file mode 100644 index 0000000..5f67162 --- /dev/null +++ b/public/media/flags/spain.svg @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/sri-lanka.svg b/public/media/flags/sri-lanka.svg new file mode 100644 index 0000000..eaf58c3 --- /dev/null +++ b/public/media/flags/sri-lanka.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/st-barts.svg b/public/media/flags/st-barts.svg new file mode 100644 index 0000000..5205637 --- /dev/null +++ b/public/media/flags/st-barts.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/st-lucia.svg b/public/media/flags/st-lucia.svg new file mode 100644 index 0000000..3d32682 --- /dev/null +++ b/public/media/flags/st-lucia.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/st-vincent-and-the-grenadines.svg b/public/media/flags/st-vincent-and-the-grenadines.svg new file mode 100644 index 0000000..ffe6fee --- /dev/null +++ b/public/media/flags/st-vincent-and-the-grenadines.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/sudan.svg b/public/media/flags/sudan.svg new file mode 100644 index 0000000..6df8c2d --- /dev/null +++ b/public/media/flags/sudan.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/suriname.svg b/public/media/flags/suriname.svg new file mode 100644 index 0000000..16f6fa7 --- /dev/null +++ b/public/media/flags/suriname.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/swaziland.svg b/public/media/flags/swaziland.svg new file mode 100644 index 0000000..718aab5 --- /dev/null +++ b/public/media/flags/swaziland.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/sweden.svg b/public/media/flags/sweden.svg new file mode 100644 index 0000000..e27a5f7 --- /dev/null +++ b/public/media/flags/sweden.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/switzerland.svg b/public/media/flags/switzerland.svg new file mode 100644 index 0000000..61e4e81 --- /dev/null +++ b/public/media/flags/switzerland.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/syria.svg b/public/media/flags/syria.svg new file mode 100644 index 0000000..3e98f58 --- /dev/null +++ b/public/media/flags/syria.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/taiwan.svg b/public/media/flags/taiwan.svg new file mode 100644 index 0000000..d1f3671 --- /dev/null +++ b/public/media/flags/taiwan.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/tajikistan.svg b/public/media/flags/tajikistan.svg new file mode 100644 index 0000000..4c1f795 --- /dev/null +++ b/public/media/flags/tajikistan.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/tanzania.svg b/public/media/flags/tanzania.svg new file mode 100644 index 0000000..55f7129 --- /dev/null +++ b/public/media/flags/tanzania.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/thailand.svg b/public/media/flags/thailand.svg new file mode 100644 index 0000000..e5dae5c --- /dev/null +++ b/public/media/flags/thailand.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/tibet.svg b/public/media/flags/tibet.svg new file mode 100644 index 0000000..cc24bc2 --- /dev/null +++ b/public/media/flags/tibet.svg @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/togo.svg b/public/media/flags/togo.svg new file mode 100644 index 0000000..66100af --- /dev/null +++ b/public/media/flags/togo.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/tokelau.svg b/public/media/flags/tokelau.svg new file mode 100644 index 0000000..c48108d --- /dev/null +++ b/public/media/flags/tokelau.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/tonga.svg b/public/media/flags/tonga.svg new file mode 100644 index 0000000..7116131 --- /dev/null +++ b/public/media/flags/tonga.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/transnistria.svg b/public/media/flags/transnistria.svg new file mode 100644 index 0000000..e0439ab --- /dev/null +++ b/public/media/flags/transnistria.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/trinidad-and-tobago.svg b/public/media/flags/trinidad-and-tobago.svg new file mode 100644 index 0000000..72e026f --- /dev/null +++ b/public/media/flags/trinidad-and-tobago.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/tunisia.svg b/public/media/flags/tunisia.svg new file mode 100644 index 0000000..08e4379 --- /dev/null +++ b/public/media/flags/tunisia.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/turkey.svg b/public/media/flags/turkey.svg new file mode 100644 index 0000000..0a5cb9c --- /dev/null +++ b/public/media/flags/turkey.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/turkmenistan.svg b/public/media/flags/turkmenistan.svg new file mode 100644 index 0000000..c130cd7 --- /dev/null +++ b/public/media/flags/turkmenistan.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/turks-and-caicos.svg b/public/media/flags/turks-and-caicos.svg new file mode 100644 index 0000000..17bfea2 --- /dev/null +++ b/public/media/flags/turks-and-caicos.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/tuvalu-1.svg b/public/media/flags/tuvalu-1.svg new file mode 100644 index 0000000..d49cabb --- /dev/null +++ b/public/media/flags/tuvalu-1.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/tuvalu.svg b/public/media/flags/tuvalu.svg new file mode 100644 index 0000000..871d1de --- /dev/null +++ b/public/media/flags/tuvalu.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/uganda.svg b/public/media/flags/uganda.svg new file mode 100644 index 0000000..926bc9d --- /dev/null +++ b/public/media/flags/uganda.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/uk.svg b/public/media/flags/uk.svg new file mode 100644 index 0000000..383c9e8 --- /dev/null +++ b/public/media/flags/uk.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/ukraine.svg b/public/media/flags/ukraine.svg new file mode 100644 index 0000000..04b8a32 --- /dev/null +++ b/public/media/flags/ukraine.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/united-arab-emirates.svg b/public/media/flags/united-arab-emirates.svg new file mode 100644 index 0000000..c507b8f --- /dev/null +++ b/public/media/flags/united-arab-emirates.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/united-kingdom.svg b/public/media/flags/united-kingdom.svg new file mode 100644 index 0000000..bab1dbd --- /dev/null +++ b/public/media/flags/united-kingdom.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/united-nations.svg b/public/media/flags/united-nations.svg new file mode 100644 index 0000000..c4db01a --- /dev/null +++ b/public/media/flags/united-nations.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/united-states.svg b/public/media/flags/united-states.svg new file mode 100644 index 0000000..37ff08d --- /dev/null +++ b/public/media/flags/united-states.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/uruguay.svg b/public/media/flags/uruguay.svg new file mode 100644 index 0000000..9d5ea42 --- /dev/null +++ b/public/media/flags/uruguay.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/uzbekistan.svg b/public/media/flags/uzbekistan.svg new file mode 100644 index 0000000..265704a --- /dev/null +++ b/public/media/flags/uzbekistan.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/vanuatu.svg b/public/media/flags/vanuatu.svg new file mode 100644 index 0000000..fcbd354 --- /dev/null +++ b/public/media/flags/vanuatu.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/vatican-city.svg b/public/media/flags/vatican-city.svg new file mode 100644 index 0000000..62464e7 --- /dev/null +++ b/public/media/flags/vatican-city.svg @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/venezuela.svg b/public/media/flags/venezuela.svg new file mode 100644 index 0000000..e35b132 --- /dev/null +++ b/public/media/flags/venezuela.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/vietnam.svg b/public/media/flags/vietnam.svg new file mode 100644 index 0000000..08f02fb --- /dev/null +++ b/public/media/flags/vietnam.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/virgin-islands.svg b/public/media/flags/virgin-islands.svg new file mode 100644 index 0000000..bcb036f --- /dev/null +++ b/public/media/flags/virgin-islands.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/wales.svg b/public/media/flags/wales.svg new file mode 100644 index 0000000..3130bca --- /dev/null +++ b/public/media/flags/wales.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/yemen.svg b/public/media/flags/yemen.svg new file mode 100644 index 0000000..dbe7eb0 --- /dev/null +++ b/public/media/flags/yemen.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/zambia.svg b/public/media/flags/zambia.svg new file mode 100644 index 0000000..50a5fbc --- /dev/null +++ b/public/media/flags/zambia.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/flags/zimbabwe.svg b/public/media/flags/zimbabwe.svg new file mode 100644 index 0000000..cd3c0b3 --- /dev/null +++ b/public/media/flags/zimbabwe.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/framework-logos/Angular.png b/public/media/framework-logos/Angular.png new file mode 100644 index 0000000..c26ae4d Binary files /dev/null and b/public/media/framework-logos/Angular.png differ diff --git a/public/media/framework-logos/React.png b/public/media/framework-logos/React.png new file mode 100644 index 0000000..5544e61 Binary files /dev/null and b/public/media/framework-logos/React.png differ diff --git a/public/media/framework-logos/asp.net-core.png b/public/media/framework-logos/asp.net-core.png new file mode 100644 index 0000000..8e872c9 Binary files /dev/null and b/public/media/framework-logos/asp.net-core.png differ diff --git a/public/media/framework-logos/blazor.png b/public/media/framework-logos/blazor.png new file mode 100644 index 0000000..1411c78 Binary files /dev/null and b/public/media/framework-logos/blazor.png differ diff --git a/public/media/framework-logos/bootstrap.png b/public/media/framework-logos/bootstrap.png new file mode 100644 index 0000000..4266d4a Binary files /dev/null and b/public/media/framework-logos/bootstrap.png differ diff --git a/public/media/framework-logos/codeigniter.png b/public/media/framework-logos/codeigniter.png new file mode 100644 index 0000000..621a4c7 Binary files /dev/null and b/public/media/framework-logos/codeigniter.png differ diff --git a/public/media/framework-logos/django.png b/public/media/framework-logos/django.png new file mode 100644 index 0000000..c124bbc Binary files /dev/null and b/public/media/framework-logos/django.png differ diff --git a/public/media/framework-logos/flask.png b/public/media/framework-logos/flask.png new file mode 100644 index 0000000..004eb7e Binary files /dev/null and b/public/media/framework-logos/flask.png differ diff --git a/public/media/framework-logos/go.png b/public/media/framework-logos/go.png new file mode 100644 index 0000000..5e102d4 Binary files /dev/null and b/public/media/framework-logos/go.png differ diff --git a/public/media/framework-logos/html.png b/public/media/framework-logos/html.png new file mode 100644 index 0000000..851cb6c Binary files /dev/null and b/public/media/framework-logos/html.png differ diff --git a/public/media/framework-logos/inactive/angular.png b/public/media/framework-logos/inactive/angular.png new file mode 100644 index 0000000..960db96 Binary files /dev/null and b/public/media/framework-logos/inactive/angular.png differ diff --git a/public/media/framework-logos/inactive/asp.net-core.png b/public/media/framework-logos/inactive/asp.net-core.png new file mode 100644 index 0000000..cdd50d6 Binary files /dev/null and b/public/media/framework-logos/inactive/asp.net-core.png differ diff --git a/public/media/framework-logos/inactive/blazor.png b/public/media/framework-logos/inactive/blazor.png new file mode 100644 index 0000000..a0a7926 Binary files /dev/null and b/public/media/framework-logos/inactive/blazor.png differ diff --git a/public/media/framework-logos/inactive/bootstrap.png b/public/media/framework-logos/inactive/bootstrap.png new file mode 100644 index 0000000..6887e65 Binary files /dev/null and b/public/media/framework-logos/inactive/bootstrap.png differ diff --git a/public/media/framework-logos/inactive/codeigniter.png b/public/media/framework-logos/inactive/codeigniter.png new file mode 100644 index 0000000..fc369a8 Binary files /dev/null and b/public/media/framework-logos/inactive/codeigniter.png differ diff --git a/public/media/framework-logos/inactive/django.png b/public/media/framework-logos/inactive/django.png new file mode 100644 index 0000000..cb12390 Binary files /dev/null and b/public/media/framework-logos/inactive/django.png differ diff --git a/public/media/framework-logos/inactive/flask.png b/public/media/framework-logos/inactive/flask.png new file mode 100644 index 0000000..28dbe90 Binary files /dev/null and b/public/media/framework-logos/inactive/flask.png differ diff --git a/public/media/framework-logos/inactive/go.png b/public/media/framework-logos/inactive/go.png new file mode 100644 index 0000000..9e5bfb2 Binary files /dev/null and b/public/media/framework-logos/inactive/go.png differ diff --git a/public/media/framework-logos/inactive/html.png b/public/media/framework-logos/inactive/html.png new file mode 100644 index 0000000..18ae89e Binary files /dev/null and b/public/media/framework-logos/inactive/html.png differ diff --git a/public/media/framework-logos/inactive/laravel.png b/public/media/framework-logos/inactive/laravel.png new file mode 100644 index 0000000..0dcc9ea Binary files /dev/null and b/public/media/framework-logos/inactive/laravel.png differ diff --git a/public/media/framework-logos/inactive/nodejs.png b/public/media/framework-logos/inactive/nodejs.png new file mode 100644 index 0000000..65945bd Binary files /dev/null and b/public/media/framework-logos/inactive/nodejs.png differ diff --git a/public/media/framework-logos/inactive/play.png b/public/media/framework-logos/inactive/play.png new file mode 100644 index 0000000..113f067 Binary files /dev/null and b/public/media/framework-logos/inactive/play.png differ diff --git a/public/media/framework-logos/inactive/rails.png b/public/media/framework-logos/inactive/rails.png new file mode 100644 index 0000000..c5699ab Binary files /dev/null and b/public/media/framework-logos/inactive/rails.png differ diff --git a/public/media/framework-logos/inactive/react.png b/public/media/framework-logos/inactive/react.png new file mode 100644 index 0000000..06e2635 Binary files /dev/null and b/public/media/framework-logos/inactive/react.png differ diff --git a/public/media/framework-logos/inactive/spring.png b/public/media/framework-logos/inactive/spring.png new file mode 100644 index 0000000..3dae1ef Binary files /dev/null and b/public/media/framework-logos/inactive/spring.png differ diff --git a/public/media/framework-logos/inactive/symfony.png b/public/media/framework-logos/inactive/symfony.png new file mode 100644 index 0000000..c7f0d3e Binary files /dev/null and b/public/media/framework-logos/inactive/symfony.png differ diff --git a/public/media/framework-logos/inactive/vue.png b/public/media/framework-logos/inactive/vue.png new file mode 100644 index 0000000..f5ce331 Binary files /dev/null and b/public/media/framework-logos/inactive/vue.png differ diff --git a/public/media/framework-logos/inactive/yii.png b/public/media/framework-logos/inactive/yii.png new file mode 100644 index 0000000..7198365 Binary files /dev/null and b/public/media/framework-logos/inactive/yii.png differ diff --git a/public/media/framework-logos/laravel.png b/public/media/framework-logos/laravel.png new file mode 100644 index 0000000..ef0ebc7 Binary files /dev/null and b/public/media/framework-logos/laravel.png differ diff --git a/public/media/framework-logos/nodejs.png b/public/media/framework-logos/nodejs.png new file mode 100644 index 0000000..6750937 Binary files /dev/null and b/public/media/framework-logos/nodejs.png differ diff --git a/public/media/framework-logos/play.png b/public/media/framework-logos/play.png new file mode 100644 index 0000000..3061311 Binary files /dev/null and b/public/media/framework-logos/play.png differ diff --git a/public/media/framework-logos/rails.png b/public/media/framework-logos/rails.png new file mode 100644 index 0000000..49aa5bb Binary files /dev/null and b/public/media/framework-logos/rails.png differ diff --git a/public/media/framework-logos/spring.png b/public/media/framework-logos/spring.png new file mode 100644 index 0000000..1725055 Binary files /dev/null and b/public/media/framework-logos/spring.png differ diff --git a/public/media/framework-logos/symfony.png b/public/media/framework-logos/symfony.png new file mode 100644 index 0000000..b9904b4 Binary files /dev/null and b/public/media/framework-logos/symfony.png differ diff --git a/public/media/framework-logos/vue.png b/public/media/framework-logos/vue.png new file mode 100644 index 0000000..67752df Binary files /dev/null and b/public/media/framework-logos/vue.png differ diff --git a/public/media/framework-logos/yii.png b/public/media/framework-logos/yii.png new file mode 100644 index 0000000..e0d8500 Binary files /dev/null and b/public/media/framework-logos/yii.png differ diff --git a/public/media/icons/duotune/abstract/abs001.svg b/public/media/icons/duotune/abstract/abs001.svg new file mode 100644 index 0000000..d07fb26 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs001.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/abstract/abs002.svg b/public/media/icons/duotune/abstract/abs002.svg new file mode 100644 index 0000000..faa68c5 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs002.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/abstract/abs003.svg b/public/media/icons/duotune/abstract/abs003.svg new file mode 100644 index 0000000..7e5853c --- /dev/null +++ b/public/media/icons/duotune/abstract/abs003.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/abstract/abs004.svg b/public/media/icons/duotune/abstract/abs004.svg new file mode 100644 index 0000000..062af93 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs004.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/abstract/abs005.svg b/public/media/icons/duotune/abstract/abs005.svg new file mode 100644 index 0000000..684404c --- /dev/null +++ b/public/media/icons/duotune/abstract/abs005.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/abstract/abs006.svg b/public/media/icons/duotune/abstract/abs006.svg new file mode 100644 index 0000000..6302c6c --- /dev/null +++ b/public/media/icons/duotune/abstract/abs006.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/abstract/abs007.svg b/public/media/icons/duotune/abstract/abs007.svg new file mode 100644 index 0000000..a306715 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs007.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/abstract/abs008.svg b/public/media/icons/duotune/abstract/abs008.svg new file mode 100644 index 0000000..698851e --- /dev/null +++ b/public/media/icons/duotune/abstract/abs008.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/abstract/abs009.svg b/public/media/icons/duotune/abstract/abs009.svg new file mode 100644 index 0000000..1444570 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs009.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/abstract/abs010.svg b/public/media/icons/duotune/abstract/abs010.svg new file mode 100644 index 0000000..a2b9db3 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs010.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/abstract/abs011.svg b/public/media/icons/duotune/abstract/abs011.svg new file mode 100644 index 0000000..fa84f36 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs011.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs012.svg b/public/media/icons/duotune/abstract/abs012.svg new file mode 100644 index 0000000..c9ad38c --- /dev/null +++ b/public/media/icons/duotune/abstract/abs012.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs013.svg b/public/media/icons/duotune/abstract/abs013.svg new file mode 100644 index 0000000..346f9fa --- /dev/null +++ b/public/media/icons/duotune/abstract/abs013.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs014.svg b/public/media/icons/duotune/abstract/abs014.svg new file mode 100644 index 0000000..0b1973d --- /dev/null +++ b/public/media/icons/duotune/abstract/abs014.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs015.svg b/public/media/icons/duotune/abstract/abs015.svg new file mode 100644 index 0000000..66224ef --- /dev/null +++ b/public/media/icons/duotune/abstract/abs015.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs016.svg b/public/media/icons/duotune/abstract/abs016.svg new file mode 100644 index 0000000..f438443 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs016.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs017.svg b/public/media/icons/duotune/abstract/abs017.svg new file mode 100644 index 0000000..3e999af --- /dev/null +++ b/public/media/icons/duotune/abstract/abs017.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs018.svg b/public/media/icons/duotune/abstract/abs018.svg new file mode 100644 index 0000000..496665a --- /dev/null +++ b/public/media/icons/duotune/abstract/abs018.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs019.svg b/public/media/icons/duotune/abstract/abs019.svg new file mode 100644 index 0000000..50aad67 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs019.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs020.svg b/public/media/icons/duotune/abstract/abs020.svg new file mode 100644 index 0000000..b51e1a8 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs020.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs021.svg b/public/media/icons/duotune/abstract/abs021.svg new file mode 100644 index 0000000..e2185b6 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs021.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs022.svg b/public/media/icons/duotune/abstract/abs022.svg new file mode 100644 index 0000000..2782b88 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs022.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs023.svg b/public/media/icons/duotune/abstract/abs023.svg new file mode 100644 index 0000000..884a59e --- /dev/null +++ b/public/media/icons/duotune/abstract/abs023.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs024.svg b/public/media/icons/duotune/abstract/abs024.svg new file mode 100644 index 0000000..8ccc893 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs024.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs025.svg b/public/media/icons/duotune/abstract/abs025.svg new file mode 100644 index 0000000..e47f85a --- /dev/null +++ b/public/media/icons/duotune/abstract/abs025.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs026.svg b/public/media/icons/duotune/abstract/abs026.svg new file mode 100644 index 0000000..157013d --- /dev/null +++ b/public/media/icons/duotune/abstract/abs026.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs027.svg b/public/media/icons/duotune/abstract/abs027.svg new file mode 100644 index 0000000..522389f --- /dev/null +++ b/public/media/icons/duotune/abstract/abs027.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs028.svg b/public/media/icons/duotune/abstract/abs028.svg new file mode 100644 index 0000000..dfc2108 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs028.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs029.svg b/public/media/icons/duotune/abstract/abs029.svg new file mode 100644 index 0000000..758d738 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs029.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs030.svg b/public/media/icons/duotune/abstract/abs030.svg new file mode 100644 index 0000000..82dce13 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs030.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs031.svg b/public/media/icons/duotune/abstract/abs031.svg new file mode 100644 index 0000000..3bd2d96 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs031.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs032.svg b/public/media/icons/duotune/abstract/abs032.svg new file mode 100644 index 0000000..0e0580c --- /dev/null +++ b/public/media/icons/duotune/abstract/abs032.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs033.svg b/public/media/icons/duotune/abstract/abs033.svg new file mode 100644 index 0000000..7bd98fd --- /dev/null +++ b/public/media/icons/duotune/abstract/abs033.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs034.svg b/public/media/icons/duotune/abstract/abs034.svg new file mode 100644 index 0000000..a1c5f4f --- /dev/null +++ b/public/media/icons/duotune/abstract/abs034.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs035.svg b/public/media/icons/duotune/abstract/abs035.svg new file mode 100644 index 0000000..2b6c4e9 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs035.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs036.svg b/public/media/icons/duotune/abstract/abs036.svg new file mode 100644 index 0000000..22469f7 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs036.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs037.svg b/public/media/icons/duotune/abstract/abs037.svg new file mode 100644 index 0000000..a8be87d --- /dev/null +++ b/public/media/icons/duotune/abstract/abs037.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs038.svg b/public/media/icons/duotune/abstract/abs038.svg new file mode 100644 index 0000000..52570a2 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs038.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs039.svg b/public/media/icons/duotune/abstract/abs039.svg new file mode 100644 index 0000000..c07b30c --- /dev/null +++ b/public/media/icons/duotune/abstract/abs039.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs040.svg b/public/media/icons/duotune/abstract/abs040.svg new file mode 100644 index 0000000..e950a1f --- /dev/null +++ b/public/media/icons/duotune/abstract/abs040.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs041.svg b/public/media/icons/duotune/abstract/abs041.svg new file mode 100644 index 0000000..3a44aa2 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs041.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs042.svg b/public/media/icons/duotune/abstract/abs042.svg new file mode 100644 index 0000000..def0269 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs042.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs043.svg b/public/media/icons/duotune/abstract/abs043.svg new file mode 100644 index 0000000..44a6fa5 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs043.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs044.svg b/public/media/icons/duotune/abstract/abs044.svg new file mode 100644 index 0000000..545f57c --- /dev/null +++ b/public/media/icons/duotune/abstract/abs044.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs045.svg b/public/media/icons/duotune/abstract/abs045.svg new file mode 100644 index 0000000..0ee39cc --- /dev/null +++ b/public/media/icons/duotune/abstract/abs045.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs046.svg b/public/media/icons/duotune/abstract/abs046.svg new file mode 100644 index 0000000..3dc345d --- /dev/null +++ b/public/media/icons/duotune/abstract/abs046.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs047.svg b/public/media/icons/duotune/abstract/abs047.svg new file mode 100644 index 0000000..d7c0da8 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs047.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs048.svg b/public/media/icons/duotune/abstract/abs048.svg new file mode 100644 index 0000000..c936977 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs048.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs049.svg b/public/media/icons/duotune/abstract/abs049.svg new file mode 100644 index 0000000..95b1f93 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs049.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/abstract/abs050.svg b/public/media/icons/duotune/abstract/abs050.svg new file mode 100644 index 0000000..316587b --- /dev/null +++ b/public/media/icons/duotune/abstract/abs050.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/public/media/icons/duotune/abstract/abs051.svg b/public/media/icons/duotune/abstract/abs051.svg new file mode 100644 index 0000000..9b97741 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs051.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/public/media/icons/duotune/abstract/abs052.svg b/public/media/icons/duotune/abstract/abs052.svg new file mode 100644 index 0000000..88a84f4 --- /dev/null +++ b/public/media/icons/duotune/abstract/abs052.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/public/media/icons/duotune/arrows/arr001.svg b/public/media/icons/duotune/arrows/arr001.svg new file mode 100644 index 0000000..501854a --- /dev/null +++ b/public/media/icons/duotune/arrows/arr001.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr002.svg b/public/media/icons/duotune/arrows/arr002.svg new file mode 100644 index 0000000..22d45a9 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr002.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr003.svg b/public/media/icons/duotune/arrows/arr003.svg new file mode 100644 index 0000000..7dba9cb --- /dev/null +++ b/public/media/icons/duotune/arrows/arr003.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr004.svg b/public/media/icons/duotune/arrows/arr004.svg new file mode 100644 index 0000000..6a2a028 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr004.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr005.svg b/public/media/icons/duotune/arrows/arr005.svg new file mode 100644 index 0000000..b42170e --- /dev/null +++ b/public/media/icons/duotune/arrows/arr005.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr006.svg b/public/media/icons/duotune/arrows/arr006.svg new file mode 100644 index 0000000..1d4bb29 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr007.svg b/public/media/icons/duotune/arrows/arr007.svg new file mode 100644 index 0000000..aca43fc --- /dev/null +++ b/public/media/icons/duotune/arrows/arr007.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr008.svg b/public/media/icons/duotune/arrows/arr008.svg new file mode 100644 index 0000000..5ef20b1 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr008.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr009.svg b/public/media/icons/duotune/arrows/arr009.svg new file mode 100644 index 0000000..0392332 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr010.svg b/public/media/icons/duotune/arrows/arr010.svg new file mode 100644 index 0000000..6b9ab35 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr010.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr011.svg b/public/media/icons/duotune/arrows/arr011.svg new file mode 100644 index 0000000..140d6a0 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr011.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr012.svg b/public/media/icons/duotune/arrows/arr012.svg new file mode 100644 index 0000000..6d386f3 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr012.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr013.svg b/public/media/icons/duotune/arrows/arr013.svg new file mode 100644 index 0000000..d5a5e1b --- /dev/null +++ b/public/media/icons/duotune/arrows/arr013.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr014.svg b/public/media/icons/duotune/arrows/arr014.svg new file mode 100644 index 0000000..95ebb41 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr014.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr015.svg b/public/media/icons/duotune/arrows/arr015.svg new file mode 100644 index 0000000..07332c6 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr015.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr016.svg b/public/media/icons/duotune/arrows/arr016.svg new file mode 100644 index 0000000..5cec85c --- /dev/null +++ b/public/media/icons/duotune/arrows/arr016.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr017.svg b/public/media/icons/duotune/arrows/arr017.svg new file mode 100644 index 0000000..058a723 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr017.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr018.svg b/public/media/icons/duotune/arrows/arr018.svg new file mode 100644 index 0000000..47c2d72 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr018.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr019.svg b/public/media/icons/duotune/arrows/arr019.svg new file mode 100644 index 0000000..3cfa6ff --- /dev/null +++ b/public/media/icons/duotune/arrows/arr019.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr020.svg b/public/media/icons/duotune/arrows/arr020.svg new file mode 100644 index 0000000..ae466aa --- /dev/null +++ b/public/media/icons/duotune/arrows/arr020.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr021.svg b/public/media/icons/duotune/arrows/arr021.svg new file mode 100644 index 0000000..688a552 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr021.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr022.svg b/public/media/icons/duotune/arrows/arr022.svg new file mode 100644 index 0000000..258463b --- /dev/null +++ b/public/media/icons/duotune/arrows/arr022.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr023.svg b/public/media/icons/duotune/arrows/arr023.svg new file mode 100644 index 0000000..12a622d --- /dev/null +++ b/public/media/icons/duotune/arrows/arr023.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr024.svg b/public/media/icons/duotune/arrows/arr024.svg new file mode 100644 index 0000000..8daf378 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr024.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr025.svg b/public/media/icons/duotune/arrows/arr025.svg new file mode 100644 index 0000000..bedb8dd --- /dev/null +++ b/public/media/icons/duotune/arrows/arr025.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr026.svg b/public/media/icons/duotune/arrows/arr026.svg new file mode 100644 index 0000000..ae58f69 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr026.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr027.svg b/public/media/icons/duotune/arrows/arr027.svg new file mode 100644 index 0000000..a748ff7 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr027.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr028.svg b/public/media/icons/duotune/arrows/arr028.svg new file mode 100644 index 0000000..88eba35 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr028.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr029.svg b/public/media/icons/duotune/arrows/arr029.svg new file mode 100644 index 0000000..687c2fa --- /dev/null +++ b/public/media/icons/duotune/arrows/arr029.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr030.svg b/public/media/icons/duotune/arrows/arr030.svg new file mode 100644 index 0000000..eae1869 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr030.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr031.svg b/public/media/icons/duotune/arrows/arr031.svg new file mode 100644 index 0000000..12208cf --- /dev/null +++ b/public/media/icons/duotune/arrows/arr031.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr032.svg b/public/media/icons/duotune/arrows/arr032.svg new file mode 100644 index 0000000..1cf662d --- /dev/null +++ b/public/media/icons/duotune/arrows/arr032.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr033.svg b/public/media/icons/duotune/arrows/arr033.svg new file mode 100644 index 0000000..ab2d44e --- /dev/null +++ b/public/media/icons/duotune/arrows/arr033.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr034.svg b/public/media/icons/duotune/arrows/arr034.svg new file mode 100644 index 0000000..ab2d44e --- /dev/null +++ b/public/media/icons/duotune/arrows/arr034.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr035.svg b/public/media/icons/duotune/arrows/arr035.svg new file mode 100644 index 0000000..920cea3 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr035.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr036.svg b/public/media/icons/duotune/arrows/arr036.svg new file mode 100644 index 0000000..9d18d57 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr036.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/arrows/arr037.svg b/public/media/icons/duotune/arrows/arr037.svg new file mode 100644 index 0000000..2b72c6b --- /dev/null +++ b/public/media/icons/duotune/arrows/arr037.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr038.svg b/public/media/icons/duotune/arrows/arr038.svg new file mode 100644 index 0000000..fc74731 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr038.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr039.svg b/public/media/icons/duotune/arrows/arr039.svg new file mode 100644 index 0000000..e632a4b --- /dev/null +++ b/public/media/icons/duotune/arrows/arr039.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr040.svg b/public/media/icons/duotune/arrows/arr040.svg new file mode 100644 index 0000000..17d45b0 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr040.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr041.svg b/public/media/icons/duotune/arrows/arr041.svg new file mode 100644 index 0000000..8dd0125 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr041.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr042.svg b/public/media/icons/duotune/arrows/arr042.svg new file mode 100644 index 0000000..6e8abb5 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr042.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr043.svg b/public/media/icons/duotune/arrows/arr043.svg new file mode 100644 index 0000000..e70f5ec --- /dev/null +++ b/public/media/icons/duotune/arrows/arr043.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/arrows/arr044.svg b/public/media/icons/duotune/arrows/arr044.svg new file mode 100644 index 0000000..27cd814 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr044.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr045.svg b/public/media/icons/duotune/arrows/arr045.svg new file mode 100644 index 0000000..b4517dd --- /dev/null +++ b/public/media/icons/duotune/arrows/arr045.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr046.svg b/public/media/icons/duotune/arrows/arr046.svg new file mode 100644 index 0000000..5f69e30 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr046.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr047.svg b/public/media/icons/duotune/arrows/arr047.svg new file mode 100644 index 0000000..943a8cf --- /dev/null +++ b/public/media/icons/duotune/arrows/arr047.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr048.svg b/public/media/icons/duotune/arrows/arr048.svg new file mode 100644 index 0000000..a464e68 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr048.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr049.svg b/public/media/icons/duotune/arrows/arr049.svg new file mode 100644 index 0000000..09116d3 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr049.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr050.svg b/public/media/icons/duotune/arrows/arr050.svg new file mode 100644 index 0000000..703d523 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr050.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr051.svg b/public/media/icons/duotune/arrows/arr051.svg new file mode 100644 index 0000000..af348d1 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr051.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr052.svg b/public/media/icons/duotune/arrows/arr052.svg new file mode 100644 index 0000000..3038407 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr052.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr053.svg b/public/media/icons/duotune/arrows/arr053.svg new file mode 100644 index 0000000..6aa401e --- /dev/null +++ b/public/media/icons/duotune/arrows/arr053.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr054.svg b/public/media/icons/duotune/arrows/arr054.svg new file mode 100644 index 0000000..784d865 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr054.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr055.svg b/public/media/icons/duotune/arrows/arr055.svg new file mode 100644 index 0000000..2c25ea9 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr055.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr056.svg b/public/media/icons/duotune/arrows/arr056.svg new file mode 100644 index 0000000..b50bb68 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr056.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr057.svg b/public/media/icons/duotune/arrows/arr057.svg new file mode 100644 index 0000000..da4afe4 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr057.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr058.svg b/public/media/icons/duotune/arrows/arr058.svg new file mode 100644 index 0000000..1fe059b --- /dev/null +++ b/public/media/icons/duotune/arrows/arr058.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr059.svg b/public/media/icons/duotune/arrows/arr059.svg new file mode 100644 index 0000000..f55ebdb --- /dev/null +++ b/public/media/icons/duotune/arrows/arr059.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr060.svg b/public/media/icons/duotune/arrows/arr060.svg new file mode 100644 index 0000000..58ad717 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr060.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/arrows/arr061.svg b/public/media/icons/duotune/arrows/arr061.svg new file mode 100644 index 0000000..a000fbf --- /dev/null +++ b/public/media/icons/duotune/arrows/arr061.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/arrows/arr062.svg b/public/media/icons/duotune/arrows/arr062.svg new file mode 100644 index 0000000..9e000ca --- /dev/null +++ b/public/media/icons/duotune/arrows/arr062.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr063.svg b/public/media/icons/duotune/arrows/arr063.svg new file mode 100644 index 0000000..dcedf4f --- /dev/null +++ b/public/media/icons/duotune/arrows/arr063.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr064.svg b/public/media/icons/duotune/arrows/arr064.svg new file mode 100644 index 0000000..123f766 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr064.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr065.svg b/public/media/icons/duotune/arrows/arr065.svg new file mode 100644 index 0000000..e27a5bb --- /dev/null +++ b/public/media/icons/duotune/arrows/arr065.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr066.svg b/public/media/icons/duotune/arrows/arr066.svg new file mode 100644 index 0000000..fc638fb --- /dev/null +++ b/public/media/icons/duotune/arrows/arr066.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr067.svg b/public/media/icons/duotune/arrows/arr067.svg new file mode 100644 index 0000000..9e000ca --- /dev/null +++ b/public/media/icons/duotune/arrows/arr067.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr068.svg b/public/media/icons/duotune/arrows/arr068.svg new file mode 100644 index 0000000..fcd367a --- /dev/null +++ b/public/media/icons/duotune/arrows/arr068.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr069.svg b/public/media/icons/duotune/arrows/arr069.svg new file mode 100644 index 0000000..759598c --- /dev/null +++ b/public/media/icons/duotune/arrows/arr069.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/arrows/arr070.svg b/public/media/icons/duotune/arrows/arr070.svg new file mode 100644 index 0000000..6a4d3c2 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr070.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/arrows/arr071.svg b/public/media/icons/duotune/arrows/arr071.svg new file mode 100644 index 0000000..6049c4c --- /dev/null +++ b/public/media/icons/duotune/arrows/arr071.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr072.svg b/public/media/icons/duotune/arrows/arr072.svg new file mode 100644 index 0000000..ea50d09 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr072.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr073.svg b/public/media/icons/duotune/arrows/arr073.svg new file mode 100644 index 0000000..7e3b3ac --- /dev/null +++ b/public/media/icons/duotune/arrows/arr073.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr074.svg b/public/media/icons/duotune/arrows/arr074.svg new file mode 100644 index 0000000..9a7e28a --- /dev/null +++ b/public/media/icons/duotune/arrows/arr074.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr075.svg b/public/media/icons/duotune/arrows/arr075.svg new file mode 100644 index 0000000..5192f4c --- /dev/null +++ b/public/media/icons/duotune/arrows/arr075.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/public/media/icons/duotune/arrows/arr076.svg b/public/media/icons/duotune/arrows/arr076.svg new file mode 100644 index 0000000..b651630 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr076.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/arrows/arr077.svg b/public/media/icons/duotune/arrows/arr077.svg new file mode 100644 index 0000000..1efca21 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr077.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/arrows/arr078.svg b/public/media/icons/duotune/arrows/arr078.svg new file mode 100644 index 0000000..7fb31fc --- /dev/null +++ b/public/media/icons/duotune/arrows/arr078.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/arrows/arr079.svg b/public/media/icons/duotune/arrows/arr079.svg new file mode 100644 index 0000000..5d8c30e --- /dev/null +++ b/public/media/icons/duotune/arrows/arr079.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr080.svg b/public/media/icons/duotune/arrows/arr080.svg new file mode 100644 index 0000000..ae40cf3 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr080.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr081.svg b/public/media/icons/duotune/arrows/arr081.svg new file mode 100644 index 0000000..1b9dad8 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr081.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr082.svg b/public/media/icons/duotune/arrows/arr082.svg new file mode 100644 index 0000000..71e69f5 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr082.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr084.svg b/public/media/icons/duotune/arrows/arr084.svg new file mode 100644 index 0000000..11cba99 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr084.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr085.svg b/public/media/icons/duotune/arrows/arr085.svg new file mode 100644 index 0000000..943e4d9 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr085.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr086.svg b/public/media/icons/duotune/arrows/arr086.svg new file mode 100644 index 0000000..d5b64ed --- /dev/null +++ b/public/media/icons/duotune/arrows/arr086.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/arrows/arr087.svg b/public/media/icons/duotune/arrows/arr087.svg new file mode 100644 index 0000000..49c6c32 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr087.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/public/media/icons/duotune/arrows/arr088.svg b/public/media/icons/duotune/arrows/arr088.svg new file mode 100644 index 0000000..62c0f95 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr088.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/public/media/icons/duotune/arrows/arr089.svg b/public/media/icons/duotune/arrows/arr089.svg new file mode 100644 index 0000000..8c2b557 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr089.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/arrows/arr090.svg b/public/media/icons/duotune/arrows/arr090.svg new file mode 100644 index 0000000..cc6ce4d --- /dev/null +++ b/public/media/icons/duotune/arrows/arr090.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/public/media/icons/duotune/arrows/arr091.svg b/public/media/icons/duotune/arrows/arr091.svg new file mode 100644 index 0000000..74a2c2f --- /dev/null +++ b/public/media/icons/duotune/arrows/arr091.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/arrows/arr092.svg b/public/media/icons/duotune/arrows/arr092.svg new file mode 100644 index 0000000..023c73d --- /dev/null +++ b/public/media/icons/duotune/arrows/arr092.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/arrows/arr093.svg b/public/media/icons/duotune/arrows/arr093.svg new file mode 100644 index 0000000..763af7a --- /dev/null +++ b/public/media/icons/duotune/arrows/arr093.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr094.svg b/public/media/icons/duotune/arrows/arr094.svg new file mode 100644 index 0000000..2ad369e --- /dev/null +++ b/public/media/icons/duotune/arrows/arr094.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/arrows/arr095.svg b/public/media/icons/duotune/arrows/arr095.svg new file mode 100644 index 0000000..cb56ec8 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr095.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/arrows/arr096.svg b/public/media/icons/duotune/arrows/arr096.svg new file mode 100644 index 0000000..2772556 --- /dev/null +++ b/public/media/icons/duotune/arrows/arr096.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/art/art001.svg b/public/media/icons/duotune/art/art001.svg new file mode 100644 index 0000000..d2bd099 --- /dev/null +++ b/public/media/icons/duotune/art/art001.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/art/art002.svg b/public/media/icons/duotune/art/art002.svg new file mode 100644 index 0000000..11cf2fc --- /dev/null +++ b/public/media/icons/duotune/art/art002.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/art/art003.svg b/public/media/icons/duotune/art/art003.svg new file mode 100644 index 0000000..7015753 --- /dev/null +++ b/public/media/icons/duotune/art/art003.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/art/art004.svg b/public/media/icons/duotune/art/art004.svg new file mode 100644 index 0000000..b9578b5 --- /dev/null +++ b/public/media/icons/duotune/art/art004.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/art/art005.svg b/public/media/icons/duotune/art/art005.svg new file mode 100644 index 0000000..10a27a6 --- /dev/null +++ b/public/media/icons/duotune/art/art005.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/art/art006.svg b/public/media/icons/duotune/art/art006.svg new file mode 100644 index 0000000..4483dfd --- /dev/null +++ b/public/media/icons/duotune/art/art006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/art/art007.svg b/public/media/icons/duotune/art/art007.svg new file mode 100644 index 0000000..4e1472c --- /dev/null +++ b/public/media/icons/duotune/art/art007.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/art/art008.svg b/public/media/icons/duotune/art/art008.svg new file mode 100644 index 0000000..0022b96 --- /dev/null +++ b/public/media/icons/duotune/art/art008.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/art/art009.svg b/public/media/icons/duotune/art/art009.svg new file mode 100644 index 0000000..25a1cbf --- /dev/null +++ b/public/media/icons/duotune/art/art009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/art/art010.svg b/public/media/icons/duotune/art/art010.svg new file mode 100644 index 0000000..d56eefb --- /dev/null +++ b/public/media/icons/duotune/art/art010.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/coding/cod001.svg b/public/media/icons/duotune/coding/cod001.svg new file mode 100644 index 0000000..d526903 --- /dev/null +++ b/public/media/icons/duotune/coding/cod001.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/coding/cod002.svg b/public/media/icons/duotune/coding/cod002.svg new file mode 100644 index 0000000..6092957 --- /dev/null +++ b/public/media/icons/duotune/coding/cod002.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/coding/cod003.svg b/public/media/icons/duotune/coding/cod003.svg new file mode 100644 index 0000000..cf65a00 --- /dev/null +++ b/public/media/icons/duotune/coding/cod003.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/coding/cod004.svg b/public/media/icons/duotune/coding/cod004.svg new file mode 100644 index 0000000..9336e84 --- /dev/null +++ b/public/media/icons/duotune/coding/cod004.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/coding/cod005.svg b/public/media/icons/duotune/coding/cod005.svg new file mode 100644 index 0000000..0a313de --- /dev/null +++ b/public/media/icons/duotune/coding/cod005.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/coding/cod006.svg b/public/media/icons/duotune/coding/cod006.svg new file mode 100644 index 0000000..7b0b3be --- /dev/null +++ b/public/media/icons/duotune/coding/cod006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/coding/cod007.svg b/public/media/icons/duotune/coding/cod007.svg new file mode 100644 index 0000000..2612ab6 --- /dev/null +++ b/public/media/icons/duotune/coding/cod007.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/coding/cod008.svg b/public/media/icons/duotune/coding/cod008.svg new file mode 100644 index 0000000..a590968 --- /dev/null +++ b/public/media/icons/duotune/coding/cod008.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/coding/cod009.svg b/public/media/icons/duotune/coding/cod009.svg new file mode 100644 index 0000000..0236f51 --- /dev/null +++ b/public/media/icons/duotune/coding/cod009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/coding/cod010.svg b/public/media/icons/duotune/coding/cod010.svg new file mode 100644 index 0000000..232e2fb --- /dev/null +++ b/public/media/icons/duotune/coding/cod010.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/communication/com001.svg b/public/media/icons/duotune/communication/com001.svg new file mode 100644 index 0000000..0cd9ef3 --- /dev/null +++ b/public/media/icons/duotune/communication/com001.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/communication/com002.svg b/public/media/icons/duotune/communication/com002.svg new file mode 100644 index 0000000..6c831a7 --- /dev/null +++ b/public/media/icons/duotune/communication/com002.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/communication/com003.svg b/public/media/icons/duotune/communication/com003.svg new file mode 100644 index 0000000..585a829 --- /dev/null +++ b/public/media/icons/duotune/communication/com003.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/communication/com004.svg b/public/media/icons/duotune/communication/com004.svg new file mode 100644 index 0000000..8a72f42 --- /dev/null +++ b/public/media/icons/duotune/communication/com004.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/communication/com005.svg b/public/media/icons/duotune/communication/com005.svg new file mode 100644 index 0000000..0dedd7f --- /dev/null +++ b/public/media/icons/duotune/communication/com005.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/communication/com006.svg b/public/media/icons/duotune/communication/com006.svg new file mode 100644 index 0000000..4e5996b --- /dev/null +++ b/public/media/icons/duotune/communication/com006.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/communication/com007.svg b/public/media/icons/duotune/communication/com007.svg new file mode 100644 index 0000000..b791672 --- /dev/null +++ b/public/media/icons/duotune/communication/com007.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/communication/com008.svg b/public/media/icons/duotune/communication/com008.svg new file mode 100644 index 0000000..a9edb0f --- /dev/null +++ b/public/media/icons/duotune/communication/com008.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/communication/com009.svg b/public/media/icons/duotune/communication/com009.svg new file mode 100644 index 0000000..7e9d375 --- /dev/null +++ b/public/media/icons/duotune/communication/com009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/communication/com010.svg b/public/media/icons/duotune/communication/com010.svg new file mode 100644 index 0000000..a3adcd1 --- /dev/null +++ b/public/media/icons/duotune/communication/com010.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/communication/com011.svg b/public/media/icons/duotune/communication/com011.svg new file mode 100644 index 0000000..b875575 --- /dev/null +++ b/public/media/icons/duotune/communication/com011.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/communication/com012.svg b/public/media/icons/duotune/communication/com012.svg new file mode 100644 index 0000000..ef3f22a --- /dev/null +++ b/public/media/icons/duotune/communication/com012.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/communication/com013.svg b/public/media/icons/duotune/communication/com013.svg new file mode 100644 index 0000000..0c67416 --- /dev/null +++ b/public/media/icons/duotune/communication/com013.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/communication/com014.svg b/public/media/icons/duotune/communication/com014.svg new file mode 100644 index 0000000..89ae5ab --- /dev/null +++ b/public/media/icons/duotune/communication/com014.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/ecommerce/ecm001.svg b/public/media/icons/duotune/ecommerce/ecm001.svg new file mode 100644 index 0000000..fbab6ce --- /dev/null +++ b/public/media/icons/duotune/ecommerce/ecm001.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/ecommerce/ecm002.svg b/public/media/icons/duotune/ecommerce/ecm002.svg new file mode 100644 index 0000000..2ea833c --- /dev/null +++ b/public/media/icons/duotune/ecommerce/ecm002.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/ecommerce/ecm003.svg b/public/media/icons/duotune/ecommerce/ecm003.svg new file mode 100644 index 0000000..ef48892 --- /dev/null +++ b/public/media/icons/duotune/ecommerce/ecm003.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/ecommerce/ecm004.svg b/public/media/icons/duotune/ecommerce/ecm004.svg new file mode 100644 index 0000000..724f192 --- /dev/null +++ b/public/media/icons/duotune/ecommerce/ecm004.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/icons/duotune/ecommerce/ecm005.svg b/public/media/icons/duotune/ecommerce/ecm005.svg new file mode 100644 index 0000000..6fe446d --- /dev/null +++ b/public/media/icons/duotune/ecommerce/ecm005.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/ecommerce/ecm006.svg b/public/media/icons/duotune/ecommerce/ecm006.svg new file mode 100644 index 0000000..ff58f32 --- /dev/null +++ b/public/media/icons/duotune/ecommerce/ecm006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/ecommerce/ecm007.svg b/public/media/icons/duotune/ecommerce/ecm007.svg new file mode 100644 index 0000000..d2003e7 --- /dev/null +++ b/public/media/icons/duotune/ecommerce/ecm007.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/ecommerce/ecm008.svg b/public/media/icons/duotune/ecommerce/ecm008.svg new file mode 100644 index 0000000..a10444e --- /dev/null +++ b/public/media/icons/duotune/ecommerce/ecm008.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/ecommerce/ecm009.svg b/public/media/icons/duotune/ecommerce/ecm009.svg new file mode 100644 index 0000000..e17fefd --- /dev/null +++ b/public/media/icons/duotune/ecommerce/ecm009.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/icons/duotune/ecommerce/ecm010.svg b/public/media/icons/duotune/ecommerce/ecm010.svg new file mode 100644 index 0000000..d8dd510 --- /dev/null +++ b/public/media/icons/duotune/ecommerce/ecm010.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/ecommerce/ecm011.svg b/public/media/icons/duotune/ecommerce/ecm011.svg new file mode 100644 index 0000000..87094c4 --- /dev/null +++ b/public/media/icons/duotune/ecommerce/ecm011.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/electronics/elc001.svg b/public/media/icons/duotune/electronics/elc001.svg new file mode 100644 index 0000000..3040cb1 --- /dev/null +++ b/public/media/icons/duotune/electronics/elc001.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/electronics/elc002.svg b/public/media/icons/duotune/electronics/elc002.svg new file mode 100644 index 0000000..bdda3ee --- /dev/null +++ b/public/media/icons/duotune/electronics/elc002.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/electronics/elc003.svg b/public/media/icons/duotune/electronics/elc003.svg new file mode 100644 index 0000000..9633543 --- /dev/null +++ b/public/media/icons/duotune/electronics/elc003.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/electronics/elc004.svg b/public/media/icons/duotune/electronics/elc004.svg new file mode 100644 index 0000000..83db17b --- /dev/null +++ b/public/media/icons/duotune/electronics/elc004.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/electronics/elc005.svg b/public/media/icons/duotune/electronics/elc005.svg new file mode 100644 index 0000000..1b51174 --- /dev/null +++ b/public/media/icons/duotune/electronics/elc005.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/electronics/elc006.svg b/public/media/icons/duotune/electronics/elc006.svg new file mode 100644 index 0000000..94b4230 --- /dev/null +++ b/public/media/icons/duotune/electronics/elc006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/electronics/elc007.svg b/public/media/icons/duotune/electronics/elc007.svg new file mode 100644 index 0000000..2c214d7 --- /dev/null +++ b/public/media/icons/duotune/electronics/elc007.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/electronics/elc008.svg b/public/media/icons/duotune/electronics/elc008.svg new file mode 100644 index 0000000..91c7d54 --- /dev/null +++ b/public/media/icons/duotune/electronics/elc008.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/electronics/elc009.svg b/public/media/icons/duotune/electronics/elc009.svg new file mode 100644 index 0000000..c1505d6 --- /dev/null +++ b/public/media/icons/duotune/electronics/elc009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/electronics/elc010.svg b/public/media/icons/duotune/electronics/elc010.svg new file mode 100644 index 0000000..204d086 --- /dev/null +++ b/public/media/icons/duotune/electronics/elc010.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/files/fil001.svg b/public/media/icons/duotune/files/fil001.svg new file mode 100644 index 0000000..ea62c30 --- /dev/null +++ b/public/media/icons/duotune/files/fil001.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/files/fil002.svg b/public/media/icons/duotune/files/fil002.svg new file mode 100644 index 0000000..dfd07ff --- /dev/null +++ b/public/media/icons/duotune/files/fil002.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/files/fil003.svg b/public/media/icons/duotune/files/fil003.svg new file mode 100644 index 0000000..1875aa3 --- /dev/null +++ b/public/media/icons/duotune/files/fil003.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/files/fil004.svg b/public/media/icons/duotune/files/fil004.svg new file mode 100644 index 0000000..c05308c --- /dev/null +++ b/public/media/icons/duotune/files/fil004.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/files/fil005.svg b/public/media/icons/duotune/files/fil005.svg new file mode 100644 index 0000000..ec78ae4 --- /dev/null +++ b/public/media/icons/duotune/files/fil005.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/files/fil006.svg b/public/media/icons/duotune/files/fil006.svg new file mode 100644 index 0000000..46415b0 --- /dev/null +++ b/public/media/icons/duotune/files/fil006.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/files/fil007.svg b/public/media/icons/duotune/files/fil007.svg new file mode 100644 index 0000000..da82208 --- /dev/null +++ b/public/media/icons/duotune/files/fil007.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/files/fil008.svg b/public/media/icons/duotune/files/fil008.svg new file mode 100644 index 0000000..68daff3 --- /dev/null +++ b/public/media/icons/duotune/files/fil008.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/files/fil009.svg b/public/media/icons/duotune/files/fil009.svg new file mode 100644 index 0000000..f63e0b6 --- /dev/null +++ b/public/media/icons/duotune/files/fil009.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/files/fil010.svg b/public/media/icons/duotune/files/fil010.svg new file mode 100644 index 0000000..f63e0b6 --- /dev/null +++ b/public/media/icons/duotune/files/fil010.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/files/fil011.svg b/public/media/icons/duotune/files/fil011.svg new file mode 100644 index 0000000..b51d362 --- /dev/null +++ b/public/media/icons/duotune/files/fil011.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/media/icons/duotune/files/fil012.svg b/public/media/icons/duotune/files/fil012.svg new file mode 100644 index 0000000..0a42a19 --- /dev/null +++ b/public/media/icons/duotune/files/fil012.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/files/fil013.svg b/public/media/icons/duotune/files/fil013.svg new file mode 100644 index 0000000..255184f --- /dev/null +++ b/public/media/icons/duotune/files/fil013.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/files/fil014.svg b/public/media/icons/duotune/files/fil014.svg new file mode 100644 index 0000000..b54f87f --- /dev/null +++ b/public/media/icons/duotune/files/fil014.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/files/fil015.svg b/public/media/icons/duotune/files/fil015.svg new file mode 100644 index 0000000..f90c463 --- /dev/null +++ b/public/media/icons/duotune/files/fil015.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/files/fil016.svg b/public/media/icons/duotune/files/fil016.svg new file mode 100644 index 0000000..4fa3e81 --- /dev/null +++ b/public/media/icons/duotune/files/fil016.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/files/fil017.svg b/public/media/icons/duotune/files/fil017.svg new file mode 100644 index 0000000..ef2d036 --- /dev/null +++ b/public/media/icons/duotune/files/fil017.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/files/fil018.svg b/public/media/icons/duotune/files/fil018.svg new file mode 100644 index 0000000..097113f --- /dev/null +++ b/public/media/icons/duotune/files/fil018.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/files/fil019.svg b/public/media/icons/duotune/files/fil019.svg new file mode 100644 index 0000000..748042c --- /dev/null +++ b/public/media/icons/duotune/files/fil019.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/files/fil020.svg b/public/media/icons/duotune/files/fil020.svg new file mode 100644 index 0000000..2e2b3da --- /dev/null +++ b/public/media/icons/duotune/files/fil020.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/files/fil021.svg b/public/media/icons/duotune/files/fil021.svg new file mode 100644 index 0000000..05cb1af --- /dev/null +++ b/public/media/icons/duotune/files/fil021.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/files/fil022.svg b/public/media/icons/duotune/files/fil022.svg new file mode 100644 index 0000000..830364e --- /dev/null +++ b/public/media/icons/duotune/files/fil022.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/files/fil023.svg b/public/media/icons/duotune/files/fil023.svg new file mode 100644 index 0000000..5441494 --- /dev/null +++ b/public/media/icons/duotune/files/fil023.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/files/fil024.svg b/public/media/icons/duotune/files/fil024.svg new file mode 100644 index 0000000..3d0f8d1 --- /dev/null +++ b/public/media/icons/duotune/files/fil024.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/files/fil025.svg b/public/media/icons/duotune/files/fil025.svg new file mode 100644 index 0000000..f8d33e9 --- /dev/null +++ b/public/media/icons/duotune/files/fil025.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/finance/fin001.svg b/public/media/icons/duotune/finance/fin001.svg new file mode 100644 index 0000000..8fb7d35 --- /dev/null +++ b/public/media/icons/duotune/finance/fin001.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/finance/fin002.svg b/public/media/icons/duotune/finance/fin002.svg new file mode 100644 index 0000000..5752be1 --- /dev/null +++ b/public/media/icons/duotune/finance/fin002.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/finance/fin003.svg b/public/media/icons/duotune/finance/fin003.svg new file mode 100644 index 0000000..81e94ab --- /dev/null +++ b/public/media/icons/duotune/finance/fin003.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/finance/fin004.svg b/public/media/icons/duotune/finance/fin004.svg new file mode 100644 index 0000000..42c2ae1 --- /dev/null +++ b/public/media/icons/duotune/finance/fin004.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/finance/fin005.svg b/public/media/icons/duotune/finance/fin005.svg new file mode 100644 index 0000000..7048b7d --- /dev/null +++ b/public/media/icons/duotune/finance/fin005.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/finance/fin006.svg b/public/media/icons/duotune/finance/fin006.svg new file mode 100644 index 0000000..ae23cd1 --- /dev/null +++ b/public/media/icons/duotune/finance/fin006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/finance/fin007.svg b/public/media/icons/duotune/finance/fin007.svg new file mode 100644 index 0000000..211b130 --- /dev/null +++ b/public/media/icons/duotune/finance/fin007.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/finance/fin008.svg b/public/media/icons/duotune/finance/fin008.svg new file mode 100644 index 0000000..ded8e84 --- /dev/null +++ b/public/media/icons/duotune/finance/fin008.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/finance/fin009.svg b/public/media/icons/duotune/finance/fin009.svg new file mode 100644 index 0000000..5742ecb --- /dev/null +++ b/public/media/icons/duotune/finance/fin009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/finance/fin010.svg b/public/media/icons/duotune/finance/fin010.svg new file mode 100644 index 0000000..b0db9a6 --- /dev/null +++ b/public/media/icons/duotune/finance/fin010.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen001.svg b/public/media/icons/duotune/general/gen001.svg new file mode 100644 index 0000000..2d574a4 --- /dev/null +++ b/public/media/icons/duotune/general/gen001.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/general/gen002.svg b/public/media/icons/duotune/general/gen002.svg new file mode 100644 index 0000000..416538e --- /dev/null +++ b/public/media/icons/duotune/general/gen002.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen003.svg b/public/media/icons/duotune/general/gen003.svg new file mode 100644 index 0000000..ef44d14 --- /dev/null +++ b/public/media/icons/duotune/general/gen003.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/general/gen004.svg b/public/media/icons/duotune/general/gen004.svg new file mode 100644 index 0000000..38547ca --- /dev/null +++ b/public/media/icons/duotune/general/gen004.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen005.svg b/public/media/icons/duotune/general/gen005.svg new file mode 100644 index 0000000..dc1d1b6 --- /dev/null +++ b/public/media/icons/duotune/general/gen005.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/media/icons/duotune/general/gen006.svg b/public/media/icons/duotune/general/gen006.svg new file mode 100644 index 0000000..4b3d7c5 --- /dev/null +++ b/public/media/icons/duotune/general/gen006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen007.svg b/public/media/icons/duotune/general/gen007.svg new file mode 100644 index 0000000..bafae05 --- /dev/null +++ b/public/media/icons/duotune/general/gen007.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen008.svg b/public/media/icons/duotune/general/gen008.svg new file mode 100644 index 0000000..18379fa --- /dev/null +++ b/public/media/icons/duotune/general/gen008.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/general/gen009.svg b/public/media/icons/duotune/general/gen009.svg new file mode 100644 index 0000000..456905b --- /dev/null +++ b/public/media/icons/duotune/general/gen009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen010.svg b/public/media/icons/duotune/general/gen010.svg new file mode 100644 index 0000000..9271ee2 --- /dev/null +++ b/public/media/icons/duotune/general/gen010.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen011.svg b/public/media/icons/duotune/general/gen011.svg new file mode 100644 index 0000000..1901878 --- /dev/null +++ b/public/media/icons/duotune/general/gen011.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen012.svg b/public/media/icons/duotune/general/gen012.svg new file mode 100644 index 0000000..03eb271 --- /dev/null +++ b/public/media/icons/duotune/general/gen012.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen013.svg b/public/media/icons/duotune/general/gen013.svg new file mode 100644 index 0000000..76e2084 --- /dev/null +++ b/public/media/icons/duotune/general/gen013.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen014.svg b/public/media/icons/duotune/general/gen014.svg new file mode 100644 index 0000000..02f877c --- /dev/null +++ b/public/media/icons/duotune/general/gen014.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen015.svg b/public/media/icons/duotune/general/gen015.svg new file mode 100644 index 0000000..b134c8a --- /dev/null +++ b/public/media/icons/duotune/general/gen015.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen016.svg b/public/media/icons/duotune/general/gen016.svg new file mode 100644 index 0000000..5fbc848 --- /dev/null +++ b/public/media/icons/duotune/general/gen016.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen017.svg b/public/media/icons/duotune/general/gen017.svg new file mode 100644 index 0000000..fe4adb2 --- /dev/null +++ b/public/media/icons/duotune/general/gen017.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen018.svg b/public/media/icons/duotune/general/gen018.svg new file mode 100644 index 0000000..8814be4 --- /dev/null +++ b/public/media/icons/duotune/general/gen018.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen019.svg b/public/media/icons/duotune/general/gen019.svg new file mode 100644 index 0000000..ed0c762 --- /dev/null +++ b/public/media/icons/duotune/general/gen019.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen020.svg b/public/media/icons/duotune/general/gen020.svg new file mode 100644 index 0000000..679034b --- /dev/null +++ b/public/media/icons/duotune/general/gen020.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen021.svg b/public/media/icons/duotune/general/gen021.svg new file mode 100644 index 0000000..f31329f --- /dev/null +++ b/public/media/icons/duotune/general/gen021.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen022.svg b/public/media/icons/duotune/general/gen022.svg new file mode 100644 index 0000000..2021669 --- /dev/null +++ b/public/media/icons/duotune/general/gen022.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/general/gen023.svg b/public/media/icons/duotune/general/gen023.svg new file mode 100644 index 0000000..6e9ef81 --- /dev/null +++ b/public/media/icons/duotune/general/gen023.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/general/gen024.svg b/public/media/icons/duotune/general/gen024.svg new file mode 100644 index 0000000..d652e0f --- /dev/null +++ b/public/media/icons/duotune/general/gen024.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/public/media/icons/duotune/general/gen025.svg b/public/media/icons/duotune/general/gen025.svg new file mode 100644 index 0000000..8827f5e --- /dev/null +++ b/public/media/icons/duotune/general/gen025.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/general/gen026.svg b/public/media/icons/duotune/general/gen026.svg new file mode 100644 index 0000000..61cf899 --- /dev/null +++ b/public/media/icons/duotune/general/gen026.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/public/media/icons/duotune/general/gen027.svg b/public/media/icons/duotune/general/gen027.svg new file mode 100644 index 0000000..352e6f0 --- /dev/null +++ b/public/media/icons/duotune/general/gen027.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen028.svg b/public/media/icons/duotune/general/gen028.svg new file mode 100644 index 0000000..09e9bff --- /dev/null +++ b/public/media/icons/duotune/general/gen028.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen029.svg b/public/media/icons/duotune/general/gen029.svg new file mode 100644 index 0000000..966663a --- /dev/null +++ b/public/media/icons/duotune/general/gen029.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/general/gen030.svg b/public/media/icons/duotune/general/gen030.svg new file mode 100644 index 0000000..22a6f01 --- /dev/null +++ b/public/media/icons/duotune/general/gen030.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/general/gen031.svg b/public/media/icons/duotune/general/gen031.svg new file mode 100644 index 0000000..bf92d55 --- /dev/null +++ b/public/media/icons/duotune/general/gen031.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/general/gen032.svg b/public/media/icons/duotune/general/gen032.svg new file mode 100644 index 0000000..6a4d3c2 --- /dev/null +++ b/public/media/icons/duotune/general/gen032.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/general/gen033.svg b/public/media/icons/duotune/general/gen033.svg new file mode 100644 index 0000000..5e5aa39 --- /dev/null +++ b/public/media/icons/duotune/general/gen033.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/general/gen034.svg b/public/media/icons/duotune/general/gen034.svg new file mode 100644 index 0000000..ce81d7c --- /dev/null +++ b/public/media/icons/duotune/general/gen034.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen035.svg b/public/media/icons/duotune/general/gen035.svg new file mode 100644 index 0000000..75765ee --- /dev/null +++ b/public/media/icons/duotune/general/gen035.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen036.svg b/public/media/icons/duotune/general/gen036.svg new file mode 100644 index 0000000..91487e8 --- /dev/null +++ b/public/media/icons/duotune/general/gen036.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen037.svg b/public/media/icons/duotune/general/gen037.svg new file mode 100644 index 0000000..d5c7eb1 --- /dev/null +++ b/public/media/icons/duotune/general/gen037.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen038.svg b/public/media/icons/duotune/general/gen038.svg new file mode 100644 index 0000000..96899a8 --- /dev/null +++ b/public/media/icons/duotune/general/gen038.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/general/gen039.svg b/public/media/icons/duotune/general/gen039.svg new file mode 100644 index 0000000..7069e81 --- /dev/null +++ b/public/media/icons/duotune/general/gen039.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/general/gen040.svg b/public/media/icons/duotune/general/gen040.svg new file mode 100644 index 0000000..6c7861e --- /dev/null +++ b/public/media/icons/duotune/general/gen040.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen041.svg b/public/media/icons/duotune/general/gen041.svg new file mode 100644 index 0000000..78c7dc4 --- /dev/null +++ b/public/media/icons/duotune/general/gen041.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen042.svg b/public/media/icons/duotune/general/gen042.svg new file mode 100644 index 0000000..be66cfc --- /dev/null +++ b/public/media/icons/duotune/general/gen042.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen043.svg b/public/media/icons/duotune/general/gen043.svg new file mode 100644 index 0000000..f210aa5 --- /dev/null +++ b/public/media/icons/duotune/general/gen043.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen044.svg b/public/media/icons/duotune/general/gen044.svg new file mode 100644 index 0000000..ca3caa0 --- /dev/null +++ b/public/media/icons/duotune/general/gen044.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen045.svg b/public/media/icons/duotune/general/gen045.svg new file mode 100644 index 0000000..3e68ebd --- /dev/null +++ b/public/media/icons/duotune/general/gen045.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen046.svg b/public/media/icons/duotune/general/gen046.svg new file mode 100644 index 0000000..e1e8fe0 --- /dev/null +++ b/public/media/icons/duotune/general/gen046.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen047.svg b/public/media/icons/duotune/general/gen047.svg new file mode 100644 index 0000000..918f339 --- /dev/null +++ b/public/media/icons/duotune/general/gen047.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen048.svg b/public/media/icons/duotune/general/gen048.svg new file mode 100644 index 0000000..61661e0 --- /dev/null +++ b/public/media/icons/duotune/general/gen048.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen049.svg b/public/media/icons/duotune/general/gen049.svg new file mode 100644 index 0000000..7f913c2 --- /dev/null +++ b/public/media/icons/duotune/general/gen049.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen050.svg b/public/media/icons/duotune/general/gen050.svg new file mode 100644 index 0000000..a1cd906 --- /dev/null +++ b/public/media/icons/duotune/general/gen050.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen051.svg b/public/media/icons/duotune/general/gen051.svg new file mode 100644 index 0000000..67adf32 --- /dev/null +++ b/public/media/icons/duotune/general/gen051.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen052.svg b/public/media/icons/duotune/general/gen052.svg new file mode 100644 index 0000000..750833b --- /dev/null +++ b/public/media/icons/duotune/general/gen052.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen053.svg b/public/media/icons/duotune/general/gen053.svg new file mode 100644 index 0000000..6bf2cdc --- /dev/null +++ b/public/media/icons/duotune/general/gen053.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen054.svg b/public/media/icons/duotune/general/gen054.svg new file mode 100644 index 0000000..e313f0b --- /dev/null +++ b/public/media/icons/duotune/general/gen054.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen055.svg b/public/media/icons/duotune/general/gen055.svg new file mode 100644 index 0000000..cb4d28a --- /dev/null +++ b/public/media/icons/duotune/general/gen055.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen056.svg b/public/media/icons/duotune/general/gen056.svg new file mode 100644 index 0000000..f1ebaf7 --- /dev/null +++ b/public/media/icons/duotune/general/gen056.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/general/gen057.svg b/public/media/icons/duotune/general/gen057.svg new file mode 100644 index 0000000..7d7b432 --- /dev/null +++ b/public/media/icons/duotune/general/gen057.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen058.svg b/public/media/icons/duotune/general/gen058.svg new file mode 100644 index 0000000..359567f --- /dev/null +++ b/public/media/icons/duotune/general/gen058.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/general/gen059.svg b/public/media/icons/duotune/general/gen059.svg new file mode 100644 index 0000000..b9f5caa --- /dev/null +++ b/public/media/icons/duotune/general/gen059.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/general/gen060.svg b/public/media/icons/duotune/general/gen060.svg new file mode 100644 index 0000000..6ce466e --- /dev/null +++ b/public/media/icons/duotune/general/gen060.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/media/icons/duotune/general/gen061.svg b/public/media/icons/duotune/general/gen061.svg new file mode 100644 index 0000000..cbbd46e --- /dev/null +++ b/public/media/icons/duotune/general/gen061.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/general/gen062.svg b/public/media/icons/duotune/general/gen062.svg new file mode 100644 index 0000000..9e646ed --- /dev/null +++ b/public/media/icons/duotune/general/gen062.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/graphs/gra001.svg b/public/media/icons/duotune/graphs/gra001.svg new file mode 100644 index 0000000..0d4613f --- /dev/null +++ b/public/media/icons/duotune/graphs/gra001.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/graphs/gra002.svg b/public/media/icons/duotune/graphs/gra002.svg new file mode 100644 index 0000000..81d2fb4 --- /dev/null +++ b/public/media/icons/duotune/graphs/gra002.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/graphs/gra003.svg b/public/media/icons/duotune/graphs/gra003.svg new file mode 100644 index 0000000..9e15600 --- /dev/null +++ b/public/media/icons/duotune/graphs/gra003.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/graphs/gra004.svg b/public/media/icons/duotune/graphs/gra004.svg new file mode 100644 index 0000000..e1f60cf --- /dev/null +++ b/public/media/icons/duotune/graphs/gra004.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/graphs/gra005.svg b/public/media/icons/duotune/graphs/gra005.svg new file mode 100644 index 0000000..d5b2b5a --- /dev/null +++ b/public/media/icons/duotune/graphs/gra005.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/graphs/gra006.svg b/public/media/icons/duotune/graphs/gra006.svg new file mode 100644 index 0000000..a3ca521 --- /dev/null +++ b/public/media/icons/duotune/graphs/gra006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/graphs/gra007.svg b/public/media/icons/duotune/graphs/gra007.svg new file mode 100644 index 0000000..84e4a85 --- /dev/null +++ b/public/media/icons/duotune/graphs/gra007.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/graphs/gra008.svg b/public/media/icons/duotune/graphs/gra008.svg new file mode 100644 index 0000000..7a5f39b --- /dev/null +++ b/public/media/icons/duotune/graphs/gra008.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/graphs/gra009.svg b/public/media/icons/duotune/graphs/gra009.svg new file mode 100644 index 0000000..c189ca1 --- /dev/null +++ b/public/media/icons/duotune/graphs/gra009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/graphs/gra010.svg b/public/media/icons/duotune/graphs/gra010.svg new file mode 100644 index 0000000..4a19bb1 --- /dev/null +++ b/public/media/icons/duotune/graphs/gra010.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/graphs/gra011.svg b/public/media/icons/duotune/graphs/gra011.svg new file mode 100644 index 0000000..434ff51 --- /dev/null +++ b/public/media/icons/duotune/graphs/gra011.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/graphs/gra012.svg b/public/media/icons/duotune/graphs/gra012.svg new file mode 100644 index 0000000..3465674 --- /dev/null +++ b/public/media/icons/duotune/graphs/gra012.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/layouts/lay001.svg b/public/media/icons/duotune/layouts/lay001.svg new file mode 100644 index 0000000..e07fab9 --- /dev/null +++ b/public/media/icons/duotune/layouts/lay001.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/layouts/lay002.svg b/public/media/icons/duotune/layouts/lay002.svg new file mode 100644 index 0000000..f7baa1a --- /dev/null +++ b/public/media/icons/duotune/layouts/lay002.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/layouts/lay003.svg b/public/media/icons/duotune/layouts/lay003.svg new file mode 100644 index 0000000..ab7a1bd --- /dev/null +++ b/public/media/icons/duotune/layouts/lay003.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/layouts/lay004.svg b/public/media/icons/duotune/layouts/lay004.svg new file mode 100644 index 0000000..63f9aa1 --- /dev/null +++ b/public/media/icons/duotune/layouts/lay004.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/layouts/lay005.svg b/public/media/icons/duotune/layouts/lay005.svg new file mode 100644 index 0000000..e3036d6 --- /dev/null +++ b/public/media/icons/duotune/layouts/lay005.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/layouts/lay006.svg b/public/media/icons/duotune/layouts/lay006.svg new file mode 100644 index 0000000..823de2e --- /dev/null +++ b/public/media/icons/duotune/layouts/lay006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/layouts/lay007.svg b/public/media/icons/duotune/layouts/lay007.svg new file mode 100644 index 0000000..df21e00 --- /dev/null +++ b/public/media/icons/duotune/layouts/lay007.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/layouts/lay008.svg b/public/media/icons/duotune/layouts/lay008.svg new file mode 100644 index 0000000..7e3862c --- /dev/null +++ b/public/media/icons/duotune/layouts/lay008.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/layouts/lay009.svg b/public/media/icons/duotune/layouts/lay009.svg new file mode 100644 index 0000000..0eb9c04 --- /dev/null +++ b/public/media/icons/duotune/layouts/lay009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/layouts/lay010.svg b/public/media/icons/duotune/layouts/lay010.svg new file mode 100644 index 0000000..3bc6688 --- /dev/null +++ b/public/media/icons/duotune/layouts/lay010.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/maps/map001.svg b/public/media/icons/duotune/maps/map001.svg new file mode 100644 index 0000000..fc92fe8 --- /dev/null +++ b/public/media/icons/duotune/maps/map001.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/maps/map002.svg b/public/media/icons/duotune/maps/map002.svg new file mode 100644 index 0000000..f78eec9 --- /dev/null +++ b/public/media/icons/duotune/maps/map002.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/media/icons/duotune/maps/map003.svg b/public/media/icons/duotune/maps/map003.svg new file mode 100644 index 0000000..42963c8 --- /dev/null +++ b/public/media/icons/duotune/maps/map003.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/media/icons/duotune/maps/map004.svg b/public/media/icons/duotune/maps/map004.svg new file mode 100644 index 0000000..30d04ab --- /dev/null +++ b/public/media/icons/duotune/maps/map004.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/maps/map005.svg b/public/media/icons/duotune/maps/map005.svg new file mode 100644 index 0000000..affead3 --- /dev/null +++ b/public/media/icons/duotune/maps/map005.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/maps/map006.svg b/public/media/icons/duotune/maps/map006.svg new file mode 100644 index 0000000..dff0082 --- /dev/null +++ b/public/media/icons/duotune/maps/map006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/maps/map007.svg b/public/media/icons/duotune/maps/map007.svg new file mode 100644 index 0000000..7abf49e --- /dev/null +++ b/public/media/icons/duotune/maps/map007.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/maps/map008.svg b/public/media/icons/duotune/maps/map008.svg new file mode 100644 index 0000000..0ce688e --- /dev/null +++ b/public/media/icons/duotune/maps/map008.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/maps/map009.svg b/public/media/icons/duotune/maps/map009.svg new file mode 100644 index 0000000..e1d59a6 --- /dev/null +++ b/public/media/icons/duotune/maps/map009.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/maps/map010.svg b/public/media/icons/duotune/maps/map010.svg new file mode 100644 index 0000000..dffe763 --- /dev/null +++ b/public/media/icons/duotune/maps/map010.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/medicine/med001.svg b/public/media/icons/duotune/medicine/med001.svg new file mode 100644 index 0000000..73652f7 --- /dev/null +++ b/public/media/icons/duotune/medicine/med001.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/medicine/med002.svg b/public/media/icons/duotune/medicine/med002.svg new file mode 100644 index 0000000..e85ab3c --- /dev/null +++ b/public/media/icons/duotune/medicine/med002.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/medicine/med003.svg b/public/media/icons/duotune/medicine/med003.svg new file mode 100644 index 0000000..b55b4b2 --- /dev/null +++ b/public/media/icons/duotune/medicine/med003.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/medicine/med004.svg b/public/media/icons/duotune/medicine/med004.svg new file mode 100644 index 0000000..9a2203f --- /dev/null +++ b/public/media/icons/duotune/medicine/med004.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/medicine/med005.svg b/public/media/icons/duotune/medicine/med005.svg new file mode 100644 index 0000000..bfd98d6 --- /dev/null +++ b/public/media/icons/duotune/medicine/med005.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/medicine/med006.svg b/public/media/icons/duotune/medicine/med006.svg new file mode 100644 index 0000000..81026e1 --- /dev/null +++ b/public/media/icons/duotune/medicine/med006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/medicine/med007.svg b/public/media/icons/duotune/medicine/med007.svg new file mode 100644 index 0000000..1ab861c --- /dev/null +++ b/public/media/icons/duotune/medicine/med007.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/medicine/med008.svg b/public/media/icons/duotune/medicine/med008.svg new file mode 100644 index 0000000..96e911d --- /dev/null +++ b/public/media/icons/duotune/medicine/med008.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/icons/duotune/medicine/med009.svg b/public/media/icons/duotune/medicine/med009.svg new file mode 100644 index 0000000..09a70e1 --- /dev/null +++ b/public/media/icons/duotune/medicine/med009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/medicine/med010.svg b/public/media/icons/duotune/medicine/med010.svg new file mode 100644 index 0000000..519c8f4 --- /dev/null +++ b/public/media/icons/duotune/medicine/med010.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/social/soc001.svg b/public/media/icons/duotune/social/soc001.svg new file mode 100644 index 0000000..b0fd541 --- /dev/null +++ b/public/media/icons/duotune/social/soc001.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/social/soc002.svg b/public/media/icons/duotune/social/soc002.svg new file mode 100644 index 0000000..4089ad8 --- /dev/null +++ b/public/media/icons/duotune/social/soc002.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/media/icons/duotune/social/soc003.svg b/public/media/icons/duotune/social/soc003.svg new file mode 100644 index 0000000..de11fa3 --- /dev/null +++ b/public/media/icons/duotune/social/soc003.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/social/soc004.svg b/public/media/icons/duotune/social/soc004.svg new file mode 100644 index 0000000..3873a83 --- /dev/null +++ b/public/media/icons/duotune/social/soc004.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/social/soc005.svg b/public/media/icons/duotune/social/soc005.svg new file mode 100644 index 0000000..3ee2944 --- /dev/null +++ b/public/media/icons/duotune/social/soc005.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/social/soc006.svg b/public/media/icons/duotune/social/soc006.svg new file mode 100644 index 0000000..1fb0ebc --- /dev/null +++ b/public/media/icons/duotune/social/soc006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/social/soc007.svg b/public/media/icons/duotune/social/soc007.svg new file mode 100644 index 0000000..9d9233a --- /dev/null +++ b/public/media/icons/duotune/social/soc007.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/social/soc008.svg b/public/media/icons/duotune/social/soc008.svg new file mode 100644 index 0000000..3d06f81 --- /dev/null +++ b/public/media/icons/duotune/social/soc008.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/social/soc009.svg b/public/media/icons/duotune/social/soc009.svg new file mode 100644 index 0000000..ad5280a --- /dev/null +++ b/public/media/icons/duotune/social/soc009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/social/soc010.svg b/public/media/icons/duotune/social/soc010.svg new file mode 100644 index 0000000..71d175e --- /dev/null +++ b/public/media/icons/duotune/social/soc010.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/technology/teh001.svg b/public/media/icons/duotune/technology/teh001.svg new file mode 100644 index 0000000..7d48300 --- /dev/null +++ b/public/media/icons/duotune/technology/teh001.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/technology/teh002.svg b/public/media/icons/duotune/technology/teh002.svg new file mode 100644 index 0000000..f95cd12 --- /dev/null +++ b/public/media/icons/duotune/technology/teh002.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/technology/teh003.svg b/public/media/icons/duotune/technology/teh003.svg new file mode 100644 index 0000000..59deaff --- /dev/null +++ b/public/media/icons/duotune/technology/teh003.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/technology/teh004.svg b/public/media/icons/duotune/technology/teh004.svg new file mode 100644 index 0000000..de2f954 --- /dev/null +++ b/public/media/icons/duotune/technology/teh004.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/technology/teh005.svg b/public/media/icons/duotune/technology/teh005.svg new file mode 100644 index 0000000..da5ef05 --- /dev/null +++ b/public/media/icons/duotune/technology/teh005.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/technology/teh006.svg b/public/media/icons/duotune/technology/teh006.svg new file mode 100644 index 0000000..0543bc6 --- /dev/null +++ b/public/media/icons/duotune/technology/teh006.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/technology/teh007.svg b/public/media/icons/duotune/technology/teh007.svg new file mode 100644 index 0000000..2bed14d --- /dev/null +++ b/public/media/icons/duotune/technology/teh007.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/technology/teh008.svg b/public/media/icons/duotune/technology/teh008.svg new file mode 100644 index 0000000..ce288f2 --- /dev/null +++ b/public/media/icons/duotune/technology/teh008.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/technology/teh009.svg b/public/media/icons/duotune/technology/teh009.svg new file mode 100644 index 0000000..ff6ac1d --- /dev/null +++ b/public/media/icons/duotune/technology/teh009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/technology/teh010.svg b/public/media/icons/duotune/technology/teh010.svg new file mode 100644 index 0000000..59a1c94 --- /dev/null +++ b/public/media/icons/duotune/technology/teh010.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/icons/duotune/text/txt001.svg b/public/media/icons/duotune/text/txt001.svg new file mode 100644 index 0000000..db4c393 --- /dev/null +++ b/public/media/icons/duotune/text/txt001.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/text/txt002.svg b/public/media/icons/duotune/text/txt002.svg new file mode 100644 index 0000000..3bce269 --- /dev/null +++ b/public/media/icons/duotune/text/txt002.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/text/txt003.svg b/public/media/icons/duotune/text/txt003.svg new file mode 100644 index 0000000..e5b9851 --- /dev/null +++ b/public/media/icons/duotune/text/txt003.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/text/txt004.svg b/public/media/icons/duotune/text/txt004.svg new file mode 100644 index 0000000..e5b9851 --- /dev/null +++ b/public/media/icons/duotune/text/txt004.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/text/txt005.svg b/public/media/icons/duotune/text/txt005.svg new file mode 100644 index 0000000..cd9b66a --- /dev/null +++ b/public/media/icons/duotune/text/txt005.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/text/txt006.svg b/public/media/icons/duotune/text/txt006.svg new file mode 100644 index 0000000..8d8ea00 --- /dev/null +++ b/public/media/icons/duotune/text/txt006.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/text/txt007.svg b/public/media/icons/duotune/text/txt007.svg new file mode 100644 index 0000000..6629bba --- /dev/null +++ b/public/media/icons/duotune/text/txt007.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/icons/duotune/text/txt008.svg b/public/media/icons/duotune/text/txt008.svg new file mode 100644 index 0000000..db1ff30 --- /dev/null +++ b/public/media/icons/duotune/text/txt008.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/text/txt009.svg b/public/media/icons/duotune/text/txt009.svg new file mode 100644 index 0000000..4eb9ccd --- /dev/null +++ b/public/media/icons/duotune/text/txt009.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/icons/duotune/text/txt010.svg b/public/media/icons/duotune/text/txt010.svg new file mode 100644 index 0000000..cbee6a2 --- /dev/null +++ b/public/media/icons/duotune/text/txt010.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/illustrations/dozzy-1/1-dark.png b/public/media/illustrations/dozzy-1/1-dark.png new file mode 100644 index 0000000..8a913b2 Binary files /dev/null and b/public/media/illustrations/dozzy-1/1-dark.png differ diff --git a/public/media/illustrations/dozzy-1/1.png b/public/media/illustrations/dozzy-1/1.png new file mode 100644 index 0000000..8a913b2 Binary files /dev/null and b/public/media/illustrations/dozzy-1/1.png differ diff --git a/public/media/illustrations/dozzy-1/10-dark.png b/public/media/illustrations/dozzy-1/10-dark.png new file mode 100644 index 0000000..035f888 Binary files /dev/null and b/public/media/illustrations/dozzy-1/10-dark.png differ diff --git a/public/media/illustrations/dozzy-1/10.png b/public/media/illustrations/dozzy-1/10.png new file mode 100644 index 0000000..035f888 Binary files /dev/null and b/public/media/illustrations/dozzy-1/10.png differ diff --git a/public/media/illustrations/dozzy-1/11-dark.png b/public/media/illustrations/dozzy-1/11-dark.png new file mode 100644 index 0000000..935cc93 Binary files /dev/null and b/public/media/illustrations/dozzy-1/11-dark.png differ diff --git a/public/media/illustrations/dozzy-1/11.png b/public/media/illustrations/dozzy-1/11.png new file mode 100644 index 0000000..935cc93 Binary files /dev/null and b/public/media/illustrations/dozzy-1/11.png differ diff --git a/public/media/illustrations/dozzy-1/12-dark.png b/public/media/illustrations/dozzy-1/12-dark.png new file mode 100644 index 0000000..6a566f2 Binary files /dev/null and b/public/media/illustrations/dozzy-1/12-dark.png differ diff --git a/public/media/illustrations/dozzy-1/12.png b/public/media/illustrations/dozzy-1/12.png new file mode 100644 index 0000000..6a566f2 Binary files /dev/null and b/public/media/illustrations/dozzy-1/12.png differ diff --git a/public/media/illustrations/dozzy-1/13-dark.png b/public/media/illustrations/dozzy-1/13-dark.png new file mode 100644 index 0000000..aeb4821 Binary files /dev/null and b/public/media/illustrations/dozzy-1/13-dark.png differ diff --git a/public/media/illustrations/dozzy-1/13.png b/public/media/illustrations/dozzy-1/13.png new file mode 100644 index 0000000..aeb4821 Binary files /dev/null and b/public/media/illustrations/dozzy-1/13.png differ diff --git a/public/media/illustrations/dozzy-1/14-dark.png b/public/media/illustrations/dozzy-1/14-dark.png new file mode 100644 index 0000000..b5e3eab Binary files /dev/null and b/public/media/illustrations/dozzy-1/14-dark.png differ diff --git a/public/media/illustrations/dozzy-1/14.png b/public/media/illustrations/dozzy-1/14.png new file mode 100644 index 0000000..635b369 Binary files /dev/null and b/public/media/illustrations/dozzy-1/14.png differ diff --git a/public/media/illustrations/dozzy-1/15-dark.png b/public/media/illustrations/dozzy-1/15-dark.png new file mode 100644 index 0000000..002b83c Binary files /dev/null and b/public/media/illustrations/dozzy-1/15-dark.png differ diff --git a/public/media/illustrations/dozzy-1/15.png b/public/media/illustrations/dozzy-1/15.png new file mode 100644 index 0000000..002b83c Binary files /dev/null and b/public/media/illustrations/dozzy-1/15.png differ diff --git a/public/media/illustrations/dozzy-1/16-dark.png b/public/media/illustrations/dozzy-1/16-dark.png new file mode 100644 index 0000000..69202fd Binary files /dev/null and b/public/media/illustrations/dozzy-1/16-dark.png differ diff --git a/public/media/illustrations/dozzy-1/16.png b/public/media/illustrations/dozzy-1/16.png new file mode 100644 index 0000000..69202fd Binary files /dev/null and b/public/media/illustrations/dozzy-1/16.png differ diff --git a/public/media/illustrations/dozzy-1/17-dark.png b/public/media/illustrations/dozzy-1/17-dark.png new file mode 100644 index 0000000..6f34b91 Binary files /dev/null and b/public/media/illustrations/dozzy-1/17-dark.png differ diff --git a/public/media/illustrations/dozzy-1/17.png b/public/media/illustrations/dozzy-1/17.png new file mode 100644 index 0000000..6f34b91 Binary files /dev/null and b/public/media/illustrations/dozzy-1/17.png differ diff --git a/public/media/illustrations/dozzy-1/18-dark.png b/public/media/illustrations/dozzy-1/18-dark.png new file mode 100644 index 0000000..e19a79a Binary files /dev/null and b/public/media/illustrations/dozzy-1/18-dark.png differ diff --git a/public/media/illustrations/dozzy-1/18.png b/public/media/illustrations/dozzy-1/18.png new file mode 100644 index 0000000..4ca77a5 Binary files /dev/null and b/public/media/illustrations/dozzy-1/18.png differ diff --git a/public/media/illustrations/dozzy-1/19-dark.png b/public/media/illustrations/dozzy-1/19-dark.png new file mode 100644 index 0000000..7e19dd5 Binary files /dev/null and b/public/media/illustrations/dozzy-1/19-dark.png differ diff --git a/public/media/illustrations/dozzy-1/19.png b/public/media/illustrations/dozzy-1/19.png new file mode 100644 index 0000000..8d2d189 Binary files /dev/null and b/public/media/illustrations/dozzy-1/19.png differ diff --git a/public/media/illustrations/dozzy-1/2-dark.png b/public/media/illustrations/dozzy-1/2-dark.png new file mode 100644 index 0000000..cee2ced Binary files /dev/null and b/public/media/illustrations/dozzy-1/2-dark.png differ diff --git a/public/media/illustrations/dozzy-1/2.png b/public/media/illustrations/dozzy-1/2.png new file mode 100644 index 0000000..cee2ced Binary files /dev/null and b/public/media/illustrations/dozzy-1/2.png differ diff --git a/public/media/illustrations/dozzy-1/20-dark.png b/public/media/illustrations/dozzy-1/20-dark.png new file mode 100644 index 0000000..c5a8f58 Binary files /dev/null and b/public/media/illustrations/dozzy-1/20-dark.png differ diff --git a/public/media/illustrations/dozzy-1/20.png b/public/media/illustrations/dozzy-1/20.png new file mode 100644 index 0000000..c5a8f58 Binary files /dev/null and b/public/media/illustrations/dozzy-1/20.png differ diff --git a/public/media/illustrations/dozzy-1/3-dark.png b/public/media/illustrations/dozzy-1/3-dark.png new file mode 100644 index 0000000..3d924fd Binary files /dev/null and b/public/media/illustrations/dozzy-1/3-dark.png differ diff --git a/public/media/illustrations/dozzy-1/3.png b/public/media/illustrations/dozzy-1/3.png new file mode 100644 index 0000000..3d924fd Binary files /dev/null and b/public/media/illustrations/dozzy-1/3.png differ diff --git a/public/media/illustrations/dozzy-1/4-dark.png b/public/media/illustrations/dozzy-1/4-dark.png new file mode 100644 index 0000000..7ad63d6 Binary files /dev/null and b/public/media/illustrations/dozzy-1/4-dark.png differ diff --git a/public/media/illustrations/dozzy-1/4.png b/public/media/illustrations/dozzy-1/4.png new file mode 100644 index 0000000..7ad63d6 Binary files /dev/null and b/public/media/illustrations/dozzy-1/4.png differ diff --git a/public/media/illustrations/dozzy-1/5-dark.png b/public/media/illustrations/dozzy-1/5-dark.png new file mode 100644 index 0000000..b366a8a Binary files /dev/null and b/public/media/illustrations/dozzy-1/5-dark.png differ diff --git a/public/media/illustrations/dozzy-1/5.png b/public/media/illustrations/dozzy-1/5.png new file mode 100644 index 0000000..b366a8a Binary files /dev/null and b/public/media/illustrations/dozzy-1/5.png differ diff --git a/public/media/illustrations/dozzy-1/6-dark.png b/public/media/illustrations/dozzy-1/6-dark.png new file mode 100644 index 0000000..b50bd5a Binary files /dev/null and b/public/media/illustrations/dozzy-1/6-dark.png differ diff --git a/public/media/illustrations/dozzy-1/6.png b/public/media/illustrations/dozzy-1/6.png new file mode 100644 index 0000000..b50bd5a Binary files /dev/null and b/public/media/illustrations/dozzy-1/6.png differ diff --git a/public/media/illustrations/dozzy-1/7-dark.png b/public/media/illustrations/dozzy-1/7-dark.png new file mode 100644 index 0000000..f0e0ba3 Binary files /dev/null and b/public/media/illustrations/dozzy-1/7-dark.png differ diff --git a/public/media/illustrations/dozzy-1/7.png b/public/media/illustrations/dozzy-1/7.png new file mode 100644 index 0000000..f0e0ba3 Binary files /dev/null and b/public/media/illustrations/dozzy-1/7.png differ diff --git a/public/media/illustrations/dozzy-1/8-dark.png b/public/media/illustrations/dozzy-1/8-dark.png new file mode 100644 index 0000000..cffb72f Binary files /dev/null and b/public/media/illustrations/dozzy-1/8-dark.png differ diff --git a/public/media/illustrations/dozzy-1/8.png b/public/media/illustrations/dozzy-1/8.png new file mode 100644 index 0000000..cffb72f Binary files /dev/null and b/public/media/illustrations/dozzy-1/8.png differ diff --git a/public/media/illustrations/dozzy-1/9-dark.png b/public/media/illustrations/dozzy-1/9-dark.png new file mode 100644 index 0000000..0f9a0eb Binary files /dev/null and b/public/media/illustrations/dozzy-1/9-dark.png differ diff --git a/public/media/illustrations/dozzy-1/9.png b/public/media/illustrations/dozzy-1/9.png new file mode 100644 index 0000000..0f9a0eb Binary files /dev/null and b/public/media/illustrations/dozzy-1/9.png differ diff --git a/public/media/illustrations/misc/credit-card.png b/public/media/illustrations/misc/credit-card.png new file mode 100644 index 0000000..024851c Binary files /dev/null and b/public/media/illustrations/misc/credit-card.png differ diff --git a/public/media/illustrations/misc/upgrade-dark.svg b/public/media/illustrations/misc/upgrade-dark.svg new file mode 100644 index 0000000..834c3a3 --- /dev/null +++ b/public/media/illustrations/misc/upgrade-dark.svg @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/illustrations/misc/upgrade.svg b/public/media/illustrations/misc/upgrade.svg new file mode 100644 index 0000000..e72aff5 --- /dev/null +++ b/public/media/illustrations/misc/upgrade.svg @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/illustrations/sigma-1/1-dark.png b/public/media/illustrations/sigma-1/1-dark.png new file mode 100644 index 0000000..e7331f0 Binary files /dev/null and b/public/media/illustrations/sigma-1/1-dark.png differ diff --git a/public/media/illustrations/sigma-1/1.png b/public/media/illustrations/sigma-1/1.png new file mode 100644 index 0000000..2c40339 Binary files /dev/null and b/public/media/illustrations/sigma-1/1.png differ diff --git a/public/media/illustrations/sigma-1/10-dark.png b/public/media/illustrations/sigma-1/10-dark.png new file mode 100644 index 0000000..6acbb20 Binary files /dev/null and b/public/media/illustrations/sigma-1/10-dark.png differ diff --git a/public/media/illustrations/sigma-1/10.png b/public/media/illustrations/sigma-1/10.png new file mode 100644 index 0000000..37e2b15 Binary files /dev/null and b/public/media/illustrations/sigma-1/10.png differ diff --git a/public/media/illustrations/sigma-1/11-dark.png b/public/media/illustrations/sigma-1/11-dark.png new file mode 100644 index 0000000..eabc31f Binary files /dev/null and b/public/media/illustrations/sigma-1/11-dark.png differ diff --git a/public/media/illustrations/sigma-1/11.png b/public/media/illustrations/sigma-1/11.png new file mode 100644 index 0000000..a393a3d Binary files /dev/null and b/public/media/illustrations/sigma-1/11.png differ diff --git a/public/media/illustrations/sigma-1/12-dark.png b/public/media/illustrations/sigma-1/12-dark.png new file mode 100644 index 0000000..cdac7bf Binary files /dev/null and b/public/media/illustrations/sigma-1/12-dark.png differ diff --git a/public/media/illustrations/sigma-1/12.png b/public/media/illustrations/sigma-1/12.png new file mode 100644 index 0000000..9edd6ad Binary files /dev/null and b/public/media/illustrations/sigma-1/12.png differ diff --git a/public/media/illustrations/sigma-1/13-dark.png b/public/media/illustrations/sigma-1/13-dark.png new file mode 100644 index 0000000..187499a Binary files /dev/null and b/public/media/illustrations/sigma-1/13-dark.png differ diff --git a/public/media/illustrations/sigma-1/13.png b/public/media/illustrations/sigma-1/13.png new file mode 100644 index 0000000..73484aa Binary files /dev/null and b/public/media/illustrations/sigma-1/13.png differ diff --git a/public/media/illustrations/sigma-1/14-dark.png b/public/media/illustrations/sigma-1/14-dark.png new file mode 100644 index 0000000..3bfe499 Binary files /dev/null and b/public/media/illustrations/sigma-1/14-dark.png differ diff --git a/public/media/illustrations/sigma-1/14.png b/public/media/illustrations/sigma-1/14.png new file mode 100644 index 0000000..fddda94 Binary files /dev/null and b/public/media/illustrations/sigma-1/14.png differ diff --git a/public/media/illustrations/sigma-1/15-dark.png b/public/media/illustrations/sigma-1/15-dark.png new file mode 100644 index 0000000..853fff7 Binary files /dev/null and b/public/media/illustrations/sigma-1/15-dark.png differ diff --git a/public/media/illustrations/sigma-1/15.png b/public/media/illustrations/sigma-1/15.png new file mode 100644 index 0000000..170124b Binary files /dev/null and b/public/media/illustrations/sigma-1/15.png differ diff --git a/public/media/illustrations/sigma-1/16-dark.png b/public/media/illustrations/sigma-1/16-dark.png new file mode 100644 index 0000000..9e4b70b Binary files /dev/null and b/public/media/illustrations/sigma-1/16-dark.png differ diff --git a/public/media/illustrations/sigma-1/16.png b/public/media/illustrations/sigma-1/16.png new file mode 100644 index 0000000..3a8257c Binary files /dev/null and b/public/media/illustrations/sigma-1/16.png differ diff --git a/public/media/illustrations/sigma-1/17-dark.png b/public/media/illustrations/sigma-1/17-dark.png new file mode 100644 index 0000000..ee770af Binary files /dev/null and b/public/media/illustrations/sigma-1/17-dark.png differ diff --git a/public/media/illustrations/sigma-1/17.png b/public/media/illustrations/sigma-1/17.png new file mode 100644 index 0000000..8fcacf0 Binary files /dev/null and b/public/media/illustrations/sigma-1/17.png differ diff --git a/public/media/illustrations/sigma-1/18-dark.png b/public/media/illustrations/sigma-1/18-dark.png new file mode 100644 index 0000000..f9adc48 Binary files /dev/null and b/public/media/illustrations/sigma-1/18-dark.png differ diff --git a/public/media/illustrations/sigma-1/18.png b/public/media/illustrations/sigma-1/18.png new file mode 100644 index 0000000..459ed7b Binary files /dev/null and b/public/media/illustrations/sigma-1/18.png differ diff --git a/public/media/illustrations/sigma-1/19-dark.png b/public/media/illustrations/sigma-1/19-dark.png new file mode 100644 index 0000000..54e7633 Binary files /dev/null and b/public/media/illustrations/sigma-1/19-dark.png differ diff --git a/public/media/illustrations/sigma-1/19.png b/public/media/illustrations/sigma-1/19.png new file mode 100644 index 0000000..9fd06f6 Binary files /dev/null and b/public/media/illustrations/sigma-1/19.png differ diff --git a/public/media/illustrations/sigma-1/2-dark.png b/public/media/illustrations/sigma-1/2-dark.png new file mode 100644 index 0000000..cec2fd4 Binary files /dev/null and b/public/media/illustrations/sigma-1/2-dark.png differ diff --git a/public/media/illustrations/sigma-1/2.png b/public/media/illustrations/sigma-1/2.png new file mode 100644 index 0000000..3e5310e Binary files /dev/null and b/public/media/illustrations/sigma-1/2.png differ diff --git a/public/media/illustrations/sigma-1/20-dark.png b/public/media/illustrations/sigma-1/20-dark.png new file mode 100644 index 0000000..a18f403 Binary files /dev/null and b/public/media/illustrations/sigma-1/20-dark.png differ diff --git a/public/media/illustrations/sigma-1/20.png b/public/media/illustrations/sigma-1/20.png new file mode 100644 index 0000000..c1879ef Binary files /dev/null and b/public/media/illustrations/sigma-1/20.png differ diff --git a/public/media/illustrations/sigma-1/21-dark.png b/public/media/illustrations/sigma-1/21-dark.png new file mode 100644 index 0000000..820be06 Binary files /dev/null and b/public/media/illustrations/sigma-1/21-dark.png differ diff --git a/public/media/illustrations/sigma-1/21.png b/public/media/illustrations/sigma-1/21.png new file mode 100644 index 0000000..b6e1623 Binary files /dev/null and b/public/media/illustrations/sigma-1/21.png differ diff --git a/public/media/illustrations/sigma-1/3-dark.png b/public/media/illustrations/sigma-1/3-dark.png new file mode 100644 index 0000000..1c10717 Binary files /dev/null and b/public/media/illustrations/sigma-1/3-dark.png differ diff --git a/public/media/illustrations/sigma-1/3.png b/public/media/illustrations/sigma-1/3.png new file mode 100644 index 0000000..9f79d8a Binary files /dev/null and b/public/media/illustrations/sigma-1/3.png differ diff --git a/public/media/illustrations/sigma-1/4-dark.png b/public/media/illustrations/sigma-1/4-dark.png new file mode 100644 index 0000000..70e6767 Binary files /dev/null and b/public/media/illustrations/sigma-1/4-dark.png differ diff --git a/public/media/illustrations/sigma-1/4.png b/public/media/illustrations/sigma-1/4.png new file mode 100644 index 0000000..c0ddb8f Binary files /dev/null and b/public/media/illustrations/sigma-1/4.png differ diff --git a/public/media/illustrations/sigma-1/5-dark.png b/public/media/illustrations/sigma-1/5-dark.png new file mode 100644 index 0000000..7a94c20 Binary files /dev/null and b/public/media/illustrations/sigma-1/5-dark.png differ diff --git a/public/media/illustrations/sigma-1/5.png b/public/media/illustrations/sigma-1/5.png new file mode 100644 index 0000000..b28d5db Binary files /dev/null and b/public/media/illustrations/sigma-1/5.png differ diff --git a/public/media/illustrations/sigma-1/6-dark.png b/public/media/illustrations/sigma-1/6-dark.png new file mode 100644 index 0000000..b44bc0a Binary files /dev/null and b/public/media/illustrations/sigma-1/6-dark.png differ diff --git a/public/media/illustrations/sigma-1/6.png b/public/media/illustrations/sigma-1/6.png new file mode 100644 index 0000000..77e9279 Binary files /dev/null and b/public/media/illustrations/sigma-1/6.png differ diff --git a/public/media/illustrations/sigma-1/7-dark.png b/public/media/illustrations/sigma-1/7-dark.png new file mode 100644 index 0000000..d1ef375 Binary files /dev/null and b/public/media/illustrations/sigma-1/7-dark.png differ diff --git a/public/media/illustrations/sigma-1/7.png b/public/media/illustrations/sigma-1/7.png new file mode 100644 index 0000000..e1e6da8 Binary files /dev/null and b/public/media/illustrations/sigma-1/7.png differ diff --git a/public/media/illustrations/sigma-1/8-dark.png b/public/media/illustrations/sigma-1/8-dark.png new file mode 100644 index 0000000..9a13ac7 Binary files /dev/null and b/public/media/illustrations/sigma-1/8-dark.png differ diff --git a/public/media/illustrations/sigma-1/8.png b/public/media/illustrations/sigma-1/8.png new file mode 100644 index 0000000..9a3a3f9 Binary files /dev/null and b/public/media/illustrations/sigma-1/8.png differ diff --git a/public/media/illustrations/sigma-1/9-dark.png b/public/media/illustrations/sigma-1/9-dark.png new file mode 100644 index 0000000..9986e19 Binary files /dev/null and b/public/media/illustrations/sigma-1/9-dark.png differ diff --git a/public/media/illustrations/sigma-1/9.png b/public/media/illustrations/sigma-1/9.png new file mode 100644 index 0000000..f7a9f72 Binary files /dev/null and b/public/media/illustrations/sigma-1/9.png differ diff --git a/public/media/illustrations/sketchy-1/1-dark.png b/public/media/illustrations/sketchy-1/1-dark.png new file mode 100644 index 0000000..5ea1b54 Binary files /dev/null and b/public/media/illustrations/sketchy-1/1-dark.png differ diff --git a/public/media/illustrations/sketchy-1/1.png b/public/media/illustrations/sketchy-1/1.png new file mode 100644 index 0000000..5ea1b54 Binary files /dev/null and b/public/media/illustrations/sketchy-1/1.png differ diff --git a/public/media/illustrations/sketchy-1/10-dark.png b/public/media/illustrations/sketchy-1/10-dark.png new file mode 100644 index 0000000..8520ece Binary files /dev/null and b/public/media/illustrations/sketchy-1/10-dark.png differ diff --git a/public/media/illustrations/sketchy-1/10.png b/public/media/illustrations/sketchy-1/10.png new file mode 100644 index 0000000..6473bc0 Binary files /dev/null and b/public/media/illustrations/sketchy-1/10.png differ diff --git a/public/media/illustrations/sketchy-1/11-dark.png b/public/media/illustrations/sketchy-1/11-dark.png new file mode 100644 index 0000000..25a6f91 Binary files /dev/null and b/public/media/illustrations/sketchy-1/11-dark.png differ diff --git a/public/media/illustrations/sketchy-1/11.png b/public/media/illustrations/sketchy-1/11.png new file mode 100644 index 0000000..25a6f91 Binary files /dev/null and b/public/media/illustrations/sketchy-1/11.png differ diff --git a/public/media/illustrations/sketchy-1/12-dark.png b/public/media/illustrations/sketchy-1/12-dark.png new file mode 100644 index 0000000..9b205d2 Binary files /dev/null and b/public/media/illustrations/sketchy-1/12-dark.png differ diff --git a/public/media/illustrations/sketchy-1/12.png b/public/media/illustrations/sketchy-1/12.png new file mode 100644 index 0000000..9b205d2 Binary files /dev/null and b/public/media/illustrations/sketchy-1/12.png differ diff --git a/public/media/illustrations/sketchy-1/13-dark.png b/public/media/illustrations/sketchy-1/13-dark.png new file mode 100644 index 0000000..58aceb0 Binary files /dev/null and b/public/media/illustrations/sketchy-1/13-dark.png differ diff --git a/public/media/illustrations/sketchy-1/13.png b/public/media/illustrations/sketchy-1/13.png new file mode 100644 index 0000000..4cbafeb Binary files /dev/null and b/public/media/illustrations/sketchy-1/13.png differ diff --git a/public/media/illustrations/sketchy-1/14-dark.png b/public/media/illustrations/sketchy-1/14-dark.png new file mode 100644 index 0000000..f4d7601 Binary files /dev/null and b/public/media/illustrations/sketchy-1/14-dark.png differ diff --git a/public/media/illustrations/sketchy-1/14.png b/public/media/illustrations/sketchy-1/14.png new file mode 100644 index 0000000..920bad9 Binary files /dev/null and b/public/media/illustrations/sketchy-1/14.png differ diff --git a/public/media/illustrations/sketchy-1/15-dark.png b/public/media/illustrations/sketchy-1/15-dark.png new file mode 100644 index 0000000..f36c423 Binary files /dev/null and b/public/media/illustrations/sketchy-1/15-dark.png differ diff --git a/public/media/illustrations/sketchy-1/15.png b/public/media/illustrations/sketchy-1/15.png new file mode 100644 index 0000000..cda7ee7 Binary files /dev/null and b/public/media/illustrations/sketchy-1/15.png differ diff --git a/public/media/illustrations/sketchy-1/16-dark.png b/public/media/illustrations/sketchy-1/16-dark.png new file mode 100644 index 0000000..effe4ef Binary files /dev/null and b/public/media/illustrations/sketchy-1/16-dark.png differ diff --git a/public/media/illustrations/sketchy-1/16.png b/public/media/illustrations/sketchy-1/16.png new file mode 100644 index 0000000..effe4ef Binary files /dev/null and b/public/media/illustrations/sketchy-1/16.png differ diff --git a/public/media/illustrations/sketchy-1/17-dark.png b/public/media/illustrations/sketchy-1/17-dark.png new file mode 100644 index 0000000..017f9cf Binary files /dev/null and b/public/media/illustrations/sketchy-1/17-dark.png differ diff --git a/public/media/illustrations/sketchy-1/17.png b/public/media/illustrations/sketchy-1/17.png new file mode 100644 index 0000000..017f9cf Binary files /dev/null and b/public/media/illustrations/sketchy-1/17.png differ diff --git a/public/media/illustrations/sketchy-1/18-dark.png b/public/media/illustrations/sketchy-1/18-dark.png new file mode 100644 index 0000000..3ea09b0 Binary files /dev/null and b/public/media/illustrations/sketchy-1/18-dark.png differ diff --git a/public/media/illustrations/sketchy-1/18.png b/public/media/illustrations/sketchy-1/18.png new file mode 100644 index 0000000..66d278b Binary files /dev/null and b/public/media/illustrations/sketchy-1/18.png differ diff --git a/public/media/illustrations/sketchy-1/19-dark.png b/public/media/illustrations/sketchy-1/19-dark.png new file mode 100644 index 0000000..01cb1bc Binary files /dev/null and b/public/media/illustrations/sketchy-1/19-dark.png differ diff --git a/public/media/illustrations/sketchy-1/19.png b/public/media/illustrations/sketchy-1/19.png new file mode 100644 index 0000000..059d621 Binary files /dev/null and b/public/media/illustrations/sketchy-1/19.png differ diff --git a/public/media/illustrations/sketchy-1/2-dark.png b/public/media/illustrations/sketchy-1/2-dark.png new file mode 100644 index 0000000..8cf0e9d Binary files /dev/null and b/public/media/illustrations/sketchy-1/2-dark.png differ diff --git a/public/media/illustrations/sketchy-1/2.png b/public/media/illustrations/sketchy-1/2.png new file mode 100644 index 0000000..8cf0e9d Binary files /dev/null and b/public/media/illustrations/sketchy-1/2.png differ diff --git a/public/media/illustrations/sketchy-1/20-dark.png b/public/media/illustrations/sketchy-1/20-dark.png new file mode 100644 index 0000000..bc36a05 Binary files /dev/null and b/public/media/illustrations/sketchy-1/20-dark.png differ diff --git a/public/media/illustrations/sketchy-1/20.png b/public/media/illustrations/sketchy-1/20.png new file mode 100644 index 0000000..bc36a05 Binary files /dev/null and b/public/media/illustrations/sketchy-1/20.png differ diff --git a/public/media/illustrations/sketchy-1/3-dark.png b/public/media/illustrations/sketchy-1/3-dark.png new file mode 100644 index 0000000..2bc292e Binary files /dev/null and b/public/media/illustrations/sketchy-1/3-dark.png differ diff --git a/public/media/illustrations/sketchy-1/3.png b/public/media/illustrations/sketchy-1/3.png new file mode 100644 index 0000000..2bc292e Binary files /dev/null and b/public/media/illustrations/sketchy-1/3.png differ diff --git a/public/media/illustrations/sketchy-1/4-dark.png b/public/media/illustrations/sketchy-1/4-dark.png new file mode 100644 index 0000000..23392de Binary files /dev/null and b/public/media/illustrations/sketchy-1/4-dark.png differ diff --git a/public/media/illustrations/sketchy-1/4.png b/public/media/illustrations/sketchy-1/4.png new file mode 100644 index 0000000..23392de Binary files /dev/null and b/public/media/illustrations/sketchy-1/4.png differ diff --git a/public/media/illustrations/sketchy-1/5-dark.png b/public/media/illustrations/sketchy-1/5-dark.png new file mode 100644 index 0000000..9fec5d9 Binary files /dev/null and b/public/media/illustrations/sketchy-1/5-dark.png differ diff --git a/public/media/illustrations/sketchy-1/5.png b/public/media/illustrations/sketchy-1/5.png new file mode 100644 index 0000000..9fec5d9 Binary files /dev/null and b/public/media/illustrations/sketchy-1/5.png differ diff --git a/public/media/illustrations/sketchy-1/6-dark.png b/public/media/illustrations/sketchy-1/6-dark.png new file mode 100644 index 0000000..5061c7e Binary files /dev/null and b/public/media/illustrations/sketchy-1/6-dark.png differ diff --git a/public/media/illustrations/sketchy-1/6.png b/public/media/illustrations/sketchy-1/6.png new file mode 100644 index 0000000..5061c7e Binary files /dev/null and b/public/media/illustrations/sketchy-1/6.png differ diff --git a/public/media/illustrations/sketchy-1/7-dark.png b/public/media/illustrations/sketchy-1/7-dark.png new file mode 100644 index 0000000..86aa33e Binary files /dev/null and b/public/media/illustrations/sketchy-1/7-dark.png differ diff --git a/public/media/illustrations/sketchy-1/7.png b/public/media/illustrations/sketchy-1/7.png new file mode 100644 index 0000000..86aa33e Binary files /dev/null and b/public/media/illustrations/sketchy-1/7.png differ diff --git a/public/media/illustrations/sketchy-1/8-dark.png b/public/media/illustrations/sketchy-1/8-dark.png new file mode 100644 index 0000000..4bd1c1e Binary files /dev/null and b/public/media/illustrations/sketchy-1/8-dark.png differ diff --git a/public/media/illustrations/sketchy-1/8.png b/public/media/illustrations/sketchy-1/8.png new file mode 100644 index 0000000..4bd1c1e Binary files /dev/null and b/public/media/illustrations/sketchy-1/8.png differ diff --git a/public/media/illustrations/sketchy-1/9-dark.png b/public/media/illustrations/sketchy-1/9-dark.png new file mode 100644 index 0000000..5628b75 Binary files /dev/null and b/public/media/illustrations/sketchy-1/9-dark.png differ diff --git a/public/media/illustrations/sketchy-1/9.png b/public/media/illustrations/sketchy-1/9.png new file mode 100644 index 0000000..5628b75 Binary files /dev/null and b/public/media/illustrations/sketchy-1/9.png differ diff --git a/public/media/illustrations/unitedpalms-1/1-dark.png b/public/media/illustrations/unitedpalms-1/1-dark.png new file mode 100644 index 0000000..ddb1f87 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/1-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/1.png b/public/media/illustrations/unitedpalms-1/1.png new file mode 100644 index 0000000..c14c1bc Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/1.png differ diff --git a/public/media/illustrations/unitedpalms-1/10-dark.png b/public/media/illustrations/unitedpalms-1/10-dark.png new file mode 100644 index 0000000..55eefcb Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/10-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/10.png b/public/media/illustrations/unitedpalms-1/10.png new file mode 100644 index 0000000..85f7501 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/10.png differ diff --git a/public/media/illustrations/unitedpalms-1/11-dark.png b/public/media/illustrations/unitedpalms-1/11-dark.png new file mode 100644 index 0000000..d900f13 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/11-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/11.png b/public/media/illustrations/unitedpalms-1/11.png new file mode 100644 index 0000000..63266da Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/11.png differ diff --git a/public/media/illustrations/unitedpalms-1/12-dark.png b/public/media/illustrations/unitedpalms-1/12-dark.png new file mode 100644 index 0000000..0ed7ad1 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/12-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/12.png b/public/media/illustrations/unitedpalms-1/12.png new file mode 100644 index 0000000..95ece52 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/12.png differ diff --git a/public/media/illustrations/unitedpalms-1/13-dark.png b/public/media/illustrations/unitedpalms-1/13-dark.png new file mode 100644 index 0000000..38132a1 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/13-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/13.png b/public/media/illustrations/unitedpalms-1/13.png new file mode 100644 index 0000000..542da8b Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/13.png differ diff --git a/public/media/illustrations/unitedpalms-1/14-dark.png b/public/media/illustrations/unitedpalms-1/14-dark.png new file mode 100644 index 0000000..6cacfe0 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/14-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/14.png b/public/media/illustrations/unitedpalms-1/14.png new file mode 100644 index 0000000..312722d Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/14.png differ diff --git a/public/media/illustrations/unitedpalms-1/15-dark.png b/public/media/illustrations/unitedpalms-1/15-dark.png new file mode 100644 index 0000000..5a7060b Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/15-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/15.png b/public/media/illustrations/unitedpalms-1/15.png new file mode 100644 index 0000000..526f6d2 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/15.png differ diff --git a/public/media/illustrations/unitedpalms-1/16-dark.png b/public/media/illustrations/unitedpalms-1/16-dark.png new file mode 100644 index 0000000..ca63949 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/16-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/16.png b/public/media/illustrations/unitedpalms-1/16.png new file mode 100644 index 0000000..f0e3735 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/16.png differ diff --git a/public/media/illustrations/unitedpalms-1/17-dark.png b/public/media/illustrations/unitedpalms-1/17-dark.png new file mode 100644 index 0000000..74b8547 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/17-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/17.png b/public/media/illustrations/unitedpalms-1/17.png new file mode 100644 index 0000000..5eb9d8b Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/17.png differ diff --git a/public/media/illustrations/unitedpalms-1/18-dark.png b/public/media/illustrations/unitedpalms-1/18-dark.png new file mode 100644 index 0000000..8018cf7 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/18-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/18.png b/public/media/illustrations/unitedpalms-1/18.png new file mode 100644 index 0000000..b711721 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/18.png differ diff --git a/public/media/illustrations/unitedpalms-1/19-dark.png b/public/media/illustrations/unitedpalms-1/19-dark.png new file mode 100644 index 0000000..1c9020c Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/19-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/19.png b/public/media/illustrations/unitedpalms-1/19.png new file mode 100644 index 0000000..1d912cd Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/19.png differ diff --git a/public/media/illustrations/unitedpalms-1/2-dark.png b/public/media/illustrations/unitedpalms-1/2-dark.png new file mode 100644 index 0000000..5a3e155 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/2-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/2.png b/public/media/illustrations/unitedpalms-1/2.png new file mode 100644 index 0000000..cb54b6a Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/2.png differ diff --git a/public/media/illustrations/unitedpalms-1/20-dark.png b/public/media/illustrations/unitedpalms-1/20-dark.png new file mode 100644 index 0000000..a318fa5 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/20-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/20.png b/public/media/illustrations/unitedpalms-1/20.png new file mode 100644 index 0000000..b44ee20 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/20.png differ diff --git a/public/media/illustrations/unitedpalms-1/3-dark.png b/public/media/illustrations/unitedpalms-1/3-dark.png new file mode 100644 index 0000000..4116c2e Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/3-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/3.png b/public/media/illustrations/unitedpalms-1/3.png new file mode 100644 index 0000000..fb4822d Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/3.png differ diff --git a/public/media/illustrations/unitedpalms-1/4-dark.png b/public/media/illustrations/unitedpalms-1/4-dark.png new file mode 100644 index 0000000..7363463 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/4-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/4.png b/public/media/illustrations/unitedpalms-1/4.png new file mode 100644 index 0000000..5b0fd92 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/4.png differ diff --git a/public/media/illustrations/unitedpalms-1/5-dark.png b/public/media/illustrations/unitedpalms-1/5-dark.png new file mode 100644 index 0000000..2b24825 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/5-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/5.png b/public/media/illustrations/unitedpalms-1/5.png new file mode 100644 index 0000000..0f10a13 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/5.png differ diff --git a/public/media/illustrations/unitedpalms-1/6-dark.png b/public/media/illustrations/unitedpalms-1/6-dark.png new file mode 100644 index 0000000..45a2efe Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/6-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/6.png b/public/media/illustrations/unitedpalms-1/6.png new file mode 100644 index 0000000..2b7872e Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/6.png differ diff --git a/public/media/illustrations/unitedpalms-1/7-dark.png b/public/media/illustrations/unitedpalms-1/7-dark.png new file mode 100644 index 0000000..6929853 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/7-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/7.png b/public/media/illustrations/unitedpalms-1/7.png new file mode 100644 index 0000000..756157b Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/7.png differ diff --git a/public/media/illustrations/unitedpalms-1/8-dark.png b/public/media/illustrations/unitedpalms-1/8-dark.png new file mode 100644 index 0000000..5a0c18a Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/8-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/8.png b/public/media/illustrations/unitedpalms-1/8.png new file mode 100644 index 0000000..57719a4 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/8.png differ diff --git a/public/media/illustrations/unitedpalms-1/9-dark.png b/public/media/illustrations/unitedpalms-1/9-dark.png new file mode 100644 index 0000000..796af50 Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/9-dark.png differ diff --git a/public/media/illustrations/unitedpalms-1/9.png b/public/media/illustrations/unitedpalms-1/9.png new file mode 100644 index 0000000..7fc84cf Binary files /dev/null and b/public/media/illustrations/unitedpalms-1/9.png differ diff --git a/public/media/logos/custom-1.png b/public/media/logos/custom-1.png new file mode 100644 index 0000000..bf7b4d2 Binary files /dev/null and b/public/media/logos/custom-1.png differ diff --git a/public/media/logos/custom-2.svg b/public/media/logos/custom-2.svg new file mode 100644 index 0000000..e86088a --- /dev/null +++ b/public/media/logos/custom-2.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/logos/custom-3.svg b/public/media/logos/custom-3.svg new file mode 100644 index 0000000..b7978d7 --- /dev/null +++ b/public/media/logos/custom-3.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/media/logos/default-dark.svg b/public/media/logos/default-dark.svg new file mode 100644 index 0000000..b290e71 --- /dev/null +++ b/public/media/logos/default-dark.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/logos/default-large.svg b/public/media/logos/default-large.svg new file mode 100644 index 0000000..9eaf21e --- /dev/null +++ b/public/media/logos/default-large.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/media/logos/default-small.svg b/public/media/logos/default-small.svg new file mode 100644 index 0000000..eecc771 --- /dev/null +++ b/public/media/logos/default-small.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/logos/default.svg b/public/media/logos/default.svg new file mode 100644 index 0000000..75f84cf --- /dev/null +++ b/public/media/logos/default.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/logos/favicon.ico b/public/media/logos/favicon.ico new file mode 100644 index 0000000..94838e5 Binary files /dev/null and b/public/media/logos/favicon.ico differ diff --git a/public/media/logos/landing-dark.svg b/public/media/logos/landing-dark.svg new file mode 100644 index 0000000..66e2390 --- /dev/null +++ b/public/media/logos/landing-dark.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/logos/landing.svg b/public/media/logos/landing.svg new file mode 100644 index 0000000..9c7ff28 --- /dev/null +++ b/public/media/logos/landing.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/logos/mail.svg b/public/media/logos/mail.svg new file mode 100644 index 0000000..75f84cf --- /dev/null +++ b/public/media/logos/mail.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/misc/auth-bg.png b/public/media/misc/auth-bg.png new file mode 100644 index 0000000..8dd1a52 Binary files /dev/null and b/public/media/misc/auth-bg.png differ diff --git a/public/media/misc/auth-screens.png b/public/media/misc/auth-screens.png new file mode 100644 index 0000000..149e646 Binary files /dev/null and b/public/media/misc/auth-screens.png differ diff --git a/public/media/misc/bg-2.jpg b/public/media/misc/bg-2.jpg new file mode 100644 index 0000000..378e7ee Binary files /dev/null and b/public/media/misc/bg-2.jpg differ diff --git a/public/media/misc/city.png b/public/media/misc/city.png new file mode 100644 index 0000000..8eeff26 Binary files /dev/null and b/public/media/misc/city.png differ diff --git a/public/media/misc/image.png b/public/media/misc/image.png new file mode 100644 index 0000000..5e01b1e Binary files /dev/null and b/public/media/misc/image.png differ diff --git a/public/media/misc/layout/dark-header.png b/public/media/misc/layout/dark-header.png new file mode 100644 index 0000000..5eab3c6 Binary files /dev/null and b/public/media/misc/layout/dark-header.png differ diff --git a/public/media/misc/layout/dark-sidebar.png b/public/media/misc/layout/dark-sidebar.png new file mode 100644 index 0000000..82ab02c Binary files /dev/null and b/public/media/misc/layout/dark-sidebar.png differ diff --git a/public/media/misc/layout/dark.png b/public/media/misc/layout/dark.png new file mode 100644 index 0000000..4e60f0a Binary files /dev/null and b/public/media/misc/layout/dark.png differ diff --git a/public/media/misc/layout/header-bg.jpg b/public/media/misc/layout/header-bg.jpg new file mode 100644 index 0000000..2e29270 Binary files /dev/null and b/public/media/misc/layout/header-bg.jpg differ diff --git a/public/media/misc/layout/light-header.png b/public/media/misc/layout/light-header.png new file mode 100644 index 0000000..07ce873 Binary files /dev/null and b/public/media/misc/layout/light-header.png differ diff --git a/public/media/misc/layout/light-sidebar.png b/public/media/misc/layout/light-sidebar.png new file mode 100644 index 0000000..7abff3e Binary files /dev/null and b/public/media/misc/layout/light-sidebar.png differ diff --git a/public/media/misc/layout/light.png b/public/media/misc/layout/light.png new file mode 100644 index 0000000..6c039df Binary files /dev/null and b/public/media/misc/layout/light.png differ diff --git a/public/media/misc/layout/toolbar-accounting.png b/public/media/misc/layout/toolbar-accounting.png new file mode 100644 index 0000000..12bafd7 Binary files /dev/null and b/public/media/misc/layout/toolbar-accounting.png differ diff --git a/public/media/misc/layout/toolbar-classic.png b/public/media/misc/layout/toolbar-classic.png new file mode 100644 index 0000000..1100532 Binary files /dev/null and b/public/media/misc/layout/toolbar-classic.png differ diff --git a/public/media/misc/layout/toolbar-extended.png b/public/media/misc/layout/toolbar-extended.png new file mode 100644 index 0000000..9746a5b Binary files /dev/null and b/public/media/misc/layout/toolbar-extended.png differ diff --git a/public/media/misc/layout/toolbar-reports.png b/public/media/misc/layout/toolbar-reports.png new file mode 100644 index 0000000..33bf561 Binary files /dev/null and b/public/media/misc/layout/toolbar-reports.png differ diff --git a/public/media/misc/layout/toolbar-saas.png b/public/media/misc/layout/toolbar-saas.png new file mode 100644 index 0000000..7426ea1 Binary files /dev/null and b/public/media/misc/layout/toolbar-saas.png differ diff --git a/public/media/misc/menu-header-bg.jpg b/public/media/misc/menu-header-bg.jpg new file mode 100644 index 0000000..447eea1 Binary files /dev/null and b/public/media/misc/menu-header-bg.jpg differ diff --git a/public/media/misc/menu-header-dark.png b/public/media/misc/menu-header-dark.png new file mode 100644 index 0000000..840e282 Binary files /dev/null and b/public/media/misc/menu-header-dark.png differ diff --git a/public/media/misc/outdoor.png b/public/media/misc/outdoor.png new file mode 100644 index 0000000..eda4264 Binary files /dev/null and b/public/media/misc/outdoor.png differ diff --git a/public/media/misc/pattern-2.png b/public/media/misc/pattern-2.png new file mode 100644 index 0000000..a273dd4 Binary files /dev/null and b/public/media/misc/pattern-2.png differ diff --git a/public/media/misc/pattern-4.jpg b/public/media/misc/pattern-4.jpg new file mode 100644 index 0000000..1bc5876 Binary files /dev/null and b/public/media/misc/pattern-4.jpg differ diff --git a/public/media/misc/portfolio.png b/public/media/misc/portfolio.png new file mode 100644 index 0000000..434de64 Binary files /dev/null and b/public/media/misc/portfolio.png differ diff --git a/public/media/misc/preview-1.jpg b/public/media/misc/preview-1.jpg new file mode 100644 index 0000000..dce31ef Binary files /dev/null and b/public/media/misc/preview-1.jpg differ diff --git a/public/media/misc/preview-2.jpg b/public/media/misc/preview-2.jpg new file mode 100644 index 0000000..5047279 Binary files /dev/null and b/public/media/misc/preview-2.jpg differ diff --git a/public/media/misc/preview-3.jpg b/public/media/misc/preview-3.jpg new file mode 100644 index 0000000..f457a00 Binary files /dev/null and b/public/media/misc/preview-3.jpg differ diff --git a/public/media/misc/profile-head-bg.jpg b/public/media/misc/profile-head-bg.jpg new file mode 100644 index 0000000..5a45a7d Binary files /dev/null and b/public/media/misc/profile-head-bg.jpg differ diff --git a/public/media/misc/qr-code.png b/public/media/misc/qr-code.png new file mode 100644 index 0000000..59d927a Binary files /dev/null and b/public/media/misc/qr-code.png differ diff --git a/public/media/misc/qr.png b/public/media/misc/qr.png new file mode 100644 index 0000000..d954e14 Binary files /dev/null and b/public/media/misc/qr.png differ diff --git a/public/media/misc/search-bg.png b/public/media/misc/search-bg.png new file mode 100644 index 0000000..a273dd4 Binary files /dev/null and b/public/media/misc/search-bg.png differ diff --git a/public/media/misc/track-order.png b/public/media/misc/track-order.png new file mode 100644 index 0000000..19619e7 Binary files /dev/null and b/public/media/misc/track-order.png differ diff --git a/public/media/patterns/pattern-1.jpg b/public/media/patterns/pattern-1.jpg new file mode 100644 index 0000000..9a661aa Binary files /dev/null and b/public/media/patterns/pattern-1.jpg differ diff --git a/public/media/patterns/vector-1.png b/public/media/patterns/vector-1.png new file mode 100644 index 0000000..e4f29a2 Binary files /dev/null and b/public/media/patterns/vector-1.png differ diff --git a/public/media/plugins/jstree/32px.png b/public/media/plugins/jstree/32px.png new file mode 100644 index 0000000..4bc79e6 Binary files /dev/null and b/public/media/plugins/jstree/32px.png differ diff --git a/public/media/product-demos/demo1.png b/public/media/product-demos/demo1.png new file mode 100644 index 0000000..c17352b Binary files /dev/null and b/public/media/product-demos/demo1.png differ diff --git a/public/media/product-demos/demo2.png b/public/media/product-demos/demo2.png new file mode 100644 index 0000000..b1ce559 Binary files /dev/null and b/public/media/product-demos/demo2.png differ diff --git a/public/media/product-demos/demo3.png b/public/media/product-demos/demo3.png new file mode 100644 index 0000000..a960fb5 Binary files /dev/null and b/public/media/product-demos/demo3.png differ diff --git a/public/media/product-demos/demo4.png b/public/media/product-demos/demo4.png new file mode 100644 index 0000000..bef7d59 Binary files /dev/null and b/public/media/product-demos/demo4.png differ diff --git a/public/media/product-demos/demo5.png b/public/media/product-demos/demo5.png new file mode 100644 index 0000000..3df3172 Binary files /dev/null and b/public/media/product-demos/demo5.png differ diff --git a/public/media/product/1.svg b/public/media/product/1.svg new file mode 100644 index 0000000..dba5d4b --- /dev/null +++ b/public/media/product/1.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/product/2.svg b/public/media/product/2.svg new file mode 100644 index 0000000..68f2823 --- /dev/null +++ b/public/media/product/2.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/product/3.svg b/public/media/product/3.svg new file mode 100644 index 0000000..09527ab --- /dev/null +++ b/public/media/product/3.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/product/5.svg b/public/media/product/5.svg new file mode 100644 index 0000000..7b89061 --- /dev/null +++ b/public/media/product/5.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/products/1.png b/public/media/products/1.png new file mode 100644 index 0000000..3fe1fa0 Binary files /dev/null and b/public/media/products/1.png differ diff --git a/public/media/products/10.png b/public/media/products/10.png new file mode 100644 index 0000000..5144576 Binary files /dev/null and b/public/media/products/10.png differ diff --git a/public/media/products/11.png b/public/media/products/11.png new file mode 100644 index 0000000..5d519a6 Binary files /dev/null and b/public/media/products/11.png differ diff --git a/public/media/products/12.png b/public/media/products/12.png new file mode 100644 index 0000000..38c1154 Binary files /dev/null and b/public/media/products/12.png differ diff --git a/public/media/products/13.png b/public/media/products/13.png new file mode 100644 index 0000000..828b570 Binary files /dev/null and b/public/media/products/13.png differ diff --git a/public/media/products/14.png b/public/media/products/14.png new file mode 100644 index 0000000..ccb46b8 Binary files /dev/null and b/public/media/products/14.png differ diff --git a/public/media/products/15.png b/public/media/products/15.png new file mode 100644 index 0000000..d68c6f0 Binary files /dev/null and b/public/media/products/15.png differ diff --git a/public/media/products/16.png b/public/media/products/16.png new file mode 100644 index 0000000..3106b91 Binary files /dev/null and b/public/media/products/16.png differ diff --git a/public/media/products/17.png b/public/media/products/17.png new file mode 100644 index 0000000..ad455f8 Binary files /dev/null and b/public/media/products/17.png differ diff --git a/public/media/products/18.png b/public/media/products/18.png new file mode 100644 index 0000000..71d6a6c Binary files /dev/null and b/public/media/products/18.png differ diff --git a/public/media/products/19.png b/public/media/products/19.png new file mode 100644 index 0000000..3cc4ab2 Binary files /dev/null and b/public/media/products/19.png differ diff --git a/public/media/products/2.png b/public/media/products/2.png new file mode 100644 index 0000000..f1f352b Binary files /dev/null and b/public/media/products/2.png differ diff --git a/public/media/products/20.png b/public/media/products/20.png new file mode 100644 index 0000000..f1c4fa6 Binary files /dev/null and b/public/media/products/20.png differ diff --git a/public/media/products/21.png b/public/media/products/21.png new file mode 100644 index 0000000..ff98f55 Binary files /dev/null and b/public/media/products/21.png differ diff --git a/public/media/products/22.png b/public/media/products/22.png new file mode 100644 index 0000000..61f5311 Binary files /dev/null and b/public/media/products/22.png differ diff --git a/public/media/products/3.png b/public/media/products/3.png new file mode 100644 index 0000000..9d977e5 Binary files /dev/null and b/public/media/products/3.png differ diff --git a/public/media/products/4.png b/public/media/products/4.png new file mode 100644 index 0000000..5238f9c Binary files /dev/null and b/public/media/products/4.png differ diff --git a/public/media/products/5.png b/public/media/products/5.png new file mode 100644 index 0000000..94203a1 Binary files /dev/null and b/public/media/products/5.png differ diff --git a/public/media/products/6.png b/public/media/products/6.png new file mode 100644 index 0000000..a973d21 Binary files /dev/null and b/public/media/products/6.png differ diff --git a/public/media/products/7.png b/public/media/products/7.png new file mode 100644 index 0000000..f89b157 Binary files /dev/null and b/public/media/products/7.png differ diff --git a/public/media/products/8.png b/public/media/products/8.png new file mode 100644 index 0000000..fdd567f Binary files /dev/null and b/public/media/products/8.png differ diff --git a/public/media/products/9.png b/public/media/products/9.png new file mode 100644 index 0000000..5756c81 Binary files /dev/null and b/public/media/products/9.png differ diff --git a/public/media/smiles/happy.png b/public/media/smiles/happy.png new file mode 100644 index 0000000..69e9a55 Binary files /dev/null and b/public/media/smiles/happy.png differ diff --git a/public/media/smiles/sad.png b/public/media/smiles/sad.png new file mode 100644 index 0000000..b6d70fd Binary files /dev/null and b/public/media/smiles/sad.png differ diff --git a/public/media/smiles/shocked.png b/public/media/smiles/shocked.png new file mode 100644 index 0000000..5b63c9c Binary files /dev/null and b/public/media/smiles/shocked.png differ diff --git a/public/media/stock/1600x800/img-1.jpg b/public/media/stock/1600x800/img-1.jpg new file mode 100644 index 0000000..fb46699 Binary files /dev/null and b/public/media/stock/1600x800/img-1.jpg differ diff --git a/public/media/stock/1600x800/img-2.jpg b/public/media/stock/1600x800/img-2.jpg new file mode 100644 index 0000000..6ed2747 Binary files /dev/null and b/public/media/stock/1600x800/img-2.jpg differ diff --git a/public/media/stock/1600x800/img-3.jpg b/public/media/stock/1600x800/img-3.jpg new file mode 100644 index 0000000..673619d Binary files /dev/null and b/public/media/stock/1600x800/img-3.jpg differ diff --git a/public/media/stock/1600x800/img-4.jpg b/public/media/stock/1600x800/img-4.jpg new file mode 100644 index 0000000..4aaeba8 Binary files /dev/null and b/public/media/stock/1600x800/img-4.jpg differ diff --git a/public/media/stock/500x600/img-1.jpg b/public/media/stock/500x600/img-1.jpg new file mode 100644 index 0000000..7633734 Binary files /dev/null and b/public/media/stock/500x600/img-1.jpg differ diff --git a/public/media/stock/600x400/img-1.jpg b/public/media/stock/600x400/img-1.jpg new file mode 100644 index 0000000..a4cf1c7 Binary files /dev/null and b/public/media/stock/600x400/img-1.jpg differ diff --git a/public/media/stock/600x400/img-10.jpg b/public/media/stock/600x400/img-10.jpg new file mode 100644 index 0000000..a43517e Binary files /dev/null and b/public/media/stock/600x400/img-10.jpg differ diff --git a/public/media/stock/600x400/img-11.jpg b/public/media/stock/600x400/img-11.jpg new file mode 100644 index 0000000..9a7e2f6 Binary files /dev/null and b/public/media/stock/600x400/img-11.jpg differ diff --git a/public/media/stock/600x400/img-12.jpg b/public/media/stock/600x400/img-12.jpg new file mode 100644 index 0000000..7e88d26 Binary files /dev/null and b/public/media/stock/600x400/img-12.jpg differ diff --git a/public/media/stock/600x400/img-13.jpg b/public/media/stock/600x400/img-13.jpg new file mode 100644 index 0000000..e3301fa Binary files /dev/null and b/public/media/stock/600x400/img-13.jpg differ diff --git a/public/media/stock/600x400/img-14.jpg b/public/media/stock/600x400/img-14.jpg new file mode 100644 index 0000000..4a118c1 Binary files /dev/null and b/public/media/stock/600x400/img-14.jpg differ diff --git a/public/media/stock/600x400/img-15.jpg b/public/media/stock/600x400/img-15.jpg new file mode 100644 index 0000000..6d2b247 Binary files /dev/null and b/public/media/stock/600x400/img-15.jpg differ diff --git a/public/media/stock/600x400/img-16.jpg b/public/media/stock/600x400/img-16.jpg new file mode 100644 index 0000000..caa20dc Binary files /dev/null and b/public/media/stock/600x400/img-16.jpg differ diff --git a/public/media/stock/600x400/img-17.jpg b/public/media/stock/600x400/img-17.jpg new file mode 100644 index 0000000..fb7539d Binary files /dev/null and b/public/media/stock/600x400/img-17.jpg differ diff --git a/public/media/stock/600x400/img-18.jpg b/public/media/stock/600x400/img-18.jpg new file mode 100644 index 0000000..11c69e0 Binary files /dev/null and b/public/media/stock/600x400/img-18.jpg differ diff --git a/public/media/stock/600x400/img-19.jpg b/public/media/stock/600x400/img-19.jpg new file mode 100644 index 0000000..459f1f6 Binary files /dev/null and b/public/media/stock/600x400/img-19.jpg differ diff --git a/public/media/stock/600x400/img-2.jpg b/public/media/stock/600x400/img-2.jpg new file mode 100644 index 0000000..fd538bf Binary files /dev/null and b/public/media/stock/600x400/img-2.jpg differ diff --git a/public/media/stock/600x400/img-20.jpg b/public/media/stock/600x400/img-20.jpg new file mode 100644 index 0000000..633399a Binary files /dev/null and b/public/media/stock/600x400/img-20.jpg differ diff --git a/public/media/stock/600x400/img-21.jpg b/public/media/stock/600x400/img-21.jpg new file mode 100644 index 0000000..d3c78be Binary files /dev/null and b/public/media/stock/600x400/img-21.jpg differ diff --git a/public/media/stock/600x400/img-22.jpg b/public/media/stock/600x400/img-22.jpg new file mode 100644 index 0000000..6729e7f Binary files /dev/null and b/public/media/stock/600x400/img-22.jpg differ diff --git a/public/media/stock/600x400/img-23.jpg b/public/media/stock/600x400/img-23.jpg new file mode 100644 index 0000000..e619f19 Binary files /dev/null and b/public/media/stock/600x400/img-23.jpg differ diff --git a/public/media/stock/600x400/img-24.jpg b/public/media/stock/600x400/img-24.jpg new file mode 100644 index 0000000..11091ed Binary files /dev/null and b/public/media/stock/600x400/img-24.jpg differ diff --git a/public/media/stock/600x400/img-25.jpg b/public/media/stock/600x400/img-25.jpg new file mode 100644 index 0000000..bd94d35 Binary files /dev/null and b/public/media/stock/600x400/img-25.jpg differ diff --git a/public/media/stock/600x400/img-26.jpg b/public/media/stock/600x400/img-26.jpg new file mode 100644 index 0000000..ff2ee36 Binary files /dev/null and b/public/media/stock/600x400/img-26.jpg differ diff --git a/public/media/stock/600x400/img-27.jpg b/public/media/stock/600x400/img-27.jpg new file mode 100644 index 0000000..408ebf2 Binary files /dev/null and b/public/media/stock/600x400/img-27.jpg differ diff --git a/public/media/stock/600x400/img-28.jpg b/public/media/stock/600x400/img-28.jpg new file mode 100644 index 0000000..430cce7 Binary files /dev/null and b/public/media/stock/600x400/img-28.jpg differ diff --git a/public/media/stock/600x400/img-29.jpg b/public/media/stock/600x400/img-29.jpg new file mode 100644 index 0000000..4da3410 Binary files /dev/null and b/public/media/stock/600x400/img-29.jpg differ diff --git a/public/media/stock/600x400/img-3.jpg b/public/media/stock/600x400/img-3.jpg new file mode 100644 index 0000000..27901dd Binary files /dev/null and b/public/media/stock/600x400/img-3.jpg differ diff --git a/public/media/stock/600x400/img-30.jpg b/public/media/stock/600x400/img-30.jpg new file mode 100644 index 0000000..3377599 Binary files /dev/null and b/public/media/stock/600x400/img-30.jpg differ diff --git a/public/media/stock/600x400/img-31.jpg b/public/media/stock/600x400/img-31.jpg new file mode 100644 index 0000000..64c1fda Binary files /dev/null and b/public/media/stock/600x400/img-31.jpg differ diff --git a/public/media/stock/600x400/img-32.jpg b/public/media/stock/600x400/img-32.jpg new file mode 100644 index 0000000..160b7f9 Binary files /dev/null and b/public/media/stock/600x400/img-32.jpg differ diff --git a/public/media/stock/600x400/img-33.jpg b/public/media/stock/600x400/img-33.jpg new file mode 100644 index 0000000..19f9228 Binary files /dev/null and b/public/media/stock/600x400/img-33.jpg differ diff --git a/public/media/stock/600x400/img-34.jpg b/public/media/stock/600x400/img-34.jpg new file mode 100644 index 0000000..0db4278 Binary files /dev/null and b/public/media/stock/600x400/img-34.jpg differ diff --git a/public/media/stock/600x400/img-35.jpg b/public/media/stock/600x400/img-35.jpg new file mode 100644 index 0000000..1688d66 Binary files /dev/null and b/public/media/stock/600x400/img-35.jpg differ diff --git a/public/media/stock/600x400/img-36.jpg b/public/media/stock/600x400/img-36.jpg new file mode 100644 index 0000000..531cc75 Binary files /dev/null and b/public/media/stock/600x400/img-36.jpg differ diff --git a/public/media/stock/600x400/img-37.jpg b/public/media/stock/600x400/img-37.jpg new file mode 100644 index 0000000..60be533 Binary files /dev/null and b/public/media/stock/600x400/img-37.jpg differ diff --git a/public/media/stock/600x400/img-38.jpg b/public/media/stock/600x400/img-38.jpg new file mode 100644 index 0000000..fb80fef Binary files /dev/null and b/public/media/stock/600x400/img-38.jpg differ diff --git a/public/media/stock/600x400/img-39.jpg b/public/media/stock/600x400/img-39.jpg new file mode 100644 index 0000000..a0eadc3 Binary files /dev/null and b/public/media/stock/600x400/img-39.jpg differ diff --git a/public/media/stock/600x400/img-4.jpg b/public/media/stock/600x400/img-4.jpg new file mode 100644 index 0000000..7dc30c4 Binary files /dev/null and b/public/media/stock/600x400/img-4.jpg differ diff --git a/public/media/stock/600x400/img-40.jpg b/public/media/stock/600x400/img-40.jpg new file mode 100644 index 0000000..288f6d1 Binary files /dev/null and b/public/media/stock/600x400/img-40.jpg differ diff --git a/public/media/stock/600x400/img-41.jpg b/public/media/stock/600x400/img-41.jpg new file mode 100644 index 0000000..a353294 Binary files /dev/null and b/public/media/stock/600x400/img-41.jpg differ diff --git a/public/media/stock/600x400/img-42.jpg b/public/media/stock/600x400/img-42.jpg new file mode 100644 index 0000000..707c570 Binary files /dev/null and b/public/media/stock/600x400/img-42.jpg differ diff --git a/public/media/stock/600x400/img-43.jpg b/public/media/stock/600x400/img-43.jpg new file mode 100644 index 0000000..6f4a793 Binary files /dev/null and b/public/media/stock/600x400/img-43.jpg differ diff --git a/public/media/stock/600x400/img-44.jpg b/public/media/stock/600x400/img-44.jpg new file mode 100644 index 0000000..8a38363 Binary files /dev/null and b/public/media/stock/600x400/img-44.jpg differ diff --git a/public/media/stock/600x400/img-45.jpg b/public/media/stock/600x400/img-45.jpg new file mode 100644 index 0000000..aa7bbbb Binary files /dev/null and b/public/media/stock/600x400/img-45.jpg differ diff --git a/public/media/stock/600x400/img-46.jpg b/public/media/stock/600x400/img-46.jpg new file mode 100644 index 0000000..9cc4b9f Binary files /dev/null and b/public/media/stock/600x400/img-46.jpg differ diff --git a/public/media/stock/600x400/img-47.jpg b/public/media/stock/600x400/img-47.jpg new file mode 100644 index 0000000..e7ea5e3 Binary files /dev/null and b/public/media/stock/600x400/img-47.jpg differ diff --git a/public/media/stock/600x400/img-48.jpg b/public/media/stock/600x400/img-48.jpg new file mode 100644 index 0000000..1ed84e6 Binary files /dev/null and b/public/media/stock/600x400/img-48.jpg differ diff --git a/public/media/stock/600x400/img-49.jpg b/public/media/stock/600x400/img-49.jpg new file mode 100644 index 0000000..b135e70 Binary files /dev/null and b/public/media/stock/600x400/img-49.jpg differ diff --git a/public/media/stock/600x400/img-5.jpg b/public/media/stock/600x400/img-5.jpg new file mode 100644 index 0000000..8e7d59d Binary files /dev/null and b/public/media/stock/600x400/img-5.jpg differ diff --git a/public/media/stock/600x400/img-50.jpg b/public/media/stock/600x400/img-50.jpg new file mode 100644 index 0000000..a25e5ec Binary files /dev/null and b/public/media/stock/600x400/img-50.jpg differ diff --git a/public/media/stock/600x400/img-51.jpg b/public/media/stock/600x400/img-51.jpg new file mode 100644 index 0000000..19ef111 Binary files /dev/null and b/public/media/stock/600x400/img-51.jpg differ diff --git a/public/media/stock/600x400/img-52.jpg b/public/media/stock/600x400/img-52.jpg new file mode 100644 index 0000000..e60d5eb Binary files /dev/null and b/public/media/stock/600x400/img-52.jpg differ diff --git a/public/media/stock/600x400/img-53.jpg b/public/media/stock/600x400/img-53.jpg new file mode 100644 index 0000000..32ae826 Binary files /dev/null and b/public/media/stock/600x400/img-53.jpg differ diff --git a/public/media/stock/600x400/img-54.jpg b/public/media/stock/600x400/img-54.jpg new file mode 100644 index 0000000..601581e Binary files /dev/null and b/public/media/stock/600x400/img-54.jpg differ diff --git a/public/media/stock/600x400/img-55.jpg b/public/media/stock/600x400/img-55.jpg new file mode 100644 index 0000000..f0026d2 Binary files /dev/null and b/public/media/stock/600x400/img-55.jpg differ diff --git a/public/media/stock/600x400/img-56.jpg b/public/media/stock/600x400/img-56.jpg new file mode 100644 index 0000000..ea2eb50 Binary files /dev/null and b/public/media/stock/600x400/img-56.jpg differ diff --git a/public/media/stock/600x400/img-57.jpg b/public/media/stock/600x400/img-57.jpg new file mode 100644 index 0000000..ba6f52d Binary files /dev/null and b/public/media/stock/600x400/img-57.jpg differ diff --git a/public/media/stock/600x400/img-58.jpg b/public/media/stock/600x400/img-58.jpg new file mode 100644 index 0000000..dba6145 Binary files /dev/null and b/public/media/stock/600x400/img-58.jpg differ diff --git a/public/media/stock/600x400/img-59.jpg b/public/media/stock/600x400/img-59.jpg new file mode 100644 index 0000000..be87d1c Binary files /dev/null and b/public/media/stock/600x400/img-59.jpg differ diff --git a/public/media/stock/600x400/img-6.jpg b/public/media/stock/600x400/img-6.jpg new file mode 100644 index 0000000..326d6e9 Binary files /dev/null and b/public/media/stock/600x400/img-6.jpg differ diff --git a/public/media/stock/600x400/img-60.jpg b/public/media/stock/600x400/img-60.jpg new file mode 100644 index 0000000..a5ba93f Binary files /dev/null and b/public/media/stock/600x400/img-60.jpg differ diff --git a/public/media/stock/600x400/img-61.jpg b/public/media/stock/600x400/img-61.jpg new file mode 100644 index 0000000..3387456 Binary files /dev/null and b/public/media/stock/600x400/img-61.jpg differ diff --git a/public/media/stock/600x400/img-62.jpg b/public/media/stock/600x400/img-62.jpg new file mode 100644 index 0000000..99fd32c Binary files /dev/null and b/public/media/stock/600x400/img-62.jpg differ diff --git a/public/media/stock/600x400/img-63.jpg b/public/media/stock/600x400/img-63.jpg new file mode 100644 index 0000000..efd6233 Binary files /dev/null and b/public/media/stock/600x400/img-63.jpg differ diff --git a/public/media/stock/600x400/img-64.jpg b/public/media/stock/600x400/img-64.jpg new file mode 100644 index 0000000..a682775 Binary files /dev/null and b/public/media/stock/600x400/img-64.jpg differ diff --git a/public/media/stock/600x400/img-65.jpg b/public/media/stock/600x400/img-65.jpg new file mode 100644 index 0000000..4e9fe41 Binary files /dev/null and b/public/media/stock/600x400/img-65.jpg differ diff --git a/public/media/stock/600x400/img-66.jpg b/public/media/stock/600x400/img-66.jpg new file mode 100644 index 0000000..77f3aa6 Binary files /dev/null and b/public/media/stock/600x400/img-66.jpg differ diff --git a/public/media/stock/600x400/img-67.jpg b/public/media/stock/600x400/img-67.jpg new file mode 100644 index 0000000..d143778 Binary files /dev/null and b/public/media/stock/600x400/img-67.jpg differ diff --git a/public/media/stock/600x400/img-68.jpg b/public/media/stock/600x400/img-68.jpg new file mode 100644 index 0000000..846502c Binary files /dev/null and b/public/media/stock/600x400/img-68.jpg differ diff --git a/public/media/stock/600x400/img-69.jpg b/public/media/stock/600x400/img-69.jpg new file mode 100644 index 0000000..fb14ef0 Binary files /dev/null and b/public/media/stock/600x400/img-69.jpg differ diff --git a/public/media/stock/600x400/img-7.jpg b/public/media/stock/600x400/img-7.jpg new file mode 100644 index 0000000..8804a83 Binary files /dev/null and b/public/media/stock/600x400/img-7.jpg differ diff --git a/public/media/stock/600x400/img-70.jpg b/public/media/stock/600x400/img-70.jpg new file mode 100644 index 0000000..b14eade Binary files /dev/null and b/public/media/stock/600x400/img-70.jpg differ diff --git a/public/media/stock/600x400/img-71.jpg b/public/media/stock/600x400/img-71.jpg new file mode 100644 index 0000000..daf3903 Binary files /dev/null and b/public/media/stock/600x400/img-71.jpg differ diff --git a/public/media/stock/600x400/img-72.jpg b/public/media/stock/600x400/img-72.jpg new file mode 100644 index 0000000..beb4859 Binary files /dev/null and b/public/media/stock/600x400/img-72.jpg differ diff --git a/public/media/stock/600x400/img-73.jpg b/public/media/stock/600x400/img-73.jpg new file mode 100644 index 0000000..7e79000 Binary files /dev/null and b/public/media/stock/600x400/img-73.jpg differ diff --git a/public/media/stock/600x400/img-74.jpg b/public/media/stock/600x400/img-74.jpg new file mode 100644 index 0000000..b22920f Binary files /dev/null and b/public/media/stock/600x400/img-74.jpg differ diff --git a/public/media/stock/600x400/img-75-dark.jpg b/public/media/stock/600x400/img-75-dark.jpg new file mode 100644 index 0000000..5922ed8 Binary files /dev/null and b/public/media/stock/600x400/img-75-dark.jpg differ diff --git a/public/media/stock/600x400/img-75.jpg b/public/media/stock/600x400/img-75.jpg new file mode 100644 index 0000000..aecfa83 Binary files /dev/null and b/public/media/stock/600x400/img-75.jpg differ diff --git a/public/media/stock/600x400/img-76.jpg b/public/media/stock/600x400/img-76.jpg new file mode 100644 index 0000000..380c132 Binary files /dev/null and b/public/media/stock/600x400/img-76.jpg differ diff --git a/public/media/stock/600x400/img-77.jpg b/public/media/stock/600x400/img-77.jpg new file mode 100644 index 0000000..a8cf240 Binary files /dev/null and b/public/media/stock/600x400/img-77.jpg differ diff --git a/public/media/stock/600x400/img-78.jpg b/public/media/stock/600x400/img-78.jpg new file mode 100644 index 0000000..68cc6d9 Binary files /dev/null and b/public/media/stock/600x400/img-78.jpg differ diff --git a/public/media/stock/600x400/img-79.jpg b/public/media/stock/600x400/img-79.jpg new file mode 100644 index 0000000..4deae45 Binary files /dev/null and b/public/media/stock/600x400/img-79.jpg differ diff --git a/public/media/stock/600x400/img-8.jpg b/public/media/stock/600x400/img-8.jpg new file mode 100644 index 0000000..81b15e7 Binary files /dev/null and b/public/media/stock/600x400/img-8.jpg differ diff --git a/public/media/stock/600x400/img-80.jpg b/public/media/stock/600x400/img-80.jpg new file mode 100644 index 0000000..4207fbb Binary files /dev/null and b/public/media/stock/600x400/img-80.jpg differ diff --git a/public/media/stock/600x400/img-9.jpg b/public/media/stock/600x400/img-9.jpg new file mode 100644 index 0000000..7b0013f Binary files /dev/null and b/public/media/stock/600x400/img-9.jpg differ diff --git a/public/media/stock/600x600/img-1.jpg b/public/media/stock/600x600/img-1.jpg new file mode 100644 index 0000000..66ab33d Binary files /dev/null and b/public/media/stock/600x600/img-1.jpg differ diff --git a/public/media/stock/600x600/img-10.jpg b/public/media/stock/600x600/img-10.jpg new file mode 100644 index 0000000..035100f Binary files /dev/null and b/public/media/stock/600x600/img-10.jpg differ diff --git a/public/media/stock/600x600/img-11.jpg b/public/media/stock/600x600/img-11.jpg new file mode 100644 index 0000000..7a5baae Binary files /dev/null and b/public/media/stock/600x600/img-11.jpg differ diff --git a/public/media/stock/600x600/img-12.jpg b/public/media/stock/600x600/img-12.jpg new file mode 100644 index 0000000..279fc64 Binary files /dev/null and b/public/media/stock/600x600/img-12.jpg differ diff --git a/public/media/stock/600x600/img-13.jpg b/public/media/stock/600x600/img-13.jpg new file mode 100644 index 0000000..b49a560 Binary files /dev/null and b/public/media/stock/600x600/img-13.jpg differ diff --git a/public/media/stock/600x600/img-14.jpg b/public/media/stock/600x600/img-14.jpg new file mode 100644 index 0000000..334e00b Binary files /dev/null and b/public/media/stock/600x600/img-14.jpg differ diff --git a/public/media/stock/600x600/img-15.jpg b/public/media/stock/600x600/img-15.jpg new file mode 100644 index 0000000..683bad9 Binary files /dev/null and b/public/media/stock/600x600/img-15.jpg differ diff --git a/public/media/stock/600x600/img-16.jpg b/public/media/stock/600x600/img-16.jpg new file mode 100644 index 0000000..378e7ee Binary files /dev/null and b/public/media/stock/600x600/img-16.jpg differ diff --git a/public/media/stock/600x600/img-17.jpg b/public/media/stock/600x600/img-17.jpg new file mode 100644 index 0000000..2e08816 Binary files /dev/null and b/public/media/stock/600x600/img-17.jpg differ diff --git a/public/media/stock/600x600/img-18.jpg b/public/media/stock/600x600/img-18.jpg new file mode 100644 index 0000000..5b15b88 Binary files /dev/null and b/public/media/stock/600x600/img-18.jpg differ diff --git a/public/media/stock/600x600/img-2.jpg b/public/media/stock/600x600/img-2.jpg new file mode 100644 index 0000000..230f2eb Binary files /dev/null and b/public/media/stock/600x600/img-2.jpg differ diff --git a/public/media/stock/600x600/img-20.jpg b/public/media/stock/600x600/img-20.jpg new file mode 100644 index 0000000..78d55b6 Binary files /dev/null and b/public/media/stock/600x600/img-20.jpg differ diff --git a/public/media/stock/600x600/img-21.jpg b/public/media/stock/600x600/img-21.jpg new file mode 100644 index 0000000..1d49ce8 Binary files /dev/null and b/public/media/stock/600x600/img-21.jpg differ diff --git a/public/media/stock/600x600/img-22.jpg b/public/media/stock/600x600/img-22.jpg new file mode 100644 index 0000000..ade59cf Binary files /dev/null and b/public/media/stock/600x600/img-22.jpg differ diff --git a/public/media/stock/600x600/img-23.jpg b/public/media/stock/600x600/img-23.jpg new file mode 100644 index 0000000..0f41eda Binary files /dev/null and b/public/media/stock/600x600/img-23.jpg differ diff --git a/public/media/stock/600x600/img-24.jpg b/public/media/stock/600x600/img-24.jpg new file mode 100644 index 0000000..9a6ef48 Binary files /dev/null and b/public/media/stock/600x600/img-24.jpg differ diff --git a/public/media/stock/600x600/img-25.jpg b/public/media/stock/600x600/img-25.jpg new file mode 100644 index 0000000..4c7b6f6 Binary files /dev/null and b/public/media/stock/600x600/img-25.jpg differ diff --git a/public/media/stock/600x600/img-26.jpg b/public/media/stock/600x600/img-26.jpg new file mode 100644 index 0000000..eadc1fe Binary files /dev/null and b/public/media/stock/600x600/img-26.jpg differ diff --git a/public/media/stock/600x600/img-27.jpg b/public/media/stock/600x600/img-27.jpg new file mode 100644 index 0000000..5772e4f Binary files /dev/null and b/public/media/stock/600x600/img-27.jpg differ diff --git a/public/media/stock/600x600/img-28.jpg b/public/media/stock/600x600/img-28.jpg new file mode 100644 index 0000000..4532b3c Binary files /dev/null and b/public/media/stock/600x600/img-28.jpg differ diff --git a/public/media/stock/600x600/img-29.jpg b/public/media/stock/600x600/img-29.jpg new file mode 100644 index 0000000..ea90a93 Binary files /dev/null and b/public/media/stock/600x600/img-29.jpg differ diff --git a/public/media/stock/600x600/img-3.jpg b/public/media/stock/600x600/img-3.jpg new file mode 100644 index 0000000..dc03a7a Binary files /dev/null and b/public/media/stock/600x600/img-3.jpg differ diff --git a/public/media/stock/600x600/img-30.jpg b/public/media/stock/600x600/img-30.jpg new file mode 100644 index 0000000..8039993 Binary files /dev/null and b/public/media/stock/600x600/img-30.jpg differ diff --git a/public/media/stock/600x600/img-31.jpg b/public/media/stock/600x600/img-31.jpg new file mode 100644 index 0000000..903eb2c Binary files /dev/null and b/public/media/stock/600x600/img-31.jpg differ diff --git a/public/media/stock/600x600/img-32.jpg b/public/media/stock/600x600/img-32.jpg new file mode 100644 index 0000000..b5ea630 Binary files /dev/null and b/public/media/stock/600x600/img-32.jpg differ diff --git a/public/media/stock/600x600/img-33.jpg b/public/media/stock/600x600/img-33.jpg new file mode 100644 index 0000000..e20ac2b Binary files /dev/null and b/public/media/stock/600x600/img-33.jpg differ diff --git a/public/media/stock/600x600/img-34.jpg b/public/media/stock/600x600/img-34.jpg new file mode 100644 index 0000000..c7d5eab Binary files /dev/null and b/public/media/stock/600x600/img-34.jpg differ diff --git a/public/media/stock/600x600/img-35.jpg b/public/media/stock/600x600/img-35.jpg new file mode 100644 index 0000000..e8af252 Binary files /dev/null and b/public/media/stock/600x600/img-35.jpg differ diff --git a/public/media/stock/600x600/img-36.jpg b/public/media/stock/600x600/img-36.jpg new file mode 100644 index 0000000..c372715 Binary files /dev/null and b/public/media/stock/600x600/img-36.jpg differ diff --git a/public/media/stock/600x600/img-37.jpg b/public/media/stock/600x600/img-37.jpg new file mode 100644 index 0000000..be8268c Binary files /dev/null and b/public/media/stock/600x600/img-37.jpg differ diff --git a/public/media/stock/600x600/img-38.jpg b/public/media/stock/600x600/img-38.jpg new file mode 100644 index 0000000..dab6586 Binary files /dev/null and b/public/media/stock/600x600/img-38.jpg differ diff --git a/public/media/stock/600x600/img-39.jpg b/public/media/stock/600x600/img-39.jpg new file mode 100644 index 0000000..058f5d6 Binary files /dev/null and b/public/media/stock/600x600/img-39.jpg differ diff --git a/public/media/stock/600x600/img-4.jpg b/public/media/stock/600x600/img-4.jpg new file mode 100644 index 0000000..afb4b42 Binary files /dev/null and b/public/media/stock/600x600/img-4.jpg differ diff --git a/public/media/stock/600x600/img-40.jpg b/public/media/stock/600x600/img-40.jpg new file mode 100644 index 0000000..78eccfd Binary files /dev/null and b/public/media/stock/600x600/img-40.jpg differ diff --git a/public/media/stock/600x600/img-41.jpg b/public/media/stock/600x600/img-41.jpg new file mode 100644 index 0000000..952c4a4 Binary files /dev/null and b/public/media/stock/600x600/img-41.jpg differ diff --git a/public/media/stock/600x600/img-42.jpg b/public/media/stock/600x600/img-42.jpg new file mode 100644 index 0000000..41b1056 Binary files /dev/null and b/public/media/stock/600x600/img-42.jpg differ diff --git a/public/media/stock/600x600/img-43.jpg b/public/media/stock/600x600/img-43.jpg new file mode 100644 index 0000000..9238c6d Binary files /dev/null and b/public/media/stock/600x600/img-43.jpg differ diff --git a/public/media/stock/600x600/img-44.jpg b/public/media/stock/600x600/img-44.jpg new file mode 100644 index 0000000..95f76d7 Binary files /dev/null and b/public/media/stock/600x600/img-44.jpg differ diff --git a/public/media/stock/600x600/img-45.jpg b/public/media/stock/600x600/img-45.jpg new file mode 100644 index 0000000..3403900 Binary files /dev/null and b/public/media/stock/600x600/img-45.jpg differ diff --git a/public/media/stock/600x600/img-46.jpg b/public/media/stock/600x600/img-46.jpg new file mode 100644 index 0000000..919e8c3 Binary files /dev/null and b/public/media/stock/600x600/img-46.jpg differ diff --git a/public/media/stock/600x600/img-47.jpg b/public/media/stock/600x600/img-47.jpg new file mode 100644 index 0000000..3edc317 Binary files /dev/null and b/public/media/stock/600x600/img-47.jpg differ diff --git a/public/media/stock/600x600/img-48.jpg b/public/media/stock/600x600/img-48.jpg new file mode 100644 index 0000000..58fd75c Binary files /dev/null and b/public/media/stock/600x600/img-48.jpg differ diff --git a/public/media/stock/600x600/img-49.jpg b/public/media/stock/600x600/img-49.jpg new file mode 100644 index 0000000..3b719b3 Binary files /dev/null and b/public/media/stock/600x600/img-49.jpg differ diff --git a/public/media/stock/600x600/img-5.jpg b/public/media/stock/600x600/img-5.jpg new file mode 100644 index 0000000..7e414ba Binary files /dev/null and b/public/media/stock/600x600/img-5.jpg differ diff --git a/public/media/stock/600x600/img-50.jpg b/public/media/stock/600x600/img-50.jpg new file mode 100644 index 0000000..bd9aefe Binary files /dev/null and b/public/media/stock/600x600/img-50.jpg differ diff --git a/public/media/stock/600x600/img-51.jpg b/public/media/stock/600x600/img-51.jpg new file mode 100644 index 0000000..8d0b051 Binary files /dev/null and b/public/media/stock/600x600/img-51.jpg differ diff --git a/public/media/stock/600x600/img-52.jpg b/public/media/stock/600x600/img-52.jpg new file mode 100644 index 0000000..b5ebb7b Binary files /dev/null and b/public/media/stock/600x600/img-52.jpg differ diff --git a/public/media/stock/600x600/img-53.jpg b/public/media/stock/600x600/img-53.jpg new file mode 100644 index 0000000..922d507 Binary files /dev/null and b/public/media/stock/600x600/img-53.jpg differ diff --git a/public/media/stock/600x600/img-54.jpg b/public/media/stock/600x600/img-54.jpg new file mode 100644 index 0000000..6411de6 Binary files /dev/null and b/public/media/stock/600x600/img-54.jpg differ diff --git a/public/media/stock/600x600/img-55.jpg b/public/media/stock/600x600/img-55.jpg new file mode 100644 index 0000000..0aefac1 Binary files /dev/null and b/public/media/stock/600x600/img-55.jpg differ diff --git a/public/media/stock/600x600/img-56.jpg b/public/media/stock/600x600/img-56.jpg new file mode 100644 index 0000000..cb62338 Binary files /dev/null and b/public/media/stock/600x600/img-56.jpg differ diff --git a/public/media/stock/600x600/img-57.jpg b/public/media/stock/600x600/img-57.jpg new file mode 100644 index 0000000..af3699f Binary files /dev/null and b/public/media/stock/600x600/img-57.jpg differ diff --git a/public/media/stock/600x600/img-58.jpg b/public/media/stock/600x600/img-58.jpg new file mode 100644 index 0000000..75329e8 Binary files /dev/null and b/public/media/stock/600x600/img-58.jpg differ diff --git a/public/media/stock/600x600/img-59.jpg b/public/media/stock/600x600/img-59.jpg new file mode 100644 index 0000000..5091b32 Binary files /dev/null and b/public/media/stock/600x600/img-59.jpg differ diff --git a/public/media/stock/600x600/img-6.jpg b/public/media/stock/600x600/img-6.jpg new file mode 100644 index 0000000..609f70e Binary files /dev/null and b/public/media/stock/600x600/img-6.jpg differ diff --git a/public/media/stock/600x600/img-60.jpg b/public/media/stock/600x600/img-60.jpg new file mode 100644 index 0000000..31fb308 Binary files /dev/null and b/public/media/stock/600x600/img-60.jpg differ diff --git a/public/media/stock/600x600/img-61.jpg b/public/media/stock/600x600/img-61.jpg new file mode 100644 index 0000000..7f1e042 Binary files /dev/null and b/public/media/stock/600x600/img-61.jpg differ diff --git a/public/media/stock/600x600/img-62.jpg b/public/media/stock/600x600/img-62.jpg new file mode 100644 index 0000000..9f36973 Binary files /dev/null and b/public/media/stock/600x600/img-62.jpg differ diff --git a/public/media/stock/600x600/img-63.jpg b/public/media/stock/600x600/img-63.jpg new file mode 100644 index 0000000..3892ca9 Binary files /dev/null and b/public/media/stock/600x600/img-63.jpg differ diff --git a/public/media/stock/600x600/img-64.jpg b/public/media/stock/600x600/img-64.jpg new file mode 100644 index 0000000..7f90d13 Binary files /dev/null and b/public/media/stock/600x600/img-64.jpg differ diff --git a/public/media/stock/600x600/img-65.jpg b/public/media/stock/600x600/img-65.jpg new file mode 100644 index 0000000..9b88e74 Binary files /dev/null and b/public/media/stock/600x600/img-65.jpg differ diff --git a/public/media/stock/600x600/img-66.jpg b/public/media/stock/600x600/img-66.jpg new file mode 100644 index 0000000..3509fa2 Binary files /dev/null and b/public/media/stock/600x600/img-66.jpg differ diff --git a/public/media/stock/600x600/img-67.jpg b/public/media/stock/600x600/img-67.jpg new file mode 100644 index 0000000..cc8d670 Binary files /dev/null and b/public/media/stock/600x600/img-67.jpg differ diff --git a/public/media/stock/600x600/img-68.jpg b/public/media/stock/600x600/img-68.jpg new file mode 100644 index 0000000..af7402c Binary files /dev/null and b/public/media/stock/600x600/img-68.jpg differ diff --git a/public/media/stock/600x600/img-69.jpg b/public/media/stock/600x600/img-69.jpg new file mode 100644 index 0000000..129555e Binary files /dev/null and b/public/media/stock/600x600/img-69.jpg differ diff --git a/public/media/stock/600x600/img-7.jpg b/public/media/stock/600x600/img-7.jpg new file mode 100644 index 0000000..8ce34d2 Binary files /dev/null and b/public/media/stock/600x600/img-7.jpg differ diff --git a/public/media/stock/600x600/img-70.jpg b/public/media/stock/600x600/img-70.jpg new file mode 100644 index 0000000..8606efe Binary files /dev/null and b/public/media/stock/600x600/img-70.jpg differ diff --git a/public/media/stock/600x600/img-71.jpg b/public/media/stock/600x600/img-71.jpg new file mode 100644 index 0000000..082e4be Binary files /dev/null and b/public/media/stock/600x600/img-71.jpg differ diff --git a/public/media/stock/600x600/img-72.jpg b/public/media/stock/600x600/img-72.jpg new file mode 100644 index 0000000..ca9e3d9 Binary files /dev/null and b/public/media/stock/600x600/img-72.jpg differ diff --git a/public/media/stock/600x600/img-73.jpg b/public/media/stock/600x600/img-73.jpg new file mode 100644 index 0000000..4064a26 Binary files /dev/null and b/public/media/stock/600x600/img-73.jpg differ diff --git a/public/media/stock/600x600/img-74.jpg b/public/media/stock/600x600/img-74.jpg new file mode 100644 index 0000000..d03cb5c Binary files /dev/null and b/public/media/stock/600x600/img-74.jpg differ diff --git a/public/media/stock/600x600/img-75.jpg b/public/media/stock/600x600/img-75.jpg new file mode 100644 index 0000000..907ef5b Binary files /dev/null and b/public/media/stock/600x600/img-75.jpg differ diff --git a/public/media/stock/600x600/img-76.jpg b/public/media/stock/600x600/img-76.jpg new file mode 100644 index 0000000..77ae352 Binary files /dev/null and b/public/media/stock/600x600/img-76.jpg differ diff --git a/public/media/stock/600x600/img-77.jpg b/public/media/stock/600x600/img-77.jpg new file mode 100644 index 0000000..056ecdb Binary files /dev/null and b/public/media/stock/600x600/img-77.jpg differ diff --git a/public/media/stock/600x600/img-78.jpg b/public/media/stock/600x600/img-78.jpg new file mode 100644 index 0000000..e4fd334 Binary files /dev/null and b/public/media/stock/600x600/img-78.jpg differ diff --git a/public/media/stock/600x600/img-79.jpg b/public/media/stock/600x600/img-79.jpg new file mode 100644 index 0000000..6c50f05 Binary files /dev/null and b/public/media/stock/600x600/img-79.jpg differ diff --git a/public/media/stock/600x600/img-8.jpg b/public/media/stock/600x600/img-8.jpg new file mode 100644 index 0000000..75a3554 Binary files /dev/null and b/public/media/stock/600x600/img-8.jpg differ diff --git a/public/media/stock/600x600/img-80.jpg b/public/media/stock/600x600/img-80.jpg new file mode 100644 index 0000000..d818f02 Binary files /dev/null and b/public/media/stock/600x600/img-80.jpg differ diff --git a/public/media/stock/600x600/img-81.jpg b/public/media/stock/600x600/img-81.jpg new file mode 100644 index 0000000..8560f8a Binary files /dev/null and b/public/media/stock/600x600/img-81.jpg differ diff --git a/public/media/stock/600x600/img-82.jpg b/public/media/stock/600x600/img-82.jpg new file mode 100644 index 0000000..af2ba8b Binary files /dev/null and b/public/media/stock/600x600/img-82.jpg differ diff --git a/public/media/stock/600x600/img-83.jpg b/public/media/stock/600x600/img-83.jpg new file mode 100644 index 0000000..6bdadfa Binary files /dev/null and b/public/media/stock/600x600/img-83.jpg differ diff --git a/public/media/stock/600x600/img-84.jpg b/public/media/stock/600x600/img-84.jpg new file mode 100644 index 0000000..6d32e64 Binary files /dev/null and b/public/media/stock/600x600/img-84.jpg differ diff --git a/public/media/stock/600x600/img-85.jpg b/public/media/stock/600x600/img-85.jpg new file mode 100644 index 0000000..16ef25d Binary files /dev/null and b/public/media/stock/600x600/img-85.jpg differ diff --git a/public/media/stock/600x600/img-86.jpg b/public/media/stock/600x600/img-86.jpg new file mode 100644 index 0000000..48d7795 Binary files /dev/null and b/public/media/stock/600x600/img-86.jpg differ diff --git a/public/media/stock/600x600/img-9.jpg b/public/media/stock/600x600/img-9.jpg new file mode 100644 index 0000000..6cf2d66 Binary files /dev/null and b/public/media/stock/600x600/img-9.jpg differ diff --git a/public/media/stock/900x600/1.jpg b/public/media/stock/900x600/1.jpg new file mode 100644 index 0000000..ac004c7 Binary files /dev/null and b/public/media/stock/900x600/1.jpg differ diff --git a/public/media/stock/900x600/10.jpg b/public/media/stock/900x600/10.jpg new file mode 100644 index 0000000..a628c57 Binary files /dev/null and b/public/media/stock/900x600/10.jpg differ diff --git a/public/media/stock/900x600/11.jpg b/public/media/stock/900x600/11.jpg new file mode 100644 index 0000000..668cb8e Binary files /dev/null and b/public/media/stock/900x600/11.jpg differ diff --git a/public/media/stock/900x600/12.jpg b/public/media/stock/900x600/12.jpg new file mode 100644 index 0000000..2c8f304 Binary files /dev/null and b/public/media/stock/900x600/12.jpg differ diff --git a/public/media/stock/900x600/13.jpg b/public/media/stock/900x600/13.jpg new file mode 100644 index 0000000..bd6b3ea Binary files /dev/null and b/public/media/stock/900x600/13.jpg differ diff --git a/public/media/stock/900x600/14.jpg b/public/media/stock/900x600/14.jpg new file mode 100644 index 0000000..b535839 Binary files /dev/null and b/public/media/stock/900x600/14.jpg differ diff --git a/public/media/stock/900x600/15.jpg b/public/media/stock/900x600/15.jpg new file mode 100644 index 0000000..eaf8461 Binary files /dev/null and b/public/media/stock/900x600/15.jpg differ diff --git a/public/media/stock/900x600/16.jpg b/public/media/stock/900x600/16.jpg new file mode 100644 index 0000000..45600c4 Binary files /dev/null and b/public/media/stock/900x600/16.jpg differ diff --git a/public/media/stock/900x600/17.jpg b/public/media/stock/900x600/17.jpg new file mode 100644 index 0000000..a3d668f Binary files /dev/null and b/public/media/stock/900x600/17.jpg differ diff --git a/public/media/stock/900x600/18.jpg b/public/media/stock/900x600/18.jpg new file mode 100644 index 0000000..e17a426 Binary files /dev/null and b/public/media/stock/900x600/18.jpg differ diff --git a/public/media/stock/900x600/19.jpg b/public/media/stock/900x600/19.jpg new file mode 100644 index 0000000..6bf03f3 Binary files /dev/null and b/public/media/stock/900x600/19.jpg differ diff --git a/public/media/stock/900x600/2.jpg b/public/media/stock/900x600/2.jpg new file mode 100644 index 0000000..4dbe027 Binary files /dev/null and b/public/media/stock/900x600/2.jpg differ diff --git a/public/media/stock/900x600/20.jpg b/public/media/stock/900x600/20.jpg new file mode 100644 index 0000000..6ce8769 Binary files /dev/null and b/public/media/stock/900x600/20.jpg differ diff --git a/public/media/stock/900x600/21.jpg b/public/media/stock/900x600/21.jpg new file mode 100644 index 0000000..8da7cfb Binary files /dev/null and b/public/media/stock/900x600/21.jpg differ diff --git a/public/media/stock/900x600/22.jpg b/public/media/stock/900x600/22.jpg new file mode 100644 index 0000000..25bef26 Binary files /dev/null and b/public/media/stock/900x600/22.jpg differ diff --git a/public/media/stock/900x600/23.jpg b/public/media/stock/900x600/23.jpg new file mode 100644 index 0000000..997dc9b Binary files /dev/null and b/public/media/stock/900x600/23.jpg differ diff --git a/public/media/stock/900x600/24.jpg b/public/media/stock/900x600/24.jpg new file mode 100644 index 0000000..29ee330 Binary files /dev/null and b/public/media/stock/900x600/24.jpg differ diff --git a/public/media/stock/900x600/25.jpg b/public/media/stock/900x600/25.jpg new file mode 100644 index 0000000..35246d1 Binary files /dev/null and b/public/media/stock/900x600/25.jpg differ diff --git a/public/media/stock/900x600/26.jpg b/public/media/stock/900x600/26.jpg new file mode 100644 index 0000000..eb0014a Binary files /dev/null and b/public/media/stock/900x600/26.jpg differ diff --git a/public/media/stock/900x600/27.jpg b/public/media/stock/900x600/27.jpg new file mode 100644 index 0000000..5409ff9 Binary files /dev/null and b/public/media/stock/900x600/27.jpg differ diff --git a/public/media/stock/900x600/28.jpg b/public/media/stock/900x600/28.jpg new file mode 100644 index 0000000..2d5e11e Binary files /dev/null and b/public/media/stock/900x600/28.jpg differ diff --git a/public/media/stock/900x600/29.jpg b/public/media/stock/900x600/29.jpg new file mode 100644 index 0000000..9f2f51e Binary files /dev/null and b/public/media/stock/900x600/29.jpg differ diff --git a/public/media/stock/900x600/3.jpg b/public/media/stock/900x600/3.jpg new file mode 100644 index 0000000..fd4c4b4 Binary files /dev/null and b/public/media/stock/900x600/3.jpg differ diff --git a/public/media/stock/900x600/30.jpg b/public/media/stock/900x600/30.jpg new file mode 100644 index 0000000..ef3337a Binary files /dev/null and b/public/media/stock/900x600/30.jpg differ diff --git a/public/media/stock/900x600/31.jpg b/public/media/stock/900x600/31.jpg new file mode 100644 index 0000000..31fe07e Binary files /dev/null and b/public/media/stock/900x600/31.jpg differ diff --git a/public/media/stock/900x600/32.jpg b/public/media/stock/900x600/32.jpg new file mode 100644 index 0000000..c4c3e5d Binary files /dev/null and b/public/media/stock/900x600/32.jpg differ diff --git a/public/media/stock/900x600/33.jpg b/public/media/stock/900x600/33.jpg new file mode 100644 index 0000000..037d4ab Binary files /dev/null and b/public/media/stock/900x600/33.jpg differ diff --git a/public/media/stock/900x600/34.jpg b/public/media/stock/900x600/34.jpg new file mode 100644 index 0000000..0d5e7d2 Binary files /dev/null and b/public/media/stock/900x600/34.jpg differ diff --git a/public/media/stock/900x600/35.jpg b/public/media/stock/900x600/35.jpg new file mode 100644 index 0000000..29eaf9d Binary files /dev/null and b/public/media/stock/900x600/35.jpg differ diff --git a/public/media/stock/900x600/36.jpg b/public/media/stock/900x600/36.jpg new file mode 100644 index 0000000..0daa006 Binary files /dev/null and b/public/media/stock/900x600/36.jpg differ diff --git a/public/media/stock/900x600/37.jpg b/public/media/stock/900x600/37.jpg new file mode 100644 index 0000000..ed936f9 Binary files /dev/null and b/public/media/stock/900x600/37.jpg differ diff --git a/public/media/stock/900x600/38.jpg b/public/media/stock/900x600/38.jpg new file mode 100644 index 0000000..083b9bc Binary files /dev/null and b/public/media/stock/900x600/38.jpg differ diff --git a/public/media/stock/900x600/39.jpg b/public/media/stock/900x600/39.jpg new file mode 100644 index 0000000..cf39d80 Binary files /dev/null and b/public/media/stock/900x600/39.jpg differ diff --git a/public/media/stock/900x600/4.jpg b/public/media/stock/900x600/4.jpg new file mode 100644 index 0000000..3a95fb2 Binary files /dev/null and b/public/media/stock/900x600/4.jpg differ diff --git a/public/media/stock/900x600/40.jpg b/public/media/stock/900x600/40.jpg new file mode 100644 index 0000000..fb5293d Binary files /dev/null and b/public/media/stock/900x600/40.jpg differ diff --git a/public/media/stock/900x600/41.jpg b/public/media/stock/900x600/41.jpg new file mode 100644 index 0000000..d4fa1fa Binary files /dev/null and b/public/media/stock/900x600/41.jpg differ diff --git a/public/media/stock/900x600/42.jpg b/public/media/stock/900x600/42.jpg new file mode 100644 index 0000000..c8fdb06 Binary files /dev/null and b/public/media/stock/900x600/42.jpg differ diff --git a/public/media/stock/900x600/42.png b/public/media/stock/900x600/42.png new file mode 100644 index 0000000..43ef5de Binary files /dev/null and b/public/media/stock/900x600/42.png differ diff --git a/public/media/stock/900x600/43.jpg b/public/media/stock/900x600/43.jpg new file mode 100644 index 0000000..3ee4abb Binary files /dev/null and b/public/media/stock/900x600/43.jpg differ diff --git a/public/media/stock/900x600/44.jpg b/public/media/stock/900x600/44.jpg new file mode 100644 index 0000000..fa80881 Binary files /dev/null and b/public/media/stock/900x600/44.jpg differ diff --git a/public/media/stock/900x600/45.jpg b/public/media/stock/900x600/45.jpg new file mode 100644 index 0000000..d93cba2 Binary files /dev/null and b/public/media/stock/900x600/45.jpg differ diff --git a/public/media/stock/900x600/46.jpg b/public/media/stock/900x600/46.jpg new file mode 100644 index 0000000..9430fe9 Binary files /dev/null and b/public/media/stock/900x600/46.jpg differ diff --git a/public/media/stock/900x600/47.jpg b/public/media/stock/900x600/47.jpg new file mode 100644 index 0000000..e55709b Binary files /dev/null and b/public/media/stock/900x600/47.jpg differ diff --git a/public/media/stock/900x600/48.jpg b/public/media/stock/900x600/48.jpg new file mode 100644 index 0000000..059e3e2 Binary files /dev/null and b/public/media/stock/900x600/48.jpg differ diff --git a/public/media/stock/900x600/49.jpg b/public/media/stock/900x600/49.jpg new file mode 100644 index 0000000..4e0f76d Binary files /dev/null and b/public/media/stock/900x600/49.jpg differ diff --git a/public/media/stock/900x600/5.jpg b/public/media/stock/900x600/5.jpg new file mode 100644 index 0000000..22b653c Binary files /dev/null and b/public/media/stock/900x600/5.jpg differ diff --git a/public/media/stock/900x600/50.jpg b/public/media/stock/900x600/50.jpg new file mode 100644 index 0000000..1ac93b2 Binary files /dev/null and b/public/media/stock/900x600/50.jpg differ diff --git a/public/media/stock/900x600/51.jpg b/public/media/stock/900x600/51.jpg new file mode 100644 index 0000000..1ff4a44 Binary files /dev/null and b/public/media/stock/900x600/51.jpg differ diff --git a/public/media/stock/900x600/52.jpg b/public/media/stock/900x600/52.jpg new file mode 100644 index 0000000..e2d6b97 Binary files /dev/null and b/public/media/stock/900x600/52.jpg differ diff --git a/public/media/stock/900x600/53.jpg b/public/media/stock/900x600/53.jpg new file mode 100644 index 0000000..c5072dc Binary files /dev/null and b/public/media/stock/900x600/53.jpg differ diff --git a/public/media/stock/900x600/54.jpg b/public/media/stock/900x600/54.jpg new file mode 100644 index 0000000..8182faf Binary files /dev/null and b/public/media/stock/900x600/54.jpg differ diff --git a/public/media/stock/900x600/55.jpg b/public/media/stock/900x600/55.jpg new file mode 100644 index 0000000..293ae7b Binary files /dev/null and b/public/media/stock/900x600/55.jpg differ diff --git a/public/media/stock/900x600/56.jpg b/public/media/stock/900x600/56.jpg new file mode 100644 index 0000000..fa60fea Binary files /dev/null and b/public/media/stock/900x600/56.jpg differ diff --git a/public/media/stock/900x600/57.jpg b/public/media/stock/900x600/57.jpg new file mode 100644 index 0000000..de27500 Binary files /dev/null and b/public/media/stock/900x600/57.jpg differ diff --git a/public/media/stock/900x600/58.jpg b/public/media/stock/900x600/58.jpg new file mode 100644 index 0000000..7e23950 Binary files /dev/null and b/public/media/stock/900x600/58.jpg differ diff --git a/public/media/stock/900x600/59.jpg b/public/media/stock/900x600/59.jpg new file mode 100644 index 0000000..ea44cd1 Binary files /dev/null and b/public/media/stock/900x600/59.jpg differ diff --git a/public/media/stock/900x600/6.jpg b/public/media/stock/900x600/6.jpg new file mode 100644 index 0000000..867c661 Binary files /dev/null and b/public/media/stock/900x600/6.jpg differ diff --git a/public/media/stock/900x600/60.jpg b/public/media/stock/900x600/60.jpg new file mode 100644 index 0000000..ab29dcc Binary files /dev/null and b/public/media/stock/900x600/60.jpg differ diff --git a/public/media/stock/900x600/61.jpg b/public/media/stock/900x600/61.jpg new file mode 100644 index 0000000..900127a Binary files /dev/null and b/public/media/stock/900x600/61.jpg differ diff --git a/public/media/stock/900x600/62.jpg b/public/media/stock/900x600/62.jpg new file mode 100644 index 0000000..b4e268e Binary files /dev/null and b/public/media/stock/900x600/62.jpg differ diff --git a/public/media/stock/900x600/63.jpg b/public/media/stock/900x600/63.jpg new file mode 100644 index 0000000..b7d2208 Binary files /dev/null and b/public/media/stock/900x600/63.jpg differ diff --git a/public/media/stock/900x600/64.jpg b/public/media/stock/900x600/64.jpg new file mode 100644 index 0000000..24415f3 Binary files /dev/null and b/public/media/stock/900x600/64.jpg differ diff --git a/public/media/stock/900x600/65.jpg b/public/media/stock/900x600/65.jpg new file mode 100644 index 0000000..ca8cd5a Binary files /dev/null and b/public/media/stock/900x600/65.jpg differ diff --git a/public/media/stock/900x600/66.jpg b/public/media/stock/900x600/66.jpg new file mode 100644 index 0000000..86561db Binary files /dev/null and b/public/media/stock/900x600/66.jpg differ diff --git a/public/media/stock/900x600/67.jpg b/public/media/stock/900x600/67.jpg new file mode 100644 index 0000000..3d692e7 Binary files /dev/null and b/public/media/stock/900x600/67.jpg differ diff --git a/public/media/stock/900x600/68.jpg b/public/media/stock/900x600/68.jpg new file mode 100644 index 0000000..597ceb6 Binary files /dev/null and b/public/media/stock/900x600/68.jpg differ diff --git a/public/media/stock/900x600/69.jpg b/public/media/stock/900x600/69.jpg new file mode 100644 index 0000000..61f7e76 Binary files /dev/null and b/public/media/stock/900x600/69.jpg differ diff --git a/public/media/stock/900x600/7.jpg b/public/media/stock/900x600/7.jpg new file mode 100644 index 0000000..4438cf8 Binary files /dev/null and b/public/media/stock/900x600/7.jpg differ diff --git a/public/media/stock/900x600/70.jpg b/public/media/stock/900x600/70.jpg new file mode 100644 index 0000000..ff19f45 Binary files /dev/null and b/public/media/stock/900x600/70.jpg differ diff --git a/public/media/stock/900x600/71.jpg b/public/media/stock/900x600/71.jpg new file mode 100644 index 0000000..a525b18 Binary files /dev/null and b/public/media/stock/900x600/71.jpg differ diff --git a/public/media/stock/900x600/72.jpg b/public/media/stock/900x600/72.jpg new file mode 100644 index 0000000..65a672e Binary files /dev/null and b/public/media/stock/900x600/72.jpg differ diff --git a/public/media/stock/900x600/73.jpg b/public/media/stock/900x600/73.jpg new file mode 100644 index 0000000..d4dba21 Binary files /dev/null and b/public/media/stock/900x600/73.jpg differ diff --git a/public/media/stock/900x600/74.jpg b/public/media/stock/900x600/74.jpg new file mode 100644 index 0000000..742a882 Binary files /dev/null and b/public/media/stock/900x600/74.jpg differ diff --git a/public/media/stock/900x600/75.jpg b/public/media/stock/900x600/75.jpg new file mode 100644 index 0000000..b548a00 Binary files /dev/null and b/public/media/stock/900x600/75.jpg differ diff --git a/public/media/stock/900x600/76.jpg b/public/media/stock/900x600/76.jpg new file mode 100644 index 0000000..e5e45c8 Binary files /dev/null and b/public/media/stock/900x600/76.jpg differ diff --git a/public/media/stock/900x600/77.jpg b/public/media/stock/900x600/77.jpg new file mode 100644 index 0000000..ca3400b Binary files /dev/null and b/public/media/stock/900x600/77.jpg differ diff --git a/public/media/stock/900x600/78.jpg b/public/media/stock/900x600/78.jpg new file mode 100644 index 0000000..c4ecba0 Binary files /dev/null and b/public/media/stock/900x600/78.jpg differ diff --git a/public/media/stock/900x600/79.jpg b/public/media/stock/900x600/79.jpg new file mode 100644 index 0000000..2a326e0 Binary files /dev/null and b/public/media/stock/900x600/79.jpg differ diff --git a/public/media/stock/900x600/8.jpg b/public/media/stock/900x600/8.jpg new file mode 100644 index 0000000..ee431e8 Binary files /dev/null and b/public/media/stock/900x600/8.jpg differ diff --git a/public/media/stock/900x600/80.jpg b/public/media/stock/900x600/80.jpg new file mode 100644 index 0000000..e01346d Binary files /dev/null and b/public/media/stock/900x600/80.jpg differ diff --git a/public/media/stock/900x600/81.jpg b/public/media/stock/900x600/81.jpg new file mode 100644 index 0000000..740d298 Binary files /dev/null and b/public/media/stock/900x600/81.jpg differ diff --git a/public/media/stock/900x600/82.jpg b/public/media/stock/900x600/82.jpg new file mode 100644 index 0000000..a1b6971 Binary files /dev/null and b/public/media/stock/900x600/82.jpg differ diff --git a/public/media/stock/900x600/83.jpg b/public/media/stock/900x600/83.jpg new file mode 100644 index 0000000..36adc0b Binary files /dev/null and b/public/media/stock/900x600/83.jpg differ diff --git a/public/media/stock/900x600/84.jpg b/public/media/stock/900x600/84.jpg new file mode 100644 index 0000000..1c14bc0 Binary files /dev/null and b/public/media/stock/900x600/84.jpg differ diff --git a/public/media/stock/900x600/85.jpg b/public/media/stock/900x600/85.jpg new file mode 100644 index 0000000..5069d06 Binary files /dev/null and b/public/media/stock/900x600/85.jpg differ diff --git a/public/media/stock/900x600/9.jpg b/public/media/stock/900x600/9.jpg new file mode 100644 index 0000000..6f53b11 Binary files /dev/null and b/public/media/stock/900x600/9.jpg differ diff --git a/public/media/stock/ecommerce/1.gif b/public/media/stock/ecommerce/1.gif new file mode 100644 index 0000000..4d53d79 Binary files /dev/null and b/public/media/stock/ecommerce/1.gif differ diff --git a/public/media/stock/ecommerce/10.gif b/public/media/stock/ecommerce/10.gif new file mode 100644 index 0000000..df7ab0e Binary files /dev/null and b/public/media/stock/ecommerce/10.gif differ diff --git a/public/media/stock/ecommerce/100.gif b/public/media/stock/ecommerce/100.gif new file mode 100644 index 0000000..be8a013 Binary files /dev/null and b/public/media/stock/ecommerce/100.gif differ diff --git a/public/media/stock/ecommerce/101.gif b/public/media/stock/ecommerce/101.gif new file mode 100644 index 0000000..0f9e195 Binary files /dev/null and b/public/media/stock/ecommerce/101.gif differ diff --git a/public/media/stock/ecommerce/102.gif b/public/media/stock/ecommerce/102.gif new file mode 100644 index 0000000..bc83d18 Binary files /dev/null and b/public/media/stock/ecommerce/102.gif differ diff --git a/public/media/stock/ecommerce/103.gif b/public/media/stock/ecommerce/103.gif new file mode 100644 index 0000000..6ab5ec1 Binary files /dev/null and b/public/media/stock/ecommerce/103.gif differ diff --git a/public/media/stock/ecommerce/104.gif b/public/media/stock/ecommerce/104.gif new file mode 100644 index 0000000..1a2f2d1 Binary files /dev/null and b/public/media/stock/ecommerce/104.gif differ diff --git a/public/media/stock/ecommerce/105.gif b/public/media/stock/ecommerce/105.gif new file mode 100644 index 0000000..bc4723c Binary files /dev/null and b/public/media/stock/ecommerce/105.gif differ diff --git a/public/media/stock/ecommerce/106.gif b/public/media/stock/ecommerce/106.gif new file mode 100644 index 0000000..216ef5f Binary files /dev/null and b/public/media/stock/ecommerce/106.gif differ diff --git a/public/media/stock/ecommerce/107.gif b/public/media/stock/ecommerce/107.gif new file mode 100644 index 0000000..105d1d6 Binary files /dev/null and b/public/media/stock/ecommerce/107.gif differ diff --git a/public/media/stock/ecommerce/108.gif b/public/media/stock/ecommerce/108.gif new file mode 100644 index 0000000..027e6be Binary files /dev/null and b/public/media/stock/ecommerce/108.gif differ diff --git a/public/media/stock/ecommerce/109.gif b/public/media/stock/ecommerce/109.gif new file mode 100644 index 0000000..eb14608 Binary files /dev/null and b/public/media/stock/ecommerce/109.gif differ diff --git a/public/media/stock/ecommerce/11.gif b/public/media/stock/ecommerce/11.gif new file mode 100644 index 0000000..2474ef2 Binary files /dev/null and b/public/media/stock/ecommerce/11.gif differ diff --git a/public/media/stock/ecommerce/110.gif b/public/media/stock/ecommerce/110.gif new file mode 100644 index 0000000..d4b2590 Binary files /dev/null and b/public/media/stock/ecommerce/110.gif differ diff --git a/public/media/stock/ecommerce/111.gif b/public/media/stock/ecommerce/111.gif new file mode 100644 index 0000000..a8b98cf Binary files /dev/null and b/public/media/stock/ecommerce/111.gif differ diff --git a/public/media/stock/ecommerce/112.gif b/public/media/stock/ecommerce/112.gif new file mode 100644 index 0000000..2bfe844 Binary files /dev/null and b/public/media/stock/ecommerce/112.gif differ diff --git a/public/media/stock/ecommerce/113.gif b/public/media/stock/ecommerce/113.gif new file mode 100644 index 0000000..595bd5d Binary files /dev/null and b/public/media/stock/ecommerce/113.gif differ diff --git a/public/media/stock/ecommerce/114.gif b/public/media/stock/ecommerce/114.gif new file mode 100644 index 0000000..a1f2c8e Binary files /dev/null and b/public/media/stock/ecommerce/114.gif differ diff --git a/public/media/stock/ecommerce/115.gif b/public/media/stock/ecommerce/115.gif new file mode 100644 index 0000000..ee3851e Binary files /dev/null and b/public/media/stock/ecommerce/115.gif differ diff --git a/public/media/stock/ecommerce/116.gif b/public/media/stock/ecommerce/116.gif new file mode 100644 index 0000000..8e502ec Binary files /dev/null and b/public/media/stock/ecommerce/116.gif differ diff --git a/public/media/stock/ecommerce/117.gif b/public/media/stock/ecommerce/117.gif new file mode 100644 index 0000000..747a0c3 Binary files /dev/null and b/public/media/stock/ecommerce/117.gif differ diff --git a/public/media/stock/ecommerce/118.gif b/public/media/stock/ecommerce/118.gif new file mode 100644 index 0000000..5480d1b Binary files /dev/null and b/public/media/stock/ecommerce/118.gif differ diff --git a/public/media/stock/ecommerce/119.gif b/public/media/stock/ecommerce/119.gif new file mode 100644 index 0000000..43013d5 Binary files /dev/null and b/public/media/stock/ecommerce/119.gif differ diff --git a/public/media/stock/ecommerce/12.gif b/public/media/stock/ecommerce/12.gif new file mode 100644 index 0000000..8e94726 Binary files /dev/null and b/public/media/stock/ecommerce/12.gif differ diff --git a/public/media/stock/ecommerce/120.gif b/public/media/stock/ecommerce/120.gif new file mode 100644 index 0000000..d423689 Binary files /dev/null and b/public/media/stock/ecommerce/120.gif differ diff --git a/public/media/stock/ecommerce/121.gif b/public/media/stock/ecommerce/121.gif new file mode 100644 index 0000000..c9e7262 Binary files /dev/null and b/public/media/stock/ecommerce/121.gif differ diff --git a/public/media/stock/ecommerce/122.gif b/public/media/stock/ecommerce/122.gif new file mode 100644 index 0000000..fb05fc1 Binary files /dev/null and b/public/media/stock/ecommerce/122.gif differ diff --git a/public/media/stock/ecommerce/123.gif b/public/media/stock/ecommerce/123.gif new file mode 100644 index 0000000..7413f2c Binary files /dev/null and b/public/media/stock/ecommerce/123.gif differ diff --git a/public/media/stock/ecommerce/124.gif b/public/media/stock/ecommerce/124.gif new file mode 100644 index 0000000..bb44f06 Binary files /dev/null and b/public/media/stock/ecommerce/124.gif differ diff --git a/public/media/stock/ecommerce/125.gif b/public/media/stock/ecommerce/125.gif new file mode 100644 index 0000000..c6c16c0 Binary files /dev/null and b/public/media/stock/ecommerce/125.gif differ diff --git a/public/media/stock/ecommerce/126.gif b/public/media/stock/ecommerce/126.gif new file mode 100644 index 0000000..10f8a7b Binary files /dev/null and b/public/media/stock/ecommerce/126.gif differ diff --git a/public/media/stock/ecommerce/127.gif b/public/media/stock/ecommerce/127.gif new file mode 100644 index 0000000..0bad8fd Binary files /dev/null and b/public/media/stock/ecommerce/127.gif differ diff --git a/public/media/stock/ecommerce/128.gif b/public/media/stock/ecommerce/128.gif new file mode 100644 index 0000000..cfd9626 Binary files /dev/null and b/public/media/stock/ecommerce/128.gif differ diff --git a/public/media/stock/ecommerce/129.gif b/public/media/stock/ecommerce/129.gif new file mode 100644 index 0000000..fd95d45 Binary files /dev/null and b/public/media/stock/ecommerce/129.gif differ diff --git a/public/media/stock/ecommerce/13.gif b/public/media/stock/ecommerce/13.gif new file mode 100644 index 0000000..9e5883a Binary files /dev/null and b/public/media/stock/ecommerce/13.gif differ diff --git a/public/media/stock/ecommerce/130.gif b/public/media/stock/ecommerce/130.gif new file mode 100644 index 0000000..63ebc71 Binary files /dev/null and b/public/media/stock/ecommerce/130.gif differ diff --git a/public/media/stock/ecommerce/131.gif b/public/media/stock/ecommerce/131.gif new file mode 100644 index 0000000..6ad2583 Binary files /dev/null and b/public/media/stock/ecommerce/131.gif differ diff --git a/public/media/stock/ecommerce/132.gif b/public/media/stock/ecommerce/132.gif new file mode 100644 index 0000000..74f8249 Binary files /dev/null and b/public/media/stock/ecommerce/132.gif differ diff --git a/public/media/stock/ecommerce/133.gif b/public/media/stock/ecommerce/133.gif new file mode 100644 index 0000000..db8e1f6 Binary files /dev/null and b/public/media/stock/ecommerce/133.gif differ diff --git a/public/media/stock/ecommerce/134.gif b/public/media/stock/ecommerce/134.gif new file mode 100644 index 0000000..677a3bc Binary files /dev/null and b/public/media/stock/ecommerce/134.gif differ diff --git a/public/media/stock/ecommerce/135.gif b/public/media/stock/ecommerce/135.gif new file mode 100644 index 0000000..a9c2a0d Binary files /dev/null and b/public/media/stock/ecommerce/135.gif differ diff --git a/public/media/stock/ecommerce/136.gif b/public/media/stock/ecommerce/136.gif new file mode 100644 index 0000000..5722bd7 Binary files /dev/null and b/public/media/stock/ecommerce/136.gif differ diff --git a/public/media/stock/ecommerce/137.gif b/public/media/stock/ecommerce/137.gif new file mode 100644 index 0000000..ca882d0 Binary files /dev/null and b/public/media/stock/ecommerce/137.gif differ diff --git a/public/media/stock/ecommerce/138.gif b/public/media/stock/ecommerce/138.gif new file mode 100644 index 0000000..bdcb69f Binary files /dev/null and b/public/media/stock/ecommerce/138.gif differ diff --git a/public/media/stock/ecommerce/139.gif b/public/media/stock/ecommerce/139.gif new file mode 100644 index 0000000..c21f809 Binary files /dev/null and b/public/media/stock/ecommerce/139.gif differ diff --git a/public/media/stock/ecommerce/14.gif b/public/media/stock/ecommerce/14.gif new file mode 100644 index 0000000..d57c86e Binary files /dev/null and b/public/media/stock/ecommerce/14.gif differ diff --git a/public/media/stock/ecommerce/140.gif b/public/media/stock/ecommerce/140.gif new file mode 100644 index 0000000..e9b4e98 Binary files /dev/null and b/public/media/stock/ecommerce/140.gif differ diff --git a/public/media/stock/ecommerce/141.gif b/public/media/stock/ecommerce/141.gif new file mode 100644 index 0000000..7580239 Binary files /dev/null and b/public/media/stock/ecommerce/141.gif differ diff --git a/public/media/stock/ecommerce/142.gif b/public/media/stock/ecommerce/142.gif new file mode 100644 index 0000000..f956dd2 Binary files /dev/null and b/public/media/stock/ecommerce/142.gif differ diff --git a/public/media/stock/ecommerce/143.gif b/public/media/stock/ecommerce/143.gif new file mode 100644 index 0000000..abc28ac Binary files /dev/null and b/public/media/stock/ecommerce/143.gif differ diff --git a/public/media/stock/ecommerce/145.gif b/public/media/stock/ecommerce/145.gif new file mode 100644 index 0000000..f897667 Binary files /dev/null and b/public/media/stock/ecommerce/145.gif differ diff --git a/public/media/stock/ecommerce/146.gif b/public/media/stock/ecommerce/146.gif new file mode 100644 index 0000000..443972a Binary files /dev/null and b/public/media/stock/ecommerce/146.gif differ diff --git a/public/media/stock/ecommerce/147.gif b/public/media/stock/ecommerce/147.gif new file mode 100644 index 0000000..6ef845f Binary files /dev/null and b/public/media/stock/ecommerce/147.gif differ diff --git a/public/media/stock/ecommerce/148.gif b/public/media/stock/ecommerce/148.gif new file mode 100644 index 0000000..3f19bc4 Binary files /dev/null and b/public/media/stock/ecommerce/148.gif differ diff --git a/public/media/stock/ecommerce/149.gif b/public/media/stock/ecommerce/149.gif new file mode 100644 index 0000000..d8c82b6 Binary files /dev/null and b/public/media/stock/ecommerce/149.gif differ diff --git a/public/media/stock/ecommerce/15.gif b/public/media/stock/ecommerce/15.gif new file mode 100644 index 0000000..203b565 Binary files /dev/null and b/public/media/stock/ecommerce/15.gif differ diff --git a/public/media/stock/ecommerce/150.gif b/public/media/stock/ecommerce/150.gif new file mode 100644 index 0000000..1e1ae4a Binary files /dev/null and b/public/media/stock/ecommerce/150.gif differ diff --git a/public/media/stock/ecommerce/151.gif b/public/media/stock/ecommerce/151.gif new file mode 100644 index 0000000..64da84e Binary files /dev/null and b/public/media/stock/ecommerce/151.gif differ diff --git a/public/media/stock/ecommerce/152.gif b/public/media/stock/ecommerce/152.gif new file mode 100644 index 0000000..5a14527 Binary files /dev/null and b/public/media/stock/ecommerce/152.gif differ diff --git a/public/media/stock/ecommerce/153.gif b/public/media/stock/ecommerce/153.gif new file mode 100644 index 0000000..022fef5 Binary files /dev/null and b/public/media/stock/ecommerce/153.gif differ diff --git a/public/media/stock/ecommerce/154.gif b/public/media/stock/ecommerce/154.gif new file mode 100644 index 0000000..78bdff1 Binary files /dev/null and b/public/media/stock/ecommerce/154.gif differ diff --git a/public/media/stock/ecommerce/155.gif b/public/media/stock/ecommerce/155.gif new file mode 100644 index 0000000..5cdca36 Binary files /dev/null and b/public/media/stock/ecommerce/155.gif differ diff --git a/public/media/stock/ecommerce/156.gif b/public/media/stock/ecommerce/156.gif new file mode 100644 index 0000000..70dbe3a Binary files /dev/null and b/public/media/stock/ecommerce/156.gif differ diff --git a/public/media/stock/ecommerce/157.gif b/public/media/stock/ecommerce/157.gif new file mode 100644 index 0000000..80066ac Binary files /dev/null and b/public/media/stock/ecommerce/157.gif differ diff --git a/public/media/stock/ecommerce/158.gif b/public/media/stock/ecommerce/158.gif new file mode 100644 index 0000000..0e8f80e Binary files /dev/null and b/public/media/stock/ecommerce/158.gif differ diff --git a/public/media/stock/ecommerce/159.gif b/public/media/stock/ecommerce/159.gif new file mode 100644 index 0000000..9136a73 Binary files /dev/null and b/public/media/stock/ecommerce/159.gif differ diff --git a/public/media/stock/ecommerce/16.gif b/public/media/stock/ecommerce/16.gif new file mode 100644 index 0000000..77b5b52 Binary files /dev/null and b/public/media/stock/ecommerce/16.gif differ diff --git a/public/media/stock/ecommerce/160.gif b/public/media/stock/ecommerce/160.gif new file mode 100644 index 0000000..22a9ad8 Binary files /dev/null and b/public/media/stock/ecommerce/160.gif differ diff --git a/public/media/stock/ecommerce/161.gif b/public/media/stock/ecommerce/161.gif new file mode 100644 index 0000000..2ab4fba Binary files /dev/null and b/public/media/stock/ecommerce/161.gif differ diff --git a/public/media/stock/ecommerce/162.gif b/public/media/stock/ecommerce/162.gif new file mode 100644 index 0000000..732d2f9 Binary files /dev/null and b/public/media/stock/ecommerce/162.gif differ diff --git a/public/media/stock/ecommerce/163.gif b/public/media/stock/ecommerce/163.gif new file mode 100644 index 0000000..b1094be Binary files /dev/null and b/public/media/stock/ecommerce/163.gif differ diff --git a/public/media/stock/ecommerce/164.gif b/public/media/stock/ecommerce/164.gif new file mode 100644 index 0000000..a0a5f51 Binary files /dev/null and b/public/media/stock/ecommerce/164.gif differ diff --git a/public/media/stock/ecommerce/168.gif b/public/media/stock/ecommerce/168.gif new file mode 100644 index 0000000..b127956 Binary files /dev/null and b/public/media/stock/ecommerce/168.gif differ diff --git a/public/media/stock/ecommerce/169.gif b/public/media/stock/ecommerce/169.gif new file mode 100644 index 0000000..b258458 Binary files /dev/null and b/public/media/stock/ecommerce/169.gif differ diff --git a/public/media/stock/ecommerce/17.gif b/public/media/stock/ecommerce/17.gif new file mode 100644 index 0000000..4dcfa59 Binary files /dev/null and b/public/media/stock/ecommerce/17.gif differ diff --git a/public/media/stock/ecommerce/170.gif b/public/media/stock/ecommerce/170.gif new file mode 100644 index 0000000..83e12d0 Binary files /dev/null and b/public/media/stock/ecommerce/170.gif differ diff --git a/public/media/stock/ecommerce/171.gif b/public/media/stock/ecommerce/171.gif new file mode 100644 index 0000000..c64c39f Binary files /dev/null and b/public/media/stock/ecommerce/171.gif differ diff --git a/public/media/stock/ecommerce/172.gif b/public/media/stock/ecommerce/172.gif new file mode 100644 index 0000000..43dd459 Binary files /dev/null and b/public/media/stock/ecommerce/172.gif differ diff --git a/public/media/stock/ecommerce/173.gif b/public/media/stock/ecommerce/173.gif new file mode 100644 index 0000000..16cfd09 Binary files /dev/null and b/public/media/stock/ecommerce/173.gif differ diff --git a/public/media/stock/ecommerce/174.gif b/public/media/stock/ecommerce/174.gif new file mode 100644 index 0000000..08faaf5 Binary files /dev/null and b/public/media/stock/ecommerce/174.gif differ diff --git a/public/media/stock/ecommerce/175.gif b/public/media/stock/ecommerce/175.gif new file mode 100644 index 0000000..76bd7e7 Binary files /dev/null and b/public/media/stock/ecommerce/175.gif differ diff --git a/public/media/stock/ecommerce/176.gif b/public/media/stock/ecommerce/176.gif new file mode 100644 index 0000000..30d50eb Binary files /dev/null and b/public/media/stock/ecommerce/176.gif differ diff --git a/public/media/stock/ecommerce/177.gif b/public/media/stock/ecommerce/177.gif new file mode 100644 index 0000000..2aca807 Binary files /dev/null and b/public/media/stock/ecommerce/177.gif differ diff --git a/public/media/stock/ecommerce/178.gif b/public/media/stock/ecommerce/178.gif new file mode 100644 index 0000000..ac5a7af Binary files /dev/null and b/public/media/stock/ecommerce/178.gif differ diff --git a/public/media/stock/ecommerce/179.gif b/public/media/stock/ecommerce/179.gif new file mode 100644 index 0000000..a825ab2 Binary files /dev/null and b/public/media/stock/ecommerce/179.gif differ diff --git a/public/media/stock/ecommerce/18.gif b/public/media/stock/ecommerce/18.gif new file mode 100644 index 0000000..551b637 Binary files /dev/null and b/public/media/stock/ecommerce/18.gif differ diff --git a/public/media/stock/ecommerce/180.gif b/public/media/stock/ecommerce/180.gif new file mode 100644 index 0000000..9a75ccd Binary files /dev/null and b/public/media/stock/ecommerce/180.gif differ diff --git a/public/media/stock/ecommerce/181.gif b/public/media/stock/ecommerce/181.gif new file mode 100644 index 0000000..63207a6 Binary files /dev/null and b/public/media/stock/ecommerce/181.gif differ diff --git a/public/media/stock/ecommerce/182.gif b/public/media/stock/ecommerce/182.gif new file mode 100644 index 0000000..12f41d2 Binary files /dev/null and b/public/media/stock/ecommerce/182.gif differ diff --git a/public/media/stock/ecommerce/183.gif b/public/media/stock/ecommerce/183.gif new file mode 100644 index 0000000..3ae13f0 Binary files /dev/null and b/public/media/stock/ecommerce/183.gif differ diff --git a/public/media/stock/ecommerce/184.gif b/public/media/stock/ecommerce/184.gif new file mode 100644 index 0000000..d6bbb45 Binary files /dev/null and b/public/media/stock/ecommerce/184.gif differ diff --git a/public/media/stock/ecommerce/185.gif b/public/media/stock/ecommerce/185.gif new file mode 100644 index 0000000..c9b75be Binary files /dev/null and b/public/media/stock/ecommerce/185.gif differ diff --git a/public/media/stock/ecommerce/186.gif b/public/media/stock/ecommerce/186.gif new file mode 100644 index 0000000..ac32cef Binary files /dev/null and b/public/media/stock/ecommerce/186.gif differ diff --git a/public/media/stock/ecommerce/189.gif b/public/media/stock/ecommerce/189.gif new file mode 100644 index 0000000..e23e46a Binary files /dev/null and b/public/media/stock/ecommerce/189.gif differ diff --git a/public/media/stock/ecommerce/19.gif b/public/media/stock/ecommerce/19.gif new file mode 100644 index 0000000..b6a048a Binary files /dev/null and b/public/media/stock/ecommerce/19.gif differ diff --git a/public/media/stock/ecommerce/190.gif b/public/media/stock/ecommerce/190.gif new file mode 100644 index 0000000..a4baff3 Binary files /dev/null and b/public/media/stock/ecommerce/190.gif differ diff --git a/public/media/stock/ecommerce/191.gif b/public/media/stock/ecommerce/191.gif new file mode 100644 index 0000000..ab67517 Binary files /dev/null and b/public/media/stock/ecommerce/191.gif differ diff --git a/public/media/stock/ecommerce/192.gif b/public/media/stock/ecommerce/192.gif new file mode 100644 index 0000000..88d4da4 Binary files /dev/null and b/public/media/stock/ecommerce/192.gif differ diff --git a/public/media/stock/ecommerce/193.gif b/public/media/stock/ecommerce/193.gif new file mode 100644 index 0000000..896fe2b Binary files /dev/null and b/public/media/stock/ecommerce/193.gif differ diff --git a/public/media/stock/ecommerce/194.gif b/public/media/stock/ecommerce/194.gif new file mode 100644 index 0000000..b7c46c0 Binary files /dev/null and b/public/media/stock/ecommerce/194.gif differ diff --git a/public/media/stock/ecommerce/195.gif b/public/media/stock/ecommerce/195.gif new file mode 100644 index 0000000..8f52ccc Binary files /dev/null and b/public/media/stock/ecommerce/195.gif differ diff --git a/public/media/stock/ecommerce/196.gif b/public/media/stock/ecommerce/196.gif new file mode 100644 index 0000000..ee5435b Binary files /dev/null and b/public/media/stock/ecommerce/196.gif differ diff --git a/public/media/stock/ecommerce/197.gif b/public/media/stock/ecommerce/197.gif new file mode 100644 index 0000000..f0d31b1 Binary files /dev/null and b/public/media/stock/ecommerce/197.gif differ diff --git a/public/media/stock/ecommerce/198.gif b/public/media/stock/ecommerce/198.gif new file mode 100644 index 0000000..d32fafe Binary files /dev/null and b/public/media/stock/ecommerce/198.gif differ diff --git a/public/media/stock/ecommerce/199.gif b/public/media/stock/ecommerce/199.gif new file mode 100644 index 0000000..9b59b5b Binary files /dev/null and b/public/media/stock/ecommerce/199.gif differ diff --git a/public/media/stock/ecommerce/2.gif b/public/media/stock/ecommerce/2.gif new file mode 100644 index 0000000..58d475b Binary files /dev/null and b/public/media/stock/ecommerce/2.gif differ diff --git a/public/media/stock/ecommerce/20.gif b/public/media/stock/ecommerce/20.gif new file mode 100644 index 0000000..2e7da95 Binary files /dev/null and b/public/media/stock/ecommerce/20.gif differ diff --git a/public/media/stock/ecommerce/200.gif b/public/media/stock/ecommerce/200.gif new file mode 100644 index 0000000..1df3763 Binary files /dev/null and b/public/media/stock/ecommerce/200.gif differ diff --git a/public/media/stock/ecommerce/201.gif b/public/media/stock/ecommerce/201.gif new file mode 100644 index 0000000..c72d245 Binary files /dev/null and b/public/media/stock/ecommerce/201.gif differ diff --git a/public/media/stock/ecommerce/202.gif b/public/media/stock/ecommerce/202.gif new file mode 100644 index 0000000..118a6ec Binary files /dev/null and b/public/media/stock/ecommerce/202.gif differ diff --git a/public/media/stock/ecommerce/203.gif b/public/media/stock/ecommerce/203.gif new file mode 100644 index 0000000..1a58d66 Binary files /dev/null and b/public/media/stock/ecommerce/203.gif differ diff --git a/public/media/stock/ecommerce/204.gif b/public/media/stock/ecommerce/204.gif new file mode 100644 index 0000000..8ec59fe Binary files /dev/null and b/public/media/stock/ecommerce/204.gif differ diff --git a/public/media/stock/ecommerce/205.gif b/public/media/stock/ecommerce/205.gif new file mode 100644 index 0000000..d5567f4 Binary files /dev/null and b/public/media/stock/ecommerce/205.gif differ diff --git a/public/media/stock/ecommerce/206.gif b/public/media/stock/ecommerce/206.gif new file mode 100644 index 0000000..e1f00a8 Binary files /dev/null and b/public/media/stock/ecommerce/206.gif differ diff --git a/public/media/stock/ecommerce/207.gif b/public/media/stock/ecommerce/207.gif new file mode 100644 index 0000000..b117324 Binary files /dev/null and b/public/media/stock/ecommerce/207.gif differ diff --git a/public/media/stock/ecommerce/208.gif b/public/media/stock/ecommerce/208.gif new file mode 100644 index 0000000..cf8da19 Binary files /dev/null and b/public/media/stock/ecommerce/208.gif differ diff --git a/public/media/stock/ecommerce/209.gif b/public/media/stock/ecommerce/209.gif new file mode 100644 index 0000000..665999e Binary files /dev/null and b/public/media/stock/ecommerce/209.gif differ diff --git a/public/media/stock/ecommerce/21.gif b/public/media/stock/ecommerce/21.gif new file mode 100644 index 0000000..7ee0483 Binary files /dev/null and b/public/media/stock/ecommerce/21.gif differ diff --git a/public/media/stock/ecommerce/210.gif b/public/media/stock/ecommerce/210.gif new file mode 100644 index 0000000..6595892 Binary files /dev/null and b/public/media/stock/ecommerce/210.gif differ diff --git a/public/media/stock/ecommerce/211.gif b/public/media/stock/ecommerce/211.gif new file mode 100644 index 0000000..b3d3b7a Binary files /dev/null and b/public/media/stock/ecommerce/211.gif differ diff --git a/public/media/stock/ecommerce/212.gif b/public/media/stock/ecommerce/212.gif new file mode 100644 index 0000000..fa723f0 Binary files /dev/null and b/public/media/stock/ecommerce/212.gif differ diff --git a/public/media/stock/ecommerce/213.gif b/public/media/stock/ecommerce/213.gif new file mode 100644 index 0000000..9634309 Binary files /dev/null and b/public/media/stock/ecommerce/213.gif differ diff --git a/public/media/stock/ecommerce/214.gif b/public/media/stock/ecommerce/214.gif new file mode 100644 index 0000000..f55f7a7 Binary files /dev/null and b/public/media/stock/ecommerce/214.gif differ diff --git a/public/media/stock/ecommerce/215.gif b/public/media/stock/ecommerce/215.gif new file mode 100644 index 0000000..0886f51 Binary files /dev/null and b/public/media/stock/ecommerce/215.gif differ diff --git a/public/media/stock/ecommerce/216.gif b/public/media/stock/ecommerce/216.gif new file mode 100644 index 0000000..bda3ada Binary files /dev/null and b/public/media/stock/ecommerce/216.gif differ diff --git a/public/media/stock/ecommerce/217.gif b/public/media/stock/ecommerce/217.gif new file mode 100644 index 0000000..bb767f0 Binary files /dev/null and b/public/media/stock/ecommerce/217.gif differ diff --git a/public/media/stock/ecommerce/218.gif b/public/media/stock/ecommerce/218.gif new file mode 100644 index 0000000..f60af32 Binary files /dev/null and b/public/media/stock/ecommerce/218.gif differ diff --git a/public/media/stock/ecommerce/219.gif b/public/media/stock/ecommerce/219.gif new file mode 100644 index 0000000..3f687a7 Binary files /dev/null and b/public/media/stock/ecommerce/219.gif differ diff --git a/public/media/stock/ecommerce/22.gif b/public/media/stock/ecommerce/22.gif new file mode 100644 index 0000000..9dfb013 Binary files /dev/null and b/public/media/stock/ecommerce/22.gif differ diff --git a/public/media/stock/ecommerce/23.gif b/public/media/stock/ecommerce/23.gif new file mode 100644 index 0000000..ae5e346 Binary files /dev/null and b/public/media/stock/ecommerce/23.gif differ diff --git a/public/media/stock/ecommerce/24.gif b/public/media/stock/ecommerce/24.gif new file mode 100644 index 0000000..150117a Binary files /dev/null and b/public/media/stock/ecommerce/24.gif differ diff --git a/public/media/stock/ecommerce/25.gif b/public/media/stock/ecommerce/25.gif new file mode 100644 index 0000000..910bfa7 Binary files /dev/null and b/public/media/stock/ecommerce/25.gif differ diff --git a/public/media/stock/ecommerce/26.gif b/public/media/stock/ecommerce/26.gif new file mode 100644 index 0000000..53d1e77 Binary files /dev/null and b/public/media/stock/ecommerce/26.gif differ diff --git a/public/media/stock/ecommerce/27.gif b/public/media/stock/ecommerce/27.gif new file mode 100644 index 0000000..9226c09 Binary files /dev/null and b/public/media/stock/ecommerce/27.gif differ diff --git a/public/media/stock/ecommerce/28.gif b/public/media/stock/ecommerce/28.gif new file mode 100644 index 0000000..756e659 Binary files /dev/null and b/public/media/stock/ecommerce/28.gif differ diff --git a/public/media/stock/ecommerce/29.gif b/public/media/stock/ecommerce/29.gif new file mode 100644 index 0000000..194f9ac Binary files /dev/null and b/public/media/stock/ecommerce/29.gif differ diff --git a/public/media/stock/ecommerce/3.gif b/public/media/stock/ecommerce/3.gif new file mode 100644 index 0000000..bebac0d Binary files /dev/null and b/public/media/stock/ecommerce/3.gif differ diff --git a/public/media/stock/ecommerce/30.gif b/public/media/stock/ecommerce/30.gif new file mode 100644 index 0000000..ce5e00e Binary files /dev/null and b/public/media/stock/ecommerce/30.gif differ diff --git a/public/media/stock/ecommerce/31.gif b/public/media/stock/ecommerce/31.gif new file mode 100644 index 0000000..8000b5c Binary files /dev/null and b/public/media/stock/ecommerce/31.gif differ diff --git a/public/media/stock/ecommerce/32.gif b/public/media/stock/ecommerce/32.gif new file mode 100644 index 0000000..9c9db50 Binary files /dev/null and b/public/media/stock/ecommerce/32.gif differ diff --git a/public/media/stock/ecommerce/33.gif b/public/media/stock/ecommerce/33.gif new file mode 100644 index 0000000..1262d9f Binary files /dev/null and b/public/media/stock/ecommerce/33.gif differ diff --git a/public/media/stock/ecommerce/34.gif b/public/media/stock/ecommerce/34.gif new file mode 100644 index 0000000..d5de4a1 Binary files /dev/null and b/public/media/stock/ecommerce/34.gif differ diff --git a/public/media/stock/ecommerce/35.gif b/public/media/stock/ecommerce/35.gif new file mode 100644 index 0000000..5f68d12 Binary files /dev/null and b/public/media/stock/ecommerce/35.gif differ diff --git a/public/media/stock/ecommerce/36.gif b/public/media/stock/ecommerce/36.gif new file mode 100644 index 0000000..9e5cd17 Binary files /dev/null and b/public/media/stock/ecommerce/36.gif differ diff --git a/public/media/stock/ecommerce/37.gif b/public/media/stock/ecommerce/37.gif new file mode 100644 index 0000000..f2d8c04 Binary files /dev/null and b/public/media/stock/ecommerce/37.gif differ diff --git a/public/media/stock/ecommerce/38.gif b/public/media/stock/ecommerce/38.gif new file mode 100644 index 0000000..e3a9c22 Binary files /dev/null and b/public/media/stock/ecommerce/38.gif differ diff --git a/public/media/stock/ecommerce/39.gif b/public/media/stock/ecommerce/39.gif new file mode 100644 index 0000000..5ab836a Binary files /dev/null and b/public/media/stock/ecommerce/39.gif differ diff --git a/public/media/stock/ecommerce/4.gif b/public/media/stock/ecommerce/4.gif new file mode 100644 index 0000000..8c00328 Binary files /dev/null and b/public/media/stock/ecommerce/4.gif differ diff --git a/public/media/stock/ecommerce/40.gif b/public/media/stock/ecommerce/40.gif new file mode 100644 index 0000000..5198a0c Binary files /dev/null and b/public/media/stock/ecommerce/40.gif differ diff --git a/public/media/stock/ecommerce/41.gif b/public/media/stock/ecommerce/41.gif new file mode 100644 index 0000000..873b22f Binary files /dev/null and b/public/media/stock/ecommerce/41.gif differ diff --git a/public/media/stock/ecommerce/42.gif b/public/media/stock/ecommerce/42.gif new file mode 100644 index 0000000..1a5aac1 Binary files /dev/null and b/public/media/stock/ecommerce/42.gif differ diff --git a/public/media/stock/ecommerce/43.gif b/public/media/stock/ecommerce/43.gif new file mode 100644 index 0000000..832b27b Binary files /dev/null and b/public/media/stock/ecommerce/43.gif differ diff --git a/public/media/stock/ecommerce/44.gif b/public/media/stock/ecommerce/44.gif new file mode 100644 index 0000000..08faaf5 Binary files /dev/null and b/public/media/stock/ecommerce/44.gif differ diff --git a/public/media/stock/ecommerce/45.gif b/public/media/stock/ecommerce/45.gif new file mode 100644 index 0000000..98fda87 Binary files /dev/null and b/public/media/stock/ecommerce/45.gif differ diff --git a/public/media/stock/ecommerce/46.gif b/public/media/stock/ecommerce/46.gif new file mode 100644 index 0000000..148344b Binary files /dev/null and b/public/media/stock/ecommerce/46.gif differ diff --git a/public/media/stock/ecommerce/47.gif b/public/media/stock/ecommerce/47.gif new file mode 100644 index 0000000..b4b23fe Binary files /dev/null and b/public/media/stock/ecommerce/47.gif differ diff --git a/public/media/stock/ecommerce/48.gif b/public/media/stock/ecommerce/48.gif new file mode 100644 index 0000000..566839e Binary files /dev/null and b/public/media/stock/ecommerce/48.gif differ diff --git a/public/media/stock/ecommerce/49.gif b/public/media/stock/ecommerce/49.gif new file mode 100644 index 0000000..9b06720 Binary files /dev/null and b/public/media/stock/ecommerce/49.gif differ diff --git a/public/media/stock/ecommerce/5.gif b/public/media/stock/ecommerce/5.gif new file mode 100644 index 0000000..a4d425c Binary files /dev/null and b/public/media/stock/ecommerce/5.gif differ diff --git a/public/media/stock/ecommerce/50.gif b/public/media/stock/ecommerce/50.gif new file mode 100644 index 0000000..40da9ed Binary files /dev/null and b/public/media/stock/ecommerce/50.gif differ diff --git a/public/media/stock/ecommerce/51.gif b/public/media/stock/ecommerce/51.gif new file mode 100644 index 0000000..82ab36b Binary files /dev/null and b/public/media/stock/ecommerce/51.gif differ diff --git a/public/media/stock/ecommerce/52.gif b/public/media/stock/ecommerce/52.gif new file mode 100644 index 0000000..a98bb52 Binary files /dev/null and b/public/media/stock/ecommerce/52.gif differ diff --git a/public/media/stock/ecommerce/53.gif b/public/media/stock/ecommerce/53.gif new file mode 100644 index 0000000..48ac853 Binary files /dev/null and b/public/media/stock/ecommerce/53.gif differ diff --git a/public/media/stock/ecommerce/54.gif b/public/media/stock/ecommerce/54.gif new file mode 100644 index 0000000..118cc1c Binary files /dev/null and b/public/media/stock/ecommerce/54.gif differ diff --git a/public/media/stock/ecommerce/55.gif b/public/media/stock/ecommerce/55.gif new file mode 100644 index 0000000..de99379 Binary files /dev/null and b/public/media/stock/ecommerce/55.gif differ diff --git a/public/media/stock/ecommerce/56.gif b/public/media/stock/ecommerce/56.gif new file mode 100644 index 0000000..ed1dbd3 Binary files /dev/null and b/public/media/stock/ecommerce/56.gif differ diff --git a/public/media/stock/ecommerce/57.gif b/public/media/stock/ecommerce/57.gif new file mode 100644 index 0000000..7c2d497 Binary files /dev/null and b/public/media/stock/ecommerce/57.gif differ diff --git a/public/media/stock/ecommerce/58.gif b/public/media/stock/ecommerce/58.gif new file mode 100644 index 0000000..9b9c8c7 Binary files /dev/null and b/public/media/stock/ecommerce/58.gif differ diff --git a/public/media/stock/ecommerce/59.gif b/public/media/stock/ecommerce/59.gif new file mode 100644 index 0000000..ce9490d Binary files /dev/null and b/public/media/stock/ecommerce/59.gif differ diff --git a/public/media/stock/ecommerce/6.gif b/public/media/stock/ecommerce/6.gif new file mode 100644 index 0000000..7f693cf Binary files /dev/null and b/public/media/stock/ecommerce/6.gif differ diff --git a/public/media/stock/ecommerce/60.gif b/public/media/stock/ecommerce/60.gif new file mode 100644 index 0000000..f43735e Binary files /dev/null and b/public/media/stock/ecommerce/60.gif differ diff --git a/public/media/stock/ecommerce/61.gif b/public/media/stock/ecommerce/61.gif new file mode 100644 index 0000000..9dac3b5 Binary files /dev/null and b/public/media/stock/ecommerce/61.gif differ diff --git a/public/media/stock/ecommerce/62.gif b/public/media/stock/ecommerce/62.gif new file mode 100644 index 0000000..e354a05 Binary files /dev/null and b/public/media/stock/ecommerce/62.gif differ diff --git a/public/media/stock/ecommerce/63.gif b/public/media/stock/ecommerce/63.gif new file mode 100644 index 0000000..bb23e1a Binary files /dev/null and b/public/media/stock/ecommerce/63.gif differ diff --git a/public/media/stock/ecommerce/64.gif b/public/media/stock/ecommerce/64.gif new file mode 100644 index 0000000..14a9fbf Binary files /dev/null and b/public/media/stock/ecommerce/64.gif differ diff --git a/public/media/stock/ecommerce/65.gif b/public/media/stock/ecommerce/65.gif new file mode 100644 index 0000000..c0e5754 Binary files /dev/null and b/public/media/stock/ecommerce/65.gif differ diff --git a/public/media/stock/ecommerce/66.gif b/public/media/stock/ecommerce/66.gif new file mode 100644 index 0000000..e5b029d Binary files /dev/null and b/public/media/stock/ecommerce/66.gif differ diff --git a/public/media/stock/ecommerce/67.gif b/public/media/stock/ecommerce/67.gif new file mode 100644 index 0000000..5e3f373 Binary files /dev/null and b/public/media/stock/ecommerce/67.gif differ diff --git a/public/media/stock/ecommerce/68.gif b/public/media/stock/ecommerce/68.gif new file mode 100644 index 0000000..edd2a19 Binary files /dev/null and b/public/media/stock/ecommerce/68.gif differ diff --git a/public/media/stock/ecommerce/69.gif b/public/media/stock/ecommerce/69.gif new file mode 100644 index 0000000..36ba3c1 Binary files /dev/null and b/public/media/stock/ecommerce/69.gif differ diff --git a/public/media/stock/ecommerce/7.gif b/public/media/stock/ecommerce/7.gif new file mode 100644 index 0000000..5ea66ba Binary files /dev/null and b/public/media/stock/ecommerce/7.gif differ diff --git a/public/media/stock/ecommerce/70.gif b/public/media/stock/ecommerce/70.gif new file mode 100644 index 0000000..243a818 Binary files /dev/null and b/public/media/stock/ecommerce/70.gif differ diff --git a/public/media/stock/ecommerce/71.gif b/public/media/stock/ecommerce/71.gif new file mode 100644 index 0000000..91a1b3e Binary files /dev/null and b/public/media/stock/ecommerce/71.gif differ diff --git a/public/media/stock/ecommerce/72.gif b/public/media/stock/ecommerce/72.gif new file mode 100644 index 0000000..c1d3915 Binary files /dev/null and b/public/media/stock/ecommerce/72.gif differ diff --git a/public/media/stock/ecommerce/74.gif b/public/media/stock/ecommerce/74.gif new file mode 100644 index 0000000..0834fad Binary files /dev/null and b/public/media/stock/ecommerce/74.gif differ diff --git a/public/media/stock/ecommerce/75.gif b/public/media/stock/ecommerce/75.gif new file mode 100644 index 0000000..66f9cdd Binary files /dev/null and b/public/media/stock/ecommerce/75.gif differ diff --git a/public/media/stock/ecommerce/76.gif b/public/media/stock/ecommerce/76.gif new file mode 100644 index 0000000..6f4607f Binary files /dev/null and b/public/media/stock/ecommerce/76.gif differ diff --git a/public/media/stock/ecommerce/77.gif b/public/media/stock/ecommerce/77.gif new file mode 100644 index 0000000..6c72d86 Binary files /dev/null and b/public/media/stock/ecommerce/77.gif differ diff --git a/public/media/stock/ecommerce/78.gif b/public/media/stock/ecommerce/78.gif new file mode 100644 index 0000000..0d0ae0f Binary files /dev/null and b/public/media/stock/ecommerce/78.gif differ diff --git a/public/media/stock/ecommerce/79.gif b/public/media/stock/ecommerce/79.gif new file mode 100644 index 0000000..7418f4d Binary files /dev/null and b/public/media/stock/ecommerce/79.gif differ diff --git a/public/media/stock/ecommerce/8.gif b/public/media/stock/ecommerce/8.gif new file mode 100644 index 0000000..d0a6ebe Binary files /dev/null and b/public/media/stock/ecommerce/8.gif differ diff --git a/public/media/stock/ecommerce/80.gif b/public/media/stock/ecommerce/80.gif new file mode 100644 index 0000000..8b5f80f Binary files /dev/null and b/public/media/stock/ecommerce/80.gif differ diff --git a/public/media/stock/ecommerce/81.gif b/public/media/stock/ecommerce/81.gif new file mode 100644 index 0000000..c2e5b03 Binary files /dev/null and b/public/media/stock/ecommerce/81.gif differ diff --git a/public/media/stock/ecommerce/82.gif b/public/media/stock/ecommerce/82.gif new file mode 100644 index 0000000..b784400 Binary files /dev/null and b/public/media/stock/ecommerce/82.gif differ diff --git a/public/media/stock/ecommerce/83.gif b/public/media/stock/ecommerce/83.gif new file mode 100644 index 0000000..f57057e Binary files /dev/null and b/public/media/stock/ecommerce/83.gif differ diff --git a/public/media/stock/ecommerce/84.gif b/public/media/stock/ecommerce/84.gif new file mode 100644 index 0000000..1cbc2e9 Binary files /dev/null and b/public/media/stock/ecommerce/84.gif differ diff --git a/public/media/stock/ecommerce/85.gif b/public/media/stock/ecommerce/85.gif new file mode 100644 index 0000000..b8d5208 Binary files /dev/null and b/public/media/stock/ecommerce/85.gif differ diff --git a/public/media/stock/ecommerce/86.gif b/public/media/stock/ecommerce/86.gif new file mode 100644 index 0000000..c1d7c4f Binary files /dev/null and b/public/media/stock/ecommerce/86.gif differ diff --git a/public/media/stock/ecommerce/87.gif b/public/media/stock/ecommerce/87.gif new file mode 100644 index 0000000..f09727c Binary files /dev/null and b/public/media/stock/ecommerce/87.gif differ diff --git a/public/media/stock/ecommerce/88.gif b/public/media/stock/ecommerce/88.gif new file mode 100644 index 0000000..feaeab4 Binary files /dev/null and b/public/media/stock/ecommerce/88.gif differ diff --git a/public/media/stock/ecommerce/89.gif b/public/media/stock/ecommerce/89.gif new file mode 100644 index 0000000..f47331b Binary files /dev/null and b/public/media/stock/ecommerce/89.gif differ diff --git a/public/media/stock/ecommerce/9.gif b/public/media/stock/ecommerce/9.gif new file mode 100644 index 0000000..9c78a76 Binary files /dev/null and b/public/media/stock/ecommerce/9.gif differ diff --git a/public/media/stock/ecommerce/90.gif b/public/media/stock/ecommerce/90.gif new file mode 100644 index 0000000..3863b24 Binary files /dev/null and b/public/media/stock/ecommerce/90.gif differ diff --git a/public/media/stock/ecommerce/91.gif b/public/media/stock/ecommerce/91.gif new file mode 100644 index 0000000..62e57d6 Binary files /dev/null and b/public/media/stock/ecommerce/91.gif differ diff --git a/public/media/stock/ecommerce/92.gif b/public/media/stock/ecommerce/92.gif new file mode 100644 index 0000000..d35362f Binary files /dev/null and b/public/media/stock/ecommerce/92.gif differ diff --git a/public/media/stock/ecommerce/93.gif b/public/media/stock/ecommerce/93.gif new file mode 100644 index 0000000..a21324e Binary files /dev/null and b/public/media/stock/ecommerce/93.gif differ diff --git a/public/media/stock/ecommerce/94.gif b/public/media/stock/ecommerce/94.gif new file mode 100644 index 0000000..59cea90 Binary files /dev/null and b/public/media/stock/ecommerce/94.gif differ diff --git a/public/media/stock/ecommerce/95.gif b/public/media/stock/ecommerce/95.gif new file mode 100644 index 0000000..1c3e9e2 Binary files /dev/null and b/public/media/stock/ecommerce/95.gif differ diff --git a/public/media/stock/ecommerce/96.gif b/public/media/stock/ecommerce/96.gif new file mode 100644 index 0000000..1186a96 Binary files /dev/null and b/public/media/stock/ecommerce/96.gif differ diff --git a/public/media/stock/ecommerce/97.gif b/public/media/stock/ecommerce/97.gif new file mode 100644 index 0000000..c1a38b2 Binary files /dev/null and b/public/media/stock/ecommerce/97.gif differ diff --git a/public/media/stock/ecommerce/98.gif b/public/media/stock/ecommerce/98.gif new file mode 100644 index 0000000..d470afb Binary files /dev/null and b/public/media/stock/ecommerce/98.gif differ diff --git a/public/media/stock/ecommerce/99.gif b/public/media/stock/ecommerce/99.gif new file mode 100644 index 0000000..4bd1383 Binary files /dev/null and b/public/media/stock/ecommerce/99.gif differ diff --git a/public/media/stock/food/img-1.jpg b/public/media/stock/food/img-1.jpg new file mode 100644 index 0000000..e189e37 Binary files /dev/null and b/public/media/stock/food/img-1.jpg differ diff --git a/public/media/stock/food/img-10.jpg b/public/media/stock/food/img-10.jpg new file mode 100644 index 0000000..19db822 Binary files /dev/null and b/public/media/stock/food/img-10.jpg differ diff --git a/public/media/stock/food/img-11.jpg b/public/media/stock/food/img-11.jpg new file mode 100644 index 0000000..209f197 Binary files /dev/null and b/public/media/stock/food/img-11.jpg differ diff --git a/public/media/stock/food/img-2.jpg b/public/media/stock/food/img-2.jpg new file mode 100644 index 0000000..dd83876 Binary files /dev/null and b/public/media/stock/food/img-2.jpg differ diff --git a/public/media/stock/food/img-3.jpg b/public/media/stock/food/img-3.jpg new file mode 100644 index 0000000..1513ad6 Binary files /dev/null and b/public/media/stock/food/img-3.jpg differ diff --git a/public/media/stock/food/img-4.jpg b/public/media/stock/food/img-4.jpg new file mode 100644 index 0000000..348fe5f Binary files /dev/null and b/public/media/stock/food/img-4.jpg differ diff --git a/public/media/stock/food/img-5.jpg b/public/media/stock/food/img-5.jpg new file mode 100644 index 0000000..d528fb8 Binary files /dev/null and b/public/media/stock/food/img-5.jpg differ diff --git a/public/media/stock/food/img-6.jpg b/public/media/stock/food/img-6.jpg new file mode 100644 index 0000000..2fcdab5 Binary files /dev/null and b/public/media/stock/food/img-6.jpg differ diff --git a/public/media/stock/food/img-7.jpg b/public/media/stock/food/img-7.jpg new file mode 100644 index 0000000..891b412 Binary files /dev/null and b/public/media/stock/food/img-7.jpg differ diff --git a/public/media/stock/food/img-8.jpg b/public/media/stock/food/img-8.jpg new file mode 100644 index 0000000..562be8b Binary files /dev/null and b/public/media/stock/food/img-8.jpg differ diff --git a/public/media/stock/food/img-9.jpg b/public/media/stock/food/img-9.jpg new file mode 100644 index 0000000..7e902be Binary files /dev/null and b/public/media/stock/food/img-9.jpg differ diff --git a/public/media/svg/avatars/001-boy.svg b/public/media/svg/avatars/001-boy.svg new file mode 100644 index 0000000..a307016 --- /dev/null +++ b/public/media/svg/avatars/001-boy.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/002-girl.svg b/public/media/svg/avatars/002-girl.svg new file mode 100644 index 0000000..7a84185 --- /dev/null +++ b/public/media/svg/avatars/002-girl.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/003-girl-1.svg b/public/media/svg/avatars/003-girl-1.svg new file mode 100644 index 0000000..2c490a0 --- /dev/null +++ b/public/media/svg/avatars/003-girl-1.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/004-boy-1.svg b/public/media/svg/avatars/004-boy-1.svg new file mode 100644 index 0000000..7cfe5b1 --- /dev/null +++ b/public/media/svg/avatars/004-boy-1.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/005-girl-2.svg b/public/media/svg/avatars/005-girl-2.svg new file mode 100644 index 0000000..676da6f --- /dev/null +++ b/public/media/svg/avatars/005-girl-2.svg @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/006-girl-3.svg b/public/media/svg/avatars/006-girl-3.svg new file mode 100644 index 0000000..f831b43 --- /dev/null +++ b/public/media/svg/avatars/006-girl-3.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/007-boy-2.svg b/public/media/svg/avatars/007-boy-2.svg new file mode 100644 index 0000000..9a9f843 --- /dev/null +++ b/public/media/svg/avatars/007-boy-2.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/008-boy-3.svg b/public/media/svg/avatars/008-boy-3.svg new file mode 100644 index 0000000..c6d01ea --- /dev/null +++ b/public/media/svg/avatars/008-boy-3.svg @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/009-boy-4.svg b/public/media/svg/avatars/009-boy-4.svg new file mode 100644 index 0000000..eded7b6 --- /dev/null +++ b/public/media/svg/avatars/009-boy-4.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/010-girl-4.svg b/public/media/svg/avatars/010-girl-4.svg new file mode 100644 index 0000000..4637350 --- /dev/null +++ b/public/media/svg/avatars/010-girl-4.svg @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/011-boy-5.svg b/public/media/svg/avatars/011-boy-5.svg new file mode 100644 index 0000000..d454bb7 --- /dev/null +++ b/public/media/svg/avatars/011-boy-5.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/012-girl-5.svg b/public/media/svg/avatars/012-girl-5.svg new file mode 100644 index 0000000..8e73230 --- /dev/null +++ b/public/media/svg/avatars/012-girl-5.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/013-girl-6.svg b/public/media/svg/avatars/013-girl-6.svg new file mode 100644 index 0000000..f88e25f --- /dev/null +++ b/public/media/svg/avatars/013-girl-6.svg @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/014-girl-7.svg b/public/media/svg/avatars/014-girl-7.svg new file mode 100644 index 0000000..6b6e375 --- /dev/null +++ b/public/media/svg/avatars/014-girl-7.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/015-boy-6.svg b/public/media/svg/avatars/015-boy-6.svg new file mode 100644 index 0000000..65db5d4 --- /dev/null +++ b/public/media/svg/avatars/015-boy-6.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/016-boy-7.svg b/public/media/svg/avatars/016-boy-7.svg new file mode 100644 index 0000000..0d31350 --- /dev/null +++ b/public/media/svg/avatars/016-boy-7.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/017-girl-8.svg b/public/media/svg/avatars/017-girl-8.svg new file mode 100644 index 0000000..d34c322 --- /dev/null +++ b/public/media/svg/avatars/017-girl-8.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/018-girl-9.svg b/public/media/svg/avatars/018-girl-9.svg new file mode 100644 index 0000000..0225df3 --- /dev/null +++ b/public/media/svg/avatars/018-girl-9.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/019-girl-10.svg b/public/media/svg/avatars/019-girl-10.svg new file mode 100644 index 0000000..a5bd193 --- /dev/null +++ b/public/media/svg/avatars/019-girl-10.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/020-girl-11.svg b/public/media/svg/avatars/020-girl-11.svg new file mode 100644 index 0000000..f8fa9d7 --- /dev/null +++ b/public/media/svg/avatars/020-girl-11.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/021-boy-8.svg b/public/media/svg/avatars/021-boy-8.svg new file mode 100644 index 0000000..dbe8eb1 --- /dev/null +++ b/public/media/svg/avatars/021-boy-8.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/022-girl-12.svg b/public/media/svg/avatars/022-girl-12.svg new file mode 100644 index 0000000..4edb24f --- /dev/null +++ b/public/media/svg/avatars/022-girl-12.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/023-girl-13.svg b/public/media/svg/avatars/023-girl-13.svg new file mode 100644 index 0000000..fa1f178 --- /dev/null +++ b/public/media/svg/avatars/023-girl-13.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/024-boy-9.svg b/public/media/svg/avatars/024-boy-9.svg new file mode 100644 index 0000000..cf4752f --- /dev/null +++ b/public/media/svg/avatars/024-boy-9.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/025-girl-14.svg b/public/media/svg/avatars/025-girl-14.svg new file mode 100644 index 0000000..8741b91 --- /dev/null +++ b/public/media/svg/avatars/025-girl-14.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/026-boy-10.svg b/public/media/svg/avatars/026-boy-10.svg new file mode 100644 index 0000000..73468e2 --- /dev/null +++ b/public/media/svg/avatars/026-boy-10.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/027-girl-15.svg b/public/media/svg/avatars/027-girl-15.svg new file mode 100644 index 0000000..73969a1 --- /dev/null +++ b/public/media/svg/avatars/027-girl-15.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/028-girl-16.svg b/public/media/svg/avatars/028-girl-16.svg new file mode 100644 index 0000000..ec8bc44 --- /dev/null +++ b/public/media/svg/avatars/028-girl-16.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/029-boy-11.svg b/public/media/svg/avatars/029-boy-11.svg new file mode 100644 index 0000000..a8a2ee1 --- /dev/null +++ b/public/media/svg/avatars/029-boy-11.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/030-girl-17.svg b/public/media/svg/avatars/030-girl-17.svg new file mode 100644 index 0000000..bdafd0c --- /dev/null +++ b/public/media/svg/avatars/030-girl-17.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/031-boy-12.svg b/public/media/svg/avatars/031-boy-12.svg new file mode 100644 index 0000000..1db00f5 --- /dev/null +++ b/public/media/svg/avatars/031-boy-12.svg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/032-boy-13.svg b/public/media/svg/avatars/032-boy-13.svg new file mode 100644 index 0000000..354a874 --- /dev/null +++ b/public/media/svg/avatars/032-boy-13.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/033-girl-18.svg b/public/media/svg/avatars/033-girl-18.svg new file mode 100644 index 0000000..a3eeb03 --- /dev/null +++ b/public/media/svg/avatars/033-girl-18.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/034-boy-14.svg b/public/media/svg/avatars/034-boy-14.svg new file mode 100644 index 0000000..07e954a --- /dev/null +++ b/public/media/svg/avatars/034-boy-14.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/035-boy-15.svg b/public/media/svg/avatars/035-boy-15.svg new file mode 100644 index 0000000..62a014c --- /dev/null +++ b/public/media/svg/avatars/035-boy-15.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/036-girl-19.svg b/public/media/svg/avatars/036-girl-19.svg new file mode 100644 index 0000000..6f30737 --- /dev/null +++ b/public/media/svg/avatars/036-girl-19.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/037-girl-20.svg b/public/media/svg/avatars/037-girl-20.svg new file mode 100644 index 0000000..044a9bd --- /dev/null +++ b/public/media/svg/avatars/037-girl-20.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/038-boy-16.svg b/public/media/svg/avatars/038-boy-16.svg new file mode 100644 index 0000000..80caa23 --- /dev/null +++ b/public/media/svg/avatars/038-boy-16.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/039-girl-21.svg b/public/media/svg/avatars/039-girl-21.svg new file mode 100644 index 0000000..3f13a95 --- /dev/null +++ b/public/media/svg/avatars/039-girl-21.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/040-boy-17.svg b/public/media/svg/avatars/040-boy-17.svg new file mode 100644 index 0000000..b0ff0a1 --- /dev/null +++ b/public/media/svg/avatars/040-boy-17.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/041-girl-22.svg b/public/media/svg/avatars/041-girl-22.svg new file mode 100644 index 0000000..beb5eea --- /dev/null +++ b/public/media/svg/avatars/041-girl-22.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/042-girl-23.svg b/public/media/svg/avatars/042-girl-23.svg new file mode 100644 index 0000000..76e6c54 --- /dev/null +++ b/public/media/svg/avatars/042-girl-23.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/043-boy-18.svg b/public/media/svg/avatars/043-boy-18.svg new file mode 100644 index 0000000..6fd271a --- /dev/null +++ b/public/media/svg/avatars/043-boy-18.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/044-boy-19.svg b/public/media/svg/avatars/044-boy-19.svg new file mode 100644 index 0000000..e1e52b7 --- /dev/null +++ b/public/media/svg/avatars/044-boy-19.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/045-boy-20.svg b/public/media/svg/avatars/045-boy-20.svg new file mode 100644 index 0000000..3cbb351 --- /dev/null +++ b/public/media/svg/avatars/045-boy-20.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/046-girl-24.svg b/public/media/svg/avatars/046-girl-24.svg new file mode 100644 index 0000000..c78a3dd --- /dev/null +++ b/public/media/svg/avatars/046-girl-24.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/047-girl-25.svg b/public/media/svg/avatars/047-girl-25.svg new file mode 100644 index 0000000..1b8aa7b --- /dev/null +++ b/public/media/svg/avatars/047-girl-25.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/048-boy-21.svg b/public/media/svg/avatars/048-boy-21.svg new file mode 100644 index 0000000..a00b782 --- /dev/null +++ b/public/media/svg/avatars/048-boy-21.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/049-boy-22.svg b/public/media/svg/avatars/049-boy-22.svg new file mode 100644 index 0000000..bf81ff3 --- /dev/null +++ b/public/media/svg/avatars/049-boy-22.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/050-girl-26.svg b/public/media/svg/avatars/050-girl-26.svg new file mode 100644 index 0000000..0e93e4c --- /dev/null +++ b/public/media/svg/avatars/050-girl-26.svg @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/avatars/blank-dark.svg b/public/media/svg/avatars/blank-dark.svg new file mode 100644 index 0000000..fac00d6 --- /dev/null +++ b/public/media/svg/avatars/blank-dark.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/avatars/blank.svg b/public/media/svg/avatars/blank.svg new file mode 100644 index 0000000..4fc43cd --- /dev/null +++ b/public/media/svg/avatars/blank.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/brand-logos/adidas-9.svg b/public/media/svg/brand-logos/adidas-9.svg new file mode 100644 index 0000000..1e78702 --- /dev/null +++ b/public/media/svg/brand-logos/adidas-9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/adidas.svg b/public/media/svg/brand-logos/adidas.svg new file mode 100644 index 0000000..ec7436f --- /dev/null +++ b/public/media/svg/brand-logos/adidas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/airbnb-2.svg b/public/media/svg/brand-logos/airbnb-2.svg new file mode 100644 index 0000000..405b8b6 --- /dev/null +++ b/public/media/svg/brand-logos/airbnb-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/alcatel-mobile-3.svg b/public/media/svg/brand-logos/alcatel-mobile-3.svg new file mode 100644 index 0000000..2c89993 --- /dev/null +++ b/public/media/svg/brand-logos/alcatel-mobile-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/amazon-dark.svg b/public/media/svg/brand-logos/amazon-dark.svg new file mode 100644 index 0000000..372c580 --- /dev/null +++ b/public/media/svg/brand-logos/amazon-dark.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/amazon.svg b/public/media/svg/brand-logos/amazon.svg new file mode 100644 index 0000000..77a47d3 --- /dev/null +++ b/public/media/svg/brand-logos/amazon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/android-wordmark.svg b/public/media/svg/brand-logos/android-wordmark.svg new file mode 100644 index 0000000..15bd182 --- /dev/null +++ b/public/media/svg/brand-logos/android-wordmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/angular-3.svg b/public/media/svg/brand-logos/angular-3.svg new file mode 100644 index 0000000..4118356 --- /dev/null +++ b/public/media/svg/brand-logos/angular-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/angular-icon-1.svg b/public/media/svg/brand-logos/angular-icon-1.svg new file mode 100644 index 0000000..468c4ba --- /dev/null +++ b/public/media/svg/brand-logos/angular-icon-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/angular-icon.svg b/public/media/svg/brand-logos/angular-icon.svg new file mode 100644 index 0000000..09c59e9 --- /dev/null +++ b/public/media/svg/brand-logos/angular-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/angular.svg b/public/media/svg/brand-logos/angular.svg new file mode 100644 index 0000000..c405743 --- /dev/null +++ b/public/media/svg/brand-logos/angular.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/aon.svg b/public/media/svg/brand-logos/aon.svg new file mode 100644 index 0000000..54ccd73 --- /dev/null +++ b/public/media/svg/brand-logos/aon.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/apigee.svg b/public/media/svg/brand-logos/apigee.svg new file mode 100644 index 0000000..2bfa706 --- /dev/null +++ b/public/media/svg/brand-logos/apigee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/apple-black-dark.svg b/public/media/svg/brand-logos/apple-black-dark.svg new file mode 100644 index 0000000..cae2a7a --- /dev/null +++ b/public/media/svg/brand-logos/apple-black-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/brand-logos/apple-black.svg b/public/media/svg/brand-logos/apple-black.svg new file mode 100644 index 0000000..0359029 --- /dev/null +++ b/public/media/svg/brand-logos/apple-black.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/apple-itunes.svg b/public/media/svg/brand-logos/apple-itunes.svg new file mode 100644 index 0000000..63869b6 --- /dev/null +++ b/public/media/svg/brand-logos/apple-itunes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/aries-2.svg b/public/media/svg/brand-logos/aries-2.svg new file mode 100644 index 0000000..db05a06 --- /dev/null +++ b/public/media/svg/brand-logos/aries-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/asml-1.svg b/public/media/svg/brand-logos/asml-1.svg new file mode 100644 index 0000000..ec64f55 --- /dev/null +++ b/public/media/svg/brand-logos/asml-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/aspnetzero.svg b/public/media/svg/brand-logos/aspnetzero.svg new file mode 100644 index 0000000..2d7f72d --- /dev/null +++ b/public/media/svg/brand-logos/aspnetzero.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/atica.svg b/public/media/svg/brand-logos/atica.svg new file mode 100644 index 0000000..eb76cc1 --- /dev/null +++ b/public/media/svg/brand-logos/atica.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/audi-11.svg b/public/media/svg/brand-logos/audi-11.svg new file mode 100644 index 0000000..8333167 --- /dev/null +++ b/public/media/svg/brand-logos/audi-11.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/aven.svg b/public/media/svg/brand-logos/aven.svg new file mode 100644 index 0000000..9eefb44 --- /dev/null +++ b/public/media/svg/brand-logos/aven.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/avis-1.svg b/public/media/svg/brand-logos/avis-1.svg new file mode 100644 index 0000000..6c07df6 --- /dev/null +++ b/public/media/svg/brand-logos/avis-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/avocode-inc.svg b/public/media/svg/brand-logos/avocode-inc.svg new file mode 100644 index 0000000..9dc636d --- /dev/null +++ b/public/media/svg/brand-logos/avocode-inc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/balloon.svg b/public/media/svg/brand-logos/balloon.svg new file mode 100644 index 0000000..27c7797 --- /dev/null +++ b/public/media/svg/brand-logos/balloon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/banco-santander-logo.svg b/public/media/svg/brand-logos/banco-santander-logo.svg new file mode 100644 index 0000000..07ca3cd --- /dev/null +++ b/public/media/svg/brand-logos/banco-santander-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/beats-electronics.svg b/public/media/svg/brand-logos/beats-electronics.svg new file mode 100644 index 0000000..130ab44 --- /dev/null +++ b/public/media/svg/brand-logos/beats-electronics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/bebo.svg b/public/media/svg/brand-logos/bebo.svg new file mode 100644 index 0000000..5ad52a5 --- /dev/null +++ b/public/media/svg/brand-logos/bebo.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/behance.svg b/public/media/svg/brand-logos/behance.svg new file mode 100644 index 0000000..1897b36 --- /dev/null +++ b/public/media/svg/brand-logos/behance.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/brand-logos/biman-airlines-classic-logo.svg b/public/media/svg/brand-logos/biman-airlines-classic-logo.svg new file mode 100644 index 0000000..36de462 --- /dev/null +++ b/public/media/svg/brand-logos/biman-airlines-classic-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/bookingcom-1.svg b/public/media/svg/brand-logos/bookingcom-1.svg new file mode 100644 index 0000000..745f1e9 --- /dev/null +++ b/public/media/svg/brand-logos/bookingcom-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/bootstrap-4.svg b/public/media/svg/brand-logos/bootstrap-4.svg new file mode 100644 index 0000000..025da4e --- /dev/null +++ b/public/media/svg/brand-logos/bootstrap-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/bootstrap-5.svg b/public/media/svg/brand-logos/bootstrap-5.svg new file mode 100644 index 0000000..17da1cb --- /dev/null +++ b/public/media/svg/brand-logos/bootstrap-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/bootstrap5.svg b/public/media/svg/brand-logos/bootstrap5.svg new file mode 100644 index 0000000..a859243 --- /dev/null +++ b/public/media/svg/brand-logos/bootstrap5.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/brand-logos/bose.svg b/public/media/svg/brand-logos/bose.svg new file mode 100644 index 0000000..58565d1 --- /dev/null +++ b/public/media/svg/brand-logos/bose.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/bp-2.svg b/public/media/svg/brand-logos/bp-2.svg new file mode 100644 index 0000000..ce02550 --- /dev/null +++ b/public/media/svg/brand-logos/bp-2.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/svg/brand-logos/bp-3.svg b/public/media/svg/brand-logos/bp-3.svg new file mode 100644 index 0000000..8dd6179 --- /dev/null +++ b/public/media/svg/brand-logos/bp-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/brantano.svg b/public/media/svg/brand-logos/brantano.svg new file mode 100644 index 0000000..e3b881a --- /dev/null +++ b/public/media/svg/brand-logos/brantano.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/bride.svg b/public/media/svg/brand-logos/bride.svg new file mode 100644 index 0000000..dfcf7b7 --- /dev/null +++ b/public/media/svg/brand-logos/bride.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/british-council-1.svg b/public/media/svg/brand-logos/british-council-1.svg new file mode 100644 index 0000000..d16c847 --- /dev/null +++ b/public/media/svg/brand-logos/british-council-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/brondi.svg b/public/media/svg/brand-logos/brondi.svg new file mode 100644 index 0000000..9017268 --- /dev/null +++ b/public/media/svg/brand-logos/brondi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/campingaz-1.svg b/public/media/svg/brand-logos/campingaz-1.svg new file mode 100644 index 0000000..76de041 --- /dev/null +++ b/public/media/svg/brand-logos/campingaz-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/canon-logo.svg b/public/media/svg/brand-logos/canon-logo.svg new file mode 100644 index 0000000..18216f0 --- /dev/null +++ b/public/media/svg/brand-logos/canon-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/carrols.svg b/public/media/svg/brand-logos/carrols.svg new file mode 100644 index 0000000..9f96f03 --- /dev/null +++ b/public/media/svg/brand-logos/carrols.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/casio.svg b/public/media/svg/brand-logos/casio.svg new file mode 100644 index 0000000..d0b1ccb --- /dev/null +++ b/public/media/svg/brand-logos/casio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/caterpillar-2.svg b/public/media/svg/brand-logos/caterpillar-2.svg new file mode 100644 index 0000000..21ec743 --- /dev/null +++ b/public/media/svg/brand-logos/caterpillar-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/citrix-6002.svg b/public/media/svg/brand-logos/citrix-6002.svg new file mode 100644 index 0000000..b4ea371 --- /dev/null +++ b/public/media/svg/brand-logos/citrix-6002.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/code-lab.svg b/public/media/svg/brand-logos/code-lab.svg new file mode 100644 index 0000000..b8084a1 --- /dev/null +++ b/public/media/svg/brand-logos/code-lab.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/codeigniter.svg b/public/media/svg/brand-logos/codeigniter.svg new file mode 100644 index 0000000..efd8c65 --- /dev/null +++ b/public/media/svg/brand-logos/codeigniter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/comcast.svg b/public/media/svg/brand-logos/comcast.svg new file mode 100644 index 0000000..7433691 --- /dev/null +++ b/public/media/svg/brand-logos/comcast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/conair.svg b/public/media/svg/brand-logos/conair.svg new file mode 100644 index 0000000..acffca5 --- /dev/null +++ b/public/media/svg/brand-logos/conair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/costa-2.svg b/public/media/svg/brand-logos/costa-2.svg new file mode 100644 index 0000000..3315b12 --- /dev/null +++ b/public/media/svg/brand-logos/costa-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/costco-wholesale-logo.svg b/public/media/svg/brand-logos/costco-wholesale-logo.svg new file mode 100644 index 0000000..48b7aba --- /dev/null +++ b/public/media/svg/brand-logos/costco-wholesale-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/css-5.svg b/public/media/svg/brand-logos/css-5.svg new file mode 100644 index 0000000..57260fa --- /dev/null +++ b/public/media/svg/brand-logos/css-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/decathlon-logo.svg b/public/media/svg/brand-logos/decathlon-logo.svg new file mode 100644 index 0000000..f6ee854 --- /dev/null +++ b/public/media/svg/brand-logos/decathlon-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/deloitte-1.svg b/public/media/svg/brand-logos/deloitte-1.svg new file mode 100644 index 0000000..0dfa5ef --- /dev/null +++ b/public/media/svg/brand-logos/deloitte-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/depend.svg b/public/media/svg/brand-logos/depend.svg new file mode 100644 index 0000000..ea86355 --- /dev/null +++ b/public/media/svg/brand-logos/depend.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/diesel-5.svg b/public/media/svg/brand-logos/diesel-5.svg new file mode 100644 index 0000000..c9e9a0c --- /dev/null +++ b/public/media/svg/brand-logos/diesel-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/disqus.svg b/public/media/svg/brand-logos/disqus.svg new file mode 100644 index 0000000..3491f3d --- /dev/null +++ b/public/media/svg/brand-logos/disqus.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/django-community.svg b/public/media/svg/brand-logos/django-community.svg new file mode 100644 index 0000000..fae998c --- /dev/null +++ b/public/media/svg/brand-logos/django-community.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/dribbble-icon-1.svg b/public/media/svg/brand-logos/dribbble-icon-1.svg new file mode 100644 index 0000000..696084e --- /dev/null +++ b/public/media/svg/brand-logos/dribbble-icon-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/dribbble-pink.svg b/public/media/svg/brand-logos/dribbble-pink.svg new file mode 100644 index 0000000..556718d --- /dev/null +++ b/public/media/svg/brand-logos/dribbble-pink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/duolingo.svg b/public/media/svg/brand-logos/duolingo.svg new file mode 100644 index 0000000..6e6e32c --- /dev/null +++ b/public/media/svg/brand-logos/duolingo.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/svg/brand-logos/dynamac.svg b/public/media/svg/brand-logos/dynamac.svg new file mode 100644 index 0000000..2ce7664 --- /dev/null +++ b/public/media/svg/brand-logos/dynamac.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/ebay.svg b/public/media/svg/brand-logos/ebay.svg new file mode 100644 index 0000000..11c4c6f --- /dev/null +++ b/public/media/svg/brand-logos/ebay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/ember.svg b/public/media/svg/brand-logos/ember.svg new file mode 100644 index 0000000..db49597 --- /dev/null +++ b/public/media/svg/brand-logos/ember.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/envato.svg b/public/media/svg/brand-logos/envato.svg new file mode 100644 index 0000000..2804478 --- /dev/null +++ b/public/media/svg/brand-logos/envato.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/espacio-urbano.svg b/public/media/svg/brand-logos/espacio-urbano.svg new file mode 100644 index 0000000..4429cab --- /dev/null +++ b/public/media/svg/brand-logos/espacio-urbano.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/etoys-com.svg b/public/media/svg/brand-logos/etoys-com.svg new file mode 100644 index 0000000..6d00316 --- /dev/null +++ b/public/media/svg/brand-logos/etoys-com.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/facebook-1.svg b/public/media/svg/brand-logos/facebook-1.svg new file mode 100644 index 0000000..2c4e205 --- /dev/null +++ b/public/media/svg/brand-logos/facebook-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/facebook-2.svg b/public/media/svg/brand-logos/facebook-2.svg new file mode 100644 index 0000000..077bde6 --- /dev/null +++ b/public/media/svg/brand-logos/facebook-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/facebook-3.svg b/public/media/svg/brand-logos/facebook-3.svg new file mode 100644 index 0000000..f5ea0a8 --- /dev/null +++ b/public/media/svg/brand-logos/facebook-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/facebook-4.svg b/public/media/svg/brand-logos/facebook-4.svg new file mode 100644 index 0000000..ccff813 --- /dev/null +++ b/public/media/svg/brand-logos/facebook-4.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/svg/brand-logos/farmers-insurance-3.svg b/public/media/svg/brand-logos/farmers-insurance-3.svg new file mode 100644 index 0000000..44f64e4 --- /dev/null +++ b/public/media/svg/brand-logos/farmers-insurance-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/figma-1.svg b/public/media/svg/brand-logos/figma-1.svg new file mode 100644 index 0000000..d6042ef --- /dev/null +++ b/public/media/svg/brand-logos/figma-1.svg @@ -0,0 +1 @@ +Figma.logoCreated using Figma \ No newline at end of file diff --git a/public/media/svg/brand-logos/foursquare.svg b/public/media/svg/brand-logos/foursquare.svg new file mode 100644 index 0000000..ed4939f --- /dev/null +++ b/public/media/svg/brand-logos/foursquare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/fox-hub.svg b/public/media/svg/brand-logos/fox-hub.svg new file mode 100644 index 0000000..4868a8f --- /dev/null +++ b/public/media/svg/brand-logos/fox-hub.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/svg/brand-logos/friday-s.svg b/public/media/svg/brand-logos/friday-s.svg new file mode 100644 index 0000000..d203c67 --- /dev/null +++ b/public/media/svg/brand-logos/friday-s.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/fujifilm.svg b/public/media/svg/brand-logos/fujifilm.svg new file mode 100644 index 0000000..ccb2453 --- /dev/null +++ b/public/media/svg/brand-logos/fujifilm.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/funding-circle.svg b/public/media/svg/brand-logos/funding-circle.svg new file mode 100644 index 0000000..0f6bacc --- /dev/null +++ b/public/media/svg/brand-logos/funding-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/garmin-1.svg b/public/media/svg/brand-logos/garmin-1.svg new file mode 100644 index 0000000..e34cd97 --- /dev/null +++ b/public/media/svg/brand-logos/garmin-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/general-electric.svg b/public/media/svg/brand-logos/general-electric.svg new file mode 100644 index 0000000..41d966b --- /dev/null +++ b/public/media/svg/brand-logos/general-electric.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/github-1.svg b/public/media/svg/brand-logos/github-1.svg new file mode 100644 index 0000000..d820113 --- /dev/null +++ b/public/media/svg/brand-logos/github-1.svg @@ -0,0 +1,12 @@ + + + + + diff --git a/public/media/svg/brand-logos/github-2.svg b/public/media/svg/brand-logos/github-2.svg new file mode 100644 index 0000000..d396db9 --- /dev/null +++ b/public/media/svg/brand-logos/github-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/github-icon.svg b/public/media/svg/brand-logos/github-icon.svg new file mode 100644 index 0000000..0f6b938 --- /dev/null +++ b/public/media/svg/brand-logos/github-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/github.svg b/public/media/svg/brand-logos/github.svg new file mode 100644 index 0000000..1d8b300 --- /dev/null +++ b/public/media/svg/brand-logos/github.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/svg/brand-logos/gitlab.svg b/public/media/svg/brand-logos/gitlab.svg new file mode 100644 index 0000000..ab63afd --- /dev/null +++ b/public/media/svg/brand-logos/gitlab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/google-icon.svg b/public/media/svg/brand-logos/google-icon.svg new file mode 100644 index 0000000..1307b69 --- /dev/null +++ b/public/media/svg/brand-logos/google-icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/svg/brand-logos/google-photos.svg b/public/media/svg/brand-logos/google-photos.svg new file mode 100644 index 0000000..d63175d --- /dev/null +++ b/public/media/svg/brand-logos/google-photos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/google-play-store.svg b/public/media/svg/brand-logos/google-play-store.svg new file mode 100644 index 0000000..1cbc450 --- /dev/null +++ b/public/media/svg/brand-logos/google-play-store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/google-podcasts.svg b/public/media/svg/brand-logos/google-podcasts.svg new file mode 100644 index 0000000..8d672b0 --- /dev/null +++ b/public/media/svg/brand-logos/google-podcasts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/google-tag-manager.svg b/public/media/svg/brand-logos/google-tag-manager.svg new file mode 100644 index 0000000..ec7228e --- /dev/null +++ b/public/media/svg/brand-logos/google-tag-manager.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/gradiente-2.svg b/public/media/svg/brand-logos/gradiente-2.svg new file mode 100644 index 0000000..729a048 --- /dev/null +++ b/public/media/svg/brand-logos/gradiente-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/gulp-1.svg b/public/media/svg/brand-logos/gulp-1.svg new file mode 100644 index 0000000..eedd9c4 --- /dev/null +++ b/public/media/svg/brand-logos/gulp-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/gulp.svg b/public/media/svg/brand-logos/gulp.svg new file mode 100644 index 0000000..41b16c4 --- /dev/null +++ b/public/media/svg/brand-logos/gulp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/hbo.svg b/public/media/svg/brand-logos/hbo.svg new file mode 100644 index 0000000..b124cc2 --- /dev/null +++ b/public/media/svg/brand-logos/hbo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/heavylift.svg b/public/media/svg/brand-logos/heavylift.svg new file mode 100644 index 0000000..8538c5c --- /dev/null +++ b/public/media/svg/brand-logos/heavylift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/hilton-buenos-aires.svg b/public/media/svg/brand-logos/hilton-buenos-aires.svg new file mode 100644 index 0000000..011dd01 --- /dev/null +++ b/public/media/svg/brand-logos/hilton-buenos-aires.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/himel.svg b/public/media/svg/brand-logos/himel.svg new file mode 100644 index 0000000..a87a519 --- /dev/null +++ b/public/media/svg/brand-logos/himel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/honda-7.svg b/public/media/svg/brand-logos/honda-7.svg new file mode 100644 index 0000000..5e90e51 --- /dev/null +++ b/public/media/svg/brand-logos/honda-7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/hp-2.svg b/public/media/svg/brand-logos/hp-2.svg new file mode 100644 index 0000000..76edb0b --- /dev/null +++ b/public/media/svg/brand-logos/hp-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/hp-3.svg b/public/media/svg/brand-logos/hp-3.svg new file mode 100644 index 0000000..14e9868 --- /dev/null +++ b/public/media/svg/brand-logos/hp-3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/svg/brand-logos/hp-hewlett-packard.svg b/public/media/svg/brand-logos/hp-hewlett-packard.svg new file mode 100644 index 0000000..c5e4a38 --- /dev/null +++ b/public/media/svg/brand-logos/hp-hewlett-packard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/html5.svg b/public/media/svg/brand-logos/html5.svg new file mode 100644 index 0000000..50b8732 --- /dev/null +++ b/public/media/svg/brand-logos/html5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/huggies-2.svg b/public/media/svg/brand-logos/huggies-2.svg new file mode 100644 index 0000000..9d77114 --- /dev/null +++ b/public/media/svg/brand-logos/huggies-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/ikon-1.svg b/public/media/svg/brand-logos/ikon-1.svg new file mode 100644 index 0000000..30c7091 --- /dev/null +++ b/public/media/svg/brand-logos/ikon-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/infography.svg b/public/media/svg/brand-logos/infography.svg new file mode 100644 index 0000000..8a5023a --- /dev/null +++ b/public/media/svg/brand-logos/infography.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/instagram-2-1.svg b/public/media/svg/brand-logos/instagram-2-1.svg new file mode 100644 index 0000000..04aeff8 --- /dev/null +++ b/public/media/svg/brand-logos/instagram-2-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/instagram-2016.svg b/public/media/svg/brand-logos/instagram-2016.svg new file mode 100644 index 0000000..8a1fbcc --- /dev/null +++ b/public/media/svg/brand-logos/instagram-2016.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/intermarche-2.svg b/public/media/svg/brand-logos/intermarche-2.svg new file mode 100644 index 0000000..fdce438 --- /dev/null +++ b/public/media/svg/brand-logos/intermarche-2.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/invision.svg b/public/media/svg/brand-logos/invision.svg new file mode 100644 index 0000000..bba53d2 --- /dev/null +++ b/public/media/svg/brand-logos/invision.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/javascript-2.svg b/public/media/svg/brand-logos/javascript-2.svg new file mode 100644 index 0000000..d37637d --- /dev/null +++ b/public/media/svg/brand-logos/javascript-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/javascript-4.svg b/public/media/svg/brand-logos/javascript-4.svg new file mode 100644 index 0000000..dccb0ea --- /dev/null +++ b/public/media/svg/brand-logos/javascript-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/javascript.svg b/public/media/svg/brand-logos/javascript.svg new file mode 100644 index 0000000..6ef8fcb --- /dev/null +++ b/public/media/svg/brand-logos/javascript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/jelcz.svg b/public/media/svg/brand-logos/jelcz.svg new file mode 100644 index 0000000..ab78941 --- /dev/null +++ b/public/media/svg/brand-logos/jelcz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/jfits.svg b/public/media/svg/brand-logos/jfits.svg new file mode 100644 index 0000000..878de7e --- /dev/null +++ b/public/media/svg/brand-logos/jfits.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/jquery-2.svg b/public/media/svg/brand-logos/jquery-2.svg new file mode 100644 index 0000000..b637591 --- /dev/null +++ b/public/media/svg/brand-logos/jquery-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/jquery.svg b/public/media/svg/brand-logos/jquery.svg new file mode 100644 index 0000000..8a175c7 --- /dev/null +++ b/public/media/svg/brand-logos/jquery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/kanba.svg b/public/media/svg/brand-logos/kanba.svg new file mode 100644 index 0000000..a1b1b96 --- /dev/null +++ b/public/media/svg/brand-logos/kanba.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/keysight-logo.svg b/public/media/svg/brand-logos/keysight-logo.svg new file mode 100644 index 0000000..75ec218 --- /dev/null +++ b/public/media/svg/brand-logos/keysight-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/kickstarter.svg b/public/media/svg/brand-logos/kickstarter.svg new file mode 100644 index 0000000..6531bdb --- /dev/null +++ b/public/media/svg/brand-logos/kickstarter.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/komatsu-3.svg b/public/media/svg/brand-logos/komatsu-3.svg new file mode 100644 index 0000000..e85ae96 --- /dev/null +++ b/public/media/svg/brand-logos/komatsu-3.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/koni-special.svg b/public/media/svg/brand-logos/koni-special.svg new file mode 100644 index 0000000..bab1461 --- /dev/null +++ b/public/media/svg/brand-logos/koni-special.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/kpmg.svg b/public/media/svg/brand-logos/kpmg.svg new file mode 100644 index 0000000..0c5c7ef --- /dev/null +++ b/public/media/svg/brand-logos/kpmg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/laravel-2.svg b/public/media/svg/brand-logos/laravel-2.svg new file mode 100644 index 0000000..8489937 --- /dev/null +++ b/public/media/svg/brand-logos/laravel-2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/brand-logos/last-fm-1.svg b/public/media/svg/brand-logos/last-fm-1.svg new file mode 100644 index 0000000..1175fd4 --- /dev/null +++ b/public/media/svg/brand-logos/last-fm-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/leaf.svg b/public/media/svg/brand-logos/leaf.svg new file mode 100644 index 0000000..b0c2b95 --- /dev/null +++ b/public/media/svg/brand-logos/leaf.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/leclerc-1.svg b/public/media/svg/brand-logos/leclerc-1.svg new file mode 100644 index 0000000..4804068 --- /dev/null +++ b/public/media/svg/brand-logos/leclerc-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/legrand.svg b/public/media/svg/brand-logos/legrand.svg new file mode 100644 index 0000000..be8e984 --- /dev/null +++ b/public/media/svg/brand-logos/legrand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/leica-2.svg b/public/media/svg/brand-logos/leica-2.svg new file mode 100644 index 0000000..284719d --- /dev/null +++ b/public/media/svg/brand-logos/leica-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/levis.svg b/public/media/svg/brand-logos/levis.svg new file mode 100644 index 0000000..2106c9b --- /dev/null +++ b/public/media/svg/brand-logos/levis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/lg-electronics.svg b/public/media/svg/brand-logos/lg-electronics.svg new file mode 100644 index 0000000..4011702 --- /dev/null +++ b/public/media/svg/brand-logos/lg-electronics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/lidl-supermarkets.svg b/public/media/svg/brand-logos/lidl-supermarkets.svg new file mode 100644 index 0000000..a9ba6f6 --- /dev/null +++ b/public/media/svg/brand-logos/lidl-supermarkets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/linkedin-1.svg b/public/media/svg/brand-logos/linkedin-1.svg new file mode 100644 index 0000000..e94ecff --- /dev/null +++ b/public/media/svg/brand-logos/linkedin-1.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/linkedin-2.svg b/public/media/svg/brand-logos/linkedin-2.svg new file mode 100644 index 0000000..d8c2d30 --- /dev/null +++ b/public/media/svg/brand-logos/linkedin-2.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/linkedin.svg b/public/media/svg/brand-logos/linkedin.svg new file mode 100644 index 0000000..c5cb248 --- /dev/null +++ b/public/media/svg/brand-logos/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/lloyds-of-london-logo.svg b/public/media/svg/brand-logos/lloyds-of-london-logo.svg new file mode 100644 index 0000000..0694c08 --- /dev/null +++ b/public/media/svg/brand-logos/lloyds-of-london-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/mastercard-icon.svg b/public/media/svg/brand-logos/mastercard-icon.svg new file mode 100644 index 0000000..924a6d7 --- /dev/null +++ b/public/media/svg/brand-logos/mastercard-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/maxis-communications-logo.svg b/public/media/svg/brand-logos/maxis-communications-logo.svg new file mode 100644 index 0000000..2dd5bd9 --- /dev/null +++ b/public/media/svg/brand-logos/maxis-communications-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/metro-1.svg b/public/media/svg/brand-logos/metro-1.svg new file mode 100644 index 0000000..70b7520 --- /dev/null +++ b/public/media/svg/brand-logos/metro-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/metro-4.svg b/public/media/svg/brand-logos/metro-4.svg new file mode 100644 index 0000000..fa9cf60 --- /dev/null +++ b/public/media/svg/brand-logos/metro-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/metro-by-t-mobile.svg b/public/media/svg/brand-logos/metro-by-t-mobile.svg new file mode 100644 index 0000000..7a616a5 --- /dev/null +++ b/public/media/svg/brand-logos/metro-by-t-mobile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/microsoft-5.svg b/public/media/svg/brand-logos/microsoft-5.svg new file mode 100644 index 0000000..89f6237 --- /dev/null +++ b/public/media/svg/brand-logos/microsoft-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/miller-6.svg b/public/media/svg/brand-logos/miller-6.svg new file mode 100644 index 0000000..3264c09 --- /dev/null +++ b/public/media/svg/brand-logos/miller-6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/minol.svg b/public/media/svg/brand-logos/minol.svg new file mode 100644 index 0000000..6e7c3c5 --- /dev/null +++ b/public/media/svg/brand-logos/minol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/mnd.svg b/public/media/svg/brand-logos/mnd.svg new file mode 100644 index 0000000..ddce94f --- /dev/null +++ b/public/media/svg/brand-logos/mnd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/msn.svg b/public/media/svg/brand-logos/msn.svg new file mode 100644 index 0000000..8e831c1 --- /dev/null +++ b/public/media/svg/brand-logos/msn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/mysql-2.svg b/public/media/svg/brand-logos/mysql-2.svg new file mode 100644 index 0000000..9f4c2b6 --- /dev/null +++ b/public/media/svg/brand-logos/mysql-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/nasa.svg b/public/media/svg/brand-logos/nasa.svg new file mode 100644 index 0000000..3cde3d5 --- /dev/null +++ b/public/media/svg/brand-logos/nasa.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/nestle-4.svg b/public/media/svg/brand-logos/nestle-4.svg new file mode 100644 index 0000000..8ad83f1 --- /dev/null +++ b/public/media/svg/brand-logos/nestle-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/new-beko-logo.svg b/public/media/svg/brand-logos/new-beko-logo.svg new file mode 100644 index 0000000..96b7ae6 --- /dev/null +++ b/public/media/svg/brand-logos/new-beko-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/nike-4.svg b/public/media/svg/brand-logos/nike-4.svg new file mode 100644 index 0000000..e48b055 --- /dev/null +++ b/public/media/svg/brand-logos/nike-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/node-sass.svg b/public/media/svg/brand-logos/node-sass.svg new file mode 100644 index 0000000..53e709b --- /dev/null +++ b/public/media/svg/brand-logos/node-sass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/noht.svg b/public/media/svg/brand-logos/noht.svg new file mode 100644 index 0000000..48f2dae --- /dev/null +++ b/public/media/svg/brand-logos/noht.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/npm.svg b/public/media/svg/brand-logos/npm.svg new file mode 100644 index 0000000..867a7b9 --- /dev/null +++ b/public/media/svg/brand-logos/npm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/ocaml.svg b/public/media/svg/brand-logos/ocaml.svg new file mode 100644 index 0000000..5f96801 --- /dev/null +++ b/public/media/svg/brand-logos/ocaml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/oger-tours.svg b/public/media/svg/brand-logos/oger-tours.svg new file mode 100644 index 0000000..034265c --- /dev/null +++ b/public/media/svg/brand-logos/oger-tours.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/origin-4.svg b/public/media/svg/brand-logos/origin-4.svg new file mode 100644 index 0000000..1743457 --- /dev/null +++ b/public/media/svg/brand-logos/origin-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/paypie.svg b/public/media/svg/brand-logos/paypie.svg new file mode 100644 index 0000000..cae640f --- /dev/null +++ b/public/media/svg/brand-logos/paypie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/pinterest-p.svg b/public/media/svg/brand-logos/pinterest-p.svg new file mode 100644 index 0000000..7b28e2e --- /dev/null +++ b/public/media/svg/brand-logos/pinterest-p.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/brand-logos/pinterest.svg b/public/media/svg/brand-logos/pinterest.svg new file mode 100644 index 0000000..9fbd772 --- /dev/null +++ b/public/media/svg/brand-logos/pinterest.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/plurk.svg b/public/media/svg/brand-logos/plurk.svg new file mode 100644 index 0000000..55dcf33 --- /dev/null +++ b/public/media/svg/brand-logos/plurk.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/puma-logo.svg b/public/media/svg/brand-logos/puma-logo.svg new file mode 100644 index 0000000..5d37fd8 --- /dev/null +++ b/public/media/svg/brand-logos/puma-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/python-5.svg b/public/media/svg/brand-logos/python-5.svg new file mode 100644 index 0000000..a16973b --- /dev/null +++ b/public/media/svg/brand-logos/python-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/quilosa.svg b/public/media/svg/brand-logos/quilosa.svg new file mode 100644 index 0000000..dec2f91 --- /dev/null +++ b/public/media/svg/brand-logos/quilosa.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/brand-logos/react-native-firebase-1.svg b/public/media/svg/brand-logos/react-native-firebase-1.svg new file mode 100644 index 0000000..88d87f3 --- /dev/null +++ b/public/media/svg/brand-logos/react-native-firebase-1.svg @@ -0,0 +1 @@ +Slice 1 \ No newline at end of file diff --git a/public/media/svg/brand-logos/react-router.svg b/public/media/svg/brand-logos/react-router.svg new file mode 100644 index 0000000..13d18ef --- /dev/null +++ b/public/media/svg/brand-logos/react-router.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/react.svg b/public/media/svg/brand-logos/react.svg new file mode 100644 index 0000000..f95e632 --- /dev/null +++ b/public/media/svg/brand-logos/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/redbull.svg b/public/media/svg/brand-logos/redbull.svg new file mode 100644 index 0000000..e5ee16d --- /dev/null +++ b/public/media/svg/brand-logos/redbull.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/reddit.svg b/public/media/svg/brand-logos/reddit.svg new file mode 100644 index 0000000..1079a68 --- /dev/null +++ b/public/media/svg/brand-logos/reddit.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/brand-logos/rgb.svg b/public/media/svg/brand-logos/rgb.svg new file mode 100644 index 0000000..7f11fbc --- /dev/null +++ b/public/media/svg/brand-logos/rgb.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/sass-1.svg b/public/media/svg/brand-logos/sass-1.svg new file mode 100644 index 0000000..87f96db --- /dev/null +++ b/public/media/svg/brand-logos/sass-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/seat-pg.svg b/public/media/svg/brand-logos/seat-pg.svg new file mode 100644 index 0000000..db76b6e --- /dev/null +++ b/public/media/svg/brand-logos/seat-pg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/sentry-3.svg b/public/media/svg/brand-logos/sentry-3.svg new file mode 100644 index 0000000..24348ad --- /dev/null +++ b/public/media/svg/brand-logos/sentry-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/shell.svg b/public/media/svg/brand-logos/shell.svg new file mode 100644 index 0000000..0d3a1e0 --- /dev/null +++ b/public/media/svg/brand-logos/shell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/siplast.svg b/public/media/svg/brand-logos/siplast.svg new file mode 100644 index 0000000..bef2b1f --- /dev/null +++ b/public/media/svg/brand-logos/siplast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/slack-icon.svg b/public/media/svg/brand-logos/slack-icon.svg new file mode 100644 index 0000000..7b55f9f --- /dev/null +++ b/public/media/svg/brand-logos/slack-icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/svg/brand-logos/slack-new-logo.svg b/public/media/svg/brand-logos/slack-new-logo.svg new file mode 100644 index 0000000..69a4eb6 --- /dev/null +++ b/public/media/svg/brand-logos/slack-new-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/slack.svg b/public/media/svg/brand-logos/slack.svg new file mode 100644 index 0000000..fb5e19e --- /dev/null +++ b/public/media/svg/brand-logos/slack.svg @@ -0,0 +1 @@ +backgroundLayer 1 \ No newline at end of file diff --git a/public/media/svg/brand-logos/smartphone.svg b/public/media/svg/brand-logos/smartphone.svg new file mode 100644 index 0000000..0bc0c61 --- /dev/null +++ b/public/media/svg/brand-logos/smartphone.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/brand-logos/snowbird.svg b/public/media/svg/brand-logos/snowbird.svg new file mode 100644 index 0000000..e373aa0 --- /dev/null +++ b/public/media/svg/brand-logos/snowbird.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/soriana-logo-1.svg b/public/media/svg/brand-logos/soriana-logo-1.svg new file mode 100644 index 0000000..2a59e52 --- /dev/null +++ b/public/media/svg/brand-logos/soriana-logo-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/sparkpost.svg b/public/media/svg/brand-logos/sparkpost.svg new file mode 100644 index 0000000..5d02749 --- /dev/null +++ b/public/media/svg/brand-logos/sparkpost.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/spotify-2.svg b/public/media/svg/brand-logos/spotify-2.svg new file mode 100644 index 0000000..cfc993b --- /dev/null +++ b/public/media/svg/brand-logos/spotify-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/spotify-logo.svg b/public/media/svg/brand-logos/spotify-logo.svg new file mode 100644 index 0000000..0294d06 --- /dev/null +++ b/public/media/svg/brand-logos/spotify-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/spotify.svg b/public/media/svg/brand-logos/spotify.svg new file mode 100644 index 0000000..c607a8b --- /dev/null +++ b/public/media/svg/brand-logos/spotify.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/spring-3.svg b/public/media/svg/brand-logos/spring-3.svg new file mode 100644 index 0000000..2564009 --- /dev/null +++ b/public/media/svg/brand-logos/spring-3.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/brand-logos/sprint-nextel.svg b/public/media/svg/brand-logos/sprint-nextel.svg new file mode 100644 index 0000000..b82459e --- /dev/null +++ b/public/media/svg/brand-logos/sprint-nextel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/stabilo.svg b/public/media/svg/brand-logos/stabilo.svg new file mode 100644 index 0000000..36a5fb4 --- /dev/null +++ b/public/media/svg/brand-logos/stabilo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/strava-wordmark-1.svg b/public/media/svg/brand-logos/strava-wordmark-1.svg new file mode 100644 index 0000000..a281c3e --- /dev/null +++ b/public/media/svg/brand-logos/strava-wordmark-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/stream-1.svg b/public/media/svg/brand-logos/stream-1.svg new file mode 100644 index 0000000..314d738 --- /dev/null +++ b/public/media/svg/brand-logos/stream-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/super-cuts.svg b/public/media/svg/brand-logos/super-cuts.svg new file mode 100644 index 0000000..13bbb3b --- /dev/null +++ b/public/media/svg/brand-logos/super-cuts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/suzuki-motor-corporation-logo.svg b/public/media/svg/brand-logos/suzuki-motor-corporation-logo.svg new file mode 100644 index 0000000..5b9d089 --- /dev/null +++ b/public/media/svg/brand-logos/suzuki-motor-corporation-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/suzuki.svg b/public/media/svg/brand-logos/suzuki.svg new file mode 100644 index 0000000..3e1c620 --- /dev/null +++ b/public/media/svg/brand-logos/suzuki.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/swarm.svg b/public/media/svg/brand-logos/swarm.svg new file mode 100644 index 0000000..2240b86 --- /dev/null +++ b/public/media/svg/brand-logos/swarm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/syngenta.svg b/public/media/svg/brand-logos/syngenta.svg new file mode 100644 index 0000000..9a396b5 --- /dev/null +++ b/public/media/svg/brand-logos/syngenta.svg @@ -0,0 +1 @@ + diff --git a/public/media/svg/brand-logos/telegram-2.svg b/public/media/svg/brand-logos/telegram-2.svg new file mode 100644 index 0000000..e9b1f6c --- /dev/null +++ b/public/media/svg/brand-logos/telegram-2.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/telegram.svg b/public/media/svg/brand-logos/telegram.svg new file mode 100644 index 0000000..4ea28d8 --- /dev/null +++ b/public/media/svg/brand-logos/telegram.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/svg/brand-logos/tempstar.svg b/public/media/svg/brand-logos/tempstar.svg new file mode 100644 index 0000000..2dd75ac --- /dev/null +++ b/public/media/svg/brand-logos/tempstar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/the-blockchain-group-tbg.svg b/public/media/svg/brand-logos/the-blockchain-group-tbg.svg new file mode 100644 index 0000000..d6a3c86 --- /dev/null +++ b/public/media/svg/brand-logos/the-blockchain-group-tbg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/thomas-1.svg b/public/media/svg/brand-logos/thomas-1.svg new file mode 100644 index 0000000..23c3d7a --- /dev/null +++ b/public/media/svg/brand-logos/thomas-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/thuisbezorgd.svg b/public/media/svg/brand-logos/thuisbezorgd.svg new file mode 100644 index 0000000..0a7ad46 --- /dev/null +++ b/public/media/svg/brand-logos/thuisbezorgd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/thule-2.svg b/public/media/svg/brand-logos/thule-2.svg new file mode 100644 index 0000000..88dbde6 --- /dev/null +++ b/public/media/svg/brand-logos/thule-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/ticketmaster-5.svg b/public/media/svg/brand-logos/ticketmaster-5.svg new file mode 100644 index 0000000..34e32ec --- /dev/null +++ b/public/media/svg/brand-logos/ticketmaster-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/tofas-logo.svg b/public/media/svg/brand-logos/tofas-logo.svg new file mode 100644 index 0000000..d2e430d --- /dev/null +++ b/public/media/svg/brand-logos/tofas-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/tower.svg b/public/media/svg/brand-logos/tower.svg new file mode 100644 index 0000000..8e1584b --- /dev/null +++ b/public/media/svg/brand-logos/tower.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/svg/brand-logos/treva.svg b/public/media/svg/brand-logos/treva.svg new file mode 100644 index 0000000..696e2d3 --- /dev/null +++ b/public/media/svg/brand-logos/treva.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/trimble-2.svg b/public/media/svg/brand-logos/trimble-2.svg new file mode 100644 index 0000000..d34ce2a --- /dev/null +++ b/public/media/svg/brand-logos/trimble-2.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/trivago.svg b/public/media/svg/brand-logos/trivago.svg new file mode 100644 index 0000000..f2277f1 --- /dev/null +++ b/public/media/svg/brand-logos/trivago.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/truman.svg b/public/media/svg/brand-logos/truman.svg new file mode 100644 index 0000000..0fbefa3 --- /dev/null +++ b/public/media/svg/brand-logos/truman.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/tvit.svg b/public/media/svg/brand-logos/tvit.svg new file mode 100644 index 0000000..2c1b4b2 --- /dev/null +++ b/public/media/svg/brand-logos/tvit.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/media/svg/brand-logos/twitch.svg b/public/media/svg/brand-logos/twitch.svg new file mode 100644 index 0000000..0e1882b --- /dev/null +++ b/public/media/svg/brand-logos/twitch.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/brand-logos/twitter-2.svg b/public/media/svg/brand-logos/twitter-2.svg new file mode 100644 index 0000000..45d188c --- /dev/null +++ b/public/media/svg/brand-logos/twitter-2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/svg/brand-logos/twitter.svg b/public/media/svg/brand-logos/twitter.svg new file mode 100644 index 0000000..3da834b --- /dev/null +++ b/public/media/svg/brand-logos/twitter.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/brand-logos/typescript-1.svg b/public/media/svg/brand-logos/typescript-1.svg new file mode 100644 index 0000000..030efa2 --- /dev/null +++ b/public/media/svg/brand-logos/typescript-1.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/svg/brand-logos/unilever-2.svg b/public/media/svg/brand-logos/unilever-2.svg new file mode 100644 index 0000000..bcbc7f9 --- /dev/null +++ b/public/media/svg/brand-logos/unilever-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/university-of-cambridge.svg b/public/media/svg/brand-logos/university-of-cambridge.svg new file mode 100644 index 0000000..dc853bd --- /dev/null +++ b/public/media/svg/brand-logos/university-of-cambridge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/urw-software.svg b/public/media/svg/brand-logos/urw-software.svg new file mode 100644 index 0000000..8008430 --- /dev/null +++ b/public/media/svg/brand-logos/urw-software.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/verizon-2015.svg b/public/media/svg/brand-logos/verizon-2015.svg new file mode 100644 index 0000000..3ae76f7 --- /dev/null +++ b/public/media/svg/brand-logos/verizon-2015.svg @@ -0,0 +1 @@ +Layer 1 copy \ No newline at end of file diff --git a/public/media/svg/brand-logos/vimeo-icon.svg b/public/media/svg/brand-logos/vimeo-icon.svg new file mode 100644 index 0000000..93dc538 --- /dev/null +++ b/public/media/svg/brand-logos/vimeo-icon.svg @@ -0,0 +1 @@ +Layer 1 \ No newline at end of file diff --git a/public/media/svg/brand-logos/vimeo.svg b/public/media/svg/brand-logos/vimeo.svg new file mode 100644 index 0000000..cbd268c --- /dev/null +++ b/public/media/svg/brand-logos/vimeo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/visa-icon.svg b/public/media/svg/brand-logos/visa-icon.svg new file mode 100644 index 0000000..495cd2a --- /dev/null +++ b/public/media/svg/brand-logos/visa-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/brand-logos/visa.svg b/public/media/svg/brand-logos/visa.svg new file mode 100644 index 0000000..75c2c81 --- /dev/null +++ b/public/media/svg/brand-logos/visa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/vodafone.svg b/public/media/svg/brand-logos/vodafone.svg new file mode 100644 index 0000000..42e0d61 --- /dev/null +++ b/public/media/svg/brand-logos/vodafone.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/svg/brand-logos/volicity-9.svg b/public/media/svg/brand-logos/volicity-9.svg new file mode 100644 index 0000000..d57091f --- /dev/null +++ b/public/media/svg/brand-logos/volicity-9.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/brand-logos/vue-9.svg b/public/media/svg/brand-logos/vue-9.svg new file mode 100644 index 0000000..8d00e8c --- /dev/null +++ b/public/media/svg/brand-logos/vue-9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/vype.svg b/public/media/svg/brand-logos/vype.svg new file mode 100644 index 0000000..46c2978 --- /dev/null +++ b/public/media/svg/brand-logos/vype.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/webasto-logo.svg b/public/media/svg/brand-logos/webasto-logo.svg new file mode 100644 index 0000000..1f41e5d --- /dev/null +++ b/public/media/svg/brand-logos/webasto-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/webpack-icon.svg b/public/media/svg/brand-logos/webpack-icon.svg new file mode 100644 index 0000000..c03e0c7 --- /dev/null +++ b/public/media/svg/brand-logos/webpack-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/webpack.svg b/public/media/svg/brand-logos/webpack.svg new file mode 100644 index 0000000..4f34cfc --- /dev/null +++ b/public/media/svg/brand-logos/webpack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/west-marine.svg b/public/media/svg/brand-logos/west-marine.svg new file mode 100644 index 0000000..22d3b33 --- /dev/null +++ b/public/media/svg/brand-logos/west-marine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/worth.svg b/public/media/svg/brand-logos/worth.svg new file mode 100644 index 0000000..e29a6ce --- /dev/null +++ b/public/media/svg/brand-logos/worth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/xing-icon.svg b/public/media/svg/brand-logos/xing-icon.svg new file mode 100644 index 0000000..32bd4b6 --- /dev/null +++ b/public/media/svg/brand-logos/xing-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/youtube-3.svg b/public/media/svg/brand-logos/youtube-3.svg new file mode 100644 index 0000000..53c736f --- /dev/null +++ b/public/media/svg/brand-logos/youtube-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/youtube-play.svg b/public/media/svg/brand-logos/youtube-play.svg new file mode 100644 index 0000000..094729f --- /dev/null +++ b/public/media/svg/brand-logos/youtube-play.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/svg/brand-logos/youtube.svg b/public/media/svg/brand-logos/youtube.svg new file mode 100644 index 0000000..9252be0 --- /dev/null +++ b/public/media/svg/brand-logos/youtube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/ziprecruiter-blacktext.svg b/public/media/svg/brand-logos/ziprecruiter-blacktext.svg new file mode 100644 index 0000000..6bcea1c --- /dev/null +++ b/public/media/svg/brand-logos/ziprecruiter-blacktext.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/brand-logos/zurich-logo.svg b/public/media/svg/brand-logos/zurich-logo.svg new file mode 100644 index 0000000..7de841c --- /dev/null +++ b/public/media/svg/brand-logos/zurich-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/card-logos/american-express-dark.svg b/public/media/svg/card-logos/american-express-dark.svg new file mode 100644 index 0000000..3595187 --- /dev/null +++ b/public/media/svg/card-logos/american-express-dark.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/card-logos/american-express.svg b/public/media/svg/card-logos/american-express.svg new file mode 100644 index 0000000..63c22c0 --- /dev/null +++ b/public/media/svg/card-logos/american-express.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/card-logos/bitcoin 1.svg b/public/media/svg/card-logos/bitcoin 1.svg new file mode 100644 index 0000000..37d7b7b --- /dev/null +++ b/public/media/svg/card-logos/bitcoin 1.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/media/svg/card-logos/dark/american-express.svg b/public/media/svg/card-logos/dark/american-express.svg new file mode 100644 index 0000000..3595187 --- /dev/null +++ b/public/media/svg/card-logos/dark/american-express.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/card-logos/dark/mastercard.svg b/public/media/svg/card-logos/dark/mastercard.svg new file mode 100644 index 0000000..5cd3d22 --- /dev/null +++ b/public/media/svg/card-logos/dark/mastercard.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/svg/card-logos/dark/visa.svg b/public/media/svg/card-logos/dark/visa.svg new file mode 100644 index 0000000..267a3f0 --- /dev/null +++ b/public/media/svg/card-logos/dark/visa.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/card-logos/mastercard-dark.svg b/public/media/svg/card-logos/mastercard-dark.svg new file mode 100644 index 0000000..5cd3d22 --- /dev/null +++ b/public/media/svg/card-logos/mastercard-dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/svg/card-logos/mastercard.svg b/public/media/svg/card-logos/mastercard.svg new file mode 100644 index 0000000..924a6d7 --- /dev/null +++ b/public/media/svg/card-logos/mastercard.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/media/svg/card-logos/visa-dark.svg b/public/media/svg/card-logos/visa-dark.svg new file mode 100644 index 0000000..267a3f0 --- /dev/null +++ b/public/media/svg/card-logos/visa-dark.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/card-logos/visa.svg b/public/media/svg/card-logos/visa.svg new file mode 100644 index 0000000..495cd2a --- /dev/null +++ b/public/media/svg/card-logos/visa.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/coins/binance.svg b/public/media/svg/coins/binance.svg new file mode 100644 index 0000000..39ef9e3 --- /dev/null +++ b/public/media/svg/coins/binance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/coins/bitcoin.svg b/public/media/svg/coins/bitcoin.svg new file mode 100644 index 0000000..a48a337 --- /dev/null +++ b/public/media/svg/coins/bitcoin.svg @@ -0,0 +1,2 @@ + + diff --git a/public/media/svg/coins/chainlink.svg b/public/media/svg/coins/chainlink.svg new file mode 100644 index 0000000..c2ed614 --- /dev/null +++ b/public/media/svg/coins/chainlink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/coins/coin.svg b/public/media/svg/coins/coin.svg new file mode 100644 index 0000000..0354b17 --- /dev/null +++ b/public/media/svg/coins/coin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/coins/ethereum.svg b/public/media/svg/coins/ethereum.svg new file mode 100644 index 0000000..adc9ac2 --- /dev/null +++ b/public/media/svg/coins/ethereum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/coins/filecoin.svg b/public/media/svg/coins/filecoin.svg new file mode 100644 index 0000000..7e93910 --- /dev/null +++ b/public/media/svg/coins/filecoin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/files/ai-dark.svg b/public/media/svg/files/ai-dark.svg new file mode 100644 index 0000000..c0c8f20 --- /dev/null +++ b/public/media/svg/files/ai-dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/files/ai.svg b/public/media/svg/files/ai.svg new file mode 100644 index 0000000..a8d2dbf --- /dev/null +++ b/public/media/svg/files/ai.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/files/blank-image-dark.svg b/public/media/svg/files/blank-image-dark.svg new file mode 100644 index 0000000..7b8f7c0 --- /dev/null +++ b/public/media/svg/files/blank-image-dark.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/media/svg/files/blank-image.svg b/public/media/svg/files/blank-image.svg new file mode 100644 index 0000000..1c19b8e --- /dev/null +++ b/public/media/svg/files/blank-image.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/media/svg/files/css-dark.svg b/public/media/svg/files/css-dark.svg new file mode 100644 index 0000000..552105d --- /dev/null +++ b/public/media/svg/files/css-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/css.svg b/public/media/svg/files/css.svg new file mode 100644 index 0000000..b9af7b9 --- /dev/null +++ b/public/media/svg/files/css.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/dark/ai.svg b/public/media/svg/files/dark/ai.svg new file mode 100644 index 0000000..c0c8f20 --- /dev/null +++ b/public/media/svg/files/dark/ai.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/files/dark/css.svg b/public/media/svg/files/dark/css.svg new file mode 100644 index 0000000..552105d --- /dev/null +++ b/public/media/svg/files/dark/css.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/dark/doc.svg b/public/media/svg/files/dark/doc.svg new file mode 100644 index 0000000..c2df086 --- /dev/null +++ b/public/media/svg/files/dark/doc.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/dark/folder-document.svg b/public/media/svg/files/dark/folder-document.svg new file mode 100644 index 0000000..3b404e5 --- /dev/null +++ b/public/media/svg/files/dark/folder-document.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/dark/pdf.svg b/public/media/svg/files/dark/pdf.svg new file mode 100644 index 0000000..f49c95f --- /dev/null +++ b/public/media/svg/files/dark/pdf.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/dark/sql.svg b/public/media/svg/files/dark/sql.svg new file mode 100644 index 0000000..012d547 --- /dev/null +++ b/public/media/svg/files/dark/sql.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/dark/tif.svg b/public/media/svg/files/dark/tif.svg new file mode 100644 index 0000000..22985c5 --- /dev/null +++ b/public/media/svg/files/dark/tif.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/dark/upload.svg b/public/media/svg/files/dark/upload.svg new file mode 100644 index 0000000..6d2a7d8 --- /dev/null +++ b/public/media/svg/files/dark/upload.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/files/dark/xml.svg b/public/media/svg/files/dark/xml.svg new file mode 100644 index 0000000..5edca13 --- /dev/null +++ b/public/media/svg/files/dark/xml.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/doc-dark.svg b/public/media/svg/files/doc-dark.svg new file mode 100644 index 0000000..c2df086 --- /dev/null +++ b/public/media/svg/files/doc-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/doc.svg b/public/media/svg/files/doc.svg new file mode 100644 index 0000000..82100f2 --- /dev/null +++ b/public/media/svg/files/doc.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/folder-document-dark.svg b/public/media/svg/files/folder-document-dark.svg new file mode 100644 index 0000000..3b404e5 --- /dev/null +++ b/public/media/svg/files/folder-document-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/folder-document.svg b/public/media/svg/files/folder-document.svg new file mode 100644 index 0000000..c8d488b --- /dev/null +++ b/public/media/svg/files/folder-document.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/svg/files/pdf-dark.svg b/public/media/svg/files/pdf-dark.svg new file mode 100644 index 0000000..f49c95f --- /dev/null +++ b/public/media/svg/files/pdf-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/pdf.svg b/public/media/svg/files/pdf.svg new file mode 100644 index 0000000..4003c09 --- /dev/null +++ b/public/media/svg/files/pdf.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/sql-dark.svg b/public/media/svg/files/sql-dark.svg new file mode 100644 index 0000000..012d547 --- /dev/null +++ b/public/media/svg/files/sql-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/sql.svg b/public/media/svg/files/sql.svg new file mode 100644 index 0000000..4b78b60 --- /dev/null +++ b/public/media/svg/files/sql.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/tif-dark.svg b/public/media/svg/files/tif-dark.svg new file mode 100644 index 0000000..22985c5 --- /dev/null +++ b/public/media/svg/files/tif-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/tif.svg b/public/media/svg/files/tif.svg new file mode 100644 index 0000000..cdb1eb5 --- /dev/null +++ b/public/media/svg/files/tif.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/upload-dark.svg b/public/media/svg/files/upload-dark.svg new file mode 100644 index 0000000..6d2a7d8 --- /dev/null +++ b/public/media/svg/files/upload-dark.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/files/upload.svg b/public/media/svg/files/upload.svg new file mode 100644 index 0000000..330331d --- /dev/null +++ b/public/media/svg/files/upload.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/files/xml-dark.svg b/public/media/svg/files/xml-dark.svg new file mode 100644 index 0000000..5edca13 --- /dev/null +++ b/public/media/svg/files/xml-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/files/xml.svg b/public/media/svg/files/xml.svg new file mode 100644 index 0000000..dba88da --- /dev/null +++ b/public/media/svg/files/xml.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/food-icons/cheeseburger.svg b/public/media/svg/food-icons/cheeseburger.svg new file mode 100644 index 0000000..7c9b1c6 --- /dev/null +++ b/public/media/svg/food-icons/cheeseburger.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/food-icons/cheesecake.svg b/public/media/svg/food-icons/cheesecake.svg new file mode 100644 index 0000000..57dff48 --- /dev/null +++ b/public/media/svg/food-icons/cheesecake.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/food-icons/coffee.svg b/public/media/svg/food-icons/coffee.svg new file mode 100644 index 0000000..9faea05 --- /dev/null +++ b/public/media/svg/food-icons/coffee.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/food-icons/salad.svg b/public/media/svg/food-icons/salad.svg new file mode 100644 index 0000000..2714862 --- /dev/null +++ b/public/media/svg/food-icons/salad.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/food-icons/spaghetti.svg b/public/media/svg/food-icons/spaghetti.svg new file mode 100644 index 0000000..13d2c5e --- /dev/null +++ b/public/media/svg/food-icons/spaghetti.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/general/rhone.svg b/public/media/svg/general/rhone.svg new file mode 100644 index 0000000..b72f90e --- /dev/null +++ b/public/media/svg/general/rhone.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/humans/custom-1.svg b/public/media/svg/humans/custom-1.svg new file mode 100644 index 0000000..ff63cc1 --- /dev/null +++ b/public/media/svg/humans/custom-1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/illustrations/easy/1-dark.svg b/public/media/svg/illustrations/easy/1-dark.svg new file mode 100644 index 0000000..cb08bea --- /dev/null +++ b/public/media/svg/illustrations/easy/1-dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/illustrations/easy/1.svg b/public/media/svg/illustrations/easy/1.svg new file mode 100644 index 0000000..e9c2c19 --- /dev/null +++ b/public/media/svg/illustrations/easy/1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/illustrations/easy/2-dark.svg b/public/media/svg/illustrations/easy/2-dark.svg new file mode 100644 index 0000000..8d4fceb --- /dev/null +++ b/public/media/svg/illustrations/easy/2-dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/illustrations/easy/2.svg b/public/media/svg/illustrations/easy/2.svg new file mode 100644 index 0000000..e44398c --- /dev/null +++ b/public/media/svg/illustrations/easy/2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/illustrations/easy/3-dark.svg b/public/media/svg/illustrations/easy/3-dark.svg new file mode 100644 index 0000000..535f33a --- /dev/null +++ b/public/media/svg/illustrations/easy/3-dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/media/svg/illustrations/easy/3.svg b/public/media/svg/illustrations/easy/3.svg new file mode 100644 index 0000000..413b79d --- /dev/null +++ b/public/media/svg/illustrations/easy/3.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/media/svg/illustrations/easy/4.svg b/public/media/svg/illustrations/easy/4.svg new file mode 100644 index 0000000..bf60722 --- /dev/null +++ b/public/media/svg/illustrations/easy/4.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/media/svg/illustrations/easy/5.svg b/public/media/svg/illustrations/easy/5.svg new file mode 100644 index 0000000..8ed35f3 --- /dev/null +++ b/public/media/svg/illustrations/easy/5.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/media/svg/illustrations/easy/6.svg b/public/media/svg/illustrations/easy/6.svg new file mode 100644 index 0000000..2f87b2f --- /dev/null +++ b/public/media/svg/illustrations/easy/6.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/illustrations/easy/7.svg b/public/media/svg/illustrations/easy/7.svg new file mode 100644 index 0000000..3603f77 --- /dev/null +++ b/public/media/svg/illustrations/easy/7.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/media/svg/illustrations/easy/8.svg b/public/media/svg/illustrations/easy/8.svg new file mode 100644 index 0000000..21e02dc --- /dev/null +++ b/public/media/svg/illustrations/easy/8.svg @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/illustrations/landing.svg b/public/media/svg/illustrations/landing.svg new file mode 100644 index 0000000..1baba8d --- /dev/null +++ b/public/media/svg/illustrations/landing.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/illustrations/sigma/illustration-realestate.svg b/public/media/svg/illustrations/sigma/illustration-realestate.svg new file mode 100644 index 0000000..1451727 --- /dev/null +++ b/public/media/svg/illustrations/sigma/illustration-realestate.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/illustrations/sigma/question.svg b/public/media/svg/illustrations/sigma/question.svg new file mode 100644 index 0000000..ee653aa --- /dev/null +++ b/public/media/svg/illustrations/sigma/question.svg @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/illustrations/sigma/volume-1-dark.svg b/public/media/svg/illustrations/sigma/volume-1-dark.svg new file mode 100644 index 0000000..834c3a3 --- /dev/null +++ b/public/media/svg/illustrations/sigma/volume-1-dark.svg @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/illustrations/sigma/volume-1.svg b/public/media/svg/illustrations/sigma/volume-1.svg new file mode 100644 index 0000000..e72aff5 --- /dev/null +++ b/public/media/svg/illustrations/sigma/volume-1.svg @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/misc/eolic-energy.svg b/public/media/svg/misc/eolic-energy.svg new file mode 100644 index 0000000..ab2d5d8 --- /dev/null +++ b/public/media/svg/misc/eolic-energy.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/misc/hot-air-balloon.svg b/public/media/svg/misc/hot-air-balloon.svg new file mode 100644 index 0000000..27c7797 --- /dev/null +++ b/public/media/svg/misc/hot-air-balloon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/misc/infography.svg b/public/media/svg/misc/infography.svg new file mode 100644 index 0000000..8a5023a --- /dev/null +++ b/public/media/svg/misc/infography.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/misc/octagon.svg b/public/media/svg/misc/octagon.svg new file mode 100644 index 0000000..4160f70 --- /dev/null +++ b/public/media/svg/misc/octagon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/svg/misc/puzzle.svg b/public/media/svg/misc/puzzle.svg new file mode 100644 index 0000000..3bcce2e --- /dev/null +++ b/public/media/svg/misc/puzzle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/media/svg/misc/recycling.svg b/public/media/svg/misc/recycling.svg new file mode 100644 index 0000000..26cb29f --- /dev/null +++ b/public/media/svg/misc/recycling.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/misc/retweet.svg b/public/media/svg/misc/retweet.svg new file mode 100644 index 0000000..27d9005 --- /dev/null +++ b/public/media/svg/misc/retweet.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/misc/smartphone-2-dark.svg b/public/media/svg/misc/smartphone-2-dark.svg new file mode 100644 index 0000000..5b9db59 --- /dev/null +++ b/public/media/svg/misc/smartphone-2-dark.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/misc/smartphone-2.svg b/public/media/svg/misc/smartphone-2.svg new file mode 100644 index 0000000..30d2344 --- /dev/null +++ b/public/media/svg/misc/smartphone-2.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/misc/smartphone-dark.svg b/public/media/svg/misc/smartphone-dark.svg new file mode 100644 index 0000000..69cf257 --- /dev/null +++ b/public/media/svg/misc/smartphone-dark.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/misc/smartphone.svg b/public/media/svg/misc/smartphone.svg new file mode 100644 index 0000000..0bc0c61 --- /dev/null +++ b/public/media/svg/misc/smartphone.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/misc/taieri.svg b/public/media/svg/misc/taieri.svg new file mode 100644 index 0000000..cfbcc58 --- /dev/null +++ b/public/media/svg/misc/taieri.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/media/svg/misc/video-play.svg b/public/media/svg/misc/video-play.svg new file mode 100644 index 0000000..575f742 --- /dev/null +++ b/public/media/svg/misc/video-play.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/payment-methods/americanexpress.svg b/public/media/svg/payment-methods/americanexpress.svg new file mode 100644 index 0000000..00bff07 --- /dev/null +++ b/public/media/svg/payment-methods/americanexpress.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/media/svg/payment-methods/mastercard.svg b/public/media/svg/payment-methods/mastercard.svg new file mode 100644 index 0000000..808a472 --- /dev/null +++ b/public/media/svg/payment-methods/mastercard.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/payment-methods/paypal.svg b/public/media/svg/payment-methods/paypal.svg new file mode 100644 index 0000000..647cc19 --- /dev/null +++ b/public/media/svg/payment-methods/paypal.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/media/svg/payment-methods/visa.svg b/public/media/svg/payment-methods/visa.svg new file mode 100644 index 0000000..23819b5 --- /dev/null +++ b/public/media/svg/payment-methods/visa.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/svg/products-categories/gaming.svg b/public/media/svg/products-categories/gaming.svg new file mode 100644 index 0000000..cf84d17 --- /dev/null +++ b/public/media/svg/products-categories/gaming.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/products-categories/gloves.svg b/public/media/svg/products-categories/gloves.svg new file mode 100644 index 0000000..d24976b --- /dev/null +++ b/public/media/svg/products-categories/gloves.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/products-categories/shoes.svg b/public/media/svg/products-categories/shoes.svg new file mode 100644 index 0000000..337a776 --- /dev/null +++ b/public/media/svg/products-categories/shoes.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/media/svg/products-categories/t-shirt.svg b/public/media/svg/products-categories/t-shirt.svg new file mode 100644 index 0000000..bbb4ac7 --- /dev/null +++ b/public/media/svg/products-categories/t-shirt.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/media/svg/products-categories/watch.svg b/public/media/svg/products-categories/watch.svg new file mode 100644 index 0000000..dca4585 --- /dev/null +++ b/public/media/svg/products-categories/watch.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-1-dark.svg b/public/media/svg/shapes/abstract-1-dark.svg new file mode 100644 index 0000000..375c6cc --- /dev/null +++ b/public/media/svg/shapes/abstract-1-dark.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-1.svg b/public/media/svg/shapes/abstract-1.svg new file mode 100644 index 0000000..f1708dd --- /dev/null +++ b/public/media/svg/shapes/abstract-1.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-10.svg b/public/media/svg/shapes/abstract-10.svg new file mode 100644 index 0000000..509eb31 --- /dev/null +++ b/public/media/svg/shapes/abstract-10.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-2-dark.svg b/public/media/svg/shapes/abstract-2-dark.svg new file mode 100644 index 0000000..b3ca328 --- /dev/null +++ b/public/media/svg/shapes/abstract-2-dark.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-2.svg b/public/media/svg/shapes/abstract-2.svg new file mode 100644 index 0000000..b964e84 --- /dev/null +++ b/public/media/svg/shapes/abstract-2.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/media/svg/shapes/abstract-3-dark.svg b/public/media/svg/shapes/abstract-3-dark.svg new file mode 100644 index 0000000..1e900d4 --- /dev/null +++ b/public/media/svg/shapes/abstract-3-dark.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-3.svg b/public/media/svg/shapes/abstract-3.svg new file mode 100644 index 0000000..c4fc1bb --- /dev/null +++ b/public/media/svg/shapes/abstract-3.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-4-dark.svg b/public/media/svg/shapes/abstract-4-dark.svg new file mode 100644 index 0000000..febc987 --- /dev/null +++ b/public/media/svg/shapes/abstract-4-dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-4.svg b/public/media/svg/shapes/abstract-4.svg new file mode 100644 index 0000000..86cc05e --- /dev/null +++ b/public/media/svg/shapes/abstract-4.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-5-dark.svg b/public/media/svg/shapes/abstract-5-dark.svg new file mode 100644 index 0000000..25be000 --- /dev/null +++ b/public/media/svg/shapes/abstract-5-dark.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-5.svg b/public/media/svg/shapes/abstract-5.svg new file mode 100644 index 0000000..0e18151 --- /dev/null +++ b/public/media/svg/shapes/abstract-5.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-6.svg b/public/media/svg/shapes/abstract-6.svg new file mode 100644 index 0000000..82b3fde --- /dev/null +++ b/public/media/svg/shapes/abstract-6.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/svg/shapes/abstract-7.svg b/public/media/svg/shapes/abstract-7.svg new file mode 100644 index 0000000..1985134 --- /dev/null +++ b/public/media/svg/shapes/abstract-7.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-8.svg b/public/media/svg/shapes/abstract-8.svg new file mode 100644 index 0000000..3faea00 --- /dev/null +++ b/public/media/svg/shapes/abstract-8.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/media/svg/shapes/abstract-9.svg b/public/media/svg/shapes/abstract-9.svg new file mode 100644 index 0000000..ae0cd46 --- /dev/null +++ b/public/media/svg/shapes/abstract-9.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/shapes/bitcoin.svg b/public/media/svg/shapes/bitcoin.svg new file mode 100644 index 0000000..12a58fc --- /dev/null +++ b/public/media/svg/shapes/bitcoin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/media/svg/shapes/dogecoin.svg b/public/media/svg/shapes/dogecoin.svg new file mode 100644 index 0000000..addfc2f --- /dev/null +++ b/public/media/svg/shapes/dogecoin.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/shapes/ethereum.svg b/public/media/svg/shapes/ethereum.svg new file mode 100644 index 0000000..866ffbc --- /dev/null +++ b/public/media/svg/shapes/ethereum.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/media/svg/shapes/man-head.svg b/public/media/svg/shapes/man-head.svg new file mode 100644 index 0000000..e69de29 diff --git a/public/media/svg/shapes/top-green.png b/public/media/svg/shapes/top-green.png new file mode 100644 index 0000000..7875a62 Binary files /dev/null and b/public/media/svg/shapes/top-green.png differ diff --git a/public/media/svg/shapes/wave-bg-dark.svg b/public/media/svg/shapes/wave-bg-dark.svg new file mode 100644 index 0000000..04b47da --- /dev/null +++ b/public/media/svg/shapes/wave-bg-dark.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/media/svg/shapes/wave-bg-purple.svg b/public/media/svg/shapes/wave-bg-purple.svg new file mode 100644 index 0000000..dbced46 --- /dev/null +++ b/public/media/svg/shapes/wave-bg-purple.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/media/svg/shapes/wave-bg-red.svg b/public/media/svg/shapes/wave-bg-red.svg new file mode 100644 index 0000000..a291cbe --- /dev/null +++ b/public/media/svg/shapes/wave-bg-red.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/media/svg/shapes/widget-bg-1.png b/public/media/svg/shapes/widget-bg-1.png new file mode 100644 index 0000000..47feb47 Binary files /dev/null and b/public/media/svg/shapes/widget-bg-1.png differ diff --git a/public/media/svg/shapes/widget-bg-2.png b/public/media/svg/shapes/widget-bg-2.png new file mode 100644 index 0000000..99ab569 Binary files /dev/null and b/public/media/svg/shapes/widget-bg-2.png differ diff --git a/public/media/svg/social-logos/dribbble.svg b/public/media/svg/social-logos/dribbble.svg new file mode 100644 index 0000000..a4c9705 --- /dev/null +++ b/public/media/svg/social-logos/dribbble.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/svg/social-logos/facebook.svg b/public/media/svg/social-logos/facebook.svg new file mode 100644 index 0000000..ccff813 --- /dev/null +++ b/public/media/svg/social-logos/facebook.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/media/svg/social-logos/github.svg b/public/media/svg/social-logos/github.svg new file mode 100644 index 0000000..1d8b300 --- /dev/null +++ b/public/media/svg/social-logos/github.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/media/svg/social-logos/google.svg b/public/media/svg/social-logos/google.svg new file mode 100644 index 0000000..1307b69 --- /dev/null +++ b/public/media/svg/social-logos/google.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/media/svg/social-logos/instagram.svg b/public/media/svg/social-logos/instagram.svg new file mode 100644 index 0000000..3c89de9 --- /dev/null +++ b/public/media/svg/social-logos/instagram.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/media/svg/social-logos/twitter.svg b/public/media/svg/social-logos/twitter.svg new file mode 100644 index 0000000..3da834b --- /dev/null +++ b/public/media/svg/social-logos/twitter.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/media/svg/social-logos/youtube.svg b/public/media/svg/social-logos/youtube.svg new file mode 100644 index 0000000..fcf58de --- /dev/null +++ b/public/media/svg/social-logos/youtube.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/splash-screen.css b/public/splash-screen.css new file mode 100644 index 0000000..21a5103 --- /dev/null +++ b/public/splash-screen.css @@ -0,0 +1,43 @@ +body { + margin: 0; + padding: 0; +} + +.splash-screen { + position: absolute; + z-index: 1000; + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + font-family: Helvetica, 'sans-serif'; + background-color: #f2f3f8; + color: #5E6278; + line-height: 1; + font-size: 14px; + font-weight: 400; +} + +.splash-screen span { + color: #5E6278; + transition: none !important; + text-size-adjust: 100%; + -webkit-font-smoothing: antialiased; +} + +.splash-screen img { + margin-left: calc(100vw - 100%); + margin-bottom: 30px; + height: 30px !important; +} + +[data-theme="dark"] .splash-screen { + background-color: #151521; + color: #92929F; +} + +[data-theme="dark"] .splash-screen span { + color: #92929F; +} diff --git a/rtl.config.js b/rtl.config.js new file mode 100644 index 0000000..ae28e57 --- /dev/null +++ b/rtl.config.js @@ -0,0 +1,71 @@ +const path = require('path') +const del = require('del') +const MiniCssExtractPlugin = require('mini-css-extract-plugin') +const RtlCssPlugin = require('rtlcss-webpack-plugin') + +// global variables +const rootPath = path.resolve(__dirname) +const distPath = rootPath + '/src/_metronic/assets' +const entries = { + 'css/style': './src/_metronic/assets/sass/style.scss', +} + +// remove older folders and files +;(async () => { + await del(distPath + '/css', {force: true}) +})() + +module.exports = { + mode: 'development', + stats: 'verbose', + performance: { + hints: 'error', + maxAssetSize: 10000000, + maxEntrypointSize: 4000000, + }, + entry: entries, + output: { + // main output path in assets folder + path: distPath, + // output path based on the entries' filename + filename: '[name].js', + }, + resolve: { + extensions: ['.scss'], + }, + plugins: [ + new MiniCssExtractPlugin({ + filename: '[name].rtl.css', + }), + new RtlCssPlugin({ + filename: '[name].rtl.css', + }), + { + apply: (compiler) => { + // hook name + compiler.hooks.afterEmit.tap('AfterEmitPlugin', () => { + ;(async () => { + await del(distPath + '/css/*.js', {force: true}) + })() + }) + }, + }, + ], + module: { + rules: [ + { + test: /\.scss$/, + use: [ + MiniCssExtractPlugin.loader, + 'css-loader', + { + loader: 'sass-loader', + options: { + sourceMap: true, + }, + }, + ], + }, + ], + }, +} diff --git a/src/_metronic/assets/sass/_init.scss b/src/_metronic/assets/sass/_init.scss new file mode 100644 index 0000000..7ac4710 --- /dev/null +++ b/src/_metronic/assets/sass/_init.scss @@ -0,0 +1,28 @@ +// +// Main init file of global bootstrap and theme functions, mixins, variables and config +// + + +// Custom functions & mixins +@import "./core/base/functions"; +@import "./core/base/mixins"; +@import "./core/components/mixins"; +@import "./core/vendors/plugins/mixins"; + +// Custom variables +@import "components/variables.custom"; +@import "./core/components/variables"; + +// Bootstrap initializaton +@import "~bootstrap/scss/functions"; +@import "~bootstrap/scss/variables"; +@import "~bootstrap/scss/maps"; +@import "~bootstrap/scss/mixins"; +@import "~bootstrap/scss/utilities"; + +// 3rd-Party plugins variables +@import "./core/vendors/plugins/variables"; + +// Custom layout variables +@import "./core/layout/base/variables"; +@import "layout/variables.custom"; \ No newline at end of file diff --git a/src/_metronic/assets/sass/components/_landing.scss b/src/_metronic/assets/sass/components/_landing.scss new file mode 100644 index 0000000..34f3024 --- /dev/null +++ b/src/_metronic/assets/sass/components/_landing.scss @@ -0,0 +1,136 @@ +// +// Landing elements +// + +// Variables +$landing-dark-color: #13263C; +$landing-header-height: 100px; +$landing-header-height-tablet-and-mobile: 70px; +$landing-header-sticky-height: 70px; +$landing-header-sticky-height-tablet-and-mobile: 70px; + +// Utility classes +.landing-dark-bg { + background-color: $landing-dark-color; +} + +.landing-dark-color { + color: $landing-dark-color; +} + +.landing-dark-border { + border:1px dashed #2C3F5B; +} + +.landing-dark-separator { + border-top:1px dashed #2C3F5B; +} + +.landing-curve { + position: relative; + + svg { + position: relative; + top: 0; + display: block; + } +} + +// Landing header +.landing-header { + display: flex; + align-items: center; + height: $landing-header-height; + + // Logos + .logo-default { + display: block; + } + + .logo-sticky { + display: none; + } + + // Menu + .menu { + // Menu link + .menu-link { + &.active { + color: $white; + } + } + + // Header menu sticky mode + [data-kt-sticky-landing-header="on"] & { + // Menu link + .menu-link { + &.active { + color: $primary; + background-color: rgba(#EFF2F5, 0.4); + } + } + } + } + + // Sticky header modes + [data-kt-sticky-landing-header="on"] & { + padding: 0; + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 100; + background-color: $white; + box-shadow: 0px 10px 30px 0px rgba(82,63,105,0.05); + height: $landing-header-sticky-height; + + // Logos + .logo-sticky { + display: block; + } + + .logo-default { + display: none; + } + } +} + +// Fix body padding top when Landing sticky header is on +body[data-kt-sticky-landing-header="on"] { + padding-top: $landing-header-height; +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Landing header + .landing-header { + height: $landing-header-height-tablet-and-mobile; + + // Menu wrapper + .landing-menu-wrapper { + position: relative; + overflow: auto; + } + + // Sticky header modes + [data-kt-sticky-landing-header="on"] & { + height: $landing-header-sticky-height-tablet-and-mobile; + } + + // Menu + .menu { + // Menu link + .menu-link { + &.active { + color: $primary; + background-color: rgba(#EFF2F5, 0.4); + } + } + } + } + + // Fix body padding top when Landing sticky header is on + body[data-kt-sticky-landing-header="on"] { + padding-top: $landing-header-height-tablet-and-mobile; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/components/_variables.custom.scss b/src/_metronic/assets/sass/components/_variables.custom.scss new file mode 100644 index 0000000..ae87b9f --- /dev/null +++ b/src/_metronic/assets/sass/components/_variables.custom.scss @@ -0,0 +1,44 @@ +// +// To make future updates easier consider overriding the global variables from _variables.bootstrap.scss and _variables.custom.scss for current demo in this file. +// Note that this file is included first and variables defined in _variables.bootstrap.scss and _variables.custom.scss +// are not accessible in this file but you can override any global variable as shown below: +// + +// Bootstrap color system +$white: #ffffff; + +// Theme colors +// Primary +$primary: #009ef7; +$primary-active: #0095e8; +$primary-light: #f1faff; +$primary-light-dark: #212e48; +$primary-inverse: $white; + +// Success +$success: #50cd89; +$success-active: #47be7d; +$success-light: #e8fff3; +$success-light-dark: #1c3238; +$success-inverse: $white; + +// Info +$info: #7239ea; +$info-active: #5014d0; +$info-light: #f8f5ff; +$info-light-dark: #2f264f; +$info-inverse: $white; + +// Danger +$danger: #f1416c; +$danger-active: #d9214e; +$danger-light: #fff5f8; +$danger-light-dark: #3a2434; +$danger-inverse: $white; + +// Warning +$warning: #ffc700; +$warning-active: #f1bc00; +$warning-light: #fff8dd; +$warning-light-dark: #392f28; +$warning-inverse: $white; \ No newline at end of file diff --git a/src/_metronic/assets/sass/components/components.scss b/src/_metronic/assets/sass/components/components.scss new file mode 100644 index 0000000..aaed781 --- /dev/null +++ b/src/_metronic/assets/sass/components/components.scss @@ -0,0 +1,7 @@ +// +// Components +// + +// Import Dependencies +@import "stepper/multistep"; +@import "landing"; diff --git a/src/_metronic/assets/sass/components/stepper/_multistep.scss b/src/_metronic/assets/sass/components/stepper/_multistep.scss new file mode 100644 index 0000000..0861c78 --- /dev/null +++ b/src/_metronic/assets/sass/components/stepper/_multistep.scss @@ -0,0 +1,42 @@ +// +// Multistep stepper +// + +// Custom +.stepper.stepper-pills.stepper-multistep { + --kt-stepper-pills-size: 46px; + --kt-stepper-icon-border-radius: 9px; + --kt-stepper-icon-check-size: 1.25rem; + + --kt-stepper-icon-bg-color: rgba(255, 255, 255, 0.03); + --kt-stepper-icon-bg-color-current: var(--kt-success); + --kt-stepper-icon-bg-color-completed: rgba(255, 255, 255, 0.03); + + --kt-stepper-icon-border: 1px dashed rgba(255, 255, 255, 0.3); + --kt-stepper-icon-border-current: 0; + --kt-stepper-icon-border-completed: 1px dashed rgba(255, 255, 255, 0.3); + + --kt-stepper-icon-number-color: var(--kt-white); + --kt-stepper-icon-number-color-current: var(--kt-white); + --kt-stepper-icon-number-color-completed: var(--kt-white); + + --kt-stepper-icon-check-color-completed: var(--kt-success); + + --kt-stepper-label-title-opacity: 0.7; + --kt-stepper-label-title-opacity-current: 1; + --kt-stepper-label-title-opacity-completed: 1; + + --kt-stepper-label-title-color: var(--kt-white); + --kt-stepper-label-title-color-current: var(--kt-white); + --kt-stepper-label-title-color-completed: var(--kt-white); + + --kt-stepper-label-desc-opacity: 0.7; + --kt-stepper-label-desc-opacity-current: 0.7; + --kt-stepper-label-desc-opacity-completed: 0.7; + + --kt-stepper-label-desc-color: var(--kt-white); + --kt-stepper-label-desc-color-current: var(--kt-white); + --kt-stepper-label-desc-color-completed: var(--kt-white); + + --kt-stepper-line-border: 1px dashed rgba(255, 255, 255, 0.3); +} diff --git a/src/_metronic/assets/sass/core/base/_functions.scss b/src/_metronic/assets/sass/core/base/_functions.scss new file mode 100644 index 0000000..0551f4b --- /dev/null +++ b/src/_metronic/assets/sass/core/base/_functions.scss @@ -0,0 +1,10 @@ +// +// Functions +// + +// Import Dependencies +@import "functions/get"; +@import "functions/set"; +@import "functions/math"; +@import "functions/valueif"; +@import "functions/theme-colors"; diff --git a/src/_metronic/assets/sass/core/base/_mixins.scss b/src/_metronic/assets/sass/core/base/_mixins.scss new file mode 100644 index 0000000..93acae0 --- /dev/null +++ b/src/_metronic/assets/sass/core/base/_mixins.scss @@ -0,0 +1,11 @@ +// +// Mixins +// + +// Import Dependencies +@import "mixins/property"; +@import "mixins/browsers"; +@import "mixins/fixes"; +@import "mixins/reset"; +@import "mixins/placeholder"; +@import "mixins/breakpoints"; diff --git a/src/_metronic/assets/sass/core/base/functions/_get.scss b/src/_metronic/assets/sass/core/base/functions/_get.scss new file mode 100644 index 0000000..775e4a1 --- /dev/null +++ b/src/_metronic/assets/sass/core/base/functions/_get.scss @@ -0,0 +1,82 @@ +// +// Get +// + +@function get($map, $keys...) { + @if length($keys) == 1 { + $keys: nth($keys, 1); + } + + @if type-of($map) != 'map' or $map == null { + //@return false; + } + + $warn: "#{nth($keys, 1)}"; + $length: length($keys); + $get: map-get($map, nth($keys, 1)); + + @if $length > 1 { + @for $i from 2 through $length { + @if $get != null and type-of($get) == 'map' { + $warn: $warn + "->#{nth($keys, $i)}"; + $get: map-get($get, nth($keys, $i)); + + @if $get == null { + @return null; + } + } + @else { + @return get-warning($warn, $get, nth($keys, $i)); + } + } + } + + @return $get; +} + +@function has($map, $keys...) { + @if length($keys) == 1 { + $keys: nth($keys, 1); + } + + @if type-of($map) != 'map' or $map == null { + //@return false; + } + + $warn: "#{nth($keys, 1)}"; + $length: length($keys); + $get: map-get($map, nth($keys, 1)); + + @if $length > 1 { + @for $i from 2 through $length { + @if $get != null and type-of($get) == 'map' { + $warn: $warn + "->#{nth($keys, $i)}"; + $get: map-get($get, nth($keys, $i)); + + @if $get == null { + @return false; + } + } + @else { + @return false; + } + } + } + + @if $get != null { + @return true; + } + @else { + @return false; + } +} + +@function get-warning($warn, $get, $key) { + @if $get == null { + @warn "Map has no value for key search `#{$warn}`"; + } + @else if type-of($get) != 'map' { + @warn "Non-map value found for key search `#{$warn}`, cannot search for key `#{$key}`"; + } + @return null; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/base/functions/_math.scss b/src/_metronic/assets/sass/core/base/functions/_math.scss new file mode 100644 index 0000000..e5766ff --- /dev/null +++ b/src/_metronic/assets/sass/core/base/functions/_math.scss @@ -0,0 +1,15 @@ +// +// Math +// + +@function sqrt($r) { + $x0: 1; + $x1: $x0; + + @for $i from 1 through 10 { + $x1: $x0 - ($x0 * $x0 - abs($r)) / (2 * $x0); + $x0: $x1; + } + + @return $x1; +} diff --git a/src/_metronic/assets/sass/core/base/functions/_set.scss b/src/_metronic/assets/sass/core/base/functions/_set.scss new file mode 100644 index 0000000..91690a8 --- /dev/null +++ b/src/_metronic/assets/sass/core/base/functions/_set.scss @@ -0,0 +1,43 @@ +/// Deep set function to set a value in nested maps + +@function set($map, $keys, $value) { + $maps: ($map,); + $result: null; + + // If the last key is a map already + // Warn the user we will be overriding it with $value + @if type-of(nth($keys, -1)) == "map" { + @warn "The last key you specified is a map; it will be overrided with `#{$value}`."; + } + + // If $keys is a single key + // Just merge and return + @if length($keys) == 1 { + @return map-merge($map, ($keys: $value)); + } + + // Loop from the first to the second to last key from $keys + // Store the associated map to this key in the $maps list + // If the key doesn't exist, throw an error + @for $i from 1 through length($keys) - 1 { + $current-key: nth($keys, $i); + $current-map: nth($maps, -1); + $current-get: map-get($current-map, $current-key); + @if $current-get == null { + @error "Key `#{$key}` doesn't exist at current level in map."; + } + $maps: append($maps, $current-get); + } + + // Loop from the last map to the first one + // Merge it with the previous one + @for $i from length($maps) through 1 { + $current-map: nth($maps, $i); + $current-key: nth($keys, $i); + $current-val: if($i == length($maps), $value, $result); + $result: map-merge($current-map, ($current-key: $current-val)); + } + + // Return result + @return $result; +} diff --git a/src/_metronic/assets/sass/core/base/functions/_theme-colors.scss b/src/_metronic/assets/sass/core/base/functions/_theme-colors.scss new file mode 100644 index 0000000..6c9fd7f --- /dev/null +++ b/src/_metronic/assets/sass/core/base/functions/_theme-colors.scss @@ -0,0 +1,15 @@ +// +// Bootstrap extended functions +// + +@function theme-inverse-color($key: "primary") { + @return get($theme-inverse-colors, $key); +} + +@function theme-active-color($key: "primary") { + @return get($theme-active-colors, $key); +} + +@function theme-light-color($key: "primary") { + @return get($theme-light-colors, $key); +} diff --git a/src/_metronic/assets/sass/core/base/functions/_valueif.scss b/src/_metronic/assets/sass/core/base/functions/_valueif.scss new file mode 100644 index 0000000..ac3de28 --- /dev/null +++ b/src/_metronic/assets/sass/core/base/functions/_valueif.scss @@ -0,0 +1,13 @@ +// +// valueif +// + +@function valueif($check, $trueValue, $falseValue: null) { + @if $check { + @return $trueValue; + } @else if $falseValue != null { + @return $falseValue; + } @else { + @return null; + } +} diff --git a/src/_metronic/assets/sass/core/base/mixins/_breakpoints.scss b/src/_metronic/assets/sass/core/base/mixins/_breakpoints.scss new file mode 100644 index 0000000..d335b9a --- /dev/null +++ b/src/_metronic/assets/sass/core/base/mixins/_breakpoints.scss @@ -0,0 +1,25 @@ +// Media of at most the maximum and minimum breakpoint widths. No query for the largest breakpoint. +// Makes the @content apply to the given breakpoint. + +@mixin media-breakpoint-direction($direction, $name, $breakpoints: $grid-breakpoints) { + @if $direction == up { + $min: breakpoint-min($name, $breakpoints); + + @if $min { + @media (min-width: $min) { + @content; + } + } @else { + @content; + } + + } @else if $direction == down { + $max: breakpoint-max($name, $breakpoints); + + @if $max { + @media (max-width: $max) { + @content; + } + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/base/mixins/_browsers.scss b/src/_metronic/assets/sass/core/base/mixins/_browsers.scss new file mode 100644 index 0000000..123ac81 --- /dev/null +++ b/src/_metronic/assets/sass/core/base/mixins/_browsers.scss @@ -0,0 +1,10 @@ +// +// Browsers +// + +@mixin for-edge { + // Microsoft Edge + @supports (-ms-ime-align:auto) { + @content; + } +} diff --git a/src/_metronic/assets/sass/core/base/mixins/_fixes.scss b/src/_metronic/assets/sass/core/base/mixins/_fixes.scss new file mode 100644 index 0000000..5f07525 --- /dev/null +++ b/src/_metronic/assets/sass/core/base/mixins/_fixes.scss @@ -0,0 +1,15 @@ +// +// Fixes +// + + +@mixin fix-fixed-position-lags() { + // webkit hack for smooth font view on fixed positioned elements + -webkit-backface-visibility:hidden; + backface-visibility:hidden; +} + +@mixin fix-animation-lags() { + transform: translateZ(0); + -webkit-transform-style: preserve-3d; +} diff --git a/src/_metronic/assets/sass/core/base/mixins/_placeholder.scss b/src/_metronic/assets/sass/core/base/mixins/_placeholder.scss new file mode 100644 index 0000000..2119683 --- /dev/null +++ b/src/_metronic/assets/sass/core/base/mixins/_placeholder.scss @@ -0,0 +1,16 @@ +// +// Input placeholder color +// + +@mixin placeholder($color) { + // Chrome, Firefox, Opera, Safari 10.1+ + &::placeholder { + color: $color; + } + + // Firefox + &::-moz-placeholder { + color: $color; + opacity: 1; + } +} diff --git a/src/_metronic/assets/sass/core/base/mixins/_property.scss b/src/_metronic/assets/sass/core/base/mixins/_property.scss new file mode 100644 index 0000000..d93c3ec --- /dev/null +++ b/src/_metronic/assets/sass/core/base/mixins/_property.scss @@ -0,0 +1,9 @@ +// +// CSS Property +// + +@mixin property($attr, $value, $important: '') { + @if $value != null and $value != false { + #{$attr}: #{$value} #{$important}; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/base/mixins/_reset.scss b/src/_metronic/assets/sass/core/base/mixins/_reset.scss new file mode 100644 index 0000000..b796a6e --- /dev/null +++ b/src/_metronic/assets/sass/core/base/mixins/_reset.scss @@ -0,0 +1,23 @@ +// +// Reset +// + +@mixin button-reset() { + appearance: none; + box-shadow: none; + border-radius: 0; + border: none; + cursor: pointer; + background-color: transparent; + outline: none !important; + margin: 0; + padding: 0; +} + +@mixin input-reset() { + border: 0; + background-color: transparent; + outline: none !important; + box-shadow: none; + border-radius: 0; +} diff --git a/src/_metronic/assets/sass/core/components/_accordion.scss b/src/_metronic/assets/sass/core/components/_accordion.scss new file mode 100644 index 0000000..c65a239 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_accordion.scss @@ -0,0 +1,74 @@ +// +// Accordion +// + +// Base +.accordion { + --#{$prefix}accordion-color: var(--kt-accordion-color); + --#{$prefix}accordion-bg: var(--kt-accordion-bg); + --#{$prefix}accordion-border-color: var(--kt-accordion-border-color); + --#{$prefix}accordion-btn-color: var(--kt-accordion-color); + --#{$prefix}accordion-btn-bg: var(--kt-accordion-button-bg); + --#{$prefix}accordion-btn-icon: var(--kt-accordion-button-icon); + --#{$prefix}accordion-btn-active-icon: var(--kt-accordion-button-active-icon); + --#{$prefix}accordion-btn-focus-border-color: var(--kt-accordion-button-focus-border-color); + --#{$prefix}accordion-btn-focus-box-shadow: var(--kt-accordion-button-focus-box-shadow); + --#{$prefix}accordion-active-color: var(--kt-accordion-button-active-color); + --#{$prefix}accordion-active-bg: var(--kt-accordion-button-active-bg); + + // According heading + .accordion-header { + cursor: pointer; + } + + // Icon toggle mode + &.accordion-icon-toggle { + // Accordion icon expaned mode + .accordion-icon { + display: flex; + flex-shrink: 0; + transition: $transition-base; + transform: rotate(90deg); + align-items: center; + justify-content: center; + + i, + .svg-icon { + color: var(--kt-primary); + } + } + + // Accordion icon collapsed mode + .collapsed { + .accordion-icon { + transition: $transition-base; + transform: rotate(0); + + i, + .svg-icon { + color: var(--kt-text-muted); + } + } + } + } + + // Reset accordion item border + &.accordion-borderless { + // According item + .accordion-item { + border: 0; + } + } + + // Reset accordion item border, border radiues and background color + &.accordion-flush { + // According item + .accordion-item { + background-color: transparent; + border: 0; + border-radius: 0; + padding-left: 0; + padding-right: 0; + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_alert.scss b/src/_metronic/assets/sass/core/components/_alert.scss new file mode 100644 index 0000000..8916c2b --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_alert.scss @@ -0,0 +1,15 @@ +// +// Alert +// + +@each $name, $value in $theme-colors { + .alert-#{$name} { + color: var(--kt-#{$name}); + border-color: var(--kt-#{$name}); + background-color: var(--kt-#{$name}-light); + + .alert-link { + color: var(--kt-#{$name}); + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_anchor.scss b/src/_metronic/assets/sass/core/components/_anchor.scss new file mode 100644 index 0000000..453d360 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_anchor.scss @@ -0,0 +1,37 @@ +// +// Anchor +// + +.anchor { + display: flex; + align-items: center; + + a { + position: relative; + display: none; + align-items: center; + justify-content:flex-start; + height: 1em; + width: 1.25em; + margin-left: -1.25em; + font-weight: 500; + font-size: 0.8em; + color: var(--kt-text-muted); + transition: $transition-base; + + &:before { + content: '#'; + } + } + + &:hover { + a { + display: flex; + + &:hover { + color: var(--kt-primary); + transition: $transition-base; + } + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_animation.scss b/src/_metronic/assets/sass/core/components/_animation.scss new file mode 100644 index 0000000..c008782 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_animation.scss @@ -0,0 +1,81 @@ +// +// Animation +// + +// Base +.animation { + animation-duration: 1s; + animation-fill-mode: both; +} + +// Slide In Down +@keyframes animationSlideInDown { + from { + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + to { + transform: translate3d(0, 0, 0); + } +} + +.animation-slide-in-down { + animation-name: animationSlideInDown; +} + +// Slide In Up +@keyframes animationSlideInUp { + from { + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + to { + transform: translate3d(0, 0, 0); + } +} + +.animation-slide-in-up { + animation-name: animationSlideInUp; +} + +// Fade In +@keyframes animationFadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +.animation-fade-in { + animation-name: animationFadeIn; +} + +// Fade Out +@keyframes animationFadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} +.animation-fade-out { + animation-name: animationFadeOut; +} + +// Blink +.animation-blink { + animation: animationBlink 1s steps(5, start) infinite; +} + +@keyframes animationBlink { + to { + visibility: hidden; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_badge.scss b/src/_metronic/assets/sass/core/components/_badge.scss new file mode 100644 index 0000000..03ccd66 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_badge.scss @@ -0,0 +1,77 @@ +// +// Badge +// + +.badge { + --#{$prefix}badge-color: var(--kt-badge-color); + + display: inline-flex; + align-items: center; + + // Fixed size + &.badge-circle, + &.badge-square { + display: inline-flex; + align-items: center; + justify-content: center; + height: $badge-size; + min-width: $badge-size; + padding: 0 0.1rem; + line-height: 0; + } + + // Circle + &.badge-circle { + border-radius: 50%; + padding: 0; + min-width: unset; + width: $badge-size; + } + + // Sizes + &.badge-sm { + min-width: $badge-size-sm; + font-size: $badge-font-size-sm; + + &.badge-square { + height: $badge-size-sm; + } + + &.badge-circle { + width: $badge-size-sm; + height: $badge-size-sm; + } + } + + &.badge-lg { + min-width: $badge-size-lg; + font-size: $badge-font-size-lg; + + &.badge-square { + height: $badge-size-lg; + } + + &.badge-circle { + width: $badge-size-lg; + height: $badge-size-lg; + } + } +} + +@each $name, $value in $theme-colors { + .badge-#{$name} { + color: var(--kt-#{$name}-inverse); + background-color: var(--kt-#{$name}); + + &.badge-outline { + border: 1px solid var(--kt-#{$name}); + color: var(--kt-#{$name}); + background-color: transparent; + } + } + + .badge-light-#{$name} { + color: var(--kt-#{$name}); + background-color: var(--kt-#{$name}-light); + } +} diff --git a/src/_metronic/assets/sass/core/components/_blockui.scss b/src/_metronic/assets/sass/core/components/_blockui.scss new file mode 100644 index 0000000..879ce91 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_blockui.scss @@ -0,0 +1,43 @@ +// +// BlockUI +// + + +.blockui { + position: relative; + + .blockui-overlay { + transition: all 0.3s ease; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: flex; + justify-content: center; + align-items: center; + background-color: var(--kt-blockui-overlay-bg); + + .spinner-border { + height: 1.35rem; + width: 1.35rem; + } + } + + .blockui-message { + display: flex; + align-items: center; + @include border-radius($border-radius); + box-shadow: var(--kt-dropdown-box-shadow); + background-color: var(--kt-tooltip-bg); + color: var(--kt-gray-700); + font-weight: $font-weight-bold; + margin: 0 !important; + width: auto; + padding: 0.85rem 1.75rem !important; + + .spinner-border { + margin-right: 0.65rem; + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_breadcrumb.scss b/src/_metronic/assets/sass/core/components/_breadcrumb.scss new file mode 100644 index 0000000..e2f16f3 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_breadcrumb.scss @@ -0,0 +1,70 @@ +// +// Breadcrumb +// + +// Breadcrumb +.breadcrumb { + --#{$prefix}breadcrumb-bg: var(--kt-breadcrumb-bg); + --#{$prefix}breadcrumb-divider-color: var(--kt-breadcrumb-divider-color); + --#{$prefix}breadcrumb-item-active-color: var(--kt-breadcrumb-item-active-color); + + display: flex; + align-items: center; + background-color: transparent; + padding: 0; + margin: 0; + + // Item breadcrumb + .breadcrumb-item { + display: flex; + align-items: center; + padding-left: 0; + padding-right: $breadcrumb-item-padding-x; + + &:last-child { + padding-right: 0; + } + + &:after { + content: "/"; + //padding-left: $breadcrumb-item-padding-x; + } + + &:before { + display: none; + } + + &:last-child { + &:after { + display: none; + } + } + } +} + +// Breadcrumb line style +.breadcrumb-line { + .breadcrumb-item { + &:after { + content: "-"; + } + } +} + +// Breadcrumb dot style +.breadcrumb-dot { + .breadcrumb-item { + &:after { + content: "\2022"; + } + } +} + +// Breadcrumb separatorless style +.breadcrumb-separatorless { + .breadcrumb-item { + &:after { + display:none; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_bullet.scss b/src/_metronic/assets/sass/core/components/_bullet.scss new file mode 100644 index 0000000..57d4300 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_bullet.scss @@ -0,0 +1,33 @@ +// +// Bullet +// + +// Base +.bullet { + display: inline-block; + background-color: var(--kt-bullet-bg-color); + @include border-radius($bullet-bar-border-radius); + width: $bullet-bar-width; + height: $bullet-bar-height; + flex-shrink: 0; +} + +// Dot bullet +.bullet-dot { + width: $bullet-dot-size; + height: $bullet-dot-size; + border-radius: 100% !important; +} + +// Vertical bullet +.bullet-vertical { + width: $bullet-bar-height; + height: $bullet-bar-width; +} + +// Vertical line +.bullet-line { + width: $bullet-line-width; + height: $bullet-line-height; + border-radius: 0; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_button-group.scss b/src/_metronic/assets/sass/core/components/_button-group.scss new file mode 100644 index 0000000..f5dae70 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_button-group.scss @@ -0,0 +1,7 @@ + + +// The clickable button for toggling the menu +// Set the same inset shadow as the :active state +.btn-group.show .dropdown-toggle { + @include box-shadow(var(--kt-btn-active-box-shadow)); +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_buttons.scss b/src/_metronic/assets/sass/core/components/_buttons.scss new file mode 100644 index 0000000..9ca3257 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_buttons.scss @@ -0,0 +1,7 @@ +// +// Buttons +// + +// Import Dependencies +@import "buttons/base"; +@import "buttons/theme"; diff --git a/src/_metronic/assets/sass/core/components/_card.scss b/src/_metronic/assets/sass/core/components/_card.scss new file mode 100644 index 0000000..1662e7e --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_card.scss @@ -0,0 +1,291 @@ +// +// Card +// + +// Base +.card { + @if ($card-border-enabled) { + border: $card-border-width $card-border-style var(--kt-card-border-color); + } @else { + border: 0; + } + + box-shadow: var(--kt-card-box-shadow); + background-color: var(--kt-card-bg); + + // Header + .card-header { + display: flex; + justify-content: space-between; + align-items: stretch; + flex-wrap: wrap; + min-height: $card-header-height; + padding: 0 $card-px; + color: var(--kt-card-cap-color); + background-color: var(--kt-card-cap-bg); + border-bottom: $card-border-width $card-border-style var(--kt-card-border-color); + + // Title + .card-title { + display: flex; + align-items: center; + margin: $card-header-py; + margin-left: 0; + + &.flex-column { + align-items: flex-start; + justify-content: center; + } + + .card-icon { + margin-right: 0.75rem; + line-height: 0; + + i { + font-size: 1.25rem; + color: var(--kt-gray-600); + line-height: 0; + + &:after, + &:before { + line-height: 0; + } + } + + .svg-icon { + color: var(--kt-gray-600); + @include svg-icon-size(24px); + } + } + + &, + .card-label { + font-weight: 500; + font-size: 1.275rem; + color: var(--kt-text-dark); + } + + .card-label { + margin: 0 0.75rem 0 0; + flex-wrap: wrap; + } + + // Description + small { + color: var(--kt-text-muted); + font-size: 1rem; + } + + // Headings + h1, h2, h3, h4, h5, h6 { + margin-bottom: 0; + } + } + + // Toolbar + .card-toolbar { + display: flex; + align-items: center; + margin: $card-header-py 0; + flex-wrap: wrap; + } + } + + // Body + .card-body { + padding: $card-py $card-px; + color: var(--kt-card-color); + } + + // Footer + .card-footer { + padding: $card-py $card-px; + color: var(--kt-card-cap-color); + background-color: var(--kt-card-cap-bg); + border-top: $card-border-width $card-border-style var(--kt-card-border-color); + } + + // Scroll + .card-scroll { + position: relative; + overflow: auto; + } + + // Reset padding x + &.card-px-0 { + .card-header, + .card-body, + .card-footer { + padding-left: 0; + padding-right: 0; + } + } + + &.card-py-0 { + .card-header, + .card-body, + .card-footer { + padding-top: 0; + padding-bottom: 0; + } + } + + &.card-p-0 { + .card-header, + .card-body, + .card-footer { + padding: 0; + } + } + + // Dashed style + &.card-dashed { + box-shadow: none; + border: $card-border-width dashed var(--kt-card-border-dashed-color); + + > .card-header { + border-bottom: 1px dashed var(--kt-card-border-dashed-color); + } + + > .card-footer { + border-top: 1px dashed var(--kt-card-border-dashed-color); + } + } + + // Bordered style + &.card-bordered { + box-shadow: none; + border: $card-border-width $card-border-style var(--kt-card-border-color); + } + + // Flush header and footer borders + &.card-flush { + > .card-header { + border-bottom: 0 !important; + } + + > .card-footer { + border-top: 0 !important; + } + } + + // Enable shadow + &.card-shadow { + box-shadow: var(--kt-card-box-shadow); + border: 0; + } + + // Reset styles + &.card-reset { + border: 0 !important; + box-shadow: none !important; + background-color: transparent !important; + + > .card-header { + border-bottom: 0 !important; + } + + > .card-footer { + border-top: 0 !important; + } + } +} + +// Responsive stretch heights +.card { + @each $breakpoint in map-keys($grid-breakpoints) { + @include media-breakpoint-up($breakpoint) { + $infix: breakpoint-infix($breakpoint, $grid-breakpoints); + + // Stretch + &.card#{$infix}-stretch { + height: calc(100% - var(--bs-gutter-y)); + } + + // Stretch 75 + &.card#{$infix}-stretch-75 { + height: calc(75% - var(--bs-gutter-y)); + } + + // Stretch 50 + &.card#{$infix}-stretch-50 { + height: calc(50% - var(--bs-gutter-y)); + } + + // Stretch 33 + &.card#{$infix}-stretch-33 { + height: calc(33.333% - var(--bs-gutter-y)); + } + + // Stretch 25 + &.card#{$infix}-stretch-25 { + height: calc(25% - var(--bs-gutter-y)); + } + + // Header stretch + .card-header#{$infix}-stretch { + padding-top: 0 !important; + padding-bottom: 0 !important; + align-items: stretch; + + .card-toolbar { + margin: 0; + align-items: stretch; + } + } + } + } +} + +// Utilities +.card-p { + padding: $card-py $card-px !important; +} + +.card-px { + padding-left: $card-px !important; + padding-right: $card-px !important; +} + +.card-shadow { + box-shadow: var(--kt-card-box-shadow); +} + +.card-py { + padding-top: $card-py !important; + padding-bottom: $card-py !important; +} + +.card-rounded { + border-radius: $card-border-radius; +} + +.card-rounded-start { + border-top-left-radius: $card-border-radius; + border-bottom-left-radius: $card-border-radius; +} + +.card-rounded-end { + border-top-right-radius: $card-border-radius; + border-bottom-right-radius: $card-border-radius; +} + +.card-rounded-top { + border-top-left-radius: $card-border-radius; + border-top-right-radius: $card-border-radius; +} + +.card-rounded-bottom { + border-bottom-left-radius: $card-border-radius; + border-bottom-right-radius: $card-border-radius; +} + +// Mobile mode +@include media-breakpoint-down(md) { + .card { + > .card-header:not(.flex-nowrap) { + padding-top: $card-header-py; + padding-bottom: $card-header-py; + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_carousel.scss b/src/_metronic/assets/sass/core/components/_carousel.scss new file mode 100644 index 0000000..a4b5beb --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_carousel.scss @@ -0,0 +1,130 @@ +// +// Carousel +// + + +.carousel-custom { + // Indicators + .carousel-indicators { + align-items: center; + position: static; + z-index: auto; + margin: 0; + padding: 0; + list-style: none; + + li { + transform: none; + opacity: 1; + + &.active { + transform: none; + opacity: 1; + } + } + + // Dots style + &.carousel-indicators-dots { + li { + border-radius: 0; + background-color: transparent; + height: $carousel-custom-dots-indicator-active-size; + width: $carousel-custom-dots-indicator-active-size; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + + &:after { + display: inline-block; + content: " "; + @include border-radius(50%); + transition: all $carousel-custom-indicator-transition-speed ease; + background-color: var(--kt-carousel-custom-indicator-default-bg-color); + height: $carousel-custom-dots-indicator-default-size; + width: $carousel-custom-dots-indicator-default-size; + } + + &.active { + background-color: transparent; + + &:after { + transition: all $carousel-custom-indicator-transition-speed ease; + height: $carousel-custom-dots-indicator-active-size; + width: $carousel-custom-dots-indicator-active-size; + background-color: var(--kt-carousel-custom-indicator-active-bg-color); + } + } + } + } + + // Bullet style + &.carousel-indicators-bullet { + li { + transition: all $carousel-custom-indicator-transition-speed ease; + background-color: transparent; + border-radius: $carousel-custom-bullet-indicator-default-size; + height: $carousel-custom-bullet-indicator-default-size; + width: $carousel-custom-bullet-indicator-default-size; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + + &:after { + display: inline-block; + content: " "; + transition: all $carousel-custom-indicator-transition-speed ease; + background-color: var(--kt-carousel-custom-bullet-indicator-default-bg-color); + border-radius: $carousel-custom-bullet-indicator-default-size; + height: $carousel-custom-bullet-indicator-default-size; + width: $carousel-custom-bullet-indicator-default-size; + } + + &.active { + transition: all $carousel-custom-indicator-transition-speed ease; + background-color: transparent; + height: $carousel-custom-bullet-indicator-default-size; + width: $carousel-custom-bullet-indicator-active-width; + + &:after { + transition: all $carousel-custom-indicator-transition-speed ease; + height: $carousel-custom-bullet-indicator-default-size; + width: $carousel-custom-bullet-indicator-active-width; + background-color: var(--kt-carousel-custom-bullet-indicator-active-bg-color); + } + } + } + } + } + + // Theme colors + @each $name, $value in $theme-colors { + .carousel-indicators-active-#{$name} { + li.active:after { + background-color: $value !important; + } + } + } + + // Stretch mode + &.carousel-stretch { + height: 100%; + display: flex; + flex-direction: column; + + .carousel-inner { + flex-grow: 1; + } + + .carousel-item { + height: 100%; + } + + .carousel-wrapper { + display: flex; + flex-direction: column; + height: 100%; + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_close.scss b/src/_metronic/assets/sass/core/components/_close.scss new file mode 100644 index 0000000..6c3e529 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_close.scss @@ -0,0 +1,14 @@ +// +// Close +// + +.btn-close { + color: var(--kt-btn-close-color); + background-image: var(--kt-btn-close-bg); + background-position: center; + + + &:hover { + color: var(--kt-btn-close-color); + } +} diff --git a/src/_metronic/assets/sass/core/components/_code.scss b/src/_metronic/assets/sass/core/components/_code.scss new file mode 100644 index 0000000..b01d5a2 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_code.scss @@ -0,0 +1,15 @@ +// +// Code +// + +code:not([class*="language-"]) { + font-weight: $code-font-weight; + color: var(--kt-code-color); + line-height: inherit; + font-size: inherit; + background-color: var(--kt-code-bg); + padding: $code-padding; + margin: $code-margin; + box-shadow: var(--kt-code-box-shadow); + @include border-radius($code-border-radius); +} diff --git a/src/_metronic/assets/sass/core/components/_cookiealert.scss b/src/_metronic/assets/sass/core/components/_cookiealert.scss new file mode 100644 index 0000000..539756e --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_cookiealert.scss @@ -0,0 +1,8 @@ +// +// Cookie Alert +// + +.cookiealert{ + background: inherit; + color: inherit; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_drawer.scss b/src/_metronic/assets/sass/core/components/_drawer.scss new file mode 100644 index 0000000..bfb97b8 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_drawer.scss @@ -0,0 +1,62 @@ +// +// Drawer +// + +// Drawer +.drawer { + display: flex !important; + overflow: auto; + z-index: $drawer-z-index; + position: fixed; + top: 0; + bottom: 0; + background-color: var(--kt-drawer-bg-color); + transition: transform $drawer-transition-speed ease-in-out !important; + + &.drawer-start { + left: 0; + transform: translateX(-100%); + } + + &.drawer-end { + right: 0; + transform: translateX(100%); + } + + &.drawer-on { + transform: none; + box-shadow: var(--kt-drawer-box-shadow); + transition: transform $drawer-transition-speed ease-in-out !important; + } +} + +// Drawer Overlay +.drawer-overlay { + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + overflow: hidden; + z-index: $drawer-z-index - 1; + background-color: var(--kt-drawer-overlay-bg-color); + animation: animation-drawer-fade-in $drawer-overlay-animation-speed ease-in-out 1; +} + +// Initial state +[data-kt-drawer="true"] { + display: none; +} + +// Animation +@keyframes animation-drawer-fade-in { + from { opacity: 0; } + to { opacity: 1; } +} + +// Tablet & Mobile Modes +@include media-breakpoint-down(lg) { + body[data-kt-drawer="on"] { + overflow: hidden; + } +} diff --git a/src/_metronic/assets/sass/core/components/_dropdown.scss b/src/_metronic/assets/sass/core/components/_dropdown.scss new file mode 100644 index 0000000..0b307d8 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_dropdown.scss @@ -0,0 +1,16 @@ + +// The dropdown menu +.dropdown-menu { + --#{$prefix}dropdown-color: var(--kt-dropdown-color); + --#{$prefix}dropdown-bg: var(--kt-dropdown-bg); + --#{$prefix}dropdown-border-color: var(--kt-dropdown-border-color); + --#{$prefix}dropdown-divider-bg: var(--kt-dropdown-divider-bg); + --#{$prefix}dropdown-box-shadow: var(--kt-dropdown-box-shadow); + --#{$prefix}dropdown-link-color: var(--kt-dropdown-link-color); + --#{$prefix}dropdown-link-hover-color: var(--kt-dropdown-link-hover-color); + --#{$prefix}dropdown-link-hover-bg: var(--kt-dropdown-link-hover-bg); + --#{$prefix}dropdown-link-active-color: var(--kt-dropdown-link-active-color); + --#{$prefix}dropdown-link-active-bg: var(--kt-dropdown-link-active-bg); + --#{$prefix}dropdown-link-disabled-color: var(--kt-dropdown-link-disabled-color); + --#{$prefix}dropdown-header-color: var(--kt-dropdown-header-color); +} diff --git a/src/_metronic/assets/sass/core/components/_engage.scss b/src/_metronic/assets/sass/core/components/_engage.scss new file mode 100644 index 0000000..a0290dc --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_engage.scss @@ -0,0 +1,20 @@ +// +// Engage panel(used for demo product demo) +// + +.engage-btn { + display: flex; + align-items: center; + height: 35px !important; + + @include button-custom-variant( + $color: var(--kt-engage-btn-color), + $icon-color: var(--kt-engage-btn-color), + $border-color: var(--kt-engage-btn-bg), + $bg-color: var(--kt-engage-btn-bg), + $color-active: var(--kt-engage-btn-color-active), + $icon-color-active: var(--kt-engage-btn-color-active), + $border-color-active: var(--kt-engage-btn-bg), + $bg-color-active: var(--kt-engage-btn-bg) + ); +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_explore.scss b/src/_metronic/assets/sass/core/components/_explore.scss new file mode 100644 index 0000000..049ff4c --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_explore.scss @@ -0,0 +1,104 @@ +// +// Explore(used for demo product demo) +// + +$explore-primary: #00B2FF; +$explore-primary-light: #F1FAFF; +$explore-primary-active: #0098DA; +$explore-primary-inverse: $white; + +$explore-success: #50CD89; +$explore-success-light: #E8FFF3; +$explore-success-active: #47BE7D; +$explore-success-inverse: $white; + +$explore-warning: #FFC700; +$explore-warning-inverse: $white; + +$explore-danger: #F1416C; +$explore-warning-inverse: $white; + +.explore-btn-toggle { + color: var(--kt-gray-600); + background-color: $white; + + &:hover, + &:focus, + &:active { + color: $explore-primary-inverse; + background-color: $explore-primary; + } +} + +.explore-btn-dismiss { + border: 0; + + &:hover { + i, + .svg-icon { + color: $explore-primary; + } + } +} + +.explore-btn-primary { + border: 0; + color: $explore-primary-inverse; + background-color: $explore-primary; + + &:hover { + color: $explore-primary-inverse; + background-color: $explore-primary-active; + } +} + +.explore-btn-secondary { + border: 0; + color: var(--kt-gray-600); + background-color: var(--kt-gray-100); + + &:hover { + color: var(--kt-gray-800); + background-color: var(--kt-gray-200); + } +} + +.explore-btn-outline { + border: 1px dashed var(--kt-gray-300) !important; + + &:hover, + &.active { + border: 1px dashed $explore-success !important; + background-color: $explore-success-light; + } +} + +.explore-link { + color: $explore-primary; + + &:hover { + color: $explore-primary-active; + } +} + +.explore-link-hover:hover { + color: $explore-primary !important; +} + +.explore-icon-success { + color: $explore-success; +} + +.explore-icon-danger { + color: $explore-danger; +} + +.explore-label-free { + color: $explore-warning-inverse; + background-color: $explore-warning; +} + +.explore-label-pro { + color: $explore-success-inverse; + background-color: $explore-success; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_feedback.scss b/src/_metronic/assets/sass/core/components/_feedback.scss new file mode 100644 index 0000000..5b2844f --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_feedback.scss @@ -0,0 +1,34 @@ +// +// Loading +// + +.feedback { + display: none; +} + +.feedback-popup { + display: flex; + justify-content: center; + margin: 0 auto; + position: fixed; + z-index: $feedback-popup-z-index; + box-shadow: var(--kt-feedback-popup-box-shadow); + background-color: var(--kt-feedback-popup-background-color); + border-radius: $feedback-popup-border-radius; + padding: $feedback-popup-padding; +} + +// Placement +.feedback-top-center { + display: flex; + transition: top $feedback-popup-transition-speed ease; + left: 50%; + transform: translateX(-50%); + @include border-top-start-radius(0); + @include border-top-end-radius(0); + + &.feedback-shown { + top: 0px; + transition: top $feedback-popup-transition-speed ease; + } +} diff --git a/src/_metronic/assets/sass/core/components/_fixed.scss b/src/_metronic/assets/sass/core/components/_fixed.scss new file mode 100644 index 0000000..c4935c4 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_fixed.scss @@ -0,0 +1,18 @@ +// +// Fixed +// + +@each $breakpoint in map-keys($grid-breakpoints) { + @include media-breakpoint-up($breakpoint) { + $infix: breakpoint-infix($breakpoint, $grid-breakpoints); + + .fixed-top#{$infix} { + position: fixed; + z-index: $fixed-z-index; + top: 0; + left: 0; + right: 0; + } + } +} + diff --git a/src/_metronic/assets/sass/core/components/_forms.scss b/src/_metronic/assets/sass/core/components/_forms.scss new file mode 100644 index 0000000..7e5f3ae --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_forms.scss @@ -0,0 +1,19 @@ +// +// Forms +// + +// Import Dependencies +@import "forms/labels"; +@import "forms/form-text"; +@import "forms/form-control"; +@import "forms/form-select"; +@import "forms/form-check"; +@import "forms/floating-labels"; +@import "forms/input-group"; + +@import "forms/form-control-solid"; +@import "forms/form-select-solid"; +@import "forms/form-check-solid"; +@import "forms/input-group-solid"; +@import "forms/floating-labels"; +@import "forms/required"; diff --git a/src/_metronic/assets/sass/core/components/_helpers.scss b/src/_metronic/assets/sass/core/components/_helpers.scss new file mode 100644 index 0000000..803a272 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_helpers.scss @@ -0,0 +1,12 @@ +// +// Helpers +// + +// Import Dependencies +@import "helpers/background"; +@import "helpers/borders"; +@import "helpers/flex"; +@import "helpers/shadow"; +@import "helpers/text"; +@import "helpers/opacity"; +@import "helpers/transform"; diff --git a/src/_metronic/assets/sass/core/components/_hover.scss b/src/_metronic/assets/sass/core/components/_hover.scss new file mode 100644 index 0000000..66650db --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_hover.scss @@ -0,0 +1,48 @@ +// +// Hover effects +// + +.hover-elevate-up { + transition: transform 0.3s ease; + + &:hover { + transform: translateY(-5%); + transition: transform 0.3s ease; + } +} + +.hover-elevate-down { + transition: transform 0.3s ease; + + &:hover { + transform: translateY(5%); + transition: transform 0.3s ease; + } +} + +.hover-scale { + transition: transform 0.3s ease; + + &:hover { + transform: scale(1.1); + transition: transform 0.3s ease; + } +} + +.hover-rotate-end { + transition: transform 0.3s ease; + + &:hover { + transform: rotate(4deg); + transition: transform 0.3s ease; + } +} + +.hover-rotate-start { + transition: transform 0.3s ease; + + &:hover { + transform: rotate(-4deg); + transition: transform 0.3s ease; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_image-input.scss b/src/_metronic/assets/sass/core/components/_image-input.scss new file mode 100644 index 0000000..c08f0ae --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_image-input.scss @@ -0,0 +1,111 @@ +// +// Avatar +// + + +// Base +.image-input { + position: relative; + display: inline-block; + @include border-radius($border-radius); + background-repeat: no-repeat; + background-size: cover; + + // Empty state + &:not(.image-input-empty) { + background-image: none !important; + } + + // Wrapper + .image-input-wrapper { + width: 120px; + height: 120px; + @include border-radius($border-radius); + background-repeat: no-repeat; + background-size: cover; + } + + // Actions + [data-kt-image-input-action] { + cursor: pointer; + position: absolute; + transform: translate(-50%,-50%); + } + + // Change Button + [data-kt-image-input-action="change"] { + left: 100%; + top: 0; + + input { + width: 0 !important; + height: 0 !important; + overflow: hidden; + opacity: 0; + } + } + + // Cancel & Remove Buttons + [data-kt-image-input-action="cancel"], + [data-kt-image-input-action="remove"] { + position: absolute; + left: 100%; + top: 100%; + } + + [data-kt-image-input-action="cancel"] { + display: none; + } + + // Input Changed State + &.image-input-changed { + [data-kt-image-input-action="cancel"] { + display: flex; + } + + [data-kt-image-input-action="remove"] { + display: none; + } + } + + // Input Empty State + &.image-input-empty { + [data-kt-image-input-action="remove"], + [data-kt-image-input-action="cancel"] { + display: none; + } + } + + // Circle style + &.image-input-circle { + border-radius: 50%; + + // Wrapper + .image-input-wrapper { + border-radius: 50%; + } + + // Change Control + [data-kt-image-input-action="change"] { + left: 100%; + top: 0; + transform: translate(-100%, 0%); + } + + // Cancel & Remove Buttons + [data-kt-image-input-action="cancel"], + [data-kt-image-input-action="remove"] { + left: 100%; + top: 100%; + transform: translate(-100%,-100%); + } + } + + // Bordered style + &.image-input-outline { + .image-input-wrapper { + border: 3px solid var(--kt-body-bg); + box-shadow: var(--kt-box-shadow); + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_images.scss b/src/_metronic/assets/sass/core/components/_images.scss new file mode 100644 index 0000000..b0317f8 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_images.scss @@ -0,0 +1,12 @@ + + +// Image thumbnails +.img-thumbnail { + background-color: var(--kt-thumbnail-bg); + border: $thumbnail-border-width solid var(--kt-thumbnail-border-color); + @include box-shadow(var(--kt-thumbnail-box-shadow)); +} + +.figure-caption { + color: var(--kt-figure-caption-color); +} diff --git a/src/_metronic/assets/sass/core/components/_indicator.scss b/src/_metronic/assets/sass/core/components/_indicator.scss new file mode 100644 index 0000000..d74a923 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_indicator.scss @@ -0,0 +1,17 @@ +// +// Indicator +// + +.indicator-progress { + display: none; + + [data-kt-indicator="on"] > & { + display: inline-block; + } +} + +.indicator-label { + [data-kt-indicator="on"] > & { + display: none; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_list-group.scss b/src/_metronic/assets/sass/core/components/_list-group.scss new file mode 100644 index 0000000..5562fbd --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_list-group.scss @@ -0,0 +1,19 @@ +// +// List group +// + +.list-group { + --#{$prefix}list-group-color: var(--kt-list-group-color); + --#{$prefix}list-group-bg: var(--kt-list-group-bg); + --#{$prefix}list-group-border-color: var(--kt-list-group-border-color); + --#{$prefix}list-group-action-color: var(--kt-list-group-action-color); + --#{$prefix}list-group-action-hover-color: var(--kt-list-group-action-hover-color); + --#{$prefix}list-group-action-hover-bg: var(--kt-list-group-hover-bg); + --#{$prefix}list-group-action-active-color: var(--kt-list-group-action-active-color); + --#{$prefix}list-group-action-active-bg: var(--kt-list-group-action-active-bg); + --#{$prefix}list-group-disabled-color: var(--kt-list-group-disabled-color); + --#{$prefix}list-group-disabled-bg: var(--kt-list-group-disabled-bg); + --#{$prefix}list-group-active-color: var(--kt-list-group-active-color); + --#{$prefix}list-group-active-bg: var(--kt-list-group-active-bg); + --#{$prefix}list-group-active-border-color: var(--kt-list-group-active-border-color); +} diff --git a/src/_metronic/assets/sass/core/components/_menu.scss b/src/_metronic/assets/sass/core/components/_menu.scss new file mode 100644 index 0000000..8564e7c --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_menu.scss @@ -0,0 +1,7 @@ +// +// Menu +// + +// Import Dependencies +@import "menu/base"; +@import "menu/theme"; diff --git a/src/_metronic/assets/sass/core/components/_mixins.scss b/src/_metronic/assets/sass/core/components/_mixins.scss new file mode 100644 index 0000000..522cbf0 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_mixins.scss @@ -0,0 +1,16 @@ +// +// Mixins +// + +// Import Dependencies +@import "mixins/theme-mode"; +@import "mixins/menu"; +@import "mixins/tooltip"; +@import "mixins/popover"; +@import "mixins/buttons"; +@import "mixins/ki"; +@import "mixins/symbol"; +@import "mixins/svg-icon"; +@import "mixins/svg-bg-icon"; +@import "mixins/scroll"; +@import "mixins/shape"; diff --git a/src/_metronic/assets/sass/core/components/_modal.scss b/src/_metronic/assets/sass/core/components/_modal.scss new file mode 100644 index 0000000..547fcb5 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_modal.scss @@ -0,0 +1,65 @@ +// +// Modal +// + +.modal { + --#{$prefix}modal-color: var(--kt-modal-content-color); + --#{$prefix}modal-bg: var(--kt-modal-content-bg); + --#{$prefix}modal-border-color: var(--kt-modal-content-border-color); + --#{$prefix}modal-box-shadow: var(--kt-modal-content-box-shadow-xs); + --#{$prefix}modal-header-border-color: var(--kt-modal-header-border-color); + --#{$prefix}modal-footer-bg: var(--kt-modal-footer-bg); + --#{$prefix}modal-footer-border-color: var(--kt-modal-footer-border-color); +} + + // Mobile dialog +.modal-dialog { + outline: none !important; +} + +// Modal header +.modal-header { + align-items: center; + justify-content: space-between; + @include border-top-radius($modal-content-border-radius); + border-bottom: $modal-header-border-width solid var(--kt-modal-header-border-color); + + // Headings + h1,h2,h3,h4,h5,h6 { + margin-bottom: 0; + } +} + +// Modal content +.modal-content { + color: var(--kt-modal-color); + background-color: var(--kt-modal-bg); + border: $modal-content-border-width solid var(--kt-modal-border-color); + @include box-shadow(var(--kt-modal-box-shadow)); +} + +// Modal footer +.modal-footer { + background-color: var(--kt-modal-footer-bg); + border-top: $modal-footer-border-width solid var(--#{$prefix}modal-footer-border-color); +} + +// Modal background +.modal-backdrop { + --#{$prefix}backdrop-bg: var(--kt-modal-backdrop-bg); + --#{$prefix}backdrop-opacity: var(--kt-modal-backdrop-opacity); +} + +// Scale up the modal +@include media-breakpoint-up(sm) { + .modal-content { + @include box-shadow(var(--kt-modal-box-shadow-sm-up)); + } +} + +// Utilities +.modal-rounded { + @if $enable-rounded { + border-radius: $modal-content-border-radius !important; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_nav-line-tabs.scss b/src/_metronic/assets/sass/core/components/_nav-line-tabs.scss new file mode 100644 index 0000000..e821c67 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_nav-line-tabs.scss @@ -0,0 +1,68 @@ +// +// Nav +// + +// Line tabs +.nav-line-tabs { + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: var(--kt-border-color); + + .nav-item { + margin-bottom: -1px; + + // Base link + .nav-link { + color: var(--kt-gray-500); + border: 0; + border-bottom: 1px solid transparent; + transition: $transition-link; + padding: 0.5rem 0; + margin: 0 1rem; + } + + // First Item + &:first-child { + .nav-link { + margin-left: 0; + } + } + + // Last Item + &:last-child { + .nav-link { + margin-right: 0; + } + } + } + + // Active & Hover States + .nav-item .nav-link.active, + .nav-item.show .nav-link, + .nav-item .nav-link:hover:not(.disabled) { + background-color: transparent; + border: 0; + border-bottom: 1px solid var(--kt-primary); + transition: $transition-link; + } + + // 2x Line + &.nav-line-tabs-2x { + border-bottom-width: 2px; + + .nav-item { + margin-bottom: -2px; + + .nav-link { + border-bottom-width: 2px; + } + } + + // Active & Hover States + .nav-item .nav-link.active, + .nav-item.show .nav-link, + .nav-item .nav-link:hover:not(.disabled) { + border-bottom-width: 2px; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_nav-pills-custom.scss b/src/_metronic/assets/sass/core/components/_nav-pills-custom.scss new file mode 100644 index 0000000..f9821f5 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_nav-pills-custom.scss @@ -0,0 +1,91 @@ +// +// Custom Nav Pills +// + +.nav.nav-pills.nav-pills-custom { + // States + .show > .nav-link, + .nav-link{ + border: 1px dashed var(--kt-border-dashed-color); + @include border-radius($border-radius-lg); + + &.nav-link-border-solid { + border: 3px solid var(--kt-border-dashed-color); + + &.active { + border: 3px solid var(--kt-primary); + } + } + + .nav-icon { + img { + width: 30px; + transition: $transition-link; + + &.default { + display: inline-block; + } + + &.active { + display: none; + } + } + } + + &.active { + background-color: transparent; + border: 1px solid var(--kt-border-dashed-color); + transition-duration: 1ms; + position: relative; + + .nav-text { + color: var(--kt-gray-800) !important; + transition: $transition-link; + } + + .bullet-custom { + display: block; + } + } + + .bullet-custom { + display: none; + } + } + + &.nav-pills-active-custom { + .nav-item { + .nav-link { + &:not(:active) { + span:nth-child(1) { + color: #B5B5C3; + } + + span:nth-child(2) { + color: #3F4254; + } + } + + &:hover { + span:nth-child(1) { + color: $white !important; + } + + span:nth-child(2) { + color: $white !important; + } + } + + &.active { + span:nth-child(1) { + color: $white !important; + } + + span:nth-child(2) { + color: $white !important; + } + } + } + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_nav.scss b/src/_metronic/assets/sass/core/components/_nav.scss new file mode 100644 index 0000000..5a0fe51 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_nav.scss @@ -0,0 +1,93 @@ +// +// Nav +// + +// Basic +.nav { + --#{$prefix}nav-link-color: var(--kt-nav-link-color); + --#{$prefix}nav-link-hover-color: var(--kt-nav-link-hover-color); + --#{$prefix}nav-link-disabled-color: var(--kt-nav-link-disabled-color); +} + +// Tabs +.nav-tabs { + --#{$prefix}nav-tabs-border-color: var(--kt-nav-tabs-border-color); + --#{$prefix}nav-tabs-link-hover-border-color: var(--kt-nav-tabs-link-hover-border-color); + --#{$prefix}nav-tabs-link-active-color: var(--kt-nav-tabs-link-active-color); + --#{$prefix}nav-tabs-link-active-bg: var(--kt-nav-tabs-link-active-bg); + --#{$prefix}nav-tabs-link-active-border-color: var(--kt-nav-tabs-link-active-border-color); +} + +// Pills +.nav-pills { + --#{$prefix}nav-pills-link-active-color: var(--kt-nav-pills-link-active-color); + --#{$prefix}nav-pills-link-active-bg: var(--kt-nav-pills-link-active-bg); +} + +// Nav pills +.nav-pills { + .nav-item { + margin-right: 0.5rem; + + &:last-child { + margin-right: 0; + } + } +} + +// Stretch items +.nav-stretch { + align-items: stretch; + padding-top: 0 !important; + padding-bottom: 0 !important; + + .nav-item { + display: flex; + align-items: stretch; + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .nav-link { + display: flex; + align-items: center; + } +} + +// Nav group +.nav-group { + padding: 0.35rem; + @include border-radius($border-radius); + background-color: var(--kt-gray-100); + + // Outline nav group + &.nav-group-outline { + background-color: transparent; + border: 1px solid var(--kt-border-color); + } + + // Fluid option + &.nav-group-fluid { + display: flex; + + > label, + > .btn { + position: relative; + flex-shrink: 0; + flex-grow: 1; + flex-basis: 0; + } + + > label { + margin-right: 0.1rem; + + > .btn { + width: 100%; + } + + &:last-child { + margin-right: 0; + } + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_offcanvas.scss b/src/_metronic/assets/sass/core/components/_offcanvas.scss new file mode 100644 index 0000000..1da1c90 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_offcanvas.scss @@ -0,0 +1,6 @@ +%offcanvas-css-vars { + --#{$prefix}offcanvas-color: var(--kt-offcanvas-color); + --#{$prefix}offcanvas-bg: var(--kt-offcanvas-bg-color); + --#{$prefix}offcanvas-border-color: var(--kt-offcanvas-border-color); + --#{$prefix}offcanvas-box-shadow: var(--kt-offcanvas-box-shadow); +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_overlay.scss b/src/_metronic/assets/sass/core/components/_overlay.scss new file mode 100644 index 0000000..75ffa69 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_overlay.scss @@ -0,0 +1,35 @@ +// +// Demo +// + + +.overlay { + position: relative; + + .overlay-layer { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: flex; + justify-content: center; + align-items: center; + background-color: var(--kt-overlay-bg); + transition: all 0.3s ease; + opacity: 0; + } + + &.overlay-show, + &.overlay-block, + &:hover { + .overlay-layer { + transition: all 0.3s ease; + opacity: 1; + } + } + + &.overlay-block { + cursor: wait; + } +} diff --git a/src/_metronic/assets/sass/core/components/_page-loader.scss b/src/_metronic/assets/sass/core/components/_page-loader.scss new file mode 100644 index 0000000..5497dd8 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_page-loader.scss @@ -0,0 +1,28 @@ +// +// Page loader(used by the previous layout system) +// + +// CSS3 Transitions only after page load(.page-loading class added to body tag and remove with JS on page load) +[data-kt-app-page-loading="on"] *, +.page-loading * { + transition: none !important; +} + +// Base +.page-loader { + background: var(--kt-body-bg); + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1000; + display: none; + + [data-kt-app-page-loading="on"] &, + .page-loading & { + display: flex; + justify-content: center; + align-items: center; + } +} diff --git a/src/_metronic/assets/sass/core/components/_pagination.scss b/src/_metronic/assets/sass/core/components/_pagination.scss new file mode 100644 index 0000000..7aa3538 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_pagination.scss @@ -0,0 +1,193 @@ +// +// Pagination +// + +.pagination { + --#{$prefix}pagination-color: var(--kt-pagination-color); + --#{$prefix}pagination-bg: var(--kt-pagination-bg); + --#{$prefix}pagination-border-color: var(--kt-pagination-border-color); + --#{$prefix}pagination-hover-color: var(--kt-pagination-hover-color); + --#{$prefix}pagination-hover-bg: var(--kt-pagination-hover-bg); + --#{$prefix}pagination-hover-border-color: var(--kt-pagination-hover-border-color); + --#{$prefix}pagination-focus-color: var(--kt-pagination-focus-color); + --#{$prefix}pagination-focus-bg: var(--kt-pagination-focus-bg); + --#{$prefix}pagination-focus-box-shadow: var(--kt-pagination-focus-box-shadow); + --#{$prefix}pagination-active-color: var(--kt-pagination-active-color); + --#{$prefix}pagination-active-bg: var(--kt-pagination-active-bg); + --#{$prefix}pagination-active-border-color: var(--kt-pagination-active-border-color); + --#{$prefix}pagination-disabled-color: var(--kt-pagination-disabled-color); + --#{$prefix}pagination-disabled-bg: var(--kt-pagination-disabled-bg); + --#{$prefix}pagination-disabled-border-color: var(--kt-pagination-disabled-border-color); + + display:flex; + flex-wrap: wrap; + justify-content: center; + margin: 0; + + // Pagination circle + &.pagination-circle { + .page-link { + border-radius: 50%; + } + } + + // Pagination outline + &.pagination-outline { + .page-link { + border: 1px solid var(--kt-border-color); + } + + .page-item { + &:hover:not(.disabled), + &.active { + .page-link { + border-color: var(--kt-primary-light); + } + } + } + } +} + +.page-item { + margin-right: $pagination-item-space; + + &:last-child { + margin-right: 0; + } + + .page-link { + display:flex; + justify-content: center; + align-items: center; + border-radius: $btn-border-radius; + height: $pagination-item-height; + min-width: $pagination-item-height; + font-weight: $pagination-font-weight; + font-size: $pagination-font-size; + + i { + font-size: $pagination-icon-font-size; + } + + /*rtl:options:{"autoRename":false}*/ + .previous, + .next { + display: block; + height: $pagination-icon-height; + width: $pagination-icon-height; + + /*rtl:raw:transform: rotateZ(-180deg);*/ + } + /*rtl:end:ignore*/ + + .previous { + @include svg-bg-icon(arrow-start, $pagination-color); + } + + /*rtl:options:{"autoRename":false}*/ + .next { + @include svg-bg-icon(arrow-end, $pagination-color); + } + } + + &:focus { + .page-link { + color: var(--kt-pagination-focus-color); + + .svg-icon, + i { + color: var(--kt-pagination-focus-color); + } + + .previous { + @include svg-bg-icon(arrow-start, var(--kt-pagination-focus-color)); + } + + /*rtl:options:{"autoRename":false}*/ + .next { + @include svg-bg-icon(arrow-end, var(--kt-pagination-focus-color)); + } + } + } + + &:hover:not(.active):not(.offset):not(.disabled) { + .page-link { + color: var(--kt-pagination-hover-color); + + &.page-text { + background-color: transparent; + } + + .svg-icon, + i { + color: var(--kt-pagination-hover-color); + } + + .previous { + @include svg-bg-icon(arrow-start, var(--kt-pagination-hover-color)); + } + + /*rtl:options:{"autoRename":false}*/ + .next { + @include svg-bg-icon(arrow-end, var(--kt-pagination-hover-color)); + } + } + } + + &.active { + .page-link { + color: var(--kt-pagination-active-color); + + &.page-text { + background-color: transparent; + } + + .svg-icon, + i { + color: var(--kt-pagination-active-color);; + } + + .previous { + @include svg-bg-icon(arrow-start, var(--kt-pagination-active-color)); + } + + /*rtl:options:{"autoRename":false}*/ + .next { + @include svg-bg-icon(arrow-end, var(--kt-pagination-active-color)); + } + } + } + + &.disabled { + .page-link { + color: var(--kt-pagination-disabled-color); + + .svg-icon, + i { + color: var(--kt-pagination-disabled-color); + } + + .previous { + @include svg-bg-icon(arrow-start, var(--kt-pagination-disabled-color)); + } + + /*rtl:options:{"autoRename":false}*/ + .next { + @include svg-bg-icon(arrow-end, var(--kt-pagination-disabled-color)); + } + } + } + /*rtl:end:ignore*/ +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + .page-item { + margin-right: $pagination-item-space-tablet-and-mobile; + + &:last-child { + margin-right: 0; + } + } +} + diff --git a/src/_metronic/assets/sass/core/components/_popover.scss b/src/_metronic/assets/sass/core/components/_popover.scss new file mode 100644 index 0000000..c7de66e --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_popover.scss @@ -0,0 +1,53 @@ +// +// Popover +// + + +// Base +.popover { + --#{$prefix}popover-bg: var(--kt-popover-bg); + --#{$prefix}popover-border-color: var(--kt-popover-border-color); + --#{$prefix}popover-box-shadow: var(--kt-popover-box-shadow); + --#{$prefix}popover-header-color: var(--kt-popover-header-color); + --#{$prefix}popover-header-bg: var(--kt-popover-header-bg); + --#{$prefix}popover-body-color: var(--kt-popover-body-color); + --#{$prefix}popover-arrow-border: var(--kt-popover-bg); + + .popover-header { + font-size: $popover-header-font-size; + font-weight: $popover-header-font-weight; + border-bottom: 1px solid var(--kt-popover-header-border-color); + } + + .popover-dismiss { + position: absolute; + top: $popover-dissmis-btn-top; + right: $popover-dissmis-btn-end; + height: $popover-dissmis-btn-height; + width: $popover-dissmis-btn-height; + @include svg-bg-icon(close, var(--kt-gray-500)); // todo: revise + mask-size: 50%; + -webkit-mask-size: 50%; + + &:hover { + background-color: var(--kt-primary); + } + + & + .popover-header { + padding-right: $popover-body-padding-x + $popover-dissmis-btn-height; + } + } +} + +// Inverse +.popover-inverse { + @include popover-theme( + $bg-color: var(--kt-gray-900), + $border-color: var(--kt-gray-800), + $header-bg-color: var(--kt-gray-900), + $header-color: var(--kt-gray-200), + $body-color: var(--kt-gray-400), + $arrow-outer-color: var(--kt-gray-100), + $arrow-color: var(--kt-gray-900) + ); +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_print.scss b/src/_metronic/assets/sass/core/components/_print.scss new file mode 100644 index 0000000..ab7854b --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_print.scss @@ -0,0 +1,34 @@ +// +// Print Mode +// + +// Add .print-content-only class to body element in order to allow printing only the content area +@media print { + .print-content-only { + padding: 0 !important; + background: none !important; + + .wrapper, + .page, + .page-title + .content, + .container, + .container-xxl, + .container-fluid { + background: none !important; + padding: 0 !important; + margin: 0 !important; + } + + .aside, + .sidebar, + .scrolltop, + .header, + .footer, + .toolbar, + .drawer, + .btn { + display: none !important; + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_progress.scss b/src/_metronic/assets/sass/core/components/_progress.scss new file mode 100644 index 0000000..e085f1f --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_progress.scss @@ -0,0 +1,35 @@ +// +// Progress +// + +// Base +.progress { + --#{$prefix}progress-bg: var(--kt-progress-bg); + --#{$prefix}progress-box-shadow: var(--kt-progress-box-shadow); + --#{$prefix}progress-bar-color: var(--kt-progress-bar-color); + --#{$prefix}progress-bar-bg: var(--kt-progress-bar-bg); +} + +// Vertical Position +.progress-vertical { + display: flex; + align-items: stretch; + justify-content: space-between; + + .progress { + height: 100%; + @include border-radius($border-radius); + display: flex; + align-items: flex-end; + margin-right: 1rem; + + &:last-child { + margin-right: 0; + } + + .progress-bar { + width: 8px; + @include border-radius($border-radius); + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_pulse.scss b/src/_metronic/assets/sass/core/components/_pulse.scss new file mode 100644 index 0000000..24b612c --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_pulse.scss @@ -0,0 +1,39 @@ +// +// Pulse +// + + +// Base +.pulse { + position: relative; + + // Theme Colors + @each $name, $color in $theme-colors { + &.pulse-#{$name} { + .pulse-ring { + border-color: $color; + } + } + } +} + +.pulse-ring { + display: block; + border-radius: 40px; + height: 40px; + width: 40px; + position: absolute; + animation: animation-pulse 3.5s ease-out; + animation-iteration-count: infinite; + opacity: 0; + border-width: 3px; + border-style: solid; + border-color: var(--kt-gray-500); +} + +@keyframes animation-pulse { + 0% {-webkit-transform: scale(0.1, 0.1); opacity: 0.0;} + 60% {-webkit-transform: scale(0.1, 0.1); opacity: 0.0;} + 65% {opacity: 1;} + 100% {-webkit-transform: scale(1.2, 1.2); opacity: 0.0;} +} diff --git a/src/_metronic/assets/sass/core/components/_rating.scss b/src/_metronic/assets/sass/core/components/_rating.scss new file mode 100644 index 0000000..b24eb76 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_rating.scss @@ -0,0 +1,62 @@ +// +// Rating +// + +.rating { + display: flex; + align-items: center; +} + +.rating-input { + position: absolute !important; + left: -9999px !important; + + &[disabled] { + display: none; + } +} + +.rating-label { + padding: 0; + margin: 0; + + & > i, + & > .svg-icon { + line-height: 1; + color: var(--kt-rating-color-default); + } +} + +label.rating-label { + cursor: pointer; +} + +div.rating-label.checked, +label.rating-label { + & > i, + & > .svg-icon { + color: var(--kt-rating-color-active); + } +} + +.rating-input:checked ~ .rating-label { + & > i, + & > .svg-icon { + color: var(--kt-rating-color-default); + } +} + +.rating:hover label.rating-label { + & > i, + & > .svg-icon { + color: var(--kt-rating-color-active); + } +} + +label.rating-label:hover ~ .rating-label { + & > i, + & > .svg-icon { + color: var(--kt-rating-color-default); + } + color: var(--kt-rating-color-default); +} diff --git a/src/_metronic/assets/sass/core/components/_reboot.scss b/src/_metronic/assets/sass/core/components/_reboot.scss new file mode 100644 index 0000000..9f94268 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_reboot.scss @@ -0,0 +1,8 @@ +// +// Reboot +// + +h1, h2, h3, h4, h5, h6 { + color: var(--kt-headings-color); + outline: 0; +} diff --git a/src/_metronic/assets/sass/core/components/_ribbon.scss b/src/_metronic/assets/sass/core/components/_ribbon.scss new file mode 100644 index 0000000..c9bf53a --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_ribbon.scss @@ -0,0 +1,195 @@ +// +// Ribbon +// + +// Base +.ribbon { + position: relative; + + // Ribbon target + .ribbon-label { + display: flex; + justify-content: center; + align-items: center; + padding: 5px 10px; + position: absolute; + z-index: 1; + background-color: var(--kt-ribbon-label-bg); + box-shadow: var(--kt-ribbon-label-box-shadow); + color: var(--kt-primary-inverse); + top: 50%; + right: 0; + transform: translateX(5px) translateY(-50%); + + > .ribbon-inner { + z-index: -1; + position: absolute; + padding: 0; + width: 100%; + height: 100%; + top: 0; + left: 0; + } + + &:after { + border-color: var(--kt-ribbon-label-border-color); + } + } + + // Vertical aligment + &-vertical { + .ribbon-label { + padding: 5px 10px; + min-width: 36px; + min-height: 46px; + text-align: center; + } + } + + &.ribbon-top { + .ribbon-label { + top: 0; + transform: translateX(-15px) translateY(-4px); + border-bottom-right-radius: $border-radius; + border-bottom-left-radius: $border-radius; + } + } + + &.ribbon-bottom { + .ribbon-label { + border-top-right-radius: $border-radius; + border-top-left-radius: $border-radius; + } + } + + &.ribbon-start { + .ribbon-label { + top: 50%; + left: 0; + right: auto; + transform: translateX(-5px) translateY(-50%); + border-top-right-radius: $border-radius; + border-bottom-right-radius: $border-radius; + } + } + + &.ribbon-end { + .ribbon-label { + border-top-left-radius: $border-radius; + border-bottom-left-radius: $border-radius; + } + } +} + +// Clip style +.ribbon.ribbon-clip { + &.ribbon-start { + .ribbon-label { + left: -5px; + + .ribbon-inner { + border-top-right-radius: $border-radius; + border-bottom-right-radius: $border-radius; + + &:before, + &:after { + content: ""; + position: absolute; + border-style: solid; + border-color: transparent !important; + bottom: -10px; + } + + &:before { + border-width: 0 10px 10px 0; + border-right-color: var(--kt-ribbon-clip-bg) !important; + left: 0; + } + } + } + } + + &.ribbon-end { + .ribbon-label { + right: -5px; + + .ribbon-inner { + border-top-left-radius: $border-radius; + border-bottom-left-radius: $border-radius; + + &:before, + &:after { + content: ""; + position: absolute; + border-style: solid; + border-color: transparent !important; + bottom: -10px; + } + + &:before { + border-width: 0 0 10px 10px; + border-left-color: var(--kt-ribbon-clip-bg) !important; + right: 0; + } + } + } + } +} + +// Triangle style +.ribbon.ribbon-triangle { + position: absolute; + z-index: 1; + display: flex; + align-items: flex-start; + justify-content: flex-start; + + // Top start position + &.ribbon-top-start { + top: 0; + left: 0; + width: 4rem; + height: 4rem; + border-bottom: solid 2rem transparent !important; + border-left: solid 2rem transparent; + border-right: solid 2rem transparent !important; + border-top: solid 2rem transparent; + } + + // Top end position + &.ribbon-top-end { + top: 0; + right: 0; + width: 4rem; + height: 4rem; + border-bottom: solid 2rem transparent !important; + border-left: solid 2rem transparent !important; + border-right: solid 2rem transparent; + border-top: solid 2rem transparent; + } + + // Botton start position + &.ribbon-bottom-start { + bottom: 0; + left: 0; + width: 4rem; + height: 4rem; + border-bottom: solid 2rem transparent; + border-left: solid 2rem transparent; + border-right: solid 2rem transparent !important; + border-top: solid 2rem transparent !important; + } + + // Botton end position + &.ribbon-bottom-end { + bottom: 0; + right: 0; + width: 4rem; + height: 4rem; + border-bottom: solid 2rem transparent; + border-right: solid 2rem transparent; + border-left: solid 2rem transparent !important; + border-top: solid 2rem transparent !important; + } +} + diff --git a/src/_metronic/assets/sass/core/components/_root-bs.scss b/src/_metronic/assets/sass/core/components/_root-bs.scss new file mode 100644 index 0000000..eb43e43 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_root-bs.scss @@ -0,0 +1,27 @@ +// +// CSS Variables +// + +[data-theme="dark"] { + @each $color, $value in $grays-dark { + --#{$prefix}gray-#{$color}: #{$value}; + } + + @each $color, $value in $theme-colors-dark { + --#{$prefix}#{$color}: #{$value}; + } + + --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)}; + --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)}; + + --#{$prefix}body-color: #{$body-color-dark}; + --#{$prefix}body-bg: #{$body-bg-dark}; + + --#{$prefix}border-color: #{$border-color-dark}; + + --#{$prefix}heading-color: #{$headings-color-dark}; + --#{$prefix}link-color: #{$link-color-dark}; + --#{$prefix}link-hover-color: #{$link-hover-color-dark}; + + --#{$prefix}code-color: #{$code-color-dark}; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_root.scss b/src/_metronic/assets/sass/core/components/_root.scss new file mode 100644 index 0000000..a7d3b2a --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_root.scss @@ -0,0 +1,868 @@ +// +// CSS Variables +// + +:root, +[data-theme="light"] { + // Breakpoints + @each $breakpoint, $value in $grid-breakpoints { + --kt-#{$breakpoint}:#{$value}; + } + + // Bootstrap color system + --kt-white: #{$white}; + --kt-white-bg-rgb: #{to-rgb($white)}; + --kt-black: #{$black}; + --kt-black-bg-rgb: #{to-rgb($black)}; + + // Bootstrap muted color + --kt-text-muted: #{$text-muted}; + + // Grey colors + @each $name, $value in $grays { + --kt-gray-#{$name}: #{$value}; + } + + // Grey rgba colors + @each $name, $value in $grays { + --kt-gray-#{$name}-rgb: #{to-rgb($value)}; + } + + // Contextual colors + @each $name, $value in $theme-colors { + --kt-#{$name}: #{$value}; + } + + // Contextual active state colors + @each $name, $value in $theme-active-colors { + --kt-#{$name}-active: #{$value}; + } + + // Contextual light state colors + @each $name, $value in $theme-light-colors { + --kt-#{$name}-light: #{$value}; + } + + // Contextual inverse state colors + @each $name, $value in $theme-inverse-colors { + --kt-#{$name}-inverse: #{$value}; + } + + // Contextual rbg colors + @each $name, $value in $theme-colors { + --kt-#{$name}-rgb: #{to-rgb($value)}; + } + + // Text colors + @each $name, $value in $theme-text-colors { + --kt-text-#{$name}: #{$value}; + } + + // Body + --kt-body-bg: #{$body-bg}; + --kt-body-bg-rgb: #{to-rgb($body-bg)}; + --kt-body-color: #{$body-color}; + + // Links + --kt-link-color: #{$link-color}; + --kt-link-hover-color: #{$link-hover-color}; + + // Components + --kt-border-color: #{$border-color}; + --kt-border-dashed-color: #{$border-dashed-color}; + + --kt-component-active-color: #{$component-active-color}; + --kt-component-active-bg: #{$component-active-bg}; + --kt-component-hover-color: #{$component-hover-color}; + --kt-component-hover-bg: #{$component-hover-bg}; + --kt-component-checked-color: #{$component-checked-color}; + --kt-component-checked-bg: #{$component-checked-bg}; + + // Box shadow + --kt-box-shadow-xs: #{$box-shadow-xs}; + --kt-box-shadow-sm: #{$box-shadow-sm}; + --kt-box-shadow: #{$box-shadow}; + --kt-box-shadow-lg: #{$box-shadow-lg}; + + // Typography + --kt-headings-color: #{$headings-color}; + + // Tables + --kt-table-color: #{$table-color}; + --kt-table-bg: #{$table-bg}; + --kt-table-striped-color: #{$table-striped-color}; + --kt-table-striped-bg: #{$table-striped-bg}; + --kt-table-accent-bg: #{$table-accent-bg}; + --kt-table-active-color: #{$table-active-color}; + --kt-table-active-bg: #{$table-active-bg}; + --kt-table-hover-colorr: #{$table-hover-color}; + --kt-table-hover-bg: #{$table-hover-bg}; + --kt-table-border-color: #{$table-border-color}; + --kt-table-caption-color: #{$table-caption-color}; + + --kt-table-loading-message-box-shadow: #{$table-loading-message-box-shadow}; + --kt-table-loading-message-bg: #{$table-loading-message-bg}; + --kt-table-loading-message-color: #{$table-loading-message-color}; + + // Buttons + Forms + --kt-input-btn-focus-color: #{$input-btn-focus-color}; + --kt-input-btn-focus-box-shadow: #{$input-btn-focus-box-shadow}; + --kt-input-btn-focus-color-opacity: #{$input-btn-focus-color-opacity}; + + --kt-input-color: #{$input-color}; + --kt-input-placeholder-color: #{$input-placeholder-color}; + --kt-input-plaintext-color: #{$input-plaintext-color}; + + // Buttons + --kt-btn-box-shadow: #{$btn-box-shadow}; + --kt-btn-focus-box-shadow: #{$btn-focus-box-shadow}; + --kt-btn-active-box-shadow: #{$btn-active-box-shadow}; + --kt-btn-disabled-opacity: #{$btn-disabled-opacity}; + + --kt-btn-link-color: #{$btn-link-color}; + --kt-btn-link-hover-color: #{$btn-link-hover-color}; + --kt-btn-link-disabled-color: #{$btn-link-disabled-color}; + + // Forms + --kt-form-label-color: #{$form-label-color}; + --kt-form-text-color: #{$form-text-color}; + + --kt-input-bg: #{$input-bg}; + --kt-input-disabled-bg: #{$input-disabled-bg}; + --kt-input-disabled-color: #{$input-disabled-color}; + --kt-input-disabled-border-color: #{$input-disabled-border-color}; + + --kt-input-color: #{$input-color}; + --kt-input-border-color: #{$input-border-color}; + + --kt-input-focus-bg: #{$input-focus-bg}; + --kt-input-focus-border-color: #{$input-focus-border-color}; + --kt-input-focus-color: #{$input-focus-color}; + + // Keenthemes solid input style + --kt-input-solid-bg: #{$input-solid-bg}; + --kt-input-solid-bg-focus: #{$input-solid-bg-focus}; + --kt-input-solid-placeholder-color: #{$input-solid-placeholder-color}; + --kt-input-solid-color: #{$input-solid-color}; + + // Form checks + --kt-form-check-label-color: #{$form-check-label-color}; + --kt-form-check-label-color-checked: #{$form-check-label-color-checked}; + --kt-form-check-input-active-filter: #{$form-check-input-active-filter}; + + --kt-form-check-input-bg: #{$form-check-input-bg}; + --kt-form-check-input-bg-solid: #{$form-check-input-bg-solid}; + --kt-form-check-input-border: #{$form-check-input-border}; + --kt-form-check-input-focus-border: #{$form-check-input-focus-border}; + --kt-form-check-input-focus-box-shadow: #{$form-check-input-focus-box-shadow}; + + --kt-form-check-input-checked-color: #{$form-check-input-checked-color}; + --kt-form-check-input-checked-bg-color: #{$form-check-input-checked-bg-color}; + --kt-form-check-input-checked-bg-color-solid: #{$form-check-input-checked-bg-color-solid}; + --kt-form-check-input-checked-border-color: #{$form-check-input-checked-border-color}; + --kt-form-check-input-checked-bg-image: #{escape-svg($form-check-input-checked-bg-image)}; + --kt-form-check-radio-checked-bg-image: #{escape-svg($form-check-radio-checked-bg-image)}; + + --kt-form-check-input-indeterminate-color: #{$form-check-input-indeterminate-color}; + --kt-form-check-input-indeterminate-bg-color: #{$form-check-input-indeterminate-bg-color}; + --kt-form-check-input-indeterminate-border-color: #{$form-check-input-indeterminate-border-color}; + --kt-form-check-input-indeterminate-bg-image: #{escape-svg($form-check-input-indeterminate-bg-image)}; + + --kt-form-check-input-disabled-opacity: #{$form-check-input-disabled-opacity}; + --kt-form-check-label-disabled-opacity: #{$form-check-label-disabled-opacity}; + --kt-form-check-btn-check-disabled-opacity: #{$form-check-btn-check-disabled-opacity}; + + --kt-form-switch-color: #{$form-switch-color}; + --kt-form-switch-color-solid: #{$form-switch-color-solid}; + --kt-form-switch-bg-image: #{escape-svg($form-switch-bg-image)}; + --kt-form-switch-bg-image-solid: #{escape-svg($form-switch-bg-image-solid)}; + --kt-form-switch-focus-color: #{$form-switch-focus-color}; + --kt-form-switch-focus-bg-image: #{escape-svg($form-switch-focus-bg-image)}; + --kt-form-switch-checked-color: #{$form-switch-checked-color}; + --kt-form-switch-checked-bg-image: #{escape-svg($form-switch-checked-bg-image)}; + + // Input groups + --kt-input-group-addon-color: #{$input-group-addon-color}; + --kt-input-group-addon-bg: #{$input-group-addon-bg}; + --kt-input-group-addon-border-color: #{$input-group-addon-border-color}; + + // Form select + --kt-form-select-color: #{$form-select-color}; + --kt-form-select-bg: #{$form-select-bg}; + --kt-form-select-disabled-color: #{$form-select-disabled-color}; + --kt-form-select-disabled-bg: #{$form-select-disabled-bg}; + --kt-form-select-disabled-border-color: #{$form-select-disabled-border-color}; + --kt-form-select-indicator-color: #{$form-select-indicator-color}; + --kt-form-select-indicator: #{escape-svg($form-select-indicator)}; + --kt-form-select-border-color: #{$form-select-border-color}; + --kt-form-select-box-shadow: #{$form-select-box-shadow}; + --kt-form-select-focus-border-color: #{$form-select-focus-border-color}; + --kt-form-select-focus-box-shadow: #{$form-select-focus-box-shadow}; + + // Form file button + --kt-form-file-button-color: #{$form-file-button-color}; + --kt-form-file-button-bg: #{$form-file-button-bg}; + --kt-form-file-button-hover-bg: #{$form-file-button-hover-bg}; + + // Navs + --kt-nav-tabs-border-color: #{$nav-tabs-border-color}; + --kt-nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color}; + --kt-nav-tabs-link-active-color: #{$nav-tabs-link-active-color}; + --kt-nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg}; + --kt-nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color}; + + --kt-nav-pills-link-active-color: #{$nav-pills-link-active-color}; + --kt-nav-pills-link-active-bg: #{$nav-pills-link-active-bg}; + + // Dropdowns + --kt-dropdown-color: #{$dropdown-color}; + --kt-dropdown-bg: #{$dropdown-bg}; + --kt-dropdown-divider-bg: #{$dropdown-divider-bg}; + --kt-dropdown-box-shadow: #{$dropdown-box-shadow}; + --kt-dropdown-link-color: #{$dropdown-link-color}; + --kt-dropdown-link-hover-color: #{$dropdown-link-hover-color}; + --kt-dropdown-link-hover-bg: #{$dropdown-link-hover-bg}; + --kt-dropdown-link-active-color: #{$dropdown-link-active-color}; + --kt-dropdown-link-active-bg: #{$dropdown-link-active-bg}; + --kt-dropdown-link-disabled-color: #{$dropdown-link-disabled-color}; + --kt-dropdown-header-color: #{$dropdown-header-color}; + + // Pagination + --kt-pagination-item-bg: #{$pagination-item-bg}; + --kt-pagination-color: #{$pagination-color}; + --kt-pagination-bg: #{$pagination-bg}; + --kt-pagination-border-color: #{$pagination-border-color}; + --kt-pagination-focus-color: #{$pagination-focus-color}; + --kt-pagination-focus-bg: #{$pagination-focus-bg}; + --kt-pagination-focus-box-shadow: #{$pagination-focus-box-shadow}; + --kt-pagination-focus-outline: #{$pagination-focus-outline}; + --kt-pagination-hover-color: #{$pagination-hover-color}; + --kt-pagination-hover-bg: #{$pagination-hover-bg}; + --kt-pagination-hover-border-color: #{$pagination-hover-border-color}; + --kt-pagination-active-color: #{$pagination-active-color}; + --kt-pagination-active-bg: #{$pagination-active-bg}; + --kt-pagination-active-border-color: #{$pagination-active-border-color}; + --kt-pagination-disabled-color: #{$pagination-disabled-color}; + --kt-pagination-disabled-bg: #{$pagination-disabled-bg}; + + // Card + --kt-card-color: #{$card-color-dark}; + --kt-card-bg: #{$card-bg}; + --kt-card-box-shadow: #{$card-box-shadow}; + --kt-card-border-color: #{$card-border-color}; + --kt-card-border-dashed-color: #{$card-border-dashed-color}; + --kt-card-cap-bg: #{$card-cap-bg}; + + // Accordion + --kt-accordion-color: #{$accordion-color}; + --kt-accordion-bg: #{$accordion-bg}; + --kt-accordion-border-color: #{$accordion-border-color}; + --kt-accordion-button-bg: #{$accordion-button-bg}; + --kt-accordion-button-color: #{$accordion-button-color}; + --kt-accordion-button-active-bg: #{$accordion-button-active-bg}; + --kt-accordion-button-active-color: #{$accordion-button-active-color}; + --kt-accordion-button-focus-border-color: #{$accordion-button-focus-border-color}; + --kt-accordion-button-focus-box-shadow: #{$accordion-button-focus-box-shadow}; + + --kt-accordion-icon-color: #{$accordion-icon-color}; + --kt-accordion-icon-active-color: #{$accordion-icon-active-color}; + --kt-accordion-button-icon: #{escape-svg($accordion-button-icon)}; + --kt-accordion-button-active-icon: #{escape-svg($accordion-button-active-icon)}; + + // Tooltips + --kt-tooltip-color: #{$tooltip-color}; + --kt-tooltip-bg: #{$tooltip-bg}; + --kt-tooltip-opacity: #{$tooltip-opacity}; + --kt-tooltip-box-shadow: #{$tooltip-box-shadow}; + + // Popovers + --kt-popover-bg: #{$popover-bg}; + --kt-popover-border-color: #{$popover-border-color}; + --kt-popover-box-shadow: #{$popover-box-shadow}; + --kt-popover-header-bg: #{$popover-header-bg}; + --kt-popover-header-color: #{$popover-header-color}; + --kt-popover-header-border-color: #{$popover-header-border-color}; + --kt-popover-body-color: #{$popover-body-color}; + + // Dropdowns + --kt-dropdown-box-shadow: #{$dropdown-box-shadow}; + --kt-dropdown-bg: #{$dropdown-bg}; + + // Toasts + --kt-toast-color: #{$toast-color}; + --kt-toast-background-color: #{$toast-background-color}; + --kt-toast-box-shadow: #{$toast-box-shadow}; + --kt-toast-header-color: #{$toast-header-color}; + --kt-toast-header-background-color: #{$toast-header-background-color}; + --kt-toast-header-border-color: #{$toast-header-border-color}; + + // Badges + --kt-badge-color: #{$badge-color}; + + // Modals + --kt-modal-bg: #{$modal-content-bg}; + --kt-modal-color: #{$modal-content-color}; + --kt-modal-border-color: #{$modal-content-border-color}; + --kt-modal-box-shadow: #{$modal-content-box-shadow}; + --kt-modal-content-color: #{$modal-content-color}; + --kt-modal-content-bg: #{$modal-content-bg}; + --kt-modal-content-border-color: #{$modal-content-border-color}; + --kt-modal-content-box-shadow: #{$modal-content-box-shadow}; + --kt-modal-content-box-shadow-xs: #{$modal-content-box-shadow-xs}; + --kt-modal-content-box-shadow-sm-up: #{$modal-content-box-shadow-sm-up}; + --kt-modal-header-border-color: #{$modal-header-border-color}; + --kt-modal-footer-border-color: #{$modal-footer-border-color}; + --kt-modal-backdrop-bg: #{$modal-backdrop-bg}; + --kt-modal-backdrop-opacity: #{$modal-backdrop-opacity}; + + // Progress bars + --kt-progress-bg: #{$progress-bg}; + --kt-progress-box-shadow: #{$progress-box-shadow}; + + // List group + --kt-list-group-color: #{$list-group-color}; + --kt-list-group-bg: #{$list-group-bg}; + --kt-list-group-border-color: #{$list-group-border-color}; + --kt-list-group-hover-bg: #{$list-group-hover-bg}; + --kt-list-group-active-color: #{$list-group-active-color}; + --kt-list-group-active-bg: #{$list-group-active-bg}; + --kt-list-group-active-border-colorg: #{$list-group-active-border-color}; + --kt-list-group-disabled-color: #{$list-group-disabled-color}; + --kt-list-group-disabled-bg: #{$list-group-disabled-bg}; + --kt-list-group-action-colorg: #{$list-group-action-color}; + --kt-list-group-action-hover-color: #{$list-group-action-hover-color}; + --kt-list-group-action-active-color: #{$list-group-action-active-color}; + --kt-list-group-action-active-bg: #{$list-group-action-active-bg}; + + // Image thumbnails + --kt-thumbnail-bg: #{$thumbnail-bg}; + --kt-thumbnail-border-color: #{$thumbnail-border-color}; + --kt-thumbnail-box-shadow: #{$thumbnail-box-shadow}; + + // Figures + --kt-figure-caption-color: #{$figure-caption-color}; + + // Breadcrumbs + --kt-breadcrumb-bg: #{$breadcrumb-bg}; + --kt-breadcrumb-divider-color: #{$breadcrumb-divider-color}; + --kt-breadcrumb-active-color: #{$breadcrumb-active-color}; + + // Carousel + --kt-carousel-custom-indicator-default-bg-color: #{$carousel-custom-indicator-default-bg-color}; + --kt-carousel-custom-indicator-active-bg-color: #{$carousel-custom-indicator-active-bg-color}; + --kt-carousel-custom-bullet-indicator-default-bg-color: #{$carousel-custom-bullet-indicator-default-bg-color}; + --kt-carousel-custom-bullet-indicator-active-bg-color: #{$carousel-custom-bullet-indicator-active-bg-color}; + + // Code + --kt-code-bg: #{$code-bg}; + --kt-code-box-shadow: #{$code-box-shadow}; + --kt-code-color: #{$code-color}; + + // Close + --kt-btn-close-color: #{$btn-close-color}; + --kt-btn-close-bg: #{escape-svg($btn-close-bg)}; + + // Offcanvas + --kt-offcanvas-border-color: #{$offcanvas-border-color}; + --kt-offcanvas-bg-color: #{$offcanvas-bg-color}; + --kt-offcanvas-color: #{$offcanvas-color}; + --kt-offcanvas-box-shadow: #{$offcanvas-box-shadow}; + --kt-offcanvas-backdrop-bg: #{$offcanvas-backdrop-bg}; + --kt-offcanvas-backdrop-opacity: #{$offcanvas-backdrop-opacity}; + + // Symbol + --kt-symbol-label-color: #{$symbol-label-color}; + --kt-symbol-label-bg: #{$symbol-label-bg}; + --kt-symbol-border-color: #{$symbol-border-color}; + + // Bullet + --kt-bullet-bg-color: #{$bullet-bg-color}; + + // Scrolltop + --kt-scrolltop-opacity: #{$scrolltop-opacity}; + --kt-scrolltop-opacity-on: #{$scrolltop-opacity-on}; + --kt-scrolltop-opacity-hover: #{$scrolltop-opacity-hover}; + --kt-scrolltop-box-shadow: #{$scrolltop-box-shadow}; + --kt-scrolltop-bg-color: #{$scrolltop-bg-color}; + --kt-scrolltop-bg-color-hover: #{$scrolltop-bg-color-hover}; + --kt-scrolltop-icon-color: #{$scrolltop-icon-color}; + --kt-scrolltop-icon-color-hover: #{$scrolltop-icon-color-hover}; + + // Keenthemes drawer component + --kt-drawer-box-shadow: #{$drawer-box-shadow}; + --kt-drawer-bg-color: #{$drawer-bg-color}; + --kt-drawer-overlay-bg-color: #{$drawer-overlay-bg-color}; + + // Keenthemes menu component + --kt-menu-dropdown-box-shadow: #{$menu-dropdown-box-shadow}; + --kt-menu-dropdown-bg-color: #{$menu-dropdown-bg-color}; + --kt-menu-heading-color: #{$menu-heading-color}; + --kt-menu-link-color-hover: #{$menu-link-color-hover}; + --kt-menu-link-color-show: #{$menu-link-color-show}; + --kt-menu-link-color-here: #{$menu-link-color-here}; + --kt-menu-link-color-active: #{$menu-link-color-active}; + --kt-menu-link-bg-color-hover: #{$menu-link-bg-color-hover}; + --kt-menu-link-bg-color-show: #{$menu-link-bg-color-show}; + --kt-menu-link-bg-color-here: #{$menu-link-bg-color-here}; + --kt-menu-link-bg-color-active: #{$menu-link-bg-color-active}; + + // Keenthemes feedback component + --kt-feedback-popup-box-shadow: #{$feedback-popup-box-shadow}; + --kt-feedback-popup-background-color: #{$feedback-popup-background-color}; + + // Keenthemes scrollbar component + --kt-scrollbar-color: #{$scrollbar-color}; + --kt-scrollbar-hover-color: #{$scrollbar-hover-color}; + --kt-scrollbar-width: #{$scrollbar-width}; + --kt-scrollbar-height: #{$scrollbar-height}; + --kt-scrollbar-space: #{$scrollbar-space}; + + // Keenthemes overlay component + --kt-overlay-bg: #{$overlay-bg}; + + // Keenthemes blockui component + --kt-blockui-overlay-bg: #{$blockui-overlay-bg}; + + // Keenthemes rating component + --kt-rating-color-default: #{$rating-color-default}; + --kt-rating-color-active: #{$rating-color-active}; + + // Keenthemes ribbon component + --kt-ribbon-label-box-shadow: #{$ribbon-label-box-shadow}; + --kt-ribbon-label-bg: #{$ribbon-label-bg}; + --kt-ribbon-label-border-color: #{$ribbon-label-border-color}; + --kt-ribbon-clip-bg: #{$ribbon-clip-bg}; + + // Engage panel + --kt-engage-btn-bg: #{$engage-btn-bg}; + --kt-engage-btn-color: #{$engage-btn-color}; + --kt-engage-btn-color-active: #{$engage-btn-color-active}; +} + +[data-theme="dark"] { + // Bootstrap muted color + --kt-text-muted: #{$text-muted-dark}; + + // Grey colors + @each $name, $value in $grays-dark { + --kt-gray-#{$name}: #{$value}; + } + + // Grey rgba colors + @each $name, $value in $grays-dark { + --kt-gray-#{$name}-rgb: #{to-rgb($value)}; + } + + // Contextual colors + @each $name, $value in $theme-colors-dark { + --kt-#{$name}: #{$value}; + } + + // Contextual active state colors + @each $name, $value in $theme-active-colors-dark { + --kt-#{$name}-active: #{$value}; + } + + // Contextual light state colors + @each $name, $value in $theme-light-colors-dark { + --kt-#{$name}-light: #{$value}; + } + + // Contextual inverse state colors + @each $name, $value in $theme-inverse-colors-dark { + --kt-#{$name}-inverse: #{$value}; + } + + // Contextual rbg colors + @each $name, $value in $theme-colors-dark { + --kt-#{$name}-rgb: #{to-rgb($value)}; + } + + // Text colors + @each $name, $value in $theme-text-colors-dark { + --kt-text-#{$name}: #{$value}; + } + + // Body + --kt-body-bg: #{$body-bg-dark}; + --kt-body-bg-rgb: #{to-rgb($body-bg-dark)}; + --kt-body-color: #{$body-color-dark}; + + // Links + --kt-link-color: #{$link-color-dark}; + --kt-link-hover-color: #{$link-hover-color-dark}; + + // Components + --kt-border-color: #{$border-color-dark}; + --kt-border-dashed-color: #{$border-dashed-color-dark}; + + --kt-component-active-color: #{$component-active-color-dark}; + --kt-component-active-bg: #{$component-active-bg-dark}; + --kt-component-hover-color: #{$component-hover-color-dark}; + --kt-component-hover-bg: #{$component-hover-bg-dark}; + --kt-component-checked-color: #{$component-checked-color-dark}; + --kt-component-checked-bg: #{$component-checked-bg-dark}; + + // Box shadow + --kt-box-shadow-xs: #{$box-shadow-xs-dark}; + --kt-box-shadow-sm: #{$box-shadow-sm-dark}; + --kt-box-shadow: #{$box-shadow-dark}; + --kt-box-shadow-lg: #{$box-shadow-lg-dark}; + + // Typography + --kt-headings-color: #{$headings-color-dark}; + + // Tables + --kt-table-color: #{$table-color-dark}; + --kt-table-bg: #{$table-bg-dark}; + --kt-table-striped-color: #{$table-striped-color-dark}; + --kt-table-striped-bg: #{$table-striped-bg-dark}; + --kt-table-accent-bg: #{$table-accent-bg-dark}; + --kt-table-active-color: #{$table-active-color-dark}; + --kt-table-active-bg: #{$table-active-bg-dark}; + --kt-table-hover-colorr: #{$table-hover-color-dark}; + --kt-table-hover-bg: #{$table-hover-bg-dark}; + --kt-table-border-color: #{$table-border-color-dark}; + --kt-table-caption-color: #{$table-caption-color-dark}; + + --kt-table-loading-message-box-shadow: #{$table-loading-message-box-shadow-dark}; + --kt-table-loading-message-bg: #{$table-loading-message-bg-dark}; + --kt-table-loading-message-color: #{$table-loading-message-color-dark}; + + // Buttons + Forms + --kt-input-btn-focus-color: #{$input-btn-focus-color-dark}; + --kt-input-btn-focus-box-shadow: #{$input-btn-focus-box-shadow-dark}; + --kt-input-btn-focus-color-opacity: #{$input-btn-focus-color-opacity-dark}; + + --kt-input-color: #{$input-color-dark}; + --kt-input-placeholder-color: #{$input-placeholder-color-dark}; + --kt-input-plaintext-color: #{$input-plaintext-color-dark}; + + // Buttons + --kt-btn-box-shadow: #{$btn-box-shadow-dark}; + --kt-btn-focus-box-shadow: #{$btn-focus-box-shadow-dark}; + --kt-btn-active-box-shadow: #{$btn-active-box-shadow-dark}; + --kt-btn-disabled-opacity: #{$btn-disabled-opacity-dark}; + + --kt-btn-link-color: #{$btn-link-color-dark}; + --kt-btn-link-hover-color: #{$btn-link-hover-color-dark}; + --kt-btn-link-disabled-color: #{$btn-link-disabled-color-dark}; + + // Forms + --kt-form-label-color: #{$form-label-color-dark}; + --kt-form-text-color: #{$form-text-color-dark}; + + --kt-input-bg: #{$input-bg-dark}; + --kt-input-disabled-bg: #{$input-disabled-bg-dark}; + --kt-input-disabled-color: #{$input-disabled-color-dark}; + --kt-input-disabled-border-color: #{$input-disabled-border-color-dark}; + + --kt-input-color: #{$input-color-dark}; + --kt-input-border-color: #{$input-border-color-dark}; + + --kt-input-focus-bg: #{$input-focus-bg-dark}; + --kt-input-focus-border-color: #{$input-focus-border-color-dark}; + --kt-input-focus-color: #{$input-focus-color-dark}; + + // Keenthemes solid input style + --kt-input-solid-bg: #{$input-solid-bg-dark}; + --kt-input-solid-bg-focus: #{$input-solid-bg-focus-dark}; + --kt-input-solid-placeholder-color: #{$input-solid-placeholder-color-dark}; + --kt-input-solid-color: #{$input-solid-color-dark}; + + // Form checks + --kt-form-check-label-color: #{$form-check-label-color-dark}; + --kt-form-check-label-color-checked: #{$form-check-label-color-checked-dark}; + --kt-form-check-input-active-filter: #{$form-check-input-active-filter-dark}; + + --kt-form-check-input-bg: #{$form-check-input-bg-dark}; + --kt-form-check-input-bg-solid: #{$form-check-input-bg-solid-dark}; + --kt-form-check-input-border: #{$form-check-input-border-dark}; + --kt-form-check-input-focus-border: #{$form-check-input-focus-border-dark}; + --kt-form-check-input-focus-box-shadow: #{$form-check-input-focus-box-shadow-dark}; + + --kt-form-check-input-checked-color: #{$form-check-input-checked-color-dark}; + --kt-form-check-input-checked-bg-color: #{$form-check-input-checked-bg-color-dark}; + --kt-form-check-input-checked-border-color: #{$form-check-input-checked-border-color-dark}; + --kt-form-check-input-checked-bg-image: #{escape-svg($form-check-input-checked-bg-image-dark)}; + --kt-form-check-radio-checked-bg-image: #{escape-svg($form-check-radio-checked-bg-image-dark)}; + + --kt-form-check-input-indeterminate-color: #{$form-check-input-indeterminate-color-dark}; + --kt-form-check-input-indeterminate-bg-color: #{$form-check-input-indeterminate-bg-color-dark}; + --kt-form-check-input-indeterminate-border-color: #{$form-check-input-indeterminate-border-color-dark}; + --kt-form-check-input-indeterminate-bg-image: #{escape-svg($form-check-input-indeterminate-bg-image-dark)}; + + --kt-form-check-input-disabled-opacity: #{$form-check-input-disabled-opacity-dark}; + --kt-form-check-label-disabled-opacity: #{$form-check-label-disabled-opacity-dark}; + --kt-form-check-btn-check-disabled-opacity: #{$form-check-btn-check-disabled-opacity-dark}; + + --kt-form-switch-color: #{$form-switch-color-dark}; + --kt-form-switch-color-solid: #{$form-switch-color-solid-dark}; + --kt-form-switch-bg-image: #{escape-svg($form-switch-bg-image-dark)}; + --kt-form-switch-bg-image-solid: #{escape-svg($form-switch-bg-image-solid-dark)}; + --kt-form-switch-focus-color: #{$form-switch-focus-color-dark}; + --kt-form-switch-focus-bg-image: #{escape-svg($form-switch-focus-bg-image-dark)}; + --kt-form-switch-checked-color: #{$form-switch-checked-color-dark}; + --kt-form-switch-checked-bg-image: #{escape-svg($form-switch-checked-bg-image-dark)}; + + // Input groups + --kt-input-group-addon-color: #{$input-group-addon-color-dark}; + --kt-input-group-addon-bg: #{$input-group-addon-bg-dark}; + --kt-input-group-addon-border-color: #{$input-group-addon-border-color-dark}; + + // Form select + --kt-form-select-color: #{$form-select-color-dark}; + --kt-form-select-bg: #{$form-select-bg-dark}; + --kt-form-select-disabled-color: #{$form-select-disabled-color-dark}; + --kt-form-select-disabled-bg: #{$form-select-disabled-bg-dark}; + --kt-form-select-disabled-border-color: #{$form-select-disabled-border-color-dark}; + --kt-form-select-indicator-color: #{$form-select-indicator-color-dark}; + --kt-form-select-indicator: #{escape-svg($form-select-indicator-dark)}; + --kt-form-select-border-color: #{$form-select-border-color-dark}; + --kt-form-select-box-shadow: #{$form-select-box-shadow-dark}; + --kt-form-select-focus-border-color: #{$form-select-focus-border-color-dark}; + --kt-form-select-focus-box-shadow: #{$form-select-focus-box-shadow-dark}; + + // Form file button + --kt-form-file-button-color: #{$form-file-button-color-dark}; + --kt-form-file-button-bg: #{$form-file-button-bg-dark}; + --kt-form-file-button-hover-bg: #{$form-file-button-hover-bg-dark}; + + // Navs + --kt-nav-tabs-border-color: #{$nav-tabs-border-color-dark}; + --kt-nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color-dark}; + --kt-nav-tabs-link-active-color: #{$nav-tabs-link-active-color-dark}; + --kt-nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg-dark}; + --kt-nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color-dark}; + + --kt-nav-pills-link-active-color: #{$nav-pills-link-active-color-dark}; + --kt-nav-pills-link-active-bg: #{$nav-pills-link-active-bg-dark}; + + // Dropdowns + --kt-dropdown-color: #{$dropdown-color-dark}; + --kt-dropdown-bg: #{$dropdown-bg-dark}; + --kt-dropdown-divider-bg: #{$dropdown-divider-bg-dark}; + --kt-dropdown-box-shadow: #{$dropdown-box-shadow-dark}; + --kt-dropdown-link-color: #{$dropdown-link-color-dark}; + --kt-dropdown-link-hover-color: #{$dropdown-link-hover-color-dark}; + --kt-dropdown-link-hover-bg: #{$dropdown-link-hover-bg-dark}; + --kt-dropdown-link-active-color: #{$dropdown-link-active-color-dark}; + --kt-dropdown-link-active-bg: #{$dropdown-link-active-bg-dark}; + --kt-dropdown-link-disabled-color: #{$dropdown-link-disabled-color-dark}; + --kt-dropdown-header-color: #{$dropdown-header-color-dark}; + + // Pagination + --kt-pagination-item-bg: #{$pagination-item-bg-dark}; + --kt-pagination-color: #{$pagination-color-dark}; + --kt-pagination-bg: #{$pagination-bg-dark}; + --kt-pagination-border-color: #{$pagination-border-color-dark}; + --kt-pagination-focus-color: #{$pagination-focus-color-dark}; + --kt-pagination-focus-bg: #{$pagination-focus-bg-dark}; + --kt-pagination-focus-box-shadow: #{$pagination-focus-box-shadow-dark}; + --kt-pagination-focus-outline: #{$pagination-focus-outline-dark}; + --kt-pagination-hover-color: #{$pagination-hover-color-dark}; + --kt-pagination-hover-bg: #{$pagination-hover-bg-dark}; + --kt-pagination-hover-border-color: #{$pagination-hover-border-color-dark}; + --kt-pagination-active-color: #{$pagination-active-color-dark}; + --kt-pagination-active-bg: #{$pagination-active-bg-dark}; + --kt-pagination-active-border-color: #{$pagination-active-border-color-dark}; + --kt-pagination-disabled-color: #{$pagination-disabled-color-dark}; + --kt-pagination-disabled-bg: #{$pagination-disabled-bg-dark}; + + // Card + --kt-card-bg: #{$card-bg-dark}; + --kt-card-color: #{$card-color-dark}; + --kt-card-box-shadow: #{$card-box-shadow-dark}; + --kt-card-border-color: #{$card-border-color-dark}; + --kt-card-border-dashed-color: #{$card-border-dashed-color-dark}; + --kt-card-cap-bg: #{$card-cap-bg-dark}; + + // Accordion + --kt-accordion-color: #{$accordion-color-dark}; + --kt-accordion-bg: #{$accordion-bg-dark}; + --kt-accordion-border-color: #{$accordion-border-color-dark}; + --kt-accordion-button-color: #{$accordion-button-color-dark}; + --kt-accordion-button-bg: #{$accordion-button-bg-dark}; + --kt-accordion-button-active-bg: #{$accordion-button-active-bg-dark}; + --kt-accordion-button-active-color: #{$accordion-button-active-color-dark}; + --kt-accordion-button-focus-border-color: #{$accordion-button-focus-border-color-dark}; + --kt-accordion-button-focus-box-shadow: #{$accordion-button-focus-box-shadow-dark}; + + --kt-accordion-icon-color: #{$accordion-icon-color-dark}; + --kt-accordion-icon-active-color: #{$accordion-icon-active-color-dark}; + --kt-accordion-button-icon: #{escape-svg($accordion-button-icon-dark)}; + --kt-accordion-button-active-icon: #{escape-svg($accordion-button-active-icon-dark)}; + + // Tooltips + --kt-tooltip-color: #{$tooltip-color-dark}; + --kt-tooltip-bg: #{$tooltip-bg-dark}; + --kt-tooltip-opacity: #{$tooltip-opacity-dark}; + --kt-tooltip-box-shadow: #{$tooltip-box-shadow-dark}; + + // Popovers + --kt-popover-bg: #{$popover-bg-dark}; + --kt-popover-border-color: #{$popover-border-color-dark}; + --kt-popover-box-shadow: #{$popover-box-shadow-dark}; + --kt-popover-header-bg: #{$popover-header-bg-dark}; + --kt-popover-header-color: #{$popover-header-color-dark}; + --kt-popover-header-border-color: #{$popover-header-border-color-dark}; + --kt-popover-body-color: #{$popover-body-color-dark}; + + // Dropdowns + --kt-dropdown-box-shadow: #{$dropdown-box-shadow-dark}; + --kt-dropdown-bg: #{$dropdown-bg-dark}; + + // Toasts + --kt-toast-color: #{$toast-color-dark}; + --kt-toast-background-color: #{$toast-background-color-dark}; + --kt-toast-box-shadow: #{$toast-box-shadow-dark}; + --kt-toast-header-color: #{$toast-header-color-dark}; + --kt-toast-header-background-color: #{$toast-header-background-color-dark}; + --kt-toast-header-border-color: #{$toast-header-border-color-dark}; + + // Badges + --kt-badge-color: #{$badge-color-dark}; + + // Modals + --kt-modal-bg: #{$modal-content-bg-dark}; + --kt-modal-color: #{$modal-content-color-dark}; + --kt-modal-border-color: #{$modal-content-border-color-dark}; + --kt-modal-box-shadow: #{$modal-content-box-shadow-dark}; + --kt-modal-content-color: #{$modal-content-color-dark}; + --kt-modal-content-bg: #{$modal-content-bg-dark}; + --kt-modal-content-border-color: #{$modal-content-border-color-dark}; + --kt-modal-content-box-shadow: #{$modal-content-box-shadow-dark}; + --kt-modal-content-box-shadow-xs: #{$modal-content-box-shadow-xs-dark}; + --kt-modal-content-box-shadow-sm-up: #{$modal-content-box-shadow-sm-up-dark}; + --kt-modal-header-border-color: #{$modal-header-border-color-dark}; + --kt-modal-footer-border-color: #{$modal-footer-border-color-dark}; + --kt-modal-backdrop-bg: #{$modal-backdrop-bg-dark}; + --kt-modal-backdrop-opacity: #{$modal-backdrop-opacity-dark}; + + // Progress bars + --kt-progress-bg: #{$progress-bg-dark}; + --kt-progress-box-shadow: #{$progress-box-shadow-dark}; + + // List group + --kt-list-group-color: #{$list-group-color-dark}; + --kt-list-group-bg: #{$list-group-bg-dark}; + --kt-list-group-border-color: #{$list-group-border-color-dark}; + --kt-list-group-hover-bg: #{$list-group-hover-bg-dark}; + --kt-list-group-active-color: #{$list-group-active-color-dark}; + --kt-list-group-active-bg: #{$list-group-active-bg-dark}; + --kt-list-group-active-border-colorg: #{$list-group-active-border-color-dark}; + --kt-list-group-disabled-color: #{$list-group-disabled-color-dark}; + --kt-list-group-disabled-bg: #{$list-group-disabled-bg-dark}; + --kt-list-group-action-colorg: #{$list-group-action-color-dark}; + --kt-list-group-action-hover-color: #{$list-group-action-hover-color-dark}; + --kt-list-group-action-active-color: #{$list-group-action-active-color-dark}; + --kt-list-group-action-active-bg: #{$list-group-action-active-bg-dark}; + + // Image thumbnails + --kt-thumbnail-bg: #{$thumbnail-bg-dark}; + --kt-thumbnail-border-color: #{$thumbnail-border-color-dark}; + --kt-thumbnail-box-shadow: #{$thumbnail-box-shadow-dark}; + + // Figures + --kt-figure-caption-color: #{$figure-caption-color-dark}; + + // Breadcrumbs + --kt-breadcrumb-bg: #{$breadcrumb-bg-dark}; + --kt-breadcrumb-divider-color: #{$breadcrumb-divider-color-dark}; + --kt-breadcrumb-active-color: #{$breadcrumb-active-color-dark}; + + // Carousel + --kt-carousel-custom-indicator-default-bg-color: #{$carousel-custom-indicator-default-bg-color-dark}; + --kt-carousel-custom-indicator-active-bg-color: #{$carousel-custom-indicator-active-bg-color-dark}; + --kt-arousel-custom-bullet-indicator-default-bg-color: #{$carousel-custom-bullet-indicator-default-bg-color-dark}; + --kt-carousel-custom-bullet-indicator-active-bg-color: #{$carousel-custom-bullet-indicator-active-bg-color-dark}; + + // Close + --kt-btn-close-color: #{$btn-close-color-dark}; + --kt-btn-close-bg: #{escape-svg($btn-close-bg-dark)}; + + // Offcanvas + --kt-code-bg: #{$code-bg-dark}; + --kt-code-box-shadow: #{$code-box-shadow-dark}; + --kt-code-color: #{$code-color-dark}; + + // Offcanvas + --kt-offcanvas-border-color: #{$offcanvas-border-color-dark}; + --kt-offcanvas-bg-color: #{$offcanvas-bg-color-dark}; + --kt-offcanvas-color: #{$offcanvas-color-dark}; + --kt-offcanvas-box-shadow: #{$offcanvas-box-shadow-dark}; + --kt-offcanvas-backdrop-bg: #{$offcanvas-backdrop-bg-dark}; + --kt-offcanvas-backdrop-opacity: #{$offcanvas-backdrop-opacity-dark}; + + // Code + --kt-code-bg: #{$code-bg-dark}; + --kt-code-box-shadow: #{$code-box-shadow-dark}; + --kt-code-color: #{$code-color-dark}; + + // Symbol + --kt-symbol-label-color: #{$symbol-label-color-dark}; + --kt-symbol-label-bg: #{$symbol-label-bg-dark}; + --kt-symbol-border-color: #{$symbol-border-color-dark}; + + // Bullet + --kt-bullet-bg-color: #{$bullet-bg-color-dark}; + + // Scrolltop + --kt-scrolltop-opacity: #{$scrolltop-opacity-dark}; + --kt-scrolltop-opacity-on: #{$scrolltop-opacity-on-dark}; + --kt-scrolltop-opacity-hover: #{$scrolltop-opacity-hover-dark}; + --kt-scrolltop-box-shadow: #{$scrolltop-box-shadow-dark}; + --kt-scrolltop-bg-color: #{$scrolltop-bg-color-dark}; + --kt-scrolltop-bg-color-hover: #{$scrolltop-bg-color-hover-dark}; + --kt-scrolltop-icon-color: #{$scrolltop-icon-color-dark}; + --kt-scrolltop-icon-color-hover: #{$scrolltop-icon-color-hover-dark}; + + // Keenthemes drawer component + --kt-drawer-box-shadow: #{$drawer-box-shadow-dark}; + --kt-drawer-bg-color: #{$drawer-bg-color-dark}; + --kt-drawer-overlay-bg-color: #{$drawer-overlay-bg-color-dark}; + + // Keenthemes menu component + --kt-menu-dropdown-box-shadow: #{$menu-dropdown-box-shadow-dark}; + --kt-menu-dropdown-bg-color: #{$menu-dropdown-bg-color-dark}; + --kt-menu-heading-color: #{$menu-heading-color-dark}; + + --kt-menu-link-color-hover: #{$menu-link-color-hover-dark}; + --kt-menu-link-color-show: #{$menu-link-color-show-dark}; + --kt-menu-link-color-here: #{$menu-link-color-here-dark}; + --kt-menu-link-color-active: #{$menu-link-color-active-dark}; + --kt-menu-link-bg-color-hover: #{$menu-link-bg-color-hover-dark}; + --kt-menu-link-bg-color-show: #{$menu-link-bg-color-show-dark}; + --kt-menu-link-bg-color-here: #{$menu-link-bg-color-here-dark}; + --kt-menu-link-bg-color-active: #{$menu-link-bg-color-active-dark}; + + + // Keenthemes feedback component + --kt-feedback-popup-box-shadow: #{$feedback-popup-box-shadow-dark}; + --kt-feedback-popup-background-color: #{$feedback-popup-background-color-dark}; + + // Keenthemes scrollbar component + --kt-scrollbar-color: #{$scrollbar-color-dark}; + --kt-scrollbar-hover-color: #{$scrollbar-hover-color-dark}; + + // Keenthemes overlay component + --kt-overlay-bg: #{$overlay-bg-dark}; + + // Keenthemes blockui component + --kt-blockui-overlay-bg: #{$blockui-overlay-bg-dark}; + + // Keenthemes rating component + --kt-rating-color-default: #{$rating-color-default-dark}; + --kt-rating-color-active: #{$rating-color-active-dark}; + + // Keenthemes ribbon component + --kt-ribbon-label-box-shadow: #{$ribbon-label-box-shadow-dark}; + --kt-ribbon-label-bg: #{$ribbon-label-bg-dark}; + --kt-ribbon-label-border-color: #{$ribbon-label-border-color-dark}; + --kt-ribbon-clip-bg: #{$ribbon-clip-bg-dark}; + + // Engage panel + --kt-engage-btn-bg: #{$engage-btn-bg-dark}; + --kt-engage-btn-color: #{$engage-btn-color-dark}; + --kt-engage-btn-color-active: #{$engage-btn-color-active-dark}; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_rotate.scss b/src/_metronic/assets/sass/core/components/_rotate.scss new file mode 100644 index 0000000..80ece20 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_rotate.scss @@ -0,0 +1,47 @@ +// +// Rotate +// + + +$rotate-transition: transform 0.3s ease; + +.rotate { + display: inline-flex; + align-items: center; +} + +@each $value in (90, 180, 270) { + .rotate-#{$value} { + transition: $rotate-transition; + backface-visibility: hidden; + will-change: transform; + + .collapsible:not(.collapsed)> & , + .show > &, + .active > & { + transform: rotateZ(#{$value}deg); + transition: $rotate-transition; + + [direction="rtl"] & { + transform: rotateZ(-#{$value}deg); + } + } + } + + .rotate-n#{$value} { + transition: $rotate-transition; + backface-visibility: hidden; + will-change: transform; + + .collapsible:not(.collapsed)> &, + .show > &, + .active > & { + transform: rotateZ(-#{$value}deg); + transition: $rotate-transition; + + [direction="rtl"] & { + transform: rotateZ(#{$value}deg); + } + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_scroll.scss b/src/_metronic/assets/sass/core/components/_scroll.scss new file mode 100644 index 0000000..e61ca0b --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_scroll.scss @@ -0,0 +1,309 @@ +// +// Scroll +// + + +// Customize native scrollbars only for desktop mode +@include media-breakpoint-up(lg) { + main, + span, + ol, + ul, + pre, + div { + // Firefox + scrollbar-width: thin; + + // Webkit + &::-webkit-scrollbar { + width: var(--kt-scrollbar-width); + height: var(--kt-scrollbar-height); + } + + ::-webkit-scrollbar-track { + @include border-radius($scrollbar-border-radius); + } + + ::-webkit-scrollbar-thumb { + @include border-radius($scrollbar-border-radius); + } + + // Default color + @include scrollbar-color(var(--kt-scrollbar-color), var(--kt-scrollbar-hover-color)); + } +} + +// Overflow scroll +.scroll { + overflow: scroll; + position: relative; + + // Tablet & mobile modes + @include media-breakpoint-down(lg) { + overflow: auto; + } +} + +.scroll-x { + overflow-x: scroll; + position: relative; + + // Tablet & mobile modes + @include media-breakpoint-down(lg) { + overflow-x: auto; + } +} + +.scroll-y { + overflow-y: scroll; + position: relative; + + // Tablet & mobile modes + @include media-breakpoint-down(lg) { + overflow-y: auto; + } +} + +// Hover overflow scroll +.hover-scroll { + position: relative; + + // Desktop mode + @include media-breakpoint-up(lg) { + overflow: hidden; + + border-right: var(--kt-scrollbar-width) solid transparent; + border-bottom: var(--kt-scrollbar-height) transparent; + margin-right: calc( -1 * var(--kt-scrollbar-width)); + margin-bottom: calc( -1 * var(--kt-scrollbar-height)); + + &:hover { + overflow: scroll; + border-right: 0; + border-bottom: 0; + } + + // Firefox hack + @-moz-document url-prefix() { + overflow: scroll; + position: relative; + border-right: 0; + border-bottom: 0; + } + } + + // Tablet & mobile modes + @include media-breakpoint-down(lg) { + overflow: auto; + } +} + +// Hover overflow scroll y +.hover-scroll-y { + position: relative; + + // Desktop mode + @include media-breakpoint-up(lg) { + overflow-y: hidden; + border-right: var(--kt-scrollbar-width) solid transparent; + margin-right: calc( -1 * var(--kt-scrollbar-width)); + + &:hover { + overflow-y: scroll; + border-right: 0; + } + + // Firefox hack + @-moz-document url-prefix() { + overflow-y: scroll; + position: relative; + border-right: 0; + } + } + + // Tablet & mobile modes + @include media-breakpoint-down(lg) { + overflow-y: auto; + } +} + +// Hover overflow scroll x +.hover-scroll-x { + position: relative; + + // Desktop mode + @include media-breakpoint-up(lg) { + overflow-x: hidden; + border-bottom: var(--kt-scrollbar-height) solid transparent; + + &:hover { + overflow-x: scroll; + border-bottom: 0; + } + + // Firefox hack + @-moz-document url-prefix() { + overflow-x: scroll; + position: relative; + border-bottom: 0; + } + } + + // Tablet & mobile modes + @include media-breakpoint-down(lg) { + overflow-x: auto; + } +} + +// Hover overflow overlay +.hover-scroll-overlay { + position: relative; + + // Desktop mode + @include media-breakpoint-up(lg) { + overflow: hidden; + + // Webkit + &::-webkit-scrollbar { + width: calc( var(--kt-scrollbar-width) + var(--kt-scrollbar-width) ); + height: calc( var(--kt-scrollbar-width) + var(--kt-scrollbar-width) ); + } + + &::-webkit-scrollbar-track { + border-radius: 0; + } + + &::-webkit-scrollbar-thumb { + border-radius: 0; + background-clip: content-box; + border-right: var(--kt-scrollbar-space) solid transparent; + border-bottom: var(--kt-scrollbar-space) solid transparent; + } + + &:hover { + overflow: overlay; + } + + // Firefox hack + @-moz-document url-prefix() { + overflow: scroll; + position: relative; + } + } + + // Tablet & mobile modes + @include media-breakpoint-down(lg) { + overflow: auto; + } +} + +// Hover overflow overlay y +.hover-scroll-overlay-y { + position: relative; + + // Desktop mode + @include media-breakpoint-up(lg) { + overflow-y: hidden; + + // Webkit + &::-webkit-scrollbar { + width: calc( var(--kt-scrollbar-width) + var(--kt-scrollbar-space)); + } + + &::-webkit-scrollbar-track { + border-radius: 0; + } + + &::-webkit-scrollbar-thumb { + border-radius: 0; + background-clip: content-box; + border-right: var(--kt-scrollbar-space) solid transparent; + } + + &:hover { + overflow-y: overlay; + } + + // Firefox hack + @-moz-document url-prefix() { + overflow-y: scroll; + position: relative; + } + } + + // Tablet & mobile modes + @include media-breakpoint-down(lg) { + overflow-y: auto; + } +} + +// Hover overflow overlay x +.hover-scroll-overlay-x { + position: relative; + + // Desktop mode + @include media-breakpoint-up(lg) { + overflow-x: hidden; + + // Webkit + &::-webkit-scrollbar { + height: calc( var(--kt-scrollbar-width) + var(--kt-scrollbar-space) ); + } + + &::-webkit-scrollbar-track { + border-radius: 0; + } + + &::-webkit-scrollbar-thumb { + border-radius: 0; + background-clip: content-box; + border-bottom: var(--kt-scrollbar-space) solid transparent; + } + + &:hover { + overflow-x: overlay; + } + + // Firefox hack + @-moz-document url-prefix() { + overflow-x: scroll; + position: relative; + } + } + + // Tablet & mobile modes + @include media-breakpoint-down(lg) { + overflow-x: auto; + } +} + +// Utility classes +.scroll-ps { + padding-left: var(--kt-scrollbar-width) !important; +} + +.scroll-ms { + margin-left: var(--kt-scrollbar-width) !important; +} + +.scroll-mb { + margin-bottom: var(--kt-scrollbar-height) !important; +} + +.scroll-pe { + padding-right: var(--kt-scrollbar-width) !important; +} + +.scroll-me { + margin-right: var(--kt-scrollbar-width) !important; +} + +.scroll-px { + padding-left: var(--kt-scrollbar-width) !important; + padding-right: var(--kt-scrollbar-width) !important; +} + +.scroll-mx { + margin-left: var(--kt-scrollbar-width) !important; + margin-right: var(--kt-scrollbar-width) !important; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_scrolltop.scss b/src/_metronic/assets/sass/core/components/_scrolltop.scss new file mode 100644 index 0000000..b4571bf --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_scrolltop.scss @@ -0,0 +1,69 @@ +// +// Scrolltop +// + +.scrolltop { + position: fixed; + display: none; + cursor: pointer; + z-index: $scrolltop-z-index; + justify-content: center; + align-items: center; + width: $scrolltop-size; + height: $scrolltop-size; + bottom: $scrolltop-bottom; + right: $scrolltop-end; + background-color: var(--kt-scrolltop-bg-color); + box-shadow: var(--kt-scrolltop-box-shadow); + opacity: $scrolltop-opacity; + transition: $transition-link; + @include border-radius($border-radius); + + .svg-icon { + @include svg-icon-size(24px); + color: var(--kt-scrolltop-icon-color); + } + + > i { + font-size: 1.3rem; + color: var(--kt-scrolltop-icon-color); + } + + &:hover { + background-color: var(--kt-scrolltop-bg-color-hover); + + .svg-icon, + i { + color: var(--kt-scrolltop-icon-color-hover); + } + } + + [data-kt-scrolltop="on"] & { + opacity: var(--kt-scrolltop-opacity-on); + animation: animation-scrolltop .4s ease-out 1; + display: flex; + + &:hover { + transition: $transition-link; + opacity: var(--kt-scrolltop-opacity-hover); + } + } + + +} + +// Tablet & Mobile Modess +@include media-breakpoint-down(lg) { + .scrolltop { + bottom: $scrolltop-bottom-mobile; + right: $scrolltop-end-mobile; + width: $scrolltop-size-mobile; + height: $scrolltop-size-mobile; + } +} + +// Animations +@keyframes animation-scrolltop { + from { margin-bottom: -15px; } + to { margin-bottom: 0; } +} diff --git a/src/_metronic/assets/sass/core/components/_separator.scss b/src/_metronic/assets/sass/core/components/_separator.scss new file mode 100644 index 0000000..4417e1d --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_separator.scss @@ -0,0 +1,66 @@ +// +// Separator +// + +.separator { + display: block; + height: 0; + border-bottom: 1px solid var(--kt-border-color); + + &.separator-dotted { + border-bottom-style: dotted; + border-bottom-color: var(--kt-border-dashed-color); + } + + &.separator-dashed { + border-bottom-style: dashed; + border-bottom-color: var(--kt-border-dashed-color); + } + + &.separator-content { + display: flex; + align-items: center; + border-bottom: 0; + text-align: center; + + &::before, + &::after { + content: " "; + width: 50%; + border-bottom: 1px solid var(--kt-border-color); + } + + &::before{ + margin-right: 1.25rem; + } + + &::after{ + margin-left: 1.25rem; + } + + &.separator-dotted { + &::before, + &::after { + border-bottom-style: dotted; + border-bottom-color: var(--kt-border-dashed-color); + } + } + + &.separator-dashed { + &::before, + &::after { + border-bottom-style: dashed; + border-bottom-color: var(--kt-border-dashed-color); + } + } + + @each $color, $value in $theme-colors { + &.border-#{$color}{ + &::before, + &::after { + border-color: $value !important; + } + } + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_shape.scss b/src/_metronic/assets/sass/core/components/_shape.scss new file mode 100644 index 0000000..e540908 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_shape.scss @@ -0,0 +1,13 @@ +// +// Shape +// + +.xehagon { + //$edges-number: 6, $main-radius: 30%, $rounding-radius: 10%, $rotated: true, $precision: 20 + @include shape(6); +} + +.octagon { + //$edges-number: 6, $main-radius: 30%, $rounding-radius: 10%, $rotated: true, $precision: 20 + @include shape(8); +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_stepper.scss b/src/_metronic/assets/sass/core/components/_stepper.scss new file mode 100644 index 0000000..eff128c --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_stepper.scss @@ -0,0 +1,8 @@ +// +// Stepper +// + +// Import Dependencies +@import "stepper/base"; +@import "stepper/pills"; +@import "stepper/links"; diff --git a/src/_metronic/assets/sass/core/components/_svg-icon.scss b/src/_metronic/assets/sass/core/components/_svg-icon.scss new file mode 100644 index 0000000..7147ab8 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_svg-icon.scss @@ -0,0 +1,30 @@ +// +// SVG Icon +// + +.svg-icon { + line-height: 1; + color: var(--kt-text-muted); + @include svg-icon-size(get($font-sizes, 5)); + + // Theme colors + @each $name, $color in $theme-text-colors { + &.svg-icon-#{$name} { + color: var(--kt-text-#{$name}); + } + } + + // Responsive icon sizes + @each $breakpoint in map-keys($grid-breakpoints) { + @include media-breakpoint-up($breakpoint) { + $infix: breakpoint-infix($breakpoint, $grid-breakpoints); + + // Sizes + @each $name, $value in $font-sizes { + &.svg-icon#{$infix}-#{$name} { + @include svg-icon-size($value, true); + } + } + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_symbol.scss b/src/_metronic/assets/sass/core/components/_symbol.scss new file mode 100644 index 0000000..5b49557 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_symbol.scss @@ -0,0 +1,133 @@ +// +// symbol +// + +// Base +.symbol { + display: inline-block;; + flex-shrink: 0; + position: relative; + @include border-radius($border-radius); + + // Label + .symbol-label { + display: flex; + align-items: center; + justify-content: center; + font-weight: 500; + color: var(--kt-symbol-label-color); + background-color: var(--kt-symbol-label-bg); + background-repeat: no-repeat; + background-position: center center; + background-size: cover; + @include border-radius($border-radius); + + &:after { + @include border-radius($border-radius); + } + } + + // Badge + .symbol-badge { + position: absolute; + border-radius: 100%; + top: 0; + left: 50%; + transform: translateX(-50%) translateY(-50%) !important; + } + + // Image + > img { + width: 100%; + flex-shrink: 0; + display: inline-block; + @include border-radius($border-radius); + } + + // Square + &.symbol-square { + &, + > img, + .symbol-label { + border-radius: 0 !important; + } + } + + // Circle + &.symbol-circle { + &, + > img, + .symbol-label { + border-radius: 50%; + + &:after { + border-radius: 50%; + } + } + } + + // Sizes + @include symbol-size(get($symbol-sizes, default)); + + @each $breakpoint in map-keys($grid-breakpoints) { + @include media-breakpoint-up($breakpoint) { + $infix: breakpoint-infix($breakpoint, $grid-breakpoints); + + @each $name, $value in $symbol-sizes { + @if ($name != 'default') { + &.symbol#{$infix}-#{$name} { + @include symbol-size($value); + } + } + } + } + } +} + +// Group +.symbol-group { + display: flex; + flex-wrap: wrap; + align-items: center; + margin-left: 10px; + + .symbol { + position: relative; + z-index: 0; + margin-left: -10px; + transition: all 0.3s ease; + + &:hover { + transition: all 0.3s ease; + z-index: 1; + } + } + + .symbol-badge { + border: 2px solid var(--kt-body-bg); + } + + .symbol-label { + position: relative; + + &:after { + display: block; + content: " "; + border-radius: inherit; + position: absolute; + top: 0; + right: 0; + left: 0; + bottom: 0; + border: 2px solid var(--kt-symbol-border-color); + -webkit-background-clip: padding-box; /* for Safari */ + background-clip: padding-box; /* for IE9+, Firefox 4+, Opera, Chrome */ + } + } + + &.symbol-hover { + .symbol { + cursor: pointer; + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_tables.scss b/src/_metronic/assets/sass/core/components/_tables.scss new file mode 100644 index 0000000..1ff0772 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_tables.scss @@ -0,0 +1,243 @@ +// +// Table +// + +// Table +.table { + --#{$prefix}table-color: var(--kt-table-color); + --#{$prefix}table-bg: var(--kt-table-bg); + --#{$prefix}table-border-color: var(--kt-table-border-color); + --#{$prefix}table-accent-bg: var(--kt-table-accent-bg); + --#{$prefix}table-striped-color: var(--kt-table-striped-color); + --#{$prefix}table-striped-bg: var(--kt-table-striped-bg); + --#{$prefix}table-active-color: var(--kt-table-active-color); + --#{$prefix}table-active-bg: var(--kt-table-active-bg); + --#{$prefix}table-hover-color: var(--kt-table-hover-color); + --#{$prefix}table-hover-bg: var(--kt-table-hover-bg); + + // Fix for BS 5.1.2 update + & > :not(:first-child) { + border-color: transparent; + border-width: 0; + border-style: none; + } + + >:not(:last-child)>:last-child>* { + border-bottom-color: inherit; + } + + tr, th, td { + border-color: inherit; + border-width: inherit; + border-style: inherit; + text-transform: inherit; + font-weight: inherit; + font-size: inherit; + color: inherit; + height: inherit; + min-height: inherit; + + &:first-child { + padding-left: 0; + } + + &:last-child { + padding-right: 0; + } + } + + tfoot, + tbody { + tr:last-child { + border-bottom: 0 !important; + + th, td { + border-bottom: 0 !important; + } + } + } + + tfoot { + th, td { + border-top: inherit; + } + } + + // Rounded + &.table-rounded { + border-radius: $border-radius; + border-spacing: 0; + border-collapse: separate; + } + + // Flush + &.table-flush { + tr, th, td { + padding: inherit; + } + } + + // Row bordered + &.table-row-bordered { + tr { + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: var(--kt-border-color); + } + + tfoot { + th, td { + border-top-width: 1px !important; + } + } + } + + // Row dashed + &.table-row-dashed { + tr { + border-bottom-width: 1px; + border-bottom-style: dashed; + border-bottom-color: var(--kt-border-color); + } + + tfoot { + th, td { + border-top-width: 1px !important; + } + } + } + + // Row border colors + @each $name, $value in $grays { + &.table-row-gray-#{$name} { + tr { + border-bottom-color: var(--kt-gray-#{$name}); + } + } + } +} + +// Layout fixed +.table-layout-fixed { + table-layout: fixed; +} + +// Sorting +.table-sort { + &:after { + opacity: 0; + } +} + +.table-sort, +.table-sort-asc, +.table-sort-desc { + vertical-align: middle; + + &:after { + position: relative; + display: inline-block; + width: 0.75rem; + height: 0.75rem; + content: " "; + bottom: auto; + right: auto; + left: auto; + margin-left: 0.5rem; + } +} + +.table-sort-asc { + &:after { + opacity: 1; + @include svg-bg-icon(arrow-top, var(--kt-text-muted)); + } +} + +.table-sort-desc { + &:after { + opacity: 1; + @include svg-bg-icon(arrow-bottom, var(--kt-text-muted)); + } +} + +// Loading +.table-loading-message { + display: none; + position: absolute; + top: 50%; + left: 50%; + @include border-radius($border-radius); + box-shadow: var(--kt-table-loading-message-box-shadow); + background-color: var(--kt-table-loading-message-bg); + color: var(--kt-table-loading-message-color); + font-weight: $font-weight-bold; + margin: 0 !important; + width: auto; + padding: 0.85rem 2rem !important; + transform: translateX(-50%) translateY(-50%); +} + +.table-loading { + position: relative; + + .table-loading-message { + display: block; + } +} + +// Cell gutters +@each $breakpoint in map-keys($grid-breakpoints) { + @include media-breakpoint-up($breakpoint) { + $infix: breakpoint-infix($breakpoint, $grid-breakpoints); + + @each $name, $value in $gutters { + .table.g#{$infix}-#{$name} { + th, td { + padding: $value; + + // Datatables responsive mode fix + &.dtr-control { + padding-left: $value !important; + } + } + } + + .table.gy#{$infix}-#{$name} { + th, td { + padding-top: $value; + padding-bottom: $value; + } + } + + .table.gx#{$infix}-#{$name} { + th, td { + padding-left: $value; + padding-right: $value; + + // Datatables responsive mode fix + &.dtr-control { + padding-left: $value !important; + } + } + } + + .table.gs#{$infix}-#{$name} { + th, td { + &:first-child { + padding-left: $value; + } + + &:last-child { + padding-right: $value; + } + + // Datatables responsive mode fix + &.dtr-control:first-child { + padding-left: $value !important; + } + } + } + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_theme-mode.scss b/src/_metronic/assets/sass/core/components/_theme-mode.scss new file mode 100644 index 0000000..40e99ee --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_theme-mode.scss @@ -0,0 +1,38 @@ +// +// Theme Modes +// + +// Used for theme mode switching via JS +[data-kt-theme-mode-switching="true"] * { + transition: none !important; +} + +// Light mode +@include theme-light() { + .theme-dark-show { + display: none !important; + } + + .theme-light-bg-transparent { + background-color: transparent !important; + } + + .theme-light-bg-body { + background-color: var(--kt-body-bg) !important; + } +} + +// Dark mode +@include theme-dark() { + .theme-light-show { + display: none !important; + } + + .theme-dark-bg-transparent { + background-color: transparent !important; + } + + .theme-dark-bg-body { + background-color: var(--kt-body-bg) !important; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_timeline-label.scss b/src/_metronic/assets/sass/core/components/_timeline-label.scss new file mode 100644 index 0000000..edbcab7 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_timeline-label.scss @@ -0,0 +1,68 @@ +// +// Timeline Label +// + + +.timeline-label { + position: relative; + + $label-width: 50px; + + &:before { + content: ''; + position: absolute; + left: $label-width + 1px; + width: 3px; + top: 0; + bottom: 0; + background-color: var(--kt-gray-200); + } + + // + .timeline-item { + display: flex; + align-items: flex-start; + position: relative; + margin-bottom: 1.7rem; + + &:last-child { + margin-bottom: 0; + } + } + + .timeline-label { + width: $label-width; + flex-shrink: 0; + position: relative; + color: var(--kt-gray-800); + } + + .timeline-badge { + flex-shrink: 0; + background-color: var(--kt-body-bg); + width: 1rem; + height: 1rem; + border-radius: 100%; + display: flex; + justify-content: center; + align-items: center; + z-index: 1; + position: relative; + margin-top: 1px; + margin-left: -0.5rem; + padding: 3px !important; + border: 6px solid var(--kt-body-bg) !important; + + span { + display: block; + border-radius: 100%; + width: 6px; + height: 6px; + background-color: var(--kt-gray-200); + } + } + + .timeline-content { + flex-grow: 1; + } +} diff --git a/src/_metronic/assets/sass/core/components/_timeline.scss b/src/_metronic/assets/sass/core/components/_timeline.scss new file mode 100644 index 0000000..4813245 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_timeline.scss @@ -0,0 +1,70 @@ +// +// Timeline +// + +// Base +.timeline { + // Item + .timeline-item { + position: relative; + padding: 0; + margin: 0; + display: flex; + align-items: flex-start; + + &:last-child { + .timeline-line { + bottom: 100%; + } + } + } + + // Line + .timeline-line { + display: block; + content: " "; + justify-content: center; + position: absolute; + z-index: 0; + left: 0; + top:0; + bottom: 0; + transform: translate(50%); + border-left-width: 1px; + border-left-style: dashed; + border-left-color: var(--kt-gray-300); + } + + // Icon + .timeline-icon { + z-index: 1; + flex-shrink: 0; + margin-right: 1rem; + } + + // Content + .timeline-content { + width: 100%; + overflow: auto; + margin-bottom: 1.5rem; + } + + // Vertical center + &.timeline-center { + .timeline-item { + align-items: center; + + &:first-child { + .timeline-line { + top: 50%; + } + } + + &:last-child { + .timeline-line { + bottom: 50%; + } + } + } + } +} diff --git a/src/_metronic/assets/sass/core/components/_toasts.scss b/src/_metronic/assets/sass/core/components/_toasts.scss new file mode 100644 index 0000000..4612c77 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_toasts.scss @@ -0,0 +1,15 @@ +.toast { + --#{$prefix}toast-color: var(--kt-toast-color); + --#{$prefix}toast-bg: var(--kt-toast-background-color); + --#{$prefix}toast-border-color: var(--kt-toast-border-color); + --#{$prefix}toast-box-shadow: var(--kt-toast-box-shadow); + --#{$prefix}toast-header-color: var(--kt-toast-header-color); + --#{$prefix}toast-header-bg: var(--kt-toast-header-background-color); + --#{$prefix}toast-header-border-color: var(--kt-toast-header-border-color); + + .toast-header { + .btn-close { + margin-right: 0; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_toggle.scss b/src/_metronic/assets/sass/core/components/_toggle.scss new file mode 100644 index 0000000..9f97ee2 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_toggle.scss @@ -0,0 +1,19 @@ +// +// Toggle +// + +.toggle { + &.collapsible:not(.collapsed), // Integration with Bootstrap Collapse + &.active { + .toggle-off { + display: none; + } + } + + &.collapsible.collapsed, // Integration with Bootstrap Collapse + &:not(.collapsible):not(.active) { + .toggle-on { + display: none; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/_tooltip.scss b/src/_metronic/assets/sass/core/components/_tooltip.scss new file mode 100644 index 0000000..94725b4 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_tooltip.scss @@ -0,0 +1,31 @@ +// +// Tooltip +// + + +// Base +.tooltip { + --#{$prefix}tooltip-color: var(--kt-tooltip-color); + --#{$prefix}tooltip-bg: var(--kt-tooltip-bg); + --#{$prefix}tooltip-opacity: var(--kt-tooltip-opacity); + + .tooltip-inner { + box-shadow: var(--kt-tooltip-box-shadow); + } + + &.tooltop-auto-width { + .tooltip-inner { + white-space: nowrap; + max-width: none; + } + } + + // Inverse + &.tooltip-inverse { + @include tooltip-theme( + $bg-color: var(--kt-dark), + $color: var(--kt-dark-inverse), + $arrow-color: var(--kt-dark), + ); + } +} diff --git a/src/_metronic/assets/sass/core/components/_type.scss b/src/_metronic/assets/sass/core/components/_type.scss new file mode 100644 index 0000000..01819b7 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_type.scss @@ -0,0 +1,5 @@ + + +.blockquote-footer { + color: var(--kt-blockquote-footer-color); +} diff --git a/src/_metronic/assets/sass/core/components/_utilities.scss b/src/_metronic/assets/sass/core/components/_utilities.scss new file mode 100644 index 0000000..0874a6c --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_utilities.scss @@ -0,0 +1,125 @@ +// +// Custom utilities +// + +$utilities: map-merge( + $utilities, + ( + "position": ( + property: position, + responsive: true, + values: static relative absolute fixed sticky + ), + "opacity": ( + property: opacity, + class: opacity, + values: $opacity-values + ), + "opacity-hover": ( + property: opacity, + state: hover, + class: opacity, + values: $opacity-values + ), + "font-size": ( + rfs: true, + responsive: true, + property: font-size, + class: fs, + values: $font-sizes + ), + "width": ( + responsive: true, + property: width, + class: w, + values: $custom-sizes + ), + "max-width": ( + responsive: true, + property: max-width, + class: mw, + values: $custom-sizes + ), + "min-width": ( + responsive: true, + property: min-width, + class: min-w, + values: $custom-sizes + ), + "height": ( + responsive: true, + property: height, + class: h, + values: $custom-sizes + ), + "max-height": ( + responsive: true, + property: max-height, + class: mh, + values: $custom-sizes + ), + "min-height": ( + responsive: true, + property: min-height, + class: min-h, + values: $custom-sizes + ), + "z-index": ( + property: z-index, + class: z-index, + values: $zindex-values + ), + "border-top-width": ( + property: border-top-width, + class: border-top, + values: $border-widths + ), + "border-bottom-width": ( + property: border-bottom-width, + class: border-bottom, + values: $border-widths + ), + "border-right-width": ( + property: border-right-width, + class: border-right, + values: $border-widths + ), + "border-left-width": ( + property: border-left-width, + class: border-left, + values: $border-widths + ), + "line-height": ( + property: line-height, + class: lh, + values: ( + 0: 0, + 1: 1, + sm: $line-height-sm, + base: $line-height-base, + lg: $line-height-lg, + xl: $line-height-xl, + xxl: $line-height-xxl + ) + ), + "letter-spacing": ( + property: letter-spacing, + class: ls, + values: $letter-spacing-values + ), + "rounded": ( + property: border-radius, + class: rounded, + values: ( + null: $border-radius, + 0: 0, + 1: $border-radius-sm, + 2: $border-radius, + 3: $border-radius-lg, + 4: $border-radius-xl, + circle: 50%, + pill: $border-radius-pill + ) + ) + ) +); diff --git a/src/_metronic/assets/sass/core/components/_variables.scss b/src/_metronic/assets/sass/core/components/_variables.scss new file mode 100644 index 0000000..e20e542 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/_variables.scss @@ -0,0 +1,1587 @@ +// +// Bootstrap & Custom Variables +// Safely override any variable in _variables.custom.scss +// + + +// Bootstrap color system +$white: #ffffff !default; +$black:#000000 !default; + +// Bootstrap grey colors +$gray-100: #f5f8fa !default; +$gray-200: #eff2f5 !default; +$gray-300: #E4E6EF !default; +$gray-400: #B5B5C3 !default; +$gray-500: #A1A5B7 !default; +$gray-600: #7E8299 !default; +$gray-700: #5E6278 !default; +$gray-800: #3F4254 !default; +$gray-900: #181C32 !default; + +$gray-100-dark: #1b1b29 !default; +$gray-200-dark: #2B2B40 !default; +$gray-300-dark: #323248 !default; +$gray-400-dark: #474761 !default; +$gray-500-dark: #565674 !default; +$gray-600-dark: #6D6D80 !default; +$gray-700-dark: #92929F !default; +$gray-800-dark: #CDCDDE !default; +$gray-900-dark: #FFFFFF !default; + +// Bootstrap muted color +$text-muted: $gray-500 !default; +$text-muted-dark: $gray-500-dark !default; + +// Bootstrap gray colors map +$grays: ( + "100": $gray-100, + "200": $gray-200, + "300": $gray-300, + "400": $gray-400, + "500": $gray-500, + "600": $gray-600, + "700": $gray-700, + "800": $gray-800, + "900": $gray-900 +) !default; + +$grays-dark: ( + "100": $gray-100-dark, + "200": $gray-200-dark, + "300": $gray-300-dark, + "400": $gray-400-dark, + "500": $gray-500-dark, + "600": $gray-600-dark, + "700": $gray-700-dark, + "800": $gray-800-dark, + "900": $gray-900-dark +) !default; + +// Bootstrap contextual colors +// Primary colors +$primary: #3699FF !default; +$primary-active: #187DE4 !default; +$primary-light: #F1FAFF !default; +$primary-light-dark: #212E48 !default; +$primary-inverse: $white !default; + +// Secondary colors +$secondary: $gray-300 !default; +$secondary-dark: $gray-300-dark !default; +$secondary-active: $gray-400 !default; +$secondary-active-dark: $gray-400-dark !default; +$secondary-light: $gray-100 !default; +$secondary-light-dark: $gray-100-dark !default; +$secondary-inverse: $gray-800 !default; +$secondary-inverse-dark: $gray-800-dark !default; + +// Light colors +$light: $gray-100 !default; +$light-dark: $gray-200-dark !default; +$light-active: $gray-200 !default; +$light-active-dark: $gray-300-dark !default; +$light-light: gba($gray-100, 0.75) !default; +$light-inverse: $gray-600 !default; +$light-inverse-dark: $gray-600-dark !default; + +// Success colors +$success: #1BC5BD !default; +$success-active: #0BB7AF !default; +$success-light: #C9F7F5 !default; +$success-light-dark: #1C3833 !default; +$success-inverse: $white !default; + +// Info colors +$info: #8950FC !default; +$info-active: #7337EE !default; +$info-light: #EEE5FF !default; +$info-light-dark: #2F264F !default; +$info-inverse: $white !default; + +// Warning colors +$warning: #FFA800 !default; +$warning-active: #EE9D01 !default; +$warning-light: #FFF4DE !default; +$warning-light-dark: #392F28 !default; +$warning-inverse: $white !default; + +// Danger colors +$danger: #F64E60 !default; +$danger-active: #EE2D41 !default; +$danger-light: #FFE2E5 !default; +$danger-light-dark: #3A2434 !default; +$danger-inverse: $white !default; + +// Dark colors +$dark: $gray-900 !default; +$dark-dark: $gray-900-dark !default; +$dark-active: darken($gray-900, 3%) !default; +$dark-active-dark: lighten($gray-900-dark, 3%) !default; +$dark-light: $gray-200 !default; +$dark-light-dark: $gray-200-dark !default; +$dark-inverse: $white !default; +$dark-inverse-dark: $gray-100-dark !default; + +// Contextual colors +$theme-colors: ( + "white": $white, // custom color type + "light": $light, + "primary": $primary, + "secondary": $secondary, + "success": $success, + "info": $info, + "warning": $warning, + "danger": $danger, + "dark": $dark +) !default; + +$theme-colors-dark: ( + "dark": $dark-dark, + "light": $light-dark, + "secondary": $secondary-dark, +) !default; + +// Contextual active state colors +$theme-active-colors: ( + "primary": $primary-active, + "secondary": $secondary-active, + "light": $light-active, + "success": $success-active, + "info": $info-active, + "warning": $warning-active, + "danger": $danger-active, + "dark": $dark-active +) !default; + +$theme-active-colors-dark: ( + "dark": $dark-active-dark, + "light": $light-active-dark, + "secondary": $secondary-active-dark, +) !default; + +// Contextual inverse state colors +$theme-inverse-colors: ( + "primary": $primary-inverse, + "secondary": $secondary-inverse, + "light": $light-inverse, + "success": $success-inverse, + "info": $info-inverse, + "warning": $warning-inverse, + "danger": $danger-inverse, + "dark": $dark-inverse +) !default; + +$theme-inverse-colors-dark: ( + "dark": $dark-inverse-dark, + "light": $light-inverse-dark, + "secondary": $secondary-inverse-dark, +) !default; + +// Contextual light state colors +$theme-light-colors: ( + "primary": $primary-light, + "secondary": $secondary-light, + "success": $success-light, + "info": $info-light, + "warning": $warning-light, + "danger": $danger-light, + "dark": $dark-light +) !default; + +$theme-light-colors-dark: ( + "primary": $primary-light-dark, + "success": $success-light-dark, + "info": $info-light-dark, + "warning": $warning-light-dark, + "danger": $danger-light-dark, + "dark": $dark-light-dark, + "secondary": $secondary-light-dark +) !default; + +// Text colors +$theme-text-colors: ( + "white": $white, + "primary": $primary, + "secondary": $secondary, + "light": $light, + "success": $success, + "info": $info, + "warning": $warning, + "danger": $danger, + "dark": $dark, + "muted": $text-muted, + "gray-100": $gray-100, + "gray-200": $gray-200, + "gray-300": $gray-300, + "gray-400": $gray-400, + "gray-500": $gray-500, + "gray-600": $gray-600, + "gray-700": $gray-700, + "gray-800": $gray-800, + "gray-900": $gray-900 +) !default; + +$theme-text-colors-dark: ( + "dark": $dark-dark, + "muted": $text-muted-dark, + "secondary": $secondary-dark, + "gray-100": $gray-100-dark, + "gray-200": $gray-200-dark, + "gray-300": $gray-300-dark, + "gray-400": $gray-400-dark, + "gray-500": $gray-500-dark, + "gray-600": $gray-600-dark, + "gray-700": $gray-700-dark, + "gray-800": $gray-800-dark, + "gray-900": $gray-900-dark +) !default; + + +// Options +// +// Quickly modify global styling by enabling or disabling optional features. +$enable-rounded: true !default; +$enable-shadows: true !default; +$enable-negative-margins: true !default; +$enable-smooth-scroll: false !default; + +// Spacing +// +// Control the default styling of most Bootstrap elements by modifying these +// variables. Mostly focused on spacing. +// You can add more entries to the $spacers map, should you need more variation. +$spacer: 1rem !default; + +$spacers: ( + 0: 0, + 1: ($spacer * .25), // 3.5px + 2: ($spacer * .5), // 7px; + 3: ($spacer * .75), // 10.5px + 4: ($spacer * 1), // 14px + 5: ($spacer * 1.25), // 17.5px + 6: ($spacer * 1.5), // 21px + 7: ($spacer * 1.75), // 24.5px + 8: ($spacer * 2), // 28px + 9: ($spacer * 2.25), // 31.5px + 10: ($spacer * 2.5), // 35px + 11: ($spacer * 2.75), // 38.5px + 12: ($spacer * 3), // 42px + 13: ($spacer * 3.25), // 45.5px + 14: ($spacer * 3.5), // 49px + 15: ($spacer * 3.75), // 52.5px + 16: ($spacer * 4), // 55px + 17: ($spacer * 4.25), // 58.5px + 18: ($spacer * 4.5), // 62px + 19: ($spacer * 4.75), // 65.5px + 20: ($spacer * 5), // 69px +); + + +// Position +// +// Define the edge positioning anchors of the position utilities. +$position-values: ( + 0: 0, + 25: 25%, + 50: 50%, + 75: 75%, + 100: 100% +) !default; + + +// Body +// +// Settings for the `` element. +$body-bg: $white !default; +$body-bg-rgb: to-rgb($body-bg) !default; +$body-bg-dark: #1e1e2d !default; +$body-bg-rgb-dark: to-rgb($body-bg-dark) !default; +$body-color: $gray-900 !default; +$body-color-dark: $gray-900-dark !default; +$body-text-align: null !default; + + +// Links +// +// Style anchor elements. +$link-color: $primary !default; +$link-color-dark: $primary !default; +$link-decoration: none !default; +$link-shade-percentage: 20% !default; +$link-hover-color: $primary-active !default; +$link-hover-color-dark: $primary-active !default; +$link-hover-decoration: none !default; + + +// Paragraphs +// +// Style p element. +$paragraph-margin-bottom: 1rem !default; + + +// Grid breakpoints +// +// Define the minimum dimensions at which your layout will change, +// adapting to different screen sizes, for use in media queries. +// scss-docs-start grid-breakpoints +$grid-breakpoints: ( + xs: 0, + sm: 576px, + md: 768px, + lg: 992px, + xl: 1200px, + xxl: 1400px +) !default; +// scss-docs-end grid-breakpoints + + +// Grid containers +// +// Define the maximum width of `.container` for different screen sizes. +$container-max-widths: ( + sm: 540px, + md: 720px, + lg: 960px, + xl: 1140px, + xxl: 1320px +) !default; + + +// Components +// +// Define common padding and border radius sizes and more. +$border-width: 1px !default; +$border-color: $gray-200 !default; +$border-color-dark: $gray-200-dark !default; +$border-dashed-color: $gray-300 !default; +$border-dashed-color-dark: $gray-300-dark !default; + +$border-widths: ( + 0: 0, + 1: 1px, + 2: 2px, + 3: 3px, + 4: 4px, + 5: 5px +) !default; + +// Border Radiues +$border-radius: .475rem !default; +$border-radius-sm: .425rem !default; +$border-radius-lg: .625rem !default; +$border-radius-xl: 1rem !default; +$border-radius-2xl: 2rem !default; +$border-radius-pill: 50rem !default; + +// Keenthemes hover states +$component-hover-color: $primary !default; +$component-hover-color-dark: $primary !default; +$component-hover-bg: #F4F6FA !default; +$component-hover-bg-dark: $gray-200-dark !default; + +// Keenthemes active states +$component-active-color: $primary-inverse !default; +$component-active-color-dark: $primary-inverse !default; +$component-active-bg: $primary !default; +$component-active-bg-dark: $primary !default; + +// Keenthemes checked states +$component-checked-color: $primary-inverse !default; +$component-checked-color-dark: $primary-inverse !default; +$component-checked-bg: $primary !default; +$component-checked-bg-dark: $primary !default; + +// Keenthemes custom transition settings +$transition-link: color .2s ease !default; +$transition-input: color .2s ease !default; + +// Box shadow +$box-shadow-xs: 0 .1rem 0.75rem 0.25rem rgba($black, 0.05) !default; +$box-shadow-xs-dark: 0 .1rem 0.75rem 0.25rem rgba($black, 0.05) !default; +$box-shadow-sm: 0 .1rem 1rem 0.25rem rgba($black, .05) !default; +$box-shadow-sm-dark: 0 .1rem 1rem 0.25rem rgba($black, .05) !default; +$box-shadow: 0 .5rem 1.5rem 0.5rem rgba($black, .075) !default; +$box-shadow-dark: 0 .5rem 1.5rem 0.5rem rgba($black, .075) !default; +$box-shadow-lg: 0 1rem 2rem 1rem rgba($black, .1) !default; +$box-shadow-lg-dark: 0 1rem 2rem 1rem rgba($black, .1) !default; +$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default; +$box-shadow-inset-dark: inset 0 1px 2px rgba($black, .075) !default; + +// Keenthemes custom gutter sizes +$gutters: ( + 0: 0rem, + 1: ($spacer * .25), // 3.5px + 2: ($spacer * .5), // 7px; + 3: ($spacer * .75), // 10.5px + 4: ($spacer * 1), // 14px + 5: ($spacer * 1.25), // 17.5px + 6: ($spacer * 1.5), // 21px + 7: ($spacer * 1.75), // 24.5px + 8: ($spacer * 2), // 28px + 9: ($spacer * 2.25), // 31.5px + 10: ($spacer * 2.5), // 35px +) !default; + + +// Typography +// +// Font, line-height, and color for body text, headings, and more. +// Font family +$font-family-sans-serif: Inter, Helvetica, "sans-serif" !default; + +$font-size-base: 1rem !default; // Assumes the browser default, typically `13px` +$font-size-lg: $font-size-base * 1.075 !default; // 14.04px +$font-size-sm: $font-size-base * .925 !default; // 12.025px + +$font-weight-lighter: lighter !default; +$font-weight-light: 300 !default; +$font-weight-normal: 400 !default; +$font-weight-semibold: 500 !default; +$font-weight-bold: 600 !default; +$font-weight-bolder: 700 !default; + +$font-weight-base: $font-weight-normal !default; + +// Line heights +$line-height-base: 1.5 !default; +$line-height-sm: 1.25 !default; +$line-height-lg: 1.75 !default; + +// Keenthemes custom line heights +$line-height-xl: 2 !default; +$line-height-xxl: 2.25 !default; + +// Heading sizes +$h1-font-size: $font-size-base * 1.75 !default; // 22.75px +$h2-font-size: $font-size-base * 1.5 !default; // 19.50px +$h3-font-size: $font-size-base * 1.35 !default; // 17.55px +$h4-font-size: $font-size-base * 1.25 !default; // 16.25px +$h5-font-size: $font-size-base * 1.15 !default; // 14.95px +$h6-font-size: $font-size-base * 1.075 !default; // 13.97px + +// Font Sizes +$font-sizes: ( + 1: $h1-font-size, // 22.75px + 2: $h2-font-size, // 19.50px + 3: $h3-font-size, // 17.55px + 4: $h4-font-size, // 16.25px + 5: $h5-font-size, // 14.95px + 6: $h6-font-size, // 13.95px + + 7: $font-size-base * 0.95, // 12.35px + 8: $font-size-base * 0.85, // 11.05px + 9: $font-size-base * 0.75, // 9.75px + 10: $font-size-base * 0.5, // 6.50px + + base: $font-size-base, // 13px + fluid: 100%, // 100% + + 2x: $font-size-base * 2, // 26px + 2qx: $font-size-base * 2.25, // 29.25px + 2hx: $font-size-base * 2.5, // 32.5px + 2tx: $font-size-base * 2.75, // 35.75px + + 3x: $font-size-base * 3, // 39px + 3qx: $font-size-base * 3.25, // 42.25px + 3hx: $font-size-base * 3.5, // 45.5px + 3tx: $font-size-base * 3.75, // 48.75px + + 4x: $font-size-base * 4, // 52px + 4qx: $font-size-base * 4.25, // 55.25px + 4hx: $font-size-base * 4.5, // 58.5px + 4tx: $font-size-base * 4.75, // 61.75px + + 5x: $font-size-base * 5, // 65px + 5qx: $font-size-base * 5.25, // 68.25px + 5hx: $font-size-base * 5.5, // 71.5px + 5tx: $font-size-base * 5.75 // 74.75px +) !default; + +$headings-font-weight: 600 !default; +$headings-color: $gray-900 !default; +$headings-color-dark: $gray-900-dark !default; +$headings-line-height: 1.2 !default; + +$display-font-sizes: ( + 1: 5rem, + 2: 4.5rem, + 3: 4rem, + 4: 3.5rem, + 5: 3rem, + 6: 2.5rem +) !default; + +$display-font-weight: $font-weight-bolder !default; +$display-line-height: $headings-line-height !default; + +$blockquote-footer-color: $gray-600 !default; +$blockquote-footer-color: $gray-600-dark !default; + + +// Tables +// +// Customizes the `.table` component with basic values, each used across all table variations. + +$table-cell-padding-y: .75rem !default; +$table-cell-padding-x: .75rem !default; +$table-cell-padding-y-sm: .5rem !default; +$table-cell-padding-x-sm: .5rem !default; + +$table-color: $body-color !default; +$table-color-dark: $body-color-dark !default; +$table-bg: transparent !default; +$table-bg-dark: transparent !default; +$table-accent-bg: transparent !default; +$table-accent-bg-dark: transparent !default; +$table-striped-color: $table-color !default; +$table-striped-color-dark: $table-color-dark !default; +$table-striped-bg: rgba($gray-100, 0.75) !default; +$table-striped-bg-dark: rgba($gray-100-dark, 0.75) !default; + +$table-active-color: $table-color !default; +$table-active-color-dark: $table-color-dark !default; +$table-active-bg: $gray-100 !default; +$table-active-bg-dark: $gray-100-dark !default; + +$table-hover-color: $table-color !default; +$table-hover-color-dark: $table-color-dark !default; +$table-hover-bg: $gray-100 !default; +$table-hover-bg-dark: $gray-100-dark !default; + +$table-border-factor: .1 !default; +$table-border-width: $border-width !default; +$table-border-color: $border-color !default; +$table-border-color-dark: $border-color-dark !default; + +$table-caption-color: $text-muted !default; +$table-caption-color-dark: $text-muted-dark !default; + +$table-loading-message-box-shadow: 0px 0px 50px 0px rgba(82,63,105, 0.15) !default; +$table-loading-message-box-shadow-dark: 0px 0px 30px rgba(0, 0, 0, 0.3) !default; +$table-loading-message-bg: $body-bg !default; +$table-loading-message-bg-dark: $gray-200-dark !default; +$table-loading-message-color: $gray-700 !default; +$table-loading-message-color-dark: $gray-700-dark !default; + + +// Buttons + Forms +// +// Shared variables that are reassigned to `$input-` and `$btn-` specific variables. +$input-btn-padding-y: .775rem !default; +$input-btn-padding-x: 1rem !default; +$input-btn-font-family: null !default; +$input-btn-font-size: $font-size-base * 1.1 !default; +$input-btn-line-height: $line-height-base !default; + +$input-btn-focus-width: .25rem !default; +$input-btn-focus-color-opacity: .25 !default; +$input-btn-focus-color-opacity-dark: .25 !default; +$input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity) !default; +$input-btn-focus-color-dark: rgba($component-active-bg-dark, $input-btn-focus-color-opacity-dark) !default; +$input-btn-focus-box-shadow: null !default; +$input-btn-focus-box-shadow-dark: null !default; + +$input-btn-padding-y-sm: .55rem !default; +$input-btn-padding-x-sm: .75rem !default; +$input-btn-font-size-sm: $font-size-sm !default; + +$input-btn-padding-y-lg: .825rem !default; +$input-btn-padding-x-lg: 1.5rem !default; +$input-btn-font-size-lg: $font-size-base * 1.15 !default; + +$input-btn-border-width: $border-width !default; + +// Buttons +// +// For each of Bootstrap's buttons, define text, background, and border color. +$btn-padding-y: $input-btn-padding-y !default; +$btn-padding-x: 1.5rem !default; +$btn-font-family: $input-btn-font-family !default; +$btn-font-size: $input-btn-font-size !default; +$btn-line-height: $input-btn-line-height !default; +$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping + +$btn-padding-y-sm: $input-btn-padding-y-sm !default; +$btn-padding-x-sm: 1.25rem !default; +$btn-font-size-sm: $input-btn-font-size-sm !default; + +$btn-padding-y-lg: $input-btn-padding-y-lg !default; +$btn-padding-x-lg: 1.75rem !default; +$btn-font-size-lg: $input-btn-font-size-lg !default; + +$btn-border-width: $input-btn-border-width !default; + +$btn-font-weight: $font-weight-semibold !default; +$btn-box-shadow: null !default; +$btn-box-shadow-dark: null !default; +$btn-focus-width: $input-btn-focus-width !default; +$btn-focus-box-shadow: null !default; +$btn-focus-box-shadow-dark: null !default; +$btn-disabled-opacity: .65 !default; +$btn-disabled-opacity-dark: .65 !default; +$btn-active-box-shadow: null !default; +$btn-active-box-shadow-dark: null !default; + +$btn-link-color: $link-color !default; +$btn-link-color-dark: $link-color !default; +$btn-link-hover-color: $link-hover-color !default; +$btn-link-hover-color-dark: $link-hover-color !default; +$btn-link-disabled-color: $gray-600 !default; +$btn-link-disabled-color-dark: $gray-600-dark !default; + +// Allows for customizing button radius independently from global border radius +$btn-border-radius: $border-radius !default; +$btn-border-radius-sm: $border-radius-sm !default; +$btn-border-radius-lg: $border-radius-lg !default; + + +// Forms +$form-text-margin-top: .5rem !default; +$form-text-font-size: $font-size-sm !default; +$form-text-color: $text-muted !default; +$form-text-color-dark: $text-muted-dark !default; + +$form-label-margin-bottom: .5rem !default; +$form-label-font-size: 1.05rem !default; +$form-label-font-weight: 500 !default; +$form-label-color: $gray-800 !default; +$form-label-color-dark: $gray-800-dark !default; + +$input-padding-y: $input-btn-padding-y !default; +$input-padding-x: $input-btn-padding-x !default; +$input-font-family: $input-btn-font-family !default; +$input-font-size: $input-btn-font-size !default; +$input-font-weight: $font-weight-semibold !default; +$input-line-height: $input-btn-line-height !default; + +$input-bg: $body-bg !default; +$input-bg-dark: $body-bg-dark !default; + +$input-border-width: $input-btn-border-width !default; +$input-color: $gray-700 !default; +$input-color-dark: $gray-700-dark !default; +$input-border-color: $gray-300 !default; +$input-border-color-dark: $gray-300-dark !default; +//$input-box-shadow: none !default; +//$input-box-shadow-dark: none !default; + +$input-border-radius: $btn-border-radius !default; +$input-border-radius-sm: $btn-border-radius-sm !default; +$input-border-radius-lg: $btn-border-radius-lg !default; + +$input-focus-bg: $input-bg !default; +$input-focus-bg-dark: $input-bg-dark !default; +$input-focus-border-color: $gray-400 !default; +$input-focus-border-color-dark: $gray-400-dark !default; +$input-btn-focus-width: .25rem !default; +$input-focus-color: $input-color !default; +$input-focus-color-dark: $input-color-dark !default; +$input-focus-width: $input-btn-focus-width !default; +//$input-focus-box-shadow: none !default; +//$input-focus-box-shadow-dark: none !default; + +$input-disabled-color: null !default; +$input-disabled-color-dark: null !default; +$input-disabled-bg: $gray-200 !default; +$input-disabled-bg-dark: $gray-200-dark !default; +$input-disabled-border-color: $input-border-color !default; +$input-disabled-border-color-dark: $input-border-color-dark !default; + +$input-placeholder-color: $gray-500 !default; +$input-placeholder-color-dark: $gray-500-dark !default; +$input-plaintext-color: $gray-700 !default; +$input-plaintext-color-dark: $gray-700-dark !default; + +// Keenthemes solid input style +$input-solid-bg: $gray-100 !default; +$input-solid-bg-dark: $gray-100-dark !default; +$input-solid-bg-focus: darken($gray-100, 2%) !default; +$input-solid-bg-focus-dark: lighten($gray-100-dark, 2%) !default; +$input-solid-placeholder-color: $input-placeholder-color !default; +$input-solid-placeholder-color-dark: $input-placeholder-color-dark !default; +$input-solid-color: $gray-700 !default; +$input-solid-color-dark: $gray-700-dark !default; + +// Form checks +$form-check-input-width: 1.75rem !default; +$form-check-input-width-sm: 1.55rem !default; +$form-check-input-width-lg: 2.25rem !default; +$form-check-input-bg-size: 60% 60% !default; +$form-check-min-height: $font-size-base * $line-height-base !default; +$form-check-padding-start: $form-check-input-width + .5rem !default; +$form-check-padding-left: $form-check-input-width + .5rem !default; +$form-check-margin-bottom: .125rem !default; +$form-check-label-color: $gray-500 !default; +$form-check-label-color-dark: $gray-500-dark !default; +$form-check-label-color-checked: $gray-700 !default; +$form-check-label-color-checked-dark: $gray-700-dark !default; +$form-check-label-cursor: null !default; +$form-check-transition: null !default; +$form-check-inline-margin-right: 1rem !default; + +$form-check-input-active-filter: brightness(90%) !default; +$form-check-input-active-filter-dark: brightness(90%) !default; + +$form-check-input-bg: transparent !default; +$form-check-input-bg-dark: transparent !default; +$form-check-input-bg-solid: $gray-200 !default; +$form-check-input-bg-solid-dark: $gray-200-dark !default; +$form-check-input-bg-solid: $gray-200 !default; +$form-check-input-bg-solid-dark: $gray-200-dark !default; +$form-check-input-border: 1px solid $input-border-color !default; +$form-check-input-border-dark: 1px solid $input-border-color-dark !default; +$form-check-input-border-radius: .45em !default; +$form-check-radio-border-radius: 50% !default; +$form-check-input-focus-border: $input-focus-border-color !default; +$form-check-input-focus-border-dark: $input-focus-border-color-dark !default; +$form-check-input-focus-box-shadow: none !default; +$form-check-input-focus-box-shadow-dark: none !default; + +$form-check-input-checked-color: $component-checked-color !default; +$form-check-input-checked-color-dark: $component-checked-color-dark !default; +$form-check-input-checked-bg-color: $component-checked-bg !default; +$form-check-input-checked-bg-color-solid: $component-checked-bg !default; +$form-check-input-checked-bg-color-dark: $component-checked-bg-dark !default; +$form-check-input-checked-bg-color-solid-dark: $component-checked-bg-dark !default; +$form-check-input-checked-border-color: $component-checked-bg !default; +$form-check-input-checked-border-color-dark: $component-checked-bg-dark !default; +$form-check-input-checked-bg-image: url("data:image/svg+xml,") !default; +$form-check-input-checked-bg-image-dark: url("data:image/svg+xml,") !default; +$form-check-radio-checked-bg-image: url("data:image/svg+xml,") !default; +$form-check-radio-checked-bg-image-dark: url("data:image/svg+xml,") !default; + +$form-check-input-indeterminate-color: $component-checked-color !default; +$form-check-input-indeterminate-color-dark: $component-checked-color-dark !default; +$form-check-input-indeterminate-bg-color: $component-checked-bg !default; +$form-check-input-indeterminate-bg-color-dark: $component-checked-bg-dark !default; +$form-check-input-indeterminate-border-color: $component-checked-bg !default; +$form-check-input-indeterminate-border-color-dark: $component-checked-bg-dark !default; +$form-check-input-indeterminate-bg-image: url("data:image/svg+xml,") !default; +$form-check-input-indeterminate-bg-image-dark: url("data:image/svg+xml,") !default; + +$form-check-input-disabled-opacity: .5 !default; +$form-check-input-disabled-opacity-dark: .5 !default; +$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default; +$form-check-label-disabled-opacity-dark: $form-check-input-disabled-opacity-dark !default; +$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default; +$form-check-btn-check-disabled-opacity-dark: $btn-disabled-opacity-dark !default; + +$form-switch-color: rgba(0, 0, 0, .25) !default; +$form-switch-color-dark: rgba(255, 255, 255, .25) !default; +$form-switch-color-solid: $white !default; +$form-switch-color-solid-dark: $gray-500 !default; +$form-switch-width: 3.25rem !default; +$form-switch-height: 2.25rem !default; +$form-switch-width-sm: 2.5rem !default; +$form-switch-height-sm: 1.5rem !default; +$form-switch-width-lg: 3.75rem !default; +$form-switch-height-lg: 2.75rem !default; + +$form-switch-padding-start: $form-switch-width + .5rem !default; +$form-switch-padding-left: $form-switch-width + .5rem !default; +$form-switch-bg-image: url("data:image/svg+xml,") !default; +$form-switch-bg-image-dark: url("data:image/svg+xml,") !default; +$form-switch-bg-image-solid: url("data:image/svg+xml,") !default; +$form-switch-bg-image-solid-dark: url("data:image/svg+xml,") !default; +$form-switch-border-radius: $form-switch-width !default; + +$form-switch-focus-color: $input-focus-border-color !default; +$form-switch-focus-color-dark: $input-focus-border-color-dark !default; +$form-switch-focus-bg-image: url("data:image/svg+xml,") !default; +$form-switch-focus-bg-image-dark: url("data:image/svg+xml,") !default; + +$form-switch-checked-color: $component-checked-color !default; +$form-switch-checked-color-dark: $component-checked-color-dark !default; +$form-switch-checked-bg-image: url("data:image/svg+xml,") !default; +$form-switch-checked-bg-image-dark: url("data:image/svg+xml,") !default; +$form-switch-checked-bg-position: right center !default; + + +// Input groups +$input-group-addon-bg: $gray-100 !default; +$input-group-addon-bg-dark: $gray-100-dark !default; +$input-group-addon-color: $gray-700 !default; +$input-group-addon-color-dark: $gray-700-dark !default; +$input-group-addon-border-color: $input-border-color !default; +$input-group-addon-border-color-dark: $input-border-color-dark !default; + + +// Form select +$form-select-color: $input-color !default; +$form-select-color-dark: $input-color-dark !default; +$form-select-bg: $input-bg !default; +$form-select-bg-dark: $input-bg-dark !default; +$form-select-disabled-color: null !default; +$form-select-disabled-color-dark: null !default; +$form-select-disabled-bg: $gray-200 !default; +$form-select-disabled-bg-dark: $gray-200-dark !default; +$form-select-disabled-border-color: $input-disabled-border-color !default; +$form-select-disabled-border-color-dark: $input-disabled-border-color-dark !default; +$form-select-indicator-color: $gray-600 !default; +$form-select-indicator-color-dark: $gray-600-dark !default; +$form-select-indicator: url("data:image/svg+xml,") !default; +$form-select-indicator-dark: url("data:image/svg+xml,") !default; +$form-select-border-color: $input-border-color !default; +$form-select-border-color-dark: $input-border-color-dark !default; +$form-select-box-shadow: $box-shadow-inset !default; +$form-select-box-shadow-dark: $box-shadow-inset-dark !default; +$form-select-focus-border-color: $input-focus-border-color !default; +$form-select-focus-border-color-dark: $input-focus-border-color-dark !default; +$form-select-focus-width: $input-focus-width !default; +$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default; +$form-select-focus-box-shadow-dark: 0 0 0 $form-select-focus-width $input-btn-focus-color-dark !default; + + +// Form range +$form-range-track-border-radius: $border-radius !default; +$form-range-track-bg: var(--kt-gray-300) !default; +$form-range-thumb-disabled-bg: var(--kt-gray-500) !default; + + +// Form file button +$form-file-button-color: $input-color !default; +$form-file-button-color-dark: $input-color-dark !default; +$form-file-button-bg: $input-group-addon-bg !default; +$form-file-button-bg-dark: $input-group-addon-bg-dark !default; +$form-file-button-hover-bg: shade-color($form-file-button-bg, 5%) !default; +$form-file-button-hover-bg-dark: shade-color($form-file-button-bg-dark, 5%) !default; + + +// Form floating +$input-height-border: $input-border-width * 2 !default; +$form-floating-height: calc(3.75rem + #{$input-height-border}) !default; +$form-floating-input-padding-t: 1.85rem !default; + + +// Navs +$nav-link-transition: color .15s ease-in-out !default; + +$nav-tabs-border-color: $border-color !default; +$nav-tabs-border-color-dark: $border-color-dark !default; +$nav-tabs-border-width: $border-width !default; +$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default; +$nav-tabs-link-hover-border-color-dark: $gray-200-dark $gray-200-dark $nav-tabs-border-color-dark !default; +$nav-tabs-link-active-color: $gray-700 !default; +$nav-tabs-link-active-color-dark: $gray-700-dark !default; +$nav-tabs-link-active-bg: $body-bg !default; +$nav-tabs-link-active-bg-dark: $body-bg-dark !default; +$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default; +$nav-tabs-link-active-border-color-dark: $gray-300-dark $gray-300-dark $nav-tabs-link-active-bg-dark !default; + +$nav-pills-link-active-color: $component-active-color !default; +$nav-pills-link-active-color-dark: $component-active-color-dark !default; +$nav-pills-link-active-bg: $component-active-bg !default; +$nav-pills-link-active-bg-dark: $component-active-bg-dark !default; + + +// Dropdowns +// Dropdown menu container and contents. +$dropdown-color: $body-color !default; +$dropdown-color-dark: $body-color-dark !default; +$dropdown-bg: $body-bg !default; +$dropdown-bg-dark: $body-bg-dark !default; +$dropdown-divider-bg: $gray-100 !default; +$dropdown-divider-bg-dark: $gray-100-dark !default; +$dropdown-box-shadow: 0px 0px 50px 0px rgba(82,63,105, 0.15) !default; +$dropdown-box-shadow-dark: 0px 0px 30px rgba(0, 0, 0, 0.3) !default; +$dropdown-border-radius: $border-radius !default; +$dropdown-border-width: 0 !default; +$dropdown-link-color: $gray-900 !default; +$dropdown-link-color-dark: $gray-900-dark !default; +$dropdown-link-hover-color: shade-color($dropdown-link-color, 10%) !default; +$dropdown-link-hover-color-dark: shade-color($dropdown-link-color-dark, 10%) !default; +$dropdown-link-hover-bg: $gray-200 !default; +$dropdown-link-hover-bg-dark: $gray-200-dark !default; +$dropdown-link-active-color: $component-active-color !default; +$dropdown-link-active-color-dark: $component-active-color-dark !default; +$dropdown-link-active-bg: $component-active-bg !default; +$dropdown-link-active-bg-dark: $component-active-bg-dark !default; +$dropdown-link-disabled-color: $gray-500 !default; +$dropdown-link-disabled-color-dark: $gray-500-dark !default; +$dropdown-header-color: $gray-600 !default; +$dropdown-header-color-dark: $gray-600-dark !default; + + +// Pagination +$pagination-item-height: 2.5rem !default; +$pagination-item-bg: $body-bg !default; +$pagination-item-bg-dark: $body-bg-dark !default; +$pagination-item-space: 0.5rem !default; +$pagination-item-space-tablet-and-mobile: 0.25rem !default; +$pagination-font-weight: $font-weight-semibold !default; +$pagination-font-size: $font-size-lg !default; +$pagination-icon-font-size: 0.85rem !default; +$pagination-icon-height: $pagination-item-height * 0.35 !default; + +$pagination-padding-y: .375rem !default; +$pagination-padding-x: .75rem !default; +$pagination-padding-y-sm: .25rem !default; +$pagination-padding-x-sm: .5rem !default; +$pagination-padding-y-lg: .75rem !default; +$pagination-padding-x-lg: 1.5rem !default; + +$pagination-color: $gray-700 !default; +$pagination-color-dark: $gray-700-dark !default; +$pagination-bg: transparent !default; +$pagination-bg-dark: transparent !default; +$pagination-border-width: 0 !default; +$pagination-border-radius: $btn-border-radius !default; +$pagination-margin-left: 0 !default; +$pagination-border-color: transparent !default; +$pagination-border-color-dark: transparent !default; + +$pagination-focus-color: $component-hover-color !default; +$pagination-focus-color-dark: $component-hover-color-dark !default; +$pagination-focus-bg: $component-hover-bg !default; +$pagination-focus-bg-dark: $component-hover-bg-dark !default; +$pagination-focus-box-shadow: none !default; +$pagination-focus-box-shadow-dark: none !default; +$pagination-focus-outline: 0 !default; +$pagination-focus-outline-dark: 0 !default; + +$pagination-hover-color: $component-hover-color !default; +$pagination-hover-color-dark: $component-hover-color-dark !default; +$pagination-hover-bg: $component-hover-bg !default; +$pagination-hover-bg-dark: $component-hover-bg-dark !default; +$pagination-hover-border-color: transparent !default; +$pagination-hover-border-color-dark: transparent !default; + +$pagination-active-color: $component-active-color !default; +$pagination-active-color-dark: $component-active-color-dark !default; +$pagination-active-bg: $component-active-bg !default; +$pagination-active-bg-dark: $component-active-bg-dark !default; +$pagination-active-border-color: transparent !default; +$pagination-active-border-color-dark: transparent !default; + +$pagination-disabled-color: $gray-400 !default; +$pagination-disabled-color-dark: $gray-400-dark !default; +$pagination-disabled-bg: transparent !default; +$pagination-disabled-bg-dark: transparent !default; +$pagination-disabled-border-color: transparent !default; +$pagination-disabled-border-color-dark: transparent !default; + + +// Card +$card-bg: $body-bg !default; +$card-bg-dark: $body-bg-dark !default; +$card-box-shadow: 0px 0px 20px 0px rgba(76,87,125,0.02) !default; +$card-box-shadow-dark: none !default; +$card-border-color: $border-color !default; +$card-border-color-dark: $border-color-dark !default; +$card-border-style: solid !default; +$card-border-dashed-color: $border-dashed-color !default; +$card-border-dashed-color-dark: $border-dashed-color-dark !default; +$card-color: null !default; +$card-color-dark: null !default; +$card-cap-bg: transparent !default; +$card-cap-bg-dark: transparent !default; +$card-py: 2rem !default; +$card-px: 2.25rem !default; +$card-border-radius: $border-radius-lg !default; +$card-header-py: 0.5rem !default; +$card-header-height: 70px !default; +$card-border-enabled: false !default; + + +// Accordion +$accordion-color: $body-color !default; +$accordion-color-dark: $body-color-dark !default; +$accordion-bg: $body-bg !default; +$accordion-bg-dark: $body-bg-dark !default; +$accordion-padding-y: 1.5rem !default; +$accordion-padding-x: 1.5rem !default; +$accordion-border-color: $border-color !default; +$accordion-border-color-dark: $border-color-dark !default; +$accordion-border-radius: $border-radius !default; +$accordion-button-color: $accordion-color !default; +$accordion-button-color-dark: $accordion-color-dark !default; +$accordion-button-bg: $accordion-bg !default; +$accordion-button-bg-dark: $accordion-bg-dark !default; +$accordion-button-active-bg: $gray-100 !default; +$accordion-button-active-bg-dark: $gray-100-dark !default; +$accordion-button-active-color: $primary !default; +$accordion-button-active-color-dark: $primary !default; + +$accordion-button-focus-border-color: $border-color !default; +$accordion-button-focus-border-color-dark: $border-color-dark !default; +$accordion-button-focus-box-shadow: none !default; +$accordion-button-focus-box-shadow-dark: none !default; + +$accordion-icon-width: 1.15rem !default; +$accordion-icon-color: $accordion-button-color !default; +$accordion-icon-color-dark: $accordion-button-color-dark !default; +$accordion-icon-active-color: $accordion-button-active-color !default; +$accordion-icon-active-color-dark: $accordion-button-active-color-dark !default; +$accordion-button-icon: url("data:image/svg+xml,") !default; +$accordion-button-icon-dark: url("data:image/svg+xml,") !default; +$accordion-button-active-icon: url("data:image/svg+xml,") !default; +$accordion-button-active-icon-dark: url("data:image/svg+xml,") !default; + + +// Tooltips +$tooltip-font-size: $font-size-sm !default; +$tooltip-max-width: 200px !default; +$tooltip-color: $gray-800 !default; +$tooltip-color-dark: $gray-800-dark !default; +$tooltip-bg: $body-bg !default; +$tooltip-bg-dark: $gray-200-dark !default; +$tooltip-border-radius: $btn-border-radius !default; +$tooltip-opacity: 1 !default; +$tooltip-opacity-dark: 1 !default; +$tooltip-box-shadow: $dropdown-box-shadow !default; +$tooltip-box-shadow-dark: $dropdown-box-shadow-dark !default; +$tooltip-padding-y: .75rem !default; +$tooltip-padding-x: 1rem !default; +$tooltip-margin: 0 !default; + + +// Popovers +$popover-bg: $body-bg !default; +$popover-bg-dark: $gray-200-dark !default; +$popover-font-size: $font-size-base !default; +$popover-border-color: $popover-bg !default; +$popover-border-color-dark: $popover-bg-dark !default; +$popover-border-radius: $border-radius !default; +$popover-box-shadow: $dropdown-box-shadow !default; +$popover-box-shadow-dark: $dropdown-box-shadow-dark !default; +$popover-header-bg: $popover-bg !default; +$popover-header-bg-dark: $popover-bg-dark !default; +$popover-header-color: $gray-800 !default; +$popover-header-color-dark: $gray-800-dark !default; +$popover-header-font-weight: 500 !default; +$popover-header-font-size: 1rem !default; +$popover-header-padding-y: 1rem !default; +$popover-header-padding-x: 1.25rem !default; +$popover-header-border-color: $gray-200 !default; +$popover-header-border-color-dark: $gray-300-dark !default; +$popover-body-color: $gray-800 !default; +$popover-body-color-dark: $gray-800-dark !default; +$popover-body-padding-y: 1.25rem !default; +$popover-body-padding-x: 1.25rem !default; + +$popover-dissmis-btn-height: 1.5rem !default; +$popover-dissmis-btn-top: 0.85rem !default; +$popover-dissmis-btn-end: 0.85rem !default; + + +// Toasts +$toast-color: null !default; +$toast-color-dark: null !default; +$toast-background-color: rgba($white, .85) !default; +$toast-background-color-dark: rgba($black, .85) !default; +$toast-box-shadow: $box-shadow !default; +$toast-box-shadow-dark: $box-shadow-dark !default; +$toast-header-color: $gray-600 !default; +$toast-header-color-dark: $gray-600-dark !default; +$toast-header-background-color: rgba($white, .85) !default; +$toast-header-background-color-dark: rgba($black, .85) !default; +$toast-header-border-color: rgba($black, .05) !default; +$toast-header-border-color-dark: rgba($white, .05) !default; + + +// Badges +$badge-font-size: 0.85rem !default; +$badge-font-size-sm: 0.8rem !default; +$badge-font-size-lg: 1rem !default; +$badge-font-weight: $font-weight-bold !default; +$badge-color: $body-bg !default; +$badge-color-dark: $body-bg-dark !default; +$badge-padding-y: .325rem !default; +$badge-padding-x: .5rem !default; +$badge-border-radius: $border-radius-sm !default; +$badge-size: 1.75rem !default; +$badge-size-sm: 1.5rem !default; +$badge-size-lg: 2rem !default; + + +// Modals +// Padding applied to the modal body +$modal-inner-padding: 1.75rem !default; + +// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding +$modal-footer-margin-between: .5rem !default; + +$modal-dialog-margin: .5rem !default; +$modal-dialog-margin-y-sm-up: 1.75rem !default; + +$modal-content-color: null !default; +$modal-content-color-dark: null !default; +$modal-content-bg: $body-bg !default; +$modal-content-bg-dark: $body-bg-dark !default; +$modal-content-border-color: null !default; +$modal-content-border-color-dark: null !default; +$modal-content-border-width: 0 !default; +$modal-content-border-radius: $border-radius !default; +$modal-content-inner-border-radius: $border-radius !default; +$modal-content-box-shadow: 0 .25rem .5rem rgba($black, .05) !default; +$modal-content-box-shadow-dark: 0 .25rem .5rem rgba($white, .05) !default; +$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .1) !default; +$modal-content-box-shadow-xs-dark: 0 .25rem .5rem rgba($white, .1) !default; +$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .1) !default; +$modal-content-box-shadow-sm-up-dark: 0 .5rem 1rem rgba($white, .1) !default; + +$modal-backdrop-bg: $black !default; +$modal-backdrop-bg-dark: $black !default; +$modal-backdrop-opacity: 0.3 !default; +$modal-backdrop-opacity-dark: 0.4 !default; + +$modal-header-border-color: $border-color !default; +$modal-header-border-color-dark: $border-color-dark !default; +$modal-footer-border-color: $modal-header-border-color !default; +$modal-footer-border-color-dark: $modal-header-border-color-dark !default; +$modal-header-border-width: 1px !default; + + +// Progress bars +$progress-height: 1rem !default; +$progress-font-size: $font-size-base * .75 !default; +$progress-bg: $gray-100 !default; +$progress-bg-dark: $gray-100-dark !default; +$progress-border-radius: 6px !default; +$progress-box-shadow: none !default; +$progress-box-shadow-dark: none !default; + + +// List group +$list-group-color: $gray-900 !default; +$list-group-color-dark: $gray-900-dark !default; +$list-group-bg: $white !default; +$list-group-bg-dark: $black !default; +$list-group-border-color: rgba($black, .125) !default; +$list-group-border-color-dark: rgba($white, .125) !default; + +$list-group-hover-bg: $gray-100 !default; +$list-group-hover-bg-dark: $gray-100 !default; +$list-group-active-color: $component-active-color !default; +$list-group-active-color-dark: $component-active-color-dark !default; +$list-group-active-bg: $component-active-bg !default; +$list-group-active-bg-dark: $component-active-bg-dark !default; +$list-group-active-border-color: $list-group-active-bg !default; +$list-group-active-border-color-dark: $list-group-active-bg-dark !default; + +$list-group-disabled-color: $gray-600 !default; +$list-group-disabled-color-dark: $gray-600-dark !default; +$list-group-disabled-bg: $list-group-bg !default; +$list-group-disabled-bg-dark: $list-group-bg-dark !default; + +$list-group-action-color: $gray-700 !default; +$list-group-action-color-dark: $gray-700-dark !default; +$list-group-action-hover-color: $list-group-action-color !default; +$list-group-action-hover-color-dark: $list-group-action-color-dark !default; + +$list-group-action-active-color: $body-color !default; +$list-group-action-active-color-dark: $body-color-dark !default; +$list-group-action-active-bg: $gray-200 !default; +$list-group-action-active-bg-dark: $gray-200-dark !default; + + +// Image thumbnails +$thumbnail-bg: $body-bg !default; +$thumbnail-bg-dark: $body-bg-dark !default; +$thumbnail-border-color: $border-color !default; +$thumbnail-border-color-dark: $border-color-dark !default; +$thumbnail-box-shadow: $box-shadow-sm !default; +$thumbnail-box-shadow-dark: $box-shadow-sm-dark !default; + + +// Figures +$figure-caption-color: $gray-600 !default; +$figure-caption-color-dark: $gray-600-dark !default; + + +// Breadcrumbs +$breadcrumb-bg: null !default; +$breadcrumb-bg-dark: null !default; +$breadcrumb-divider-color: $gray-600 !default; +$breadcrumb-divider-color-dark: $gray-600-dark !default; +$breadcrumb-active-color: $primary !default; +$breadcrumb-active-color-dark: $primary !default; +$breadcrumb-item-padding-x: .5rem !default; + + +// Carousel +$carousel-custom-indicator-transition-speed: 0.3s !default; +$carousel-custom-indicator-default-bg-color: $gray-200 !default; +$carousel-custom-indicator-default-bg-color-dark: $gray-200-dark !default; +$carousel-custom-indicator-active-bg-color: $gray-400 !default; +$carousel-custom-indicator-active-bg-color-dark: $gray-400-dark !default; + +$carousel-custom-dots-indicator-default-size: 9px !default; +$carousel-custom-dots-indicator-active-size: 13px !default; + +$carousel-custom-bullet-indicator-default-size: 6px !default; +$carousel-custom-bullet-indicator-active-width: 16px !default; +$carousel-custom-bullet-indicator-default-bg-color: $gray-400 !default; +$carousel-custom-bullet-indicator-default-bg-color-dark: $gray-400-dark !default; +$carousel-custom-bullet-indicator-active-bg-color: $gray-600 !default; +$carousel-custom-bullet-indicator-active-bg-color-dark: $gray-600-dark !default; + + +// Spinners +$spinner-border-width: .185rem !default; +$spinner-animation-speed: .65s !default; +$spinner-border-width-sm: .145em !default; + + +// Close +$btn-close-width: 0.75rem !default; +$btn-close-height: $btn-close-width !default; +$btn-close-color: $black !default; +$btn-close-color-dark: $white !default; +$btn-close-bg: url("data:image/svg+xml,") !default; +$btn-close-bg-dark: url("data:image/svg+xml,") !default; +$btn-close-focus-shadow: none !default; + + +// Offcanvas +$offcanvas-border-color: $modal-content-border-color !default; +$offcanvas-border-color-dark: $modal-content-border-color-dark !default; +$offcanvas-bg-color: $modal-content-bg !default; +$offcanvas-bg-color-dark: $modal-content-bg-dark !default; +$offcanvas-color: $modal-content-color !default; +$offcanvas-color-dark: $modal-content-color-dark !default; +$offcanvas-box-shadow: $modal-content-box-shadow-xs !default; +$offcanvas-box-shadow-dark: $modal-content-box-shadow-xs-dark !default; +$offcanvas-backdrop-bg: $modal-backdrop-bg !default; +$offcanvas-backdrop-bg-dark: $modal-backdrop-bg-dark !default; +$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default; +$offcanvas-backdrop-opacity-dark: $modal-backdrop-opacity-dark !default; + + +// Code +$code-bg: #F1F3F8 !default; +$code-bg-dark: $gray-200-dark !default; +$code-box-shadow: 0px 3px 9px rgba(0, 0, 0, 0.08) !default; +$code-box-shadow-dark: 0px 3px 9px rgba(0, 0, 0, 0.08) !default; +$code-padding: 0.1rem 0.4rem !default; +$code-margin: 0 0.5rem !default; +$code-font-weight: 400 !default; +$code-border-radius: 0.3rem !default; +$code-color: #b93993 !default; +$code-color-dark: #b93993 !default; +$code-space: 0.25rem !default; + +// Opacity +$opacity-values: ( + 0: 0, + 5: .05, + 10: .1, + 15: .15, + 20: .20, + 25: .25, + 50: .5, + 75: .75, + 100: 1, + ) !default; + +// Zindex +$zindex-values: ( + n1: -1, + n2: -2, + 0: 0, + 1: 1, + 2: 2, + 3: 3 +) !default; + +// Letter spacing +$letter-spacing-values: ( + 1: 0.1rem, + 2: 0.115rem, + 3: 0.125rem, + 4: 0.25rem, + 5: 0.5rem, + n1: -0.1rem, + n2: -0.115rem, + n3: -0.125rem, + n4: -0.25rem, + n5: -0.5rem, +) !default; + +// Keenthemes hight and width sizes +$custom-sizes: ( + unset: unset, + 25: 25%, + 50: 50%, + 75: 75%, + 100: 100%, + auto: auto, + 1px: 1px, + 2px: 2px, + 3px: 3px, + 4px: 4px, + 5px: 5px, + 6px: 6px, + 7px: 7px, + 8px: 8px, + 9px: 9px, + 10px: 10px, + 15px: 15px, + 20px: 20px, + 25px: 25px, + 30px: 30px, + 35px: 35px, + 40px: 40px, + 45px: 45px, + 50px: 50px, + 55px: 55px, + 60px: 60px, + 65px: 65px, + 70px: 70px, + 75px: 75px, + 80px: 80px, + 85px: 85px, + 90px: 90px, + 95px: 95px, + 100px: 100px, + 125px: 125px, + 150px: 150px, + 175px: 175px, + 200px: 200px, + 225px: 225px, + 250px: 250px, + 275px: 275px, + 300px: 300px, + 325px: 325px, + 350px: 350px, + 375px: 375px, + 400px: 400px, + 425px: 425px, + 450px: 450px, + 475px: 475px, + 500px: 500px, + 550px: 550px, + 600px: 600px, + 650px: 650px, + 700px: 700px, + 750px: 750px, + 800px: 800px, + 850px: 850px, + 900px: 900px, + 950px: 950px, + 1000px: 1000px +) !default; + + +// Keenthemes symbol component +$symbol-sizes: ( + 20px: 20px, + 25px: 25px, + 30px: 30px, + 35px: 35px, + 40px: 40px, + 45px: 45px, + default: 50px, + 50px: 50px, + 55px: 55px, + 60px: 60px, + 65px: 65px, + 70px: 70px, + 75px: 75px, + 90px: 90px, + 100px:100px, + 125px:125px, + 150px:150px, + 160px:160px, + 175px:175px, + 200px:200px +) !default; + +$symbol-border-color: rgba($body-bg, 0.5); +$symbol-border-color-dark: rgba($body-bg, 0.5); +$symbol-label-color: $gray-800; +$symbol-label-color-dark: $gray-800-dark; +$symbol-label-bg: $gray-100; +$symbol-label-bg-dark: $gray-100-dark; + + +// Keenthemes bullet component +$bullet-bg-color: $gray-400 !default; +$bullet-bg-color-dark: $gray-400-dark !default; +$bullet-dot-size: 4px !default; +$bullet-bar-height: 4px !default; +$bullet-bar-width: 8px !default; +$bullet-bar-border-radius: 6px !default; +$bullet-line-height: 1px !default; +$bullet-line-width: 5px !default; + + +// Keenthemes scrolltop component +$scrolltop-z-index: 105 !default; +$scrolltop-opacity: 0 !default; +$scrolltop-opacity-dark: 0 !default; +$scrolltop-opacity-on: 0.3 !default; +$scrolltop-opacity-on-dark: 0.3 !default; +$scrolltop-opacity-hover: 1 !default; +$scrolltop-opacity-hover-dark: 1 !default; +$scrolltop-bottom: 40px !default; +$scrolltop-bottom-mobile: 30px !default; +$scrolltop-end: 20px !default; +$scrolltop-end-mobile: 15px !default; +$scrolltop-size: 36px !default; +$scrolltop-size-mobile: 30px !default; +$scrolltop-box-shadow: $box-shadow !default; +$scrolltop-box-shadow-dark: $box-shadow-dark !default; +$scrolltop-bg-color: $primary !default; +$scrolltop-bg-color-dark: $primary !default; +$scrolltop-bg-color-hover: $primary !default; +$scrolltop-bg-color-hover-dark: $primary !default; +$scrolltop-icon-color: $primary-inverse !default; +$scrolltop-icon-color-dark: $primary-inverse !default; +$scrolltop-icon-color-hover: $primary-inverse !default; +$scrolltop-icon-color-hover-dark: $primary-inverse !default; + + +// Keenthemes sticky toolbar component +$sticky-toolbar-z-index: 95 !default; + + +// Keenthemes drawer component +$drawer-z-index: 110 !default; +$drawer-box-shadow: 0px 1px 9px -3px rgba(0,0,0, 0.05) !default; +$drawer-box-shadow-dark: 0px 0px 30px rgba(0, 0, 0, 0.1) !default; +$drawer-bg-color: $body-bg !default; +$drawer-bg-color-dark: $body-bg-dark !default; +$drawer-transition-speed: 0.3s !default; +$drawer-overlay-bg-color: rgba($black, 0.2) !default; +$drawer-overlay-bg-color-dark: rgba($black, 0.4) !default; +$drawer-overlay-animation-speed: 0.3s !default; + +// Keenthemes menu component +$menu-dropdown-box-shadow: $dropdown-box-shadow !default; +$menu-dropdown-box-shadow-dark: $dropdown-box-shadow-dark !default; +$menu-dropdown-z-index: 107 !default; +$menu-dropdown-bg-color: $dropdown-bg !default; +$menu-dropdown-bg-color-dark: $dropdown-bg-dark !default; +$menu-dropdown-border-radius: $dropdown-border-radius !default; +$menu-dropdown-animation: true !default; +$menu-dropdown-animation-speed: 0.3s !default; +$menu-dropdown-animation-move-offset: 0.75rem !default; +$menu-accordion-indention: 1rem !default; +$menu-accordion-arrow-transition: transform 0.3s ease !default; +$menu-item-padding-y: 0.15rem !default; +$menu-item-padding-x: 0 !default; +$menu-link-padding-y: 0.65rem !default; +$menu-link-padding-x: 1rem !default; +$menu-link-border-radius: $border-radius !default; +$menu-link-color-hover: $component-hover-color !default; +$menu-link-color-hover-dark: $component-hover-color-dark !default; +$menu-link-color-show: $component-hover-color !default; +$menu-link-color-show-dark: $component-hover-color-dark !default; +$menu-link-color-here: $component-hover-color !default; +$menu-link-color-here-dark: $component-hover-color-dark !default; +$menu-link-color-active: $component-hover-color !default; +$menu-link-color-active-dark: $component-hover-color-dark !default; +$menu-link-bg-color-hover: $component-hover-bg !default; +$menu-link-bg-color-hover-dark: $component-hover-bg-dark !default; +$menu-link-bg-color-show: $component-hover-bg !default; +$menu-link-bg-color-show-dark: $component-hover-bg-dark !default; +$menu-link-bg-color-here: $component-hover-bg !default; +$menu-link-bg-color-here-dark: $component-hover-bg-dark !default; +$menu-link-bg-color-active: $component-hover-bg !default; +$menu-link-bg-color-active-dark: $component-hover-bg-dark !default; +$menu-icon-size: 2rem !default; +$menu-icon-space: 0.5rem !default; +$menu-bullet-size: 1.25rem !default; +$menu-bullet-space: 0.5rem !default; +$menu-badge-space: 0.5rem !default; +$menu-arrow-size: 9px !default; +$menu-arrow-space: 5px !default; +$menu-heading-color: $text-muted !default; +$menu-heading-color-dark: $text-muted-dark !default; + +// Keenthemes feedback component +$feedback-popup-z-index: 1000 !default; +$feedback-popup-box-shadow: $dropdown-box-shadow !default; +$feedback-popup-box-shadow-dark: $dropdown-box-shadow-dark !default; +$feedback-popup-background-color: $body-bg !default; +$feedback-popup-background-color-dark: $body-bg-dark !default; +$feedback-popup-border-radius: $border-radius !default; +$feedback-popup-transition-speed: 0.6s !default; +$feedback-popup-padding: 1rem 1.25rem !default; + +// Keenthemes scrollbar component +$scrollbar-space: 0.5rem !default; +$scrollbar-border-radius: 0.5rem !default; +$scrollbar-width: 0.4rem !default; +$scrollbar-height: 0.4rem !default; +$scrollbar-color: $gray-200 !default; +$scrollbar-color-dark: $gray-200-dark !default; +$scrollbar-hover-color: darken($gray-200, 2%) !default; +$scrollbar-hover-color-dark: darken($gray-200-dark, 2%) !default; + +// Keenthemes overlay component +$overlay-bg: rgba($black, 0.05) !default; +$overlay-bg-dark: rgba($white, 0.05) !default; + +// Keenthemes blockui component +$blockui-overlay-bg: rgba($black, 0.05) !default; +$blockui-overlay-bg-dark: rgba($white, 0.05) !default; + +// Keenthemes rating component +$rating-color-default: $gray-400 !default; +$rating-color-default-dark: $gray-400-dark !default; +$rating-color-active: #FFAD0F !default; +$rating-color-active-dark: #FFAD0F !default; + +// Keenthemes ribbon component +$ribbon-label-box-shadow: 0px -1px 5px 0px rgba($dark, 0.1) !default; +$ribbon-label-box-shadow-dark: 0px -1px 5px 0px rgba($white, 0.1) !default; +$ribbon-label-bg: $primary !default; +$ribbon-label-bg-dark: $primary !default; +$ribbon-label-border-color: darken($primary, 20%) !default; +$ribbon-label-border-color-dark: darken($primary, 20%) !default; +$ribbon-clip-bg: $dark !default; +$ribbon-clip-bg-dark: $light !default; + +// Keenthemes fixed component +$fixed-z-index: 101 !default; + +// Engage panel +$engage-btn-bg: $body-bg; +$engage-btn-bg-dark: $gray-200-dark; +$engage-btn-color: $gray-600; +$engage-btn-color-dark: $gray-600-dark; +$engage-btn-color-active: $gray-800; +$engage-btn-color-active-dark: $gray-800-dark; + +// Social Network Colors Used With Boostrap Buttons(see: https://brandcolors.net) +$social-colors: ( + facebook: ( + base: #3b5998, + inverse: #ffffff, + light: rgba(#3b5998, 0.1), + active: darken(#3b5998, 7.5%) + ), + google: ( + base: #dd4b39, + inverse: #ffffff, + light: rgba(#dd4b39, 0.1), + active: darken(#dd4b39, 7.5%) + ), + twitter: ( + base: #1da1f2, + inverse: #ffffff, + light: rgba(#1da1f2, 0.1), + active: darken(#1da1f2, 7.5%) + ), + instagram: ( + base: #e1306c, + inverse: #ffffff, + light: rgba(#e1306c, 0.1), + active: darken(#e1306c, 7.5%) + ), + youtube: ( + base: #ff0000, + inverse: #ffffff, + light: rgba(#ff0000, 0.1), + active: darken(#ff0000, 7.5%) + ), + linkedin: ( + base: #0077b5, + inverse: #ffffff, + light: rgba(#0077b5, 0.1), + active: darken(#0077b5, 7.5%) + ) +) !default; \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/buttons/_base.scss b/src/_metronic/assets/sass/core/components/buttons/_base.scss new file mode 100644 index 0000000..30479d7 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/buttons/_base.scss @@ -0,0 +1,132 @@ +// +// Buttons Base +// + +// Button +.btn { + --#{$prefix}btn-color: var(--kt-body-color); + --#{$prefix}btn-bg: transparent; + --#{$prefix}btn-border-color: transparent; + + // Reset outline + outline: none !important; + + // Reset focus shadow + &:not(.btn-shadow):not(.shadow):not(.shadow-sm):not(.shadow-lg):not(.shadow-xs) { + box-shadow: none !important; + } + + // Remove border + &:not(.btn-outline):not(.btn-dashed):not(.border-hover):not(.border-active):not(.btn-flush):not(.btn-icon) { + border: 0; + padding: calc(#{$btn-padding-y} + #{$btn-border-width}) calc(#{$btn-padding-x} + #{$btn-border-width}); + + &.btn-lg { + padding: calc(#{$btn-padding-y-lg} + #{$btn-border-width}) calc(#{$btn-padding-x-lg} + #{$btn-border-width}); + } + + &.btn-sm { + padding: calc(#{$btn-padding-y-sm} + #{$btn-border-width}) calc(#{$btn-padding-x-sm} + #{$btn-border-width}); + } + } + + // Link + &.btn-link { + border: 0; + border-radius: 0; + padding-left: 0 !important; + padding-right: 0 !important; + text-decoration: none; + font-weight: $btn-font-weight; + } + + // Outline + &.btn-outline:not(.btn-outline-dashed) { + border: 1px solid var(--kt-input-border-color); + } + + // Outline dashed + &.btn-outline-dashed { + border: 1px dashed var(--kt-input-border-color); + } + + // Flush + &.btn-flush { + @include button-reset(); + } + + // Flex + &.btn-flex { + display: inline-flex; + align-items: center; + } + + // Align start + &.btn-trim-start { + justify-content: flex-start !important; + padding-left: 0 !important; + } + + // Align start + &.btn-trim-end { + justify-content: flex-end !important; + padding-right: 0 !important; + } +} + +// Icons +.btn { + // Font icon + i { + display: inline-flex; + font-size: $font-size-base; + padding-right: 0.35rem; + vertical-align: middle; + line-height: 0; + } + + // Svg icon + .svg-icon { + flex-shrink: 0; + line-height: 0; + margin-right: 0.5rem; + } + + // Icon only button + &.btn-icon { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0; + height: $input-height; + width: $input-height; + + // Remove border + &:not(.btn-outline):not(.btn-dashed):not(.border-hover):not(.border-active):not(.btn-flush) { + border: 0; + } + + // Sizes + &.btn-sm { + height: $input-height-sm; + width: $input-height-sm; + + } + + &.btn-lg { + height: $input-height-lg; + width: $input-height-lg; + } + + &.btn-circle { + border-radius: 50%; + } + + i, + .svg-icon { + padding: 0; + margin: 0; + line-height: 1; + } + } +} diff --git a/src/_metronic/assets/sass/core/components/buttons/_theme.scss b/src/_metronic/assets/sass/core/components/buttons/_theme.scss new file mode 100644 index 0000000..3f1d75a --- /dev/null +++ b/src/_metronic/assets/sass/core/components/buttons/_theme.scss @@ -0,0 +1,244 @@ +// +// Buttons Theme +// + +// Outline dashed basic style +.btn.btn-outline.btn-outline-dashed { + border-width: 1px; + border-style: dashed; + + $color: null; + $icon-color: null; + $border-color: null; + $bg-color: null;; + + $color-active: null; + $icon-color-active: null; + $border-color-active: var(--kt-primary); + $bg-color-active: null; + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); +} + +// Theme colors +@each $name, $value in $theme-colors { + // Base + .btn.btn-#{$name} { + $color: var(--kt-#{$name}-inverse); + $icon-color: var(--kt-#{$name}-inverse); + $border-color: var(--kt-#{$name}); + $bg-color: var(--kt-#{$name}); + + $color-active: var(--kt-#{$name}-inverse); + $icon-color-active: var(--kt-#{$name}-inverse); + $border-color-active: var(--kt-#{$name}-active); + $bg-color-active: var(--kt-#{$name}-active); + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } + + // Light + @if ( theme-light-color($name) ) { + .btn.btn-light-#{$name} { + $color: var(--kt-#{$name}); + $icon-color: var(--kt-#{$name}); + $border-color: var(--kt-#{$name}-light); + $bg-color: var(--kt-#{$name}-light); + + $color-active: var(--kt-#{$name}-inverse); + $icon-color-active: var(--kt-#{$name}-inverse); + $border-color-active: var(--kt-#{$name}); + $bg-color-active: var(--kt-#{$name}); + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } + } + + // Background + .btn.btn-bg-#{$name} { + $color: null; + $icon-color: null; + $border-color: var(--kt-#{$name}); + $bg-color: var(--kt-#{$name}); + + $color-active: null; + $icon-color-active: null; + $border-color-active: null; + $bg-color-active: null; + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } + + // Active + .btn.btn-active-#{$name} { + $color: null; + $icon-color: null; + $border-color: null; + $bg-color: null; + + $color-active: var(--kt-#{$name}-inverse); + $icon-color-active: var(--kt-#{$name}-inverse); + $border-color-active: var(--kt-#{$name}); + $bg-color-active: var(--kt-#{$name}); + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } + + // Light + @if ( theme-light-color($name) ) { + .btn.btn-active-light-#{$name} { + $color: null; + $icon-color: null; + $border-color: null; + $bg-color: null; + + $color-active: var(--kt-#{$name}); + $icon-color-active: var(--kt-#{$name}); + $border-color-active: var(--kt-#{$name}-light); + $bg-color-active: var(--kt-#{$name}-light); + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } + } + + // Outline + .btn.btn-outline.btn-outline-#{$name} { + $color: var(--kt-#{$name}); + $icon-color: var(--kt-#{$name}); + $border-color: var(--kt-#{$name}); + $bg-color: transparent; + + $color-active: var(--kt-#{$name}-active); + $icon-color-active: var(--kt-#{$name}-active); + $border-color-active: var(--kt-#{$name}); + $bg-color-active: var(--kt-#{$name}-light); + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } +} + +// Theme text colors +@each $name, $value in $theme-text-colors { + // Text and icon colors + .btn.btn-color-#{$name} { + $color: var(--kt-text-#{$name}); + $icon-color: var(--kt-text-#{$name}); + $bg-color: null; + $border-color: null; + + $color-active: null; + $icon-color-active: null; + $border-color-active: null; + $bg-color-active: null; + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } + + // Text and icon colors active state + .btn.btn-active-color-#{$name} { + $color: null; + $icon-color: null; + $border-color: null; + $bg-color: null; + + $color-active: var(--kt-text-#{$name}); + $icon-color-active: var(--kt-text-#{$name}); + $border-color-active: null; + $bg-color-active: null; + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } + + // Icon colors + .btn.btn-icon-#{$name} { + $color: null; + $icon-color: var(--kt-text-#{$name}); + $bg-color: null; + $border-color: null; + + $color-active: null; + $icon-color-active: null; + $border-color-active: null; + $bg-color-active: null; + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } + + // Icon colors active state + .btn.btn-active-icon-#{$name} { + $color: null; + $icon-color: null; + $bg-color: null; + $border-color: null; + + $color-active: null; + $icon-color-active: var(--kt-text-#{$name}); + $border-color-active: null; + $bg-color-active: null; + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } + + // Text colors + .btn.btn-text-#{$name} { + $color: var(--kt-text-#{$name}); + $icon-color: null; + $bg-color: null; + $border-color: null; + + $color-active: null; + $icon-color-active: null; + $border-color-active: null; + $bg-color-active: null; + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } + + // Text colors active state + .btn.btn-active-text-#{$name} { + $color: null; + $icon-color: null; + $bg-color: null; + $border-color: null; + + $color-active: var(--kt-text-#{$name}); + $icon-color-active: null; + $border-color-active: null; + $bg-color-active: null; + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } +} + +// Social colors +@each $name, $value in $social-colors { + // Base + .btn.btn-#{$name} { + $color: get($value, inverse); + $icon-color: get($value, inverse); + $border-color: get($value, base); + $bg-color: get($value, base); + + $color-active: null; + $icon-color-active: null; + $border-color-active: get($value, active); + $bg-color-active: get($value, active); + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } + + // Light + .btn.btn-light-#{$name} { + $color: get($value, base); + $icon-color: get($value, base); + $bg-color: get($value, light); + $border-color: get($value, light); + + $color-active: get($value, inverse); + $icon-color-active: get($value, inverse); + $bg-color-active: get($value, base); + $border-color-active: get($value, base); + + @include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active); + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/components.scss b/src/_metronic/assets/sass/core/components/components.scss new file mode 100644 index 0000000..64e382f --- /dev/null +++ b/src/_metronic/assets/sass/core/components/components.scss @@ -0,0 +1,107 @@ +// +// Components +// + +// Bootstrap components +@import "~bootstrap/scss/root"; +@import "~bootstrap/scss/reboot"; +@import "~bootstrap/scss/type"; +@import "~bootstrap/scss/images"; +@import "~bootstrap/scss/containers"; +@import "~bootstrap/scss/grid"; +@import "~bootstrap/scss/tables"; +@import "~bootstrap/scss/forms"; +@import "~bootstrap/scss/buttons"; +@import "~bootstrap/scss/transitions"; +@import "~bootstrap/scss/dropdown"; +@import "~bootstrap/scss/button-group"; +@import "~bootstrap/scss/nav"; +@import "~bootstrap/scss/navbar"; +@import "~bootstrap/scss/card"; +@import "~bootstrap/scss/accordion"; +@import "~bootstrap/scss/breadcrumb"; +@import "~bootstrap/scss/pagination"; +@import "~bootstrap/scss/badge"; +@import "~bootstrap/scss/alert"; +@import "~bootstrap/scss/progress"; +@import "~bootstrap/scss/list-group"; +@import "~bootstrap/scss/close"; +@import "~bootstrap/scss/toasts"; +@import "~bootstrap/scss/modal"; +@import "~bootstrap/scss/tooltip"; +@import "~bootstrap/scss/popover"; +@import "~bootstrap/scss/carousel"; +@import "~bootstrap/scss/spinners"; +@import "~bootstrap/scss/offcanvas"; +@import "~bootstrap/scss/placeholders"; + +// Bootstrap helpers +@import "~bootstrap/scss/helpers"; + +// Bootstrap utilities +@import "utilities"; +@import "~bootstrap/scss/utilities/api"; + +// Custom components +@import "root"; +@import "root-bs"; +@import "reboot"; +@import "type"; +@import "theme-mode"; +@import "animation"; +@import "alert"; +@import "list-group"; +@import "images"; +@import "button-group"; +@import "dropdown"; +@import "toasts"; +@import "close"; +@import "offcanvas"; +@import "nav"; +@import "nav-line-tabs"; +@import "nav-pills-custom"; +@import "pagination"; +@import "separator"; +@import "carousel"; +@import "menu"; +@import "anchor"; +@import "card"; +@import "breadcrumb"; +@import "buttons"; +@import "code"; +@import "forms"; +@import "modal"; +@import "progress"; +@import "tables"; +@import "popover"; +@import "tooltip"; +@import "accordion"; +@import "feedback"; +@import "image-input"; +@import "symbol"; +@import "pulse"; +@import "page-loader"; +@import "scrolltop"; +@import "svg-icon"; +@import "fixed"; +@import "timeline"; +@import "timeline-label"; +@import "overlay"; +@import "bullet"; +@import "drawer"; +@import "badge"; +@import "indicator"; +@import "hover"; +@import "rotate"; +@import "scroll"; +@import "rating"; +@import "stepper"; +@import "toggle"; +@import "shape"; +@import "ribbon"; +@import "blockui"; +@import "explore"; +@import "engage"; +@import "cookiealert"; +@import "print"; +@import "helpers"; \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/forms/_floating-labels.scss b/src/_metronic/assets/sass/core/components/forms/_floating-labels.scss new file mode 100644 index 0000000..3c9d596 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/forms/_floating-labels.scss @@ -0,0 +1,12 @@ +// +// Floating label +// + +.form-floating { + .form-control.form-control-solid { + &::placeholder { + color: transparent; + } + } +} + \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/forms/_form-check-solid.scss b/src/_metronic/assets/sass/core/components/forms/_form-check-solid.scss new file mode 100644 index 0000000..c5d7088 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/forms/_form-check-solid.scss @@ -0,0 +1,239 @@ +// +// Form Check +// + +// Check input +.form-check:not(.form-switch) { + .form-check-input { + &[type="checkbox"] { + background-size: $form-check-input-bg-size; + } + } +} + +// Custom checkbox and radio +.form-check-custom { + display: flex; + align-items: center; + padding-left: 0; + margin: 0; + + // Input + .form-check-input { + margin: 0; + float: none; + flex-shrink: 0; + } + + // Label + .form-check-label { + margin-left: 0.55rem; + } + + // Sizing + &.form-check-sm { + .form-check-input { + height: $form-check-input-width-sm; + width: $form-check-input-width-sm; + } + } + + &.form-check-lg { + .form-check-input { + height: $form-check-input-width-lg; + width: $form-check-input-width-lg; + } + } + + // Solid + &.form-check-solid { + .form-check-input { + border: 0; + background-color: var(--kt-form-check-input-bg-solid); + + &:active, + &:focus { + filter: none; + background-color: var(--kt-form-check-input-bg-solid); + } + + &:checked { + background-color: var(--kt-form-check-input-checked-bg-color-solid); + } + } + } + + // States + // Success state + &.form-check-success { + .form-check-input { + &:checked { + background-color: var(--kt-success); + } + } + } + + // Danger state + &.form-check-danger { + .form-check-input { + &:checked { + background-color: var(--kt-danger); + } + } + } + + // Warning state + &.form-check-warning { + .form-check-input { + &:checked { + background-color: var(--kt-warning); + } + } + } +} + +// Custom switch +.form-switch.form-check-solid { + .form-check-input { + height: $form-switch-height; + background-image: var(--kt-form-switch-bg-image-solid); + border-radius: $form-switch-border-radius; + + &:checked { + filter: none; + background-image: var(--kt-form-switch-checked-bg-image); + } + } + + &.form-switch-sm { + .form-check-input { + height: $form-switch-height-sm; + width: $form-switch-width-sm; + } + } + + &.form-switch-lg { + .form-check-input { + height: $form-switch-height-lg; + width: $form-switch-width-lg; + } + } +} + +// Clip +.form-check-clip { + position: relative; + overflow: hidden; + + .form-check-label { + padding-top: 0.5rem; + font-size: $form-label-font-size; + color: var(--kt-form-label-color); + font-weight: $form-label-font-weight; + } + + .form-check-wrapper { + @include border-radius($border-radius-lg); + border: 2px solid transparent; + transition: $transition-base; + cursor: pointer; + overflow: hidden; + } + + .form-check-indicator { + transition: $transition-base; + position: absolute; + top: 0; + right: 0; + opacity: 0; + width: $form-check-input-width; + height: $form-check-input-width; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + background-size: 50%; + background-image: var(--kt-form-check-input-checked-bg-image); + background-color: var(--kt-component-checked-bg); + @include border-bottom-start-radius($border-radius-lg); + @include border-top-end-radius($border-radius-lg); + + &.form-check-indicator-sm { + width: $form-check-input-width-sm; + height: $form-check-input-width-sm; + } + + &.form-check-indicator-lg { + width: $form-check-input-width-lg; + height: $form-check-input-width-lg; + } + } + + .form-check-content { + width: 100%; + } + + .btn-check:checked + div { + border: 2px solid var(--kt-component-checked-bg); + transition: $transition-base; + + .form-check-indicator { + transition: $transition-base; + opacity: 1; + } + } + + .btn-check:disabled + div { + transition: $transition-base; + opacity: var(--kt-form-check-btn-check-disabled-opacity); + } +} + +// Image +.form-check-image { + position: relative; + overflow: hidden; + + img { + max-width: 100%; + } + + .form-check-wrapper { + @include border-radius($border-radius-lg); + border: 2px solid transparent; + transition: $transition-base; + cursor: pointer; + overflow: hidden; + margin-bottom: 0.75rem; + } + + .form-check-rounded { + @include border-radius($border-radius-lg); + } + + .form-check-label { + font-weight: $font-weight-bold; + margin-left: 0.5rem; + } + + &.active { + .form-check-wrapper { + border-color: var(--kt-primary); + } + } + + &.form-check-success.active { + .form-check-wrapper { + border-color: var(--kt-success); + } + } + + &.form-check-danger.active { + .form-check-wrapper { + border-color: var(--kt-danger); + } + } + + &.disabled { + opacity: var(--kt-form-check-btn-check-disabled-opacity); + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/forms/_form-check.scss b/src/_metronic/assets/sass/core/components/forms/_form-check.scss new file mode 100644 index 0000000..191fbd7 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/forms/_form-check.scss @@ -0,0 +1,106 @@ +// +// Check/radio +// + +.form-check-input { + background-color: var(--kt-form-check-input-bg); + border: var(--kt-form-check-input-border); + + &:active { + filter: var(--kt-form-check-input-active-filter); + } + + &:focus { + border-color: var(--kt-form-check-input-focus-border); + box-shadow: var(--kt-form-check-input-focus-box-shadow); + } + + &:checked { + background-color: var(--kt-form-check-input-checked-bg-color); + border-color: var(--kt-form-check-input-checked-border-color); + + &[type="checkbox"] { + @if $enable-gradients { + background-image: var(--kt-form-check-input-checked-bg-image), var(--#{$prefix}gradient); + } @else { + background-image: var(--kt-form-check-input-checked-bg-image); + } + } + + &[type="radio"] { + @if $enable-gradients { + background-image: var(--kt-form-check-radio-checked-bg-image), var(--#{$prefix}gradient); + } @else { + background-image: var(--kt-form-check-radio-checked-bg-image); + } + } + } + + &[type="checkbox"]:indeterminate { + background-color: var(--kt-form-check-input-indeterminate-bg-color); + border-color: var(--kt-form-check-input-indeterminate-border-color); + + @if $enable-gradients { + background-image: var(--kt-form-check-input-indeterminate-bg-image), var(--#{$prefix}gradient); + } @else { + background-image:var(--kt-form-check-input-indeterminate-bg-image); + } + } + + &:disabled { + opacity: var(--kt-form-check-input-disabled-opacity); + } + + // Use disabled attribute in addition of :disabled pseudo-class + // See: https://github.com/twbs/bootstrap/issues/28247 + &[disabled], + &:disabled { + ~ .form-check-label { + opacity: var(--kt-form-check-label-disabled-opacity); + } + } +} + +.form-check-label { + color: var(--kt-form-check-label-color); +} + +.form-check-input { + &:checked { + & + span, + & + label { + color: var(--kt-form-check-label-color-checked); + } + } +} + +// +// Switch +// + +.form-switch { + .form-check-input { + background-image: var(--kt-form-switch-bg-image); + + &:focus { + background-image: var(--kt-form-switch-focus-bg-image); + } + + &:checked { + @if $enable-gradients { + background-image: var(--kt-form-switch-checked-bg-image), var(--#{$prefix}gradient); + } @else { + background-image: var(--kt-form-switch-checked-bg-image); + } + } + } +} + +.btn-check { + &[disabled], + &:disabled { + + .btn { + opacity: var(--kt-form-check-btn-check-disabled-opacity); + } + } +} diff --git a/src/_metronic/assets/sass/core/components/forms/_form-control-solid.scss b/src/_metronic/assets/sass/core/components/forms/_form-control-solid.scss new file mode 100644 index 0000000..84b021a --- /dev/null +++ b/src/_metronic/assets/sass/core/components/forms/_form-control-solid.scss @@ -0,0 +1,78 @@ +// +// Form Control +// + + +// Form control +.form-control { + // Dropdown shown state + .dropdown.show > & { + color: var(--kt-input-focus-color); + background-color: var(--kt-input-focus-bg); + border-color: var(--kt-input-focus-border-color); + } + + // Readonly state + &[readonly] { + background-color: var(--kt-input-readonly-bg); + } + + // Solid style + &.form-control-solid { + background-color: var(--kt-input-solid-bg); + border-color: var(--kt-input-solid-bg); + color: var(--kt-input-solid-color); + @include placeholder(var(--kt-input-solid-placeholder-color)); + transition: $transition-input; + + .dropdown.show > &, + &:active, + &.active, + &:focus, + &.focus { + background-color: var(--kt-input-solid-bg-focus); + border-color: var(--kt-input-solid-bg-focus); + color: var(--kt-input-solid-color); + transition: $transition-input; + } + } + + // Transparent style + &.form-control-transparent { + background-color: transparent; + border-color: transparent; + + .dropdown.show > &, + &:active, + &.active, + &:focus, + &.focus { + background-color: transparent; + border-color: transparent; + } + } + + // Flush + &.form-control-flush { + @include input-reset(); + } +} + +// Placeholder colors +.placeholder-gray-500 { + @include placeholder(var(--kt-gray-500)); +} + +.placeholder-white { + @include placeholder($white); +} + +// Textarea reset resize +.resize-none { + resize: none; +} + +// Form control solid bg +.form-control-solid-bg { + background-color: var(--kt-input-solid-bg); +} diff --git a/src/_metronic/assets/sass/core/components/forms/_form-control.scss b/src/_metronic/assets/sass/core/components/forms/_form-control.scss new file mode 100644 index 0000000..9ae50d4 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/forms/_form-control.scss @@ -0,0 +1,46 @@ +// +// Form controls +// + +.form-control { + color: var(--kt-input-color); + background-color: var(--kt-input-bg); + border: $input-border-width solid var(--kt-input-border-color); + box-shadow: none !important; + //@include box-shadow(var(--kt-input-box-shadow)); + + &:focus { + color: var(--kt-input-focus-color); + background-color: var(--kt-input-focus-bg); + border-color: var(--kt-input-focus-border-color); + //box-shadow: var(--kt-input-focus-box-shadow); + } + + // Placeholder + &::placeholder { + color: var(--kt-input-placeholder-color); + } + + // Disabled and read-only inputs + &:disabled, + &[readonly] { + color: var(--kt-input-disabled-color); + background-color: var(--kt-input-disabled-bg); + border-color: var(--kt-input-disabled-border-color); + } + + // File input buttons theming + &::file-selector-button { + color: var(--kt-form-file-button-color); + @include gradient-bg(var(--kt-form-file-button-bg)); + } + + &:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: var(--kt-form-file-button-hover-bg); + } +} + +// Readonly controls as plain text +.form-control-plaintext { + color: var(--kt-input-plaintext-color); +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/forms/_form-select-solid.scss b/src/_metronic/assets/sass/core/components/forms/_form-select-solid.scss new file mode 100644 index 0000000..f53bb93 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/forms/_form-select-solid.scss @@ -0,0 +1,45 @@ +// +// Form Select +// + +.form-select { + box-shadow: none !important; + + // Solid style + &.form-select-solid { + @include placeholder(var(--kt-input-solid-placeholder-color)); + background-color: var(--kt-input-solid-bg); + border-color: var(--kt-input-solid-bg); + color: var(--kt-input-solid-color); + transition: $transition-input; + + .dropdown.show > &, + &:active, + &.active, + &:focus, + &.focus { + background-color: var(--kt-input-solid-bg-focus); + border-color: var(--kt-input-solid-bg-focus) !important; + color: var(--kt-input-solid-color); + transition: $transition-input; + } + } + + // Transparent style + &.form-select-transparent { + @include placeholder(var(--kt-input-placeholder-color)); + background-color: transparent; + border-color: transparent; + color: $input-color; + + .dropdown.show > &, + &:active, + &.active, + &:focus, + &.focus { + background-color: transparent; + border-color: transparent !important; + color: $input-color; + } + } +} diff --git a/src/_metronic/assets/sass/core/components/forms/_form-select.scss b/src/_metronic/assets/sass/core/components/forms/_form-select.scss new file mode 100644 index 0000000..07a2e10 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/forms/_form-select.scss @@ -0,0 +1,35 @@ +// Select +// +// Replaces the browser default select with a custom one, mostly pulled from +// https://primer.github.io/. + +.form-select { + color: var(--kt-form-select-color); + background-color: var(--kt-form-select-bg); + background-image: var(--kt-form-select-indicator); + border: $form-select-border-width solid var(--kt-form-select-border-color); + @include box-shadow(var(--kt-form-select-box-shadow)); + appearance: none; + + &:focus { + border-color: var(--kt-form-select-focus-border-color); + @if $enable-shadows { + @include box-shadow(var(--kt-form-select-box-shadow), var(--kt-form-select-focus-box-shadow)); + } @else { + // Avoid using mixin so we can pass custom focus shadow properly + box-shadow: var(--kt-form-select-focus-box-shadow); + } + } + + + &:disabled { + color: var(--kt-form-select-disabled-color); + background-color: var(--kt-form-select-disabled-bg); + border-color: var(--kt-form-select-disabled-border-color); + } + + // Remove outline from select box in FF + &:-moz-focusring { + text-shadow: 0 0 0 var(--kt-form-select-color); + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/forms/_form-text.scss b/src/_metronic/assets/sass/core/components/forms/_form-text.scss new file mode 100644 index 0000000..94cd819 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/forms/_form-text.scss @@ -0,0 +1,7 @@ +// +// Form text +// + +.form-text { + color: var(--kt-form-text-color); +} diff --git a/src/_metronic/assets/sass/core/components/forms/_input-group-solid.scss b/src/_metronic/assets/sass/core/components/forms/_input-group-solid.scss new file mode 100644 index 0000000..46d6e32 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/forms/_input-group-solid.scss @@ -0,0 +1,36 @@ +// +// Input Group +// + +// Form control +.input-group { + &.input-group-solid { + @include border-radius($input-border-radius); + + &.input-group-sm { + @include border-radius($input-border-radius-sm); + } + + &.input-group-lg { + @include border-radius($input-border-radius-lg); + } + + .input-group-text { + background-color: var(--kt-input-solid-bg); + border-color: var(--kt-input-solid-bg); + + & + .form-control { + border-left-color: var(--kt-input-border-color); + } + } + + .form-control { + background-color: var(--kt-input-solid-bg); + border-color: var(--kt-input-solid-bg); + + & + .input-group-text { + border-left-color: var(--kt-input-border-color); + } + } + } +} diff --git a/src/_metronic/assets/sass/core/components/forms/_input-group.scss b/src/_metronic/assets/sass/core/components/forms/_input-group.scss new file mode 100644 index 0000000..ee05d35 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/forms/_input-group.scss @@ -0,0 +1,9 @@ +// +// Input group +// + +.input-group-text { + color: var(--kt-input-group-addon-color); + background-color: var(--kt-input-group-addon-bg); + border: $input-border-width solid var(--kt-input-group-addon-border-color); +} diff --git a/src/_metronic/assets/sass/core/components/forms/_labels.scss b/src/_metronic/assets/sass/core/components/forms/_labels.scss new file mode 100644 index 0000000..c6091c6 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/forms/_labels.scss @@ -0,0 +1,13 @@ +// +// Labels +// + +.form-label { + color: var(--kt-form-label-color); +} + +// For use with horizontal and inline forms, when you need the label (or legend) +// text to align with the form controls. +.col-form-label { + color: var(--kt-form-label-color); +} diff --git a/src/_metronic/assets/sass/core/components/forms/_required.scss b/src/_metronic/assets/sass/core/components/forms/_required.scss new file mode 100644 index 0000000..effaf53 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/forms/_required.scss @@ -0,0 +1,14 @@ +// +// Required Label +// + +.required { + &:after { + content: "*"; + position: relative; + font-size: inherit; + color: var(--kt-danger); + padding-left: 0.25rem; + font-weight: $font-weight-bold; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/helpers/_background.scss b/src/_metronic/assets/sass/core/components/helpers/_background.scss new file mode 100644 index 0000000..c526de6 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/helpers/_background.scss @@ -0,0 +1,208 @@ +// +// Custom background helpers +// + +// Background white color +.bg-white { + --kt-bg-rgb-color: var(--kt-white-bg-rgb); + background-color: $black !important; +} + +// Background black color +.bg-black { + --kt-bg-rgb-color: var(--kt-black-bg-rgb); + background-color: $black !important; +} + +// Background body color +.bg-body { + --kt-bg-rgb-color: var(--kt-body-bg-rgb); + background-color: var(--kt-body-bg) !important; +} + +.bg-hover-body { + cursor: pointer; + + &:hover { + background-color: var(--kt-body-bg) !important; + } +} + +.bg-active-body { + &.active { + background-color: var(--kt-body-bg) !important; + } +} + +.bg-state-body { + cursor: pointer; + + &.active, + &:hover { + background-color: var(--kt-body-bg) !important; + } +} + +// Background theme light colors +@each $name, $value in $theme-colors { + @if (theme-light-color($name)) { + .bg-light-#{$name} { + background-color: var(--kt-#{$name}-light) !important; + } + } + + .bg-#{$name} { + --kt-bg-rgb-color: var(--kt-#{$name}-rgb); + background-color: var(--kt-#{$name}) !important; + } + + @if (theme-light-color($name)) { + .bg-hover-light-#{$name} { + cursor: pointer; + + &:hover { + background-color: var(--kt-#{$name}-light) !important; + } + } + + .bg-state-light-#{$name} { + cursor: pointer; + + &.active, + &:hover { + background-color: var(--kt-#{$name}-light) !important; + } + } + } + + .bg-hover-#{$name} { + cursor: pointer; + + &:hover { + background-color: var(--kt-#{$name}) !important; + } + } + + .bg-active-#{$name} { + &.active { + background-color: var(--kt-#{$name}) !important; + } + } + + .bg-state-#{$name} { + cursor: pointer; + + &.active, + &:hover { + background-color: var(--kt-#{$name}) !important; + } + } +} + +// Background gray colors +@each $name, $value in $grays { + .bg-gray-#{$name} { + background-color: var(--kt-gray-#{$name}); + } + + .bg-gray-#{$name}i { + background-color: var(--kt-gray-#{$name}) !important; + } +} + +// Opacity +@each $name, $value in $opacity-values { + .bg-opacity-#{$name} { + background-color: rgba(var(--kt-bg-rgb-color), #{$value}) !important; + } + + .bg-hover-opacity-#{$name}:hover { + background-color: rgba(var(--kt-bg-rgb-color), #{$value}) !important; + } + + .bg-active-opacity-#{$name}.active { + background-color: rgba(var(--kt-bg-rgb-color), #{$value}) !important; + } + + .bg-state-opacity-#{$name} { + .active, + &:hover { + background-color: rgba(var(--kt-bg-rgb-color), #{$value}) !important; + } + } +} + +// Background image helpers +// Background repeat +.bgi-no-repeat { + background-repeat: no-repeat; +} + +// Background positions +.bgi-position-y-top { + background-position-y: top; +} + +.bgi-position-y-bottom { + background-position-y: bottom; +} + +.bgi-position-y-center { + background-position-y: center; +} + +.bgi-position-x-start { + background-position-x: left; +} + +.bgi-position-x-end { + background-position-x: right; +} + +.bgi-position-x-center { + background-position-x: center; +} + +.bgi-position-top { + background-position: 0 top; +} + +.bgi-position-bottom { + background-position: 0 bottom; +} + +.bgi-position-center { + background-position: center; +} + +// Responsive helpers +@each $breakpoint in map-keys($grid-breakpoints) { + @include media-breakpoint-up($breakpoint) { + $infix: breakpoint-infix($breakpoint, $grid-breakpoints); + + // Background sizes + .bgi-size#{$infix}-auto { + background-size: auto; + } + + .bgi-size#{$infix}-cover { + background-size: cover; + } + + .bgi-size#{$infix}-contain { + background-size: contain; + } + + // Background attachment + .bgi-attachment#{$infix}-fixed { + background-attachment: fixed; + } + + .bgi-attachment#{$infix}-scroll { + background-attachment: scroll; + } + } +} + + + diff --git a/src/_metronic/assets/sass/core/components/helpers/_borders.scss b/src/_metronic/assets/sass/core/components/helpers/_borders.scss new file mode 100644 index 0000000..892c1fe --- /dev/null +++ b/src/_metronic/assets/sass/core/components/helpers/_borders.scss @@ -0,0 +1,114 @@ +// +// Border +// + +.border-active:not(.active):not(:active):not(:hover):not(:focus) { + border-color: transparent !important; +} + +.border-hover:not(:hover):not(:focus):not(.active):not(:active) { + cursor: pointer; + border-color: transparent !important; +} + +// Gray border colors +@each $name, $value in $grays { + // Initial + .border-gray-#{$name} { + border-color: var(--kt-gray-#{$name}) !important; + } +} + +// Hover border colors +@each $name, $value in $theme-colors { + .border-hover-#{$name}:hover { + border-color: var(--kt-#{$name}) !important; + } + + .border-active-#{$name}.active { + border-color: var(--kt-#{$name}) !important; + } +} + +// Hover transparent +.border-hover-transparent:hover { + border-color: transparent !important; +} + +// Dashed style +.border-dashed { + border-style: dashed !important; + border-color: var(--kt-border-dashed-color); +} + +.border-top-dashed { + border-top-style: dashed !important; +} + +.border-bottom-dashed { + border-bottom-style: dashed !important; +} + +.border-start-dashed { + border-left-style: dashed !important; +} + +.border-end-dashed { + border-right-style: dashed !important; +} + +// Dotted style +.border-dotted { + border-style: dotted !important; +} + +.border-top-dotted { + border-top-style: dotted !important; +} + +.border-bottom-dotted { + border-bottom-style: dotted !important; +} + +.border-start-dotted { + border-left-style: dotted !important; +} + +.border-end-dotted { + border-right-style: dotted !important; +} + +// Border transparent +.border-transparent { + border-color: transparent !important; +} + +// Border body +.border-body { + border-color: var(--kt-body-bg) !important; +} + +// Border radiuses +.rounded-top-0 { + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important; +} + +.rounded-bottom-0 { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.rounded-start-0 { + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} + +.rounded-end-0 { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.rounded-circle { + border-radius: 50% !important; +} diff --git a/src/_metronic/assets/sass/core/components/helpers/_flex.scss b/src/_metronic/assets/sass/core/components/helpers/_flex.scss new file mode 100644 index 0000000..d3f2b31 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/helpers/_flex.scss @@ -0,0 +1,57 @@ +// +// Flex Utilities +// + + +@each $breakpoint in map-keys($grid-breakpoints) { + @include media-breakpoint-up($breakpoint) { + $infix: breakpoint-infix($breakpoint, $grid-breakpoints); + + .flex#{$infix}-root { + flex: 1; + } + + .flex#{$infix}-column-auto { + flex: none; + } + + .flex#{$infix}-column-fluid { + flex: 1 0 auto; + } + + .flex#{$infix}-row-auto { + flex: 0 0 auto; + } + + .flex#{$infix}-row-fluid { + flex: 1 auto; + min-width: 0; + } + + .flex#{$infix}-center { + justify-content: center; + align-items: center; + } + + .flex#{$infix}-start { + justify-content: start; + align-items: start; + } + + .flex#{$infix}-end { + justify-content: end; + align-items: end; + } + + .flex#{$infix}-stack { + justify-content: space-between; + align-items: center; + } + } +} + +.flex-equal { + flex-grow: 1; + flex-basis: 0; + flex-shrink: 0; +} diff --git a/src/_metronic/assets/sass/core/components/helpers/_opacity.scss b/src/_metronic/assets/sass/core/components/helpers/_opacity.scss new file mode 100644 index 0000000..80e26c8 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/helpers/_opacity.scss @@ -0,0 +1,18 @@ +// +// Opacity +// + +@each $name, $value in $opacity-values { + // Active state + .opacity-active-#{$name}.active { + opacity: #{$value} !important; + } + + // Active and hover states + .opacity-state-#{$name} { + &:hover, + &.active { + opacity: #{$value} !important; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/helpers/_shadow.scss b/src/_metronic/assets/sass/core/components/helpers/_shadow.scss new file mode 100644 index 0000000..ff50ae1 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/helpers/_shadow.scss @@ -0,0 +1,19 @@ +// +// Shadow +// + +.shadow-xs { + box-shadow: var(--kt-box-shadow-xs); +} + +.shadow-sm { + box-shadow: var(--kt-box-shadow-sm); +} + +.shadow { + box-shadow: var(--kt-box-shadow); +} + +.shadow-lg { + box-shadow: var(--kt-box-shadow-lg); +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/helpers/_text.scss b/src/_metronic/assets/sass/core/components/helpers/_text.scss new file mode 100644 index 0000000..f147cae --- /dev/null +++ b/src/_metronic/assets/sass/core/components/helpers/_text.scss @@ -0,0 +1,114 @@ +// +// Text +// + +// Text colors +@each $name, $color in $theme-text-colors { + // Base color + .text-#{$name} { + color: var(--kt-text-#{$name}) !important; + } + + // Inverse color + @if (theme-inverse-color($name)) { + .text-inverse-#{$name} { + color: var(--kt-#{$name}-inverse) !important; + } + } + + @if (theme-light-color($name)) { + // Light colors + .text-light-#{$name} { + color: var(--kt-#{$name}-light) !important; + } + } + + // Hover + .text-hover-#{$name} { + transition: $transition-link; + + i { + transition: $transition-link; + } + + &:hover { + transition: $transition-link; + color: var(--kt-text-#{$name}) !important; + + i { + transition: $transition-link; + color: var(--kt-text-#{$name}) !important; + } + + .svg-icon { + color: var(--kt-text-#{$name}) !important; + } + } + } + + // Active + .text-active-#{$name} { + transition: $transition-link; + + i { + transition: $transition-link; + } + + &.active { + transition: $transition-link; + color: var(--kt-text-#{$name}) !important; + + i { + transition: $transition-link; + color: var(--kt-text-#{$name}) !important; + } + + .svg-icon { + color: var(--kt-text-#{$name}) !important; + } + } + } +} + +// Text transparent +.text-transparent { + color: transparent; +} + +// Cursor pointer +.cursor-pointer { + cursor: pointer; +} + +// Cursor default +.cursor-default { + cursor: default; +} +// Cursor move +.cursor-move { + cursor: move; +} + +// Icons +i { + &.bi, + &[class^="fonticon-"], + &[class*=" fonticon-"], + &[class^="fa-"], + &[class*=" fa-"], + &[class^="la-"], + &[class*=" la-"] { + line-height: 1; + font-size: 1rem; + color: var(--kt-text-muted); + } +} + +// Link transition +a { + transition: $transition-link; + + &:hover { + transition:$transition-link; + } +} diff --git a/src/_metronic/assets/sass/core/components/helpers/_transform.scss b/src/_metronic/assets/sass/core/components/helpers/_transform.scss new file mode 100644 index 0000000..0c8616f --- /dev/null +++ b/src/_metronic/assets/sass/core/components/helpers/_transform.scss @@ -0,0 +1,8 @@ +// +// Transform +// + +.transform-90 { + transform: rotate(90deg); + transform-origin: right top; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/menu/_base.scss b/src/_metronic/assets/sass/core/components/menu/_base.scss new file mode 100644 index 0000000..dc50228 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/menu/_base.scss @@ -0,0 +1,306 @@ +// +// Menu Base +// + +// Menu group +.menu-group { + display: flex; +} + +// Menu & wrapper +.menu, +.menu-wrapper { + display: flex; + padding: 0; + margin: 0; + list-style: none; +} + +// Sub inner +.menu-inner { + padding: 0; + margin: 0; + list-style: none; +} + +// Sub menu +.menu-sub { + display: none; + padding: 0; + margin: 0; + list-style: none; + flex-direction: column; +} + +// Menu item +.menu-item { + display: block; + padding: $menu-item-padding-y $menu-item-padding-x; + + // Menu Link + .menu-link { + cursor: pointer; + display: flex; + align-items: center; + padding: 0; + flex: 0 0 100%; + padding: $menu-link-padding-y $menu-link-padding-x; + transition: none; + outline: none !important; + + .menu-icon { + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; + width: $menu-icon-size; + margin-right: $menu-icon-space; + + .svg-icon { + line-height: 1; + } + } + + .menu-bullet { + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; + width: $menu-bullet-size; + margin-right: $menu-bullet-space; + } + + .menu-title { + display: flex; + align-items: center; + flex-grow: 1; + } + + .menu-badge { + display: flex; + align-items: center; + flex-shrink: 0; + margin-left: $menu-badge-space; + } + + .menu-arrow { + display: flex; + align-items: stretch; + position: relative; + overflow: hidden; + flex-shrink: 0; + margin-left: $menu-arrow-space; + width: $menu-arrow-size; + height: $menu-arrow-size; + + &:after { + display: block; + width: 100%; + content: " "; + will-change: transform; + background-size: 100% 100%; + @include svg-bg-icon(arrow-start, var(--kt-text-muted)); + /*rtl:begin:remove*/ + @include svg-bg-icon(arrow-end, var(--kt-text-muted)); + /*rtl:end:remove*/ + } + } + } + + // Menu Content + .menu-content { + padding: $menu-link-padding-y $menu-link-padding-x; + } +} + +// Accordion arrows +.menu-item { + &.show { + .menu-link { + .menu-arrow:after { + backface-visibility: hidden; + transition: $menu-accordion-arrow-transition; + } + } + } +} + +// Center alignment +.menu-center { + justify-content: center; +} + +// Heading +.menu-heading { + color: var(--kt-menu-heading-color); +} + +// Responsive +@each $direction in (up, down) { + @each $breakpoint in map-keys($grid-breakpoints) { + $infix: breakpoint-infix($breakpoint, $grid-breakpoints); + + @if $infix and $direction == down { + $infix: $infix + "-" + $direction; + } + + @include media-breakpoint-direction($direction, $breakpoint) { + // Accordion arrow + .menu-item.menu#{$infix}-accordion { + .menu-arrow:after { + @include menu-link-arrow-rotate(90deg, -90deg); + } + + &.showing:not(.menu-dropdown), + &.show:not(.hiding):not(.menu-dropdown) { + > .menu-link { + .menu-arrow:after { + @include menu-link-arrow-rotate(-90deg, 90deg); + } + } + } + } + + // Sub dropdown + .menu-sub#{$infix}-dropdown { + display: none; + border-radius: $menu-dropdown-border-radius; + background-color: var(--kt-menu-dropdown-bg-color); + box-shadow: var(--kt-menu-dropdown-box-shadow); + z-index: $menu-dropdown-z-index; + + // Dropdown show + .show.menu-dropdown > &, + &.menu.show, + &.show[data-popper-placement] { + display: flex; + will-change: transform; + + // Animation + @if ($menu-dropdown-animation == true) { + // Move up + animation: menu-sub-dropdown-animation-fade-in #{$menu-dropdown-animation-speed} ease 1, menu-sub-dropdown-animation-move-up #{$menu-dropdown-animation-speed} ease 1; + } + } + } + + // Sub accordion + .menu-sub#{$infix}-accordion { + display: none; + + .show:not(.menu-dropdown) > &, + &.show { + display: flex; + } + } + + // Sub indention + .menu-sub#{$infix}-indention { + @include menu-sub-indention($menu-accordion-indention); + + // Active link + .menu-item .menu-item .menu-link.active { + margin-right: $menu-link-padding-x; + } + } + + // Inline + .menu#{$infix}-inline { + display: flex; + } + + // Reset link left & right paddings of level 1 menu links + .menu#{$infix}-fit { + > .menu-item { + > .menu-content, + > .menu-link { + padding-left: 0 !important; + padding-right: 0 !important; + } + } + } + + .menu#{$infix}-column { + flex-direction: column; + width: 100%; + } + + .menu#{$infix}-row { + flex-direction: row; + + > .menu-item { + display: flex; + align-items: center; + + > .menu-link { + .menu-arrow:after { + @include menu-link-arrow-rotate(90deg, -90deg); + } + } + } + } + + // Border radiuses + .menu#{$infix}-rounded { + .menu-link { + @include border-radius($menu-link-border-radius); + } + } + + // Border radiuses + .menu#{$infix}-pill { + .menu-link { + border-radius: 50px; + } + } + + // Reset border radiuses + .menu#{$infix}-rounded-0 { + .menu-link { + border-radius: 0 !important; + } + } + } + } +} + +// Link indention +.menu-link-indention { + .menu-item { + padding-top: 0; + padding-bottom: 0; + } + + @include menu-link-indention($menu-accordion-indention, $menu-link-padding-x); +} + +// Menu animations +@keyframes menu-sub-dropdown-animation-fade-in { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes menu-sub-dropdown-animation-move-up { + from { + margin-top: #{$menu-dropdown-animation-move-offset}; + } + + to { + margin-top: 0; + } +} + +@keyframes menu-sub-dropdown-animation-move-down { + from { + margin-bottom: #{$menu-dropdown-animation-move-offset}; + } + + to { + margin-bottom: 0; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/menu/_theme.scss b/src/_metronic/assets/sass/core/components/menu/_theme.scss new file mode 100644 index 0000000..f8e4730 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/menu/_theme.scss @@ -0,0 +1,510 @@ +// +// Menu Theme +// + +// Theme text colors +@each $name, $color in $theme-text-colors { + .menu-#{$name} { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-default-state( var(--kt-#{$name}), var(--kt-#{$name}), var(--kt-#{$name}), var(--kt-#{$name}), null ); + } + } + + .menu-title-#{$name} { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-default-state( var(--kt-text-#{$name}), null, null, null, null ); + } + } + + .menu-icon-#{$name} { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-default-state( null, var(--kt-text-#{$name}), null, null, null ); + } + } + + .menu-bullet-#{$name} { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-default-state( null, null, var(--kt-text-#{$name}), null, null ); + } + } + + .menu-arrow-#{$name} { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-default-state( null, null, null, var(--kt-text-#{$name}), null ); + } + } +} + +// Default background states +.menu-hover-bg { + .menu-item { + @include menu-link-hover-state( + var(--kt-menu-link-color-hover), + var(--kt-menu-link-color-hover), + var(--kt-menu-link-color-hover), + var(--kt-menu-link-color-hover), + var(--kt-menu-link-bg-color-hover) + ); + } +} + +.menu-here-bg { + .menu-item { + @include menu-link-here-state( + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-bg-color-here) + ); + } +} + +.menu-root-here-bg { + > .menu-item { + @include menu-link-here-state( + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-bg-color-here) + ); + } +} + +// Desktop mode +@include media-breakpoint-up(lg) { + .menu-root-here-bg-desktop { + > .menu-item { + @include menu-link-here-state( + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-bg-color-here) + ); + } + } +} + +.menu-show-bg { + .menu-item { + @include menu-link-show-state( + var(--kt-menu-link-color-show), + var(--kt-menu-link-color-show), + var(--kt-menu-link-color-show), + var(--kt-menu-link-color-show), + var(--kt-menu-link-bg-color-show) + ); + } +} + +.menu-active-bg { + .menu-item { + @include menu-link-active-state( + var(--kt-menu-link-color-active), + var(--kt-menu-link-color-active), + var(--kt-menu-link-color-active), + var(--kt-menu-link-color-active), + var(--kt-menu-link-bg-color-active) + ); + } +} + +.menu-state-bg { + .menu-item { + @include menu-link-hover-state( + var(--kt-menu-link-color-hover), + var(--kt-menu-link-color-hover), + var(--kt-menu-link-color-hover), + var(--kt-menu-link-color-hover), + var(--kt-menu-link-bg-color-hover) + ); + + @include menu-link-here-state( + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-bg-color-here) + ); + + @include menu-link-show-state( + var(--kt-menu-link-color-show), + var(--kt-menu-link-color-show), + var(--kt-menu-link-color-show), + var(--kt-menu-link-color-show), + var(--kt-menu-link-bg-color-show) + ); + + @include menu-link-active-state( + var(--kt-menu-link-color-active), + var(--kt-menu-link-color-active), + var(--kt-menu-link-color-active), + var(--kt-menu-link-color-active), + var(--kt-menu-link-bg-color-active) + ); + } +} + +.menu-state-color { + .menu-item { + @include menu-link-hover-state( + var(--kt-menu-link-color-hover), + var(--kt-menu-link-color-hover), + var(--kt-menu-link-color-hover), + var(--kt-menu-link-color-hover), + null + ); + + @include menu-link-here-state( + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + var(--kt-menu-link-color-here), + null + ); + + @include menu-link-show-state( + var(--kt-menu-link-color-show), + var(--kt-menu-link-color-show), + var(--kt-menu-link-color-show), + var(--kt-menu-link-color-show), + null + ); + + @include menu-link-active-state( + var(--kt-menu-link-color-active), + var(--kt-menu-link-color-active), + var(--kt-menu-link-color-active), + var(--kt-menu-link-color-active), + null + ); + } +} + +// Primary background states +.menu-hover-bg-primary { + .menu-item { + @include menu-link-hover-state( + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary) + ); + } +} + +.menu-show-bg-primary { + .menu-item { + @include menu-link-show-state( + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary) + ); + } +} + +.menu-here-bg-primary { + .menu-item { + @include menu-link-here-state( + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary) + ); + } +} + +.menu-active-bg-primary { + .menu-item { + @include menu-link-active-state( + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary) + ); + } +} + +.menu-state-bg-primary { + .menu-item { + @include menu-link-hover-state( + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary) + ); + + @include menu-link-show-state( + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary) + ); + + @include menu-link-here-state( + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary) + ); + + @include menu-link-active-state( + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary) + ); + + @include menu-link-show-state( + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary-inverse), + var(--kt-primary) + ); + } +} + +// Light primary background states +.menu-show-bg-light-primary { + .menu-item { + @include menu-link-show-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary-light) ); + } +} + +.menu-here-bg-light-primary { + .menu-item { + @include menu-link-here-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary-light) ); + } +} + +.menu-hover-bg-light-primary { + .menu-item { + @include menu-link-hover-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary-light) ); + } +} + +.menu-active-bg-light-primary { + .menu-item { + @include menu-link-active-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary-light) ); + } +} + +.menu-state-bg-light-primary { + .menu-item { + @include menu-link-show-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary-light) ); + @include menu-link-here-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary-light) ); + @include menu-link-hover-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary-light) ); + @include menu-link-active-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary-light) ); + } +} + +// Primary color states +.menu-hover-primary { + .menu-item { + @include menu-link-hover-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), null ); + } +} + +.menu-show-primary { + .menu-item { + @include menu-link-show-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), null ); + } +} + +.menu-here-primary { + .menu-item { + @include menu-link-here-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), null ); + } +} + +.menu-active-primary { + .menu-item { + @include menu-link-active-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), null ); + } +} + +.menu-state-primary { + .menu-item { + @include menu-link-hover-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), null ); + @include menu-link-show-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), null ); + @include menu-link-here-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), null ); + @include menu-link-active-state( var(--kt-primary), var(--kt-primary), var(--kt-primary), var(--kt-primary), null ); + } +} + +.menu-state-dark { + .menu-item { + @include menu-link-hover-state( var(--kt-dark), var(--kt-dark), var(--kt-dark), var(--kt-dark), null ); + @include menu-link-show-state( var(--kt-dark), var(--kt-dark), var(--kt-dark), var(--kt-dark), null ); + @include menu-link-here-state( var(--kt-dark), var(--kt-dark), var(--kt-dark), var(--kt-dark), null ); + @include menu-link-active-state( var(--kt-dark), var(--kt-dark), var(--kt-dark), var(--kt-dark), null ); + } +} + +// Primary title color states +.menu-hover-title-primary { + .menu-item { + @include menu-link-hover-state( var(--kt-primary), null, null, null, null ); + } +} + +.menu-here-title-primary { + .menu-item { + @include menu-link-here-state( var(--kt-primary), null, null, null, null ); + } +} + +.menu-show-title-primary { + .menu-item { + @include menu-link-show-state( var(--kt-primary), null, null, null, null ); + } +} + +.menu-active-title-primary { + .menu-item { + @include menu-link-active-state( var(--kt-primary), null, null, null, null ); + } +} + +.menu-state-title-primary { + .menu-item { + @include menu-link-hover-state( var(--kt-primary), null, null, null, null ); + @include menu-link-here-state( var(--kt-primary), null, null, null, null ); + @include menu-link-show-state( var(--kt-primary), null, null, null, null ); + @include menu-link-active-state( var(--kt-primary), null, null, null, null ); + } +} + +// Primary icon color states +.menu-hover-icon-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-hover-state( null, var(--kt-primary), null, null, null ); + } +} + +.menu-here-icon-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-here-state( null, var(--kt-primary), null, null, null ); + } +} + +.menu-show-icon-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-show-state( null, var(--kt-primary), null, null, null ); + } +} + +.menu-active-icon-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-active-state( null, var(--kt-primary), null, null, null ); + } +} + +.menu-state-icon-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-hover-state( null, var(--kt-primary), null, null, null ); + @include menu-link-here-state( null, var(--kt-primary), null, null, null ); + @include menu-link-show-state( null, var(--kt-primary), null, null, null ); + @include menu-link-active-state( null, var(--kt-primary), null, null, null ); + } +} + +// Primary bullet color states +.menu-hover-bullet-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-hover-state( null, null, var(--kt-primary), null, null ); + } +} + +.menu-show-bullet-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-show-state( null, null, var(--kt-primary), null, null ); + } +} + +.menu-here-bullet-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-here-state( null, null, var(--kt-primary), null, null ); + } +} + +.menu-active-bullet-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-active-state( null, null, var(--kt-primary), null, null ); + } +} + +.menu-state-bullet-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-hover-state( null, null, var(--kt-primary), null, null ); + @include menu-link-here-state( null, null, var(--kt-primary), null, null ); + @include menu-link-show-state( null, null, var(--kt-primary), null, null ); + @include menu-link-active-state( null, null, var(--kt-primary), null, null ); + } +} + +// Primary arrow color states +.menu-hover-arrow-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-hover-state( null, null, null, var(--kt-primary), null ); + } +} + +.menu-here-arrow-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-here-state( null, null, null, var(--kt-primary), null ); + } +} + +.menu-show-arrow-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-show-state( null, null, null, var(--kt-primary), null ); + } +} + +.menu-active-arrow-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-active-state( null, null, null, var(--kt-primary), null ); + } +} + +.menu-state-arrow-primary { + .menu-item { + //$title-color, $icon-color, $bullet-color, $arrow-color, $bg-color + @include menu-link-hover-state( null, null, null, var(--kt-primary), null ); + @include menu-link-here-state( null, null, null, var(--kt-primary), null ); + @include menu-link-show-state( null, null, null, var(--kt-primary), null ); + @include menu-link-active-state( null, null, null, var(--kt-primary), null ); + } +} diff --git a/src/_metronic/assets/sass/core/components/mixins/_buttons.scss b/src/_metronic/assets/sass/core/components/mixins/_buttons.scss new file mode 100644 index 0000000..fd8ee49 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/mixins/_buttons.scss @@ -0,0 +1,84 @@ +// +// Button Mixins +// + +// Custom variant +@mixin button-custom-variant( + $color, + $icon-color, + $border-color, + $bg-color, + $color-active, + $icon-color-active, + $border-color-active, + $bg-color-active +) { + + @if ( $color != null ) { + color: $color; + } + + @if ( $icon-color != null ) { + i, + .svg-icon { + color: $icon-color; + } + + &.dropdown-toggle:after { + color: $icon-color; + } + } + + @if ( $border-color != null ) { + border-color: $border-color; + } + + @if ( $bg-color != null ) { + background-color: $bg-color; + } + + .btn-check:checked + &, + .btn-check:active + &, + &:focus:not(.btn-active), + &:hover:not(.btn-active), + &:active:not(.btn-active), + &.active, + &.show, + .show > & { + @if ( $color-active != null ) { + color: $color-active; + } + + @if ( $icon-color-active != null ) { + i, + .svg-icon { + color: $icon-color-active; + } + + &.dropdown-toggle:after { + color: $icon-color-active; + } + } + + @if ( $border-color-active != null ) { + border-color: $border-color-active; + } + + @if ( $bg-color-active != null ) { + background-color: $bg-color-active !important; + } + } +} + +@mixin button-active-state() { + .btn-check:checked + &, + .btn-check:active + &, + &:focus:not(.btn-active), + &:hover:not(.btn-active), + &:active:not(.btn-active), + &.active, + &.show, + .show > & { + @content; + } +} diff --git a/src/_metronic/assets/sass/core/components/mixins/_ki.scss b/src/_metronic/assets/sass/core/components/mixins/_ki.scss new file mode 100644 index 0000000..c83273a --- /dev/null +++ b/src/_metronic/assets/sass/core/components/mixins/_ki.scss @@ -0,0 +1,18 @@ +// +// Keenthemes Icons +// + +@mixin ki($icon) { + font-family: Ki; + font-style: normal; + font-weight: normal; + font-variant: normal; + line-height: 1; + text-decoration: inherit; + text-rendering: optimizeLegibility; + text-transform: none; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-smoothing: antialiased; + content: "#{$icon}"; +} diff --git a/src/_metronic/assets/sass/core/components/mixins/_menu.scss b/src/_metronic/assets/sass/core/components/mixins/_menu.scss new file mode 100644 index 0000000..f407618 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/mixins/_menu.scss @@ -0,0 +1,301 @@ +// +// Label +// + +// Set arrow direction +@mixin menu-link-arrow-rotate($angle, $angleRtl) { + /*rtl:ignore*/ + transform: rotateZ($angleRtl); + /*rtl:remove*/ + transform: rotateZ($angle); + transition: $menu-accordion-arrow-transition; +} + +// Set menu link padding x +@mixin menu-link-padding-x($value) { + // Menu item + .menu-item { + .menu-link, + .menu-content { + padding-left: $value; + padding-right: $value; + } + } +} + +// Set menu link padding y +@mixin menu-link-padding-y($value) { + // Menu item + .menu-item { + .menu-link, + .menu-content { + padding-top: $value; + padding-bottom: $value; + } + } +} + +// Set link indention +@mixin menu-link-indention($value, $offset) { + .menu-sub:not([data-popper-placement]) { + > .menu-item, + > .menu-inner > .menu-item { + > .menu-content, + > .menu-link { + padding-left: calc(#{1 * $value} + #{$offset}); + } + + > .menu-sub:not([data-popper-placement]) { + > .menu-item, + > .menu-inner > .menu-item { + > .menu-content, + > .menu-link { + padding-left: calc(#{2 * $value} + #{$offset}); + } + + > .menu-sub:not([data-popper-placement]) { + > .menu-item, + > .menu-inner > .menu-item { + > .menu-content, + > .menu-link { + padding-left: calc(#{3 * $value} + #{$offset}); + } + + > .menu-sub:not([data-popper-placement]) { + > .menu-item, + > .menu-inner > .menu-item { + > .menu-content, + > .menu-link { + padding-left: calc(#{4 * $value} + #{$offset}); + } + } + } + } + } + } + } + } + } + + &.menu-fit { + .menu-sub:not([data-popper-placement]) { + > .menu-item, + > .menu-inner > .menu-item { + > .menu-content, + > .menu-link { + padding-left: #{$value}; + padding-right: 0; + } + + > .menu-sub:not([data-popper-placement]) { + > .menu-item, + > .menu-inner > .menu-item { + > .menu-content, + > .menu-link { + padding-left: calc(#{2 * $value}); + padding-right: 0; + } + + > .menu-sub:not([data-popper-placement]) { + > .menu-item, + > .menu-inner > .menu-item { + > .menu-content, + > .menu-link { + padding-left: calc(#{3 * $value}); + padding-right: 0; + } + + > .menu-sub:not([data-popper-placement]) { + > .menu-item, + > .menu-inner > .menu-item { + > .menu-content, + > .menu-link { + padding-left: calc(#{4 * $value}); + padding-right: 0; + } + } + } + } + } + } + } + } + } + } +} + +// Set sub indention +@mixin menu-sub-indention($value) { + .menu-sub:not([data-popper-placement]) { + margin-left: $value; + } +} + +// Set menu link theme +@mixin menu-link-theme($title-color, $icon-color, $bullet-color, $arrow-color, $bg-color: null) { + @if ( $bg-color != null ) { + background-color: $bg-color; + } + + @if ( $title-color != null ) { + color: $title-color; + + .menu-title { + color: $title-color; + } + } + + @if ( $icon-color != null ) { + .menu-icon { + &, + .svg-icon, + i { + color: $icon-color; + } + } + } + + @if ( $bullet-color != null ) { + .menu-bullet { + .bullet { + background-color: $bullet-color; + } + } + } + + @if ( $arrow-color != null ) { + // Arrow + .menu-arrow:after { + @include svg-bg-icon(arrow-start, $arrow-color); + /*rtl:begin:remove*/ + @include svg-bg-icon(arrow-end, $arrow-color); + /*rtl:end:remove*/ + } + } +} + +// Set menu link default state +@mixin menu-link-default-state($title-color, $icon-color, $bullet-color, $arrow-color, $bg-color: null, $all-links: true) { + $sel: ''; + + @if ($all-links == false) { + $sel: '& > '; + } + + #{$sel}.menu-link { + @include menu-link-theme($title-color, $icon-color, $bullet-color, $arrow-color, $bg-color); + } +} + +// Set menu link hover state +@mixin menu-link-hover-state($title-color, $icon-color, $bullet-color, $arrow-color, $bg-color: null, $all-links: true) { + $sel: '&:not(.here) '; + + @if ($all-links == false) { + $sel: '&:not(.here) > '; + } + + &.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), + #{$sel}.menu-link:hover:not(.disabled):not(.active):not(.here) { + transition: $transition-link; + + @include menu-link-theme($title-color, $icon-color, $bullet-color, $arrow-color, $bg-color); + } +} + +// Set menu link active state +@mixin menu-link-active-state($title-color, $icon-color, $bullet-color, $arrow-color, $bg-color: null, $all-links: true) { + $sel: ''; + + @if ($all-links == false) { + $sel: '& > '; + } + + #{$sel}.menu-link.active { + transition: $transition-link; + + @include menu-link-theme($title-color, $icon-color, $bullet-color, $arrow-color, $bg-color); + } +} + +// Set menu link show state +@mixin menu-link-show-state($title-color, $icon-color, $bullet-color, $arrow-color, $bg-color: null, $all-links: true) { + //&.here > .menu-link, + &.show > .menu-link { + transition: $transition-link; + + @include menu-link-theme($title-color, $icon-color, $bullet-color, $arrow-color, $bg-color); + } +} + +// Set menu link here state +@mixin menu-link-here-state($title-color, $icon-color, $bullet-color, $arrow-color, $bg-color: null, $all-links: true) { + &.here > .menu-link { + transition: $transition-link; + + @include menu-link-theme($title-color, $icon-color, $bullet-color, $arrow-color, $bg-color); + } +} + +// Set menu link default +@mixin menu-link-default($all-links: true) { + $sel: ''; + + @if ($all-links == false) { + $sel: '& > '; + } + + #{$sel}.menu-link { + @content; + } +} + +// Set menu link hover +@mixin menu-link-hover($all-links: true) { + $sel: '&:not(.here) '; + + @if ($all-links == false) { + $sel: '&:not(.here) > '; + } + + &.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), + #{$sel}.menu-link:hover:not(.disabled):not(.active):not(.here) { + transition: $transition-link; + + @content; + } +} + +// Set menu link active +@mixin menu-link-active($all-links: true) { + $sel: ''; + + @if ($all-links == false) { + $sel: '& > '; + } + + #{$sel}.menu-link.active { + transition: $transition-link; + + @content; + } +} + +// Set menu link show +@mixin menu-link-show($all-links: true) { + //&.here > .menu-link, + &.show > .menu-link { + transition: $transition-link; + + @content; + } +} + +// Set menu link here +@mixin menu-link-here($all-links: true) { + &.here > .menu-link { + transition: $transition-link; + + @content; + } +} diff --git a/src/_metronic/assets/sass/core/components/mixins/_popover.scss b/src/_metronic/assets/sass/core/components/mixins/_popover.scss new file mode 100644 index 0000000..d9f9b0d --- /dev/null +++ b/src/_metronic/assets/sass/core/components/mixins/_popover.scss @@ -0,0 +1,74 @@ +// +// Popover Mixin +// + +@mixin popover-theme($bg-color, $border-color, $header-bg-color, $header-color, $body-color, $arrow-outer-color, $arrow-color) { + background-color: $bg-color; + border: 0; + + // Header + .popover-header { + background-color: $header-bg-color; + color: $header-color; + border-bottom-color: $border-color; + } + + // Body + .popover-body { + color: $body-color; + } + + // Arrows + &.bs-popover-top { + > .popover-arrow { + &::before { + border-top-color: $arrow-outer-color; + } + + &::after { + border-top-color: $arrow-color; + } + } + } + + &.bs-popover-end { + > .popover-arrow { + &::before { + border-right-color: $arrow-outer-color; + } + + &::after { + border-right-color: $arrow-color; + } + } + } + + &.bs-popover-bottom { + > .popover-arrow { + &::before { + border-bottom-color: $arrow-outer-color; + } + + &::after { + border-bottom-color: $arrow-color; + } + } + + // This will remove the popover-header's border just below the arrow + .popover-header::before { + border-bottom-color: $header-bg-color; + } + } + + &.bs-popover-start { + > .popover-arrow { + &::before { + border-left-color: $arrow-outer-color; + } + + &::after { + border-left-color: $arrow-color; + } + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/mixins/_scroll.scss b/src/_metronic/assets/sass/core/components/mixins/_scroll.scss new file mode 100644 index 0000000..e1bd6f7 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/mixins/_scroll.scss @@ -0,0 +1,34 @@ +// +// Scroll mixins +// + +@mixin scrollbar-color($color, $hover-color: null) { + // Firefox + scrollbar-color: $color transparent; + + // Webkit + &::-webkit-scrollbar-thumb { + background-color: $color; + } + + &::-webkit-scrollbar-corner { + background-color: transparent; + } + + @if ($hover-color != null) { + // Hover state + &:hover { + // Firefox + scrollbar-color: $hover-color transparent; + + // Webkit + &::-webkit-scrollbar-thumb { + background-color: $hover-color; + } + + &::-webkit-scrollbar-corner { + background-color: transparent; + } + } + } +} diff --git a/src/_metronic/assets/sass/core/components/mixins/_shape.scss b/src/_metronic/assets/sass/core/components/mixins/_shape.scss new file mode 100644 index 0000000..3395df0 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/mixins/_shape.scss @@ -0,0 +1,29 @@ + +@use 'sass:math'; + +@mixin shape($edges-number: 6, $main-radius: 30%, $rounding-radius: 10%, $rotated: true, $precision: 20) { + $central-angle: divide(360deg, $edges-number); + $angle: ($edges-number - 2) * divide(180deg, $edges-number); + $max-var-angle: 2 * (90deg - divide($angle, 2)); + $precision: 6; + $unit-var-angle: divide($max-var-angle, $precision); + $r-diff: $main-radius + $rounding-radius; + + $points: (); + + @for $i from 0 to $edges-number { + $vertex-angle: $i * $central-angle + if($rotated, -90deg, 0deg); + $vertex-x: 50% + $r-diff * math.cos($vertex-angle); + $vertex-y: 50% + $r-diff * math.sin($vertex-angle); + + @for $j from 0 through $precision { + $curr-angle: $vertex-angle + ($j - 0.5 * $precision) * $unit-var-angle; + $x: $vertex-x + $rounding-radius * math.cos($curr-angle); + $y: $vertex-y + $rounding-radius * math.sin($curr-angle); + + $points: $points, $x $y; + } + } + + clip-path: polygon($points); +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/mixins/_svg-bg-icon.scss b/src/_metronic/assets/sass/core/components/mixins/_svg-bg-icon.scss new file mode 100644 index 0000000..48ee125 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/mixins/_svg-bg-icon.scss @@ -0,0 +1,68 @@ +// +// SVG Bg Icons +// + +@mixin svg-bg-icon($type, $color: none, $update: false) { + $bg-image: ''; + + // Icon type; + @if ($type == close) { + $bg-image: url("data:image/svg+xml,"); + } + + @if ($type == check) { + $bg-image: url("data:image/svg+xml,"); + } + + @if ($type == arrow-top) { + $bg-image: url("data:image/svg+xml,"); + } + + @if ($type == arrow-bottom) { + $bg-image: url("data:image/svg+xml,"); + } + + @if ($type == arrow-start) { + $bg-image: url("data:image/svg+xml,"); + } + + @if ($type == arrow-end) { + $bg-image: url("data:image/svg+xml,"); + } + + @if ($type == sort) { + $bg-image: url("data:image/svg+xml,"); + } + + @if ($type == sort-asc) { + $bg-image: url("data:image/svg+xml,"); + } + + @if ($type == sort-desc) { + $bg-image: url("data:image/svg+xml,"); + } + + @if ($type == expand) { + $bg-image: url("data:image/svg+xml,"); + } + + @if ($type == collapse) { + $bg-image: url("data:image/svg+xml,"); + } + + // Icon style + @if $update == false { + mask-repeat: no-repeat; + mask-position: center; + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: center; + } + + @if $color != none { + background-color: $color; + } + + -webkit-mask-image: escape-svg($bg-image); + mask-image: escape-svg($bg-image); +} + diff --git a/src/_metronic/assets/sass/core/components/mixins/_svg-icon.scss b/src/_metronic/assets/sass/core/components/mixins/_svg-icon.scss new file mode 100644 index 0000000..35da08c --- /dev/null +++ b/src/_metronic/assets/sass/core/components/mixins/_svg-icon.scss @@ -0,0 +1,11 @@ +// +// SVG Icon +// + + +@mixin svg-icon-size($size, $important: false) { + svg { + height: $size valueif($important, !important, null); + width: $size valueif($important, !important, null); + } +} diff --git a/src/_metronic/assets/sass/core/components/mixins/_symbol.scss b/src/_metronic/assets/sass/core/components/mixins/_symbol.scss new file mode 100644 index 0000000..904f394 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/mixins/_symbol.scss @@ -0,0 +1,42 @@ +// +// Symbol +// + +@mixin symbol-size($size) { + > img { + width: $size; + height: $size; + } + + .symbol-label { + width: $size; + height: $size; + } + + &.symbol-fixed { + .symbol-label { + width: $size; + height: $size; + } + + > img { + width: $size; + height: $size; + max-width: none; + } + } + + // Ratios + &.symbol-2by3 { + .symbol-label { + height: $size; + width: $size * divide(3, 2); + } + + > img { + height: $size; + width: $size * divide(3, 2); + max-width: none; + } + } +} diff --git a/src/_metronic/assets/sass/core/components/mixins/_theme-mode.scss b/src/_metronic/assets/sass/core/components/mixins/_theme-mode.scss new file mode 100644 index 0000000..02eee57 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/mixins/_theme-mode.scss @@ -0,0 +1,15 @@ +// +// Theme Mode +// + +@mixin theme-light() { + html:not([data-theme="dark"]) { + @content; + } +} + +@mixin theme-dark() { + [data-theme="dark"] { + @content; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/mixins/_tooltip.scss b/src/_metronic/assets/sass/core/components/mixins/_tooltip.scss new file mode 100644 index 0000000..63269a2 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/mixins/_tooltip.scss @@ -0,0 +1,43 @@ +// +// Tooltip Mixin +// + +@mixin tooltip-theme($bg-color, $color, $arrow-color) { + .tooltip-inner { + color: $color; + background-color: $bg-color; + } + + // Arrows + &.bs-tooltip-top { + .tooltip-arrow { + &::before { + border-top-color: $arrow-color; + } + } + } + + &.bs-tooltip-end { + .tooltip-arrow { + &::before { + border-right-color: $arrow-color; + } + } + } + + &.bs-tooltip-bottom { + .tooltip-arrow { + &::before { + border-bottom-color: $arrow-color; + } + } + } + + &.bs-tooltip-start { + .tooltip-arrow { + &::before { + border-left-color: $arrow-color; + } + } + } +} diff --git a/src/_metronic/assets/sass/core/components/stepper/_base.scss b/src/_metronic/assets/sass/core/components/stepper/_base.scss new file mode 100644 index 0000000..9e23710 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/stepper/_base.scss @@ -0,0 +1,102 @@ +// +// Stepper +// + +// Base +.stepper { + // Content + [data-kt-stepper-element="info"], + [data-kt-stepper-element="content"] { + display: none; + + &.current { + display: flex; + } + } + + // Enable cursor pointer on clickable steppers + .stepper-item[data-kt-stepper-action="step"] { + cursor: pointer; + } + + // States + & { + [data-kt-stepper-action="final"] { + display: none; + } + + [data-kt-stepper-action="previous"] { + display: none; + } + + [data-kt-stepper-action="next"] { + display: inline-block; + } + + [data-kt-stepper-action="submit"] { + display: none; + } + } + + &.first { + [data-kt-stepper-action="previous"] { + display: none; + } + + [data-kt-stepper-action="next"] { + display: inline-block; + } + + [data-kt-stepper-action="submit"] { + display: none; + } + } + + &.between { + [data-kt-stepper-action="previous"] { + display: inline-block; + } + + [data-kt-stepper-action="next"] { + display: inline-block; + } + + [data-kt-stepper-action="submit"] { + display: none; + } + } + + &.last { + [data-kt-stepper-action="final"] { + display: inline-block; + } + + [data-kt-stepper-action="final"].btn-flex { + display: flex; + } + + [data-kt-stepper-action="previous"] { + display: inline-block; + } + + [data-kt-stepper-action="previous"].btn-flex { + display: flex; + } + + [data-kt-stepper-action="next"] { + display: none; + } + + [data-kt-stepper-action="next"].btn-flex { + display: flex; + } + + [data-kt-stepper-action="submit"] { + display: inline-block; + } + + [data-kt-stepper-action="submit"].btn-flex { + display: flex; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/stepper/_links.scss b/src/_metronic/assets/sass/core/components/stepper/_links.scss new file mode 100644 index 0000000..048ec51 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/stepper/_links.scss @@ -0,0 +1,57 @@ +// +// Stepper Links +// + +// Base +.stepper.stepper-links { + .stepper-nav { + display: flex; + margin: 0 auto; + justify-content: center; + align-items: center; + flex-wrap: wrap; + + .stepper-item { + position: relative; + flex-shrink: 0; + margin: 1rem 1.5rem; + + &:after { + content: " "; + position: absolute; + top: 2.3rem; + left: 0; + height: 2px; + width: 100%; + background-color: transparent; + transition: $transition-link; + } + + .stepper-title { + color: var(--kt-dark); + font-weight: 600; + font-size: 1.25rem; + } + + // Current + &.current { + transition: $transition-link; + + .stepper-title { + color: var(--kt-primary); + } + + &:after { + background-color: var(--kt-primary); + } + } + + &.current.mark-completed:last-child, + &.completed { + .stepper-title { + color: var(--kt-gray-400); + } + } + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/components/stepper/_pills.scss b/src/_metronic/assets/sass/core/components/stepper/_pills.scss new file mode 100644 index 0000000..9f1c222 --- /dev/null +++ b/src/_metronic/assets/sass/core/components/stepper/_pills.scss @@ -0,0 +1,201 @@ +// +// Stepper Pills +// + +// Base +.stepper.stepper-pills { + --kt-stepper-pills-size: 40px; + --kt-stepper-icon-border-radius: 9px; + --kt-stepper-icon-check-size: 1rem; + + --kt-stepper-icon-bg-color: var(--kt-primary-light); + --kt-stepper-icon-bg-color-current: var(--kt-primary); + --kt-stepper-icon-bg-color-completed: var(--kt-primary-light); + + --kt-stepper-icon-border: 0; + --kt-stepper-icon-border-current: 0; + --kt-stepper-icon-border-completed: 0; + + --kt-stepper-icon-number-color: var(--kt-primary); + --kt-stepper-icon-number-color-current: var(--kt-white); + + --kt-stepper-icon-check-color-completed: var(--kt-primary); + + --kt-stepper-label-title-opacity: 1; + --kt-stepper-label-title-opacity-current: 1; + --kt-stepper-label-title-opacity-completed: 1; + + --kt-stepper-label-title-color: var(--kt-gray-800); + --kt-stepper-label-title-color-current: var(--kt-gray-600); + --kt-stepper-label-title-color-completed: var(--kt-text-muted); + + --kt-stepper-label-desc-opacity: 1; + --kt-stepper-label-desc-opacity-current: 1; + --kt-stepper-label-desc-opacity-completed: 1; + + --kt-stepper-label-desc-color: var(--kt-text-muted); + --kt-stepper-label-desc-color-current: var(--kt-text-400); + --kt-stepper-label-desc-color-completed: var(--kt-gray-400); + + --kt-stepper-line-border: 1px dashed var(--kt-gray-300); + + // Nav + .stepper-nav { + display: flex; + } + + // Item + .stepper-item { + display: flex; + align-items: center; + transition: $transition-link; + + // Icon + .stepper-icon { + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + transition: $transition-link; + width: var(--kt-stepper-pills-size); + height: var(--kt-stepper-pills-size); + border-radius: var(--kt-stepper-icon-border-radius); + background-color: var(--kt-stepper-icon-bg-color); + border: var(--kt-stepper-icon-border); + margin-right: 1.5rem; + + .stepper-check { + display: none; + font-size: var(--kt-stepper-icon-check-size); + } + + .stepper-number { + font-weight: $font-weight-bold; + color: var(--kt-stepper-icon-number-color); + font-size: 1.25rem; + } + } + + // Label + .stepper-label { + display: flex; + flex-direction: column; + justify-content: center; + + .stepper-title { + color: var(--kt-stepper-label-title-color); + opacity: var(--kt-stepper-label-title-opacity); + font-weight: 600; + font-size: 1.25rem; + margin-bottom: .3rem; + } + + .stepper-desc { + opacity: var(--kt-stepper-label-desc-opacity); + color: var(--kt-stepper-label-desc-color); + } + } + + // Current + &.current { + transition: $transition-link; + + .stepper-icon { + transition: $transition-link; + background-color: var(--kt-stepper-icon-bg-color-current); + border: var(--kt-stepper-icon-border-current); + + .stepper-check { + display: none; + } + + .stepper-number { + color: var(--kt-stepper-icon-number-color-current); + font-size: 1.35rem; + } + } + + .stepper-label { + .stepper-title { + opacity: var(--kt-stepper-label-title-opacity-current); + color: var(--kt-stepper-label-title-color-current); + } + + .stepper-desc { + opacity: var(--kt-stepper-label-desc-opacity-current); + color: var(--kt-stepper-label-desc-color-current); + } + } + } + + // Completed + &.current.mark-completed:last-child, + &.completed { + .stepper-icon { + transition: $transition-link; + background-color: var(--kt-stepper-icon-bg-color-completed); + border: var(--kt-stepper-icon-border-completed); + + .stepper-check { + color: var(--kt-stepper-icon-check-color-completed); + display: inline-block; + } + + .stepper-number { + display: none; + } + } + + .stepper-label { + .stepper-title { + opacity: var(--kt-stepper-label-title-opacity-completed); + color: var(--kt-stepper-label-title-color-completed); + } + + .stepper-desc { + opacity: var(--kt-stepper-label-desc-opacity-completed); + color: var(--kt-stepper-label-desc-color-completed); + } + } + } + } + + // Column + &.stepper-column { + // Nav + .stepper-nav { + flex-direction: column; + align-items: start; + } + + // Item + .stepper-item { + flex-direction: column; + justify-content: start; + align-items: stretch; + padding: 0; + margin: 0; + } + + // Wrapper + .stepper-wrapper { + display: flex; + align-items: center; + } + + // Icon + .stepper-icon { + z-index: 1; + } + + // Line + .stepper-line { + display: block; + flex-grow: 1; + margin-left: calc(var(--kt-stepper-pills-size) / 2); + border-left: var(--kt-stepper-line-border); + margin-top: 2px; + margin-bottom: 2px; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/_base.scss b/src/_metronic/assets/sass/core/layout/_base.scss new file mode 100644 index 0000000..a2d8e61 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/_base.scss @@ -0,0 +1,50 @@ +// +// Root +// + +html { + font-family: sans-serif; + text-size-adjust: 100%; +} + +html, +body { + height: 100%; + margin: 0px; + padding: 0px; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-size: $root-font-size !important; + font-weight: $font-weight-base; + font-family: $font-family-sans-serif; + + // Tablet mode + @include media-breakpoint-down(lg) { + font-size: $root-font-size-lg !important; + } + + // Mobile mode + @include media-breakpoint-down(md) { + font-size: $root-font-size-md !important; + } +} + +body { + display: flex; + flex-direction: column; + + a:hover, + a:active, + a:focus { + text-decoration: none !important; + } +} + +canvas { + user-select: none; +} + +// Angular integration +router-outlet { + display: none; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_container.scss b/src/_metronic/assets/sass/core/layout/base/_container.scss new file mode 100644 index 0000000..8e19b06 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_container.scss @@ -0,0 +1,30 @@ +// +// Container +// + +// Desktop mode +@include media-breakpoint-up(lg) { + .app-container { + padding-left: $app-container-padding-x !important; + padding-right: $app-container-padding-x !important; + } + + .app-container-fit-desktop { + padding-left: 0 !important; + padding-right: 0 !important; + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + .app-container { + max-width: none; + padding-left: $app-container-padding-x-mobile !important; + padding-right: $app-container-padding-x-mobile !important; + } + + .app-container-fit-mobile { + padding-left: 0 !important; + padding-right: 0 !important; + } +} diff --git a/src/_metronic/assets/sass/core/layout/base/_content.scss b/src/_metronic/assets/sass/core/layout/base/_content.scss new file mode 100644 index 0000000..6f9992e --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_content.scss @@ -0,0 +1,24 @@ +// +// Content +// + +// Desktop mode +@include media-breakpoint-up(lg) { + .app-content { + padding-top: $app-content-padding-y; + padding-bottom: $app-content-padding-y; + padding-left: $app-content-padding-x; + padding-right: $app-content-padding-x; + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + .app-content { + max-width: none; + padding-top: $app-content-padding-y-mobile; + padding-bottom: $app-content-padding-y-mobile; + padding-left: $app-content-padding-x-mobile; + padding-right: $app-content-padding-x-mobile; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_footer.scss b/src/_metronic/assets/sass/core/layout/base/_footer.scss new file mode 100644 index 0000000..015a185 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_footer.scss @@ -0,0 +1,103 @@ +// +// Footer +// + +// General mode +.app-footer { + transition: $app-footer-transition; + display: flex; + align-items: stretch; +} + +// Desktop mode +@include media-breakpoint-up(lg) { + // Base + .app-footer { + @include property( z-index, $app-footer-z-index); + + background-color: var(--kt-app-footer-bg-color); + box-shadow: var(--kt-app-footer-box-shadow); + border-top: var(--kt-app-footer-border-top); + } + + // Vars + :root { + --kt-app-footer-height: #{$app-footer-height}; + } + + // States + .app-footer { + height: var(--kt-app-footer-height); + + [data-kt-app-footer-fixed="true"] & { + @include property( z-index, $app-footer-fixed-z-index); + position: fixed; + left: 0; + right: 0; + bottom: 0; + } + } + + // Integration + .app-footer { + // Sidebar + [data-kt-app-sidebar-fixed="true"][data-kt-app-sidebar-push-footer="true"] & { + left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + ); + } + + // Sidebar Panel + [data-kt-app-sidebar-panel-fixed="true"][data-kt-app-sidebar-panel-push-footer="true"] & { + left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + + var(--kt-app-sidebar-panel-width) + + var(--kt-app-sidebar-panel-gap-start, 0px) + + var(--kt-app-sidebar-panel-gap-end, 0px) + ); + } + + // Aside + [data-kt-app-aside-fixed="true"][data-kt-app-aside-push-footer="true"] & { + right: calc( + var(--kt-app-aside-width) + + var(--kt-app-aside-gap-start, 0px) + + var(--kt-app-aside-gap-end, 0px) + ); + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Base + .app-footer { + @include property( z-index, $app-footer-z-index-mobile); + + background-color: var(--kt-app-footer-bg-color-mobile); + box-shadow: var(--kt-app-footer-box-shadow-mobile); + border-top: var(--kt-app-footer-border-top-mobile); + } + + // Vars + body { + --kt-app-footer-height: #{$app-footer-height-mobile}; + } + + // States + .app-footer { + height: var(--kt-app-footer-height); + + [data-kt-app-footer-fixed-mobile="true"] & { + @include property( z-index, $app-footer-fixed-z-index-mobile); + position: fixed; + left: 0; + right: 0; + bottom: 0; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_hero.scss b/src/_metronic/assets/sass/core/layout/base/_hero.scss new file mode 100644 index 0000000..7f843f2 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_hero.scss @@ -0,0 +1,13 @@ +// +// Hero +// + +// General mode +.app-hero { + display: flex; + align-items: stretch; + background-color: var(--kt-app-hero-bg-color); + box-shadow: var(--kt-app-hero-box-shadow); + border-top: var(--kt-app-hero-border-top); + border-bottom: var(--kt-app-hero-border-bottom); +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_layout-builder.scss b/src/_metronic/assets/sass/core/layout/base/_layout-builder.scss new file mode 100644 index 0000000..513db2a --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_layout-builder.scss @@ -0,0 +1,19 @@ +// +// Layout builder +// + +// General mode +.app-layout-builder-toggle { + position: fixed; + z-index: $app-layout-builder-toggle-z-index; + bottom: $app-layout-builder-toggle-bottom; + right: $app-layout-builder-toggle-end; +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + .app-layout-builder-toggle { + bottom: $app-layout-builder-toggle-bottom-mobile; + right: $app-layout-builder-toggle-end-mobile; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_layout.scss b/src/_metronic/assets/sass/core/layout/base/_layout.scss new file mode 100644 index 0000000..e5e3c96 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_layout.scss @@ -0,0 +1,28 @@ +// +// App Layout +// + +@import "mixins/layout-minimize"; +@import "mixins/layout-transition"; +@import "root"; +@import "reboot"; +@import "page"; +@import "page-loader"; +@import "container"; +@import "print"; +@import "navbar"; +@import "header/header"; +@import "header/header-primary"; +@import "header/header-secondary"; +@import "toolbar"; +@import "hero"; +@import "sidebar/sidebar"; +@import "sidebar/sidebar-primary"; +@import "sidebar/sidebar-secondary"; +@import "sidebar/sidebar-panel"; +@import "aside/aside"; +@import "wrapper"; +@import "main"; +@import "content"; +@import "footer"; +@import "layout-builder"; \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_main.scss b/src/_metronic/assets/sass/core/layout/base/_main.scss new file mode 100644 index 0000000..1d25756 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_main.scss @@ -0,0 +1,75 @@ +// +// Main +// + +// General mode +.app-main { + display: flex; +} + +// Desktop mode +@include media-breakpoint-up(lg) { + // Base + .app-main { + transition: $app-main-transition; + + @include property( padding-left, $app-main-padding-x ); + @include property( padding-right, $app-main-padding-x ); + @include property( padding-top, $app-main-padding-y ); + @include property( padding-bottom, $app-main-padding-y ); + + @include property( margin-left, $app-main-margin-x ); + @include property( margin-right, $app-main-margin-x ); + @include property( margin-top, $app-main-margin-y ); + @include property( margin-bottom, $app-main-margin-y ); + } + + // Integration + .app-main { + // Sidebar + [data-kt-app-sidebar-sticky="true"] & { + margin-left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + ); + } + + // Sidebar Panel + [data-kt-app-sidebar-panel-sticky="true"] & { + margin-left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + + var(--kt-app-sidebar-panel-width) + + var(--kt-app-sidebar-panel-gap-start, 0px) + + var(--kt-app-sidebar-panel-gap-end, 0px) + ); + } + + // Aside + [data-kt-app-aside-sticky="true"] & { + margin-right: calc( + var(--kt-app-aside-width) + + var(--kt-app-aside-gap-start, 0px) + + var(--kt-app-aside-gap-end, 0px) + ); + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Base + .app-main { + @include property( padding-left, $app-main-padding-x-mobile ); + @include property( padding-right, $app-main-padding-x-mobile ); + @include property( padding-top, $app-main-padding-y-mobile ); + @include property( padding-bottom, $app-main-padding-y-mobile ); + + @include property( margin-left, $app-main-margin-x-mobile ); + @include property( margin-right, $app-main-margin-x-mobile ); + @include property( margin-top, $app-main-margin-y-mobile ); + @include property( margin-bottom, $app-main-margin-y-mobile ); + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_navbar.scss b/src/_metronic/assets/sass/core/layout/base/_navbar.scss new file mode 100644 index 0000000..a6d329c --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_navbar.scss @@ -0,0 +1,19 @@ +// +// App Navbar +// + +.app-navbar { + display: flex; + align-items: stretch; + + .app-navbar-item { + display: flex; + align-items: center; + } + + &.app-navbar-stretch { + .app-navbar-item { + align-items: stretch; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_page-loader.scss b/src/_metronic/assets/sass/core/layout/base/_page-loader.scss new file mode 100644 index 0000000..8ed8bfd --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_page-loader.scss @@ -0,0 +1,31 @@ +// +// Page loader +// + +// CSS3 Transitions only after page load(data-kt-app-page-loading="on" attribute added to body tag and removed with JS on page loaded) +[data-kt-app-page-loading="on"] { + overflow: hidden; +} + +[data-kt-app-page-loading="on"] * { + transition: none !important; +} + +// Base +.app-page-loader { + background: var(--kt-body-bg); + color: var(--kt-body-color); + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 10000; + display: none; + + [data-kt-app-page-loading="on"] & { + display: flex; + justify-content: center; + align-items: center; + } +} diff --git a/src/_metronic/assets/sass/core/layout/base/_page.scss b/src/_metronic/assets/sass/core/layout/base/_page.scss new file mode 100644 index 0000000..78ec216 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_page.scss @@ -0,0 +1,7 @@ +// +// Page +// + +.app-page { + display: flex; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_print.scss b/src/_metronic/assets/sass/core/layout/base/_print.scss new file mode 100644 index 0000000..c4c76cb --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_print.scss @@ -0,0 +1,34 @@ +// +// Print +// + +// Add .app-print-content-only class to body element in order to allow printing only the content area +@media print { + .app-print-content-only { + padding: 0 !important; + background: none !important; + + .app-wrapper, + .app-page, + .app-page-title, + .app-content, + .app-container { + background: none !important; + padding: 0 !important; + margin: 0 !important; + } + + .app-aside, + .app-aside-panel, + .app-sidebar, + .app-sidebar-panel, + .app-header, + .app-footer, + .app-toolbar, + .drawer, + .scrolltop, + .btn { + display: none !important; + } + } +} diff --git a/src/_metronic/assets/sass/core/layout/base/_reboot.scss b/src/_metronic/assets/sass/core/layout/base/_reboot.scss new file mode 100644 index 0000000..eaa8c5f --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_reboot.scss @@ -0,0 +1,65 @@ +// +// Reboot +// + +html { + font-family: sans-serif; + text-size-adjust: 100%; +} + +html, +body { + height: 100%; + margin: 0px; + padding: 0px; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-size: $app-general-root-font-size-desktop !important; + font-weight: $font-weight-base; + font-family: $font-family-sans-serif; + + // Tablet mode + @include media-breakpoint-down(lg) { + font-size: $app-general-root-font-size-tablet !important; + } + + // Mobile mode + @include media-breakpoint-down(md) { + font-size: $app-general-root-font-size-mobile !important; + } +} + +body { + display: flex; + flex-direction: column; + + a:hover, + a:active, + a:focus { + text-decoration: none !important; + } +} + +canvas { + user-select: none; +} + +// Angular integration +router-outlet { + display: none; +} + +// Layouts +body, +.app-default { + background-color: var(--kt-app-bg-color); +} + +.app-blank { + background-color: var(--kt-app-blank-bg-color); +} + +// Reset CSS3 Transitions for child elements +[data-kt-app-reset-transition="true"] * { + transition: none !important; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_root.scss b/src/_metronic/assets/sass/core/layout/base/_root.scss new file mode 100644 index 0000000..f1c7ccd --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_root.scss @@ -0,0 +1,496 @@ +// +// Root +// + +:root, +[data-theme="light"] { + // Layouts + @include property(--kt-app-bg-color, $app-bg-color); + @include property(--kt-app-blank-bg-color, $app-blank-bg-color); + + // Header base + @include property(--kt-app-header-base-bg-color, $app-header-base-bg-color); + @include property(--kt-app-header-base-bg-color-mobile, $app-header-base-bg-color-mobile); + @include property(--kt-app-header-base-box-shadow, $app-header-base-box-shadow); + @include property(--kt-app-header-base-box-shadow-mobile, $app-header-base-box-shadow-mobile); + @include property(--kt-app-header-base-border-bottom, $app-header-base-border-bottom); + @include property(--kt-app-header-base-border-bottom-mobile, $app-header-base-border-bottom-mobile); + + // Header minimize + @include property(--kt-app-header-minimize-bg-color, $app-header-minimize-bg-color); + @include property(--kt-app-header-minimize-bg-color-mobile, $app-header-minimize-bg-color-mobile); + @include property(--kt-app-header-minimize-box-shadow, $app-header-minimize-box-shadow); + @include property(--kt-app-header-minimize-box-shadow-mobile, $app-header-minimize-box-shadow-mobile); + @include property(--kt-app-header-minimize-border-bottom, $app-header-minimize-border-bottom); + @include property(--kt-app-header-minimize-border-bottom-mobile, $app-header-minimize-border-bottom-mobile); + + // Header sticky + @include property(--kt-app-header-sticky-bg-color, $app-header-sticky-bg-color); + @include property(--kt-app-header-sticky-bg-color-mobile, $app-header-sticky-bg-color-mobile); + @include property(--kt-app-header-sticky-box-shadow, $app-header-sticky-box-shadow); + @include property(--kt-app-header-sticky-box-shadow-mobile, $app-header-sticky-box-shadow-mobile); + @include property(--kt-app-header-sticky-border-bottom, $app-header-sticky-border-bottom); + @include property(--kt-app-header-sticky-border-bottom-mobile, $app-header-sticky-border-bottom-mobile); + + // Header primary + @include property(--kt-app-header-primary-base-bg-color, $app-header-primary-base-bg-color); + @include property(--kt-app-header-primary-base-bg-color-mobile, $app-header-primary-base-bg-color-mobile); + @include property(--kt-app-header-primary-base-box-shadow, $app-header-primary-base-box-shadow); + @include property(--kt-app-header-primary-base-box-shadow-mobile, $app-header-primary-base-box-shadow-mobile); + @include property(--kt-app-header-primary-base-border-bottom, $app-header-primary-base-border-bottom); + @include property(--kt-app-header-primary-base-border-bottom-mobile, $app-header-primary-base-border-bottom-mobile); + + @include property(--kt-app-header-primary-minimize-bg-color, $app-header-primary-minimize-bg-color); + @include property(--kt-app-header-primary-minimize-box-shadow, $app-header-primary-minimize-box-shadow); + @include property(--kt-app-header-primary-minimize-border-top, $app-header-primary-minimize-border-top); + @include property(--kt-app-header-primary-minimize-border-bottom, $app-header-primary-minimize-border-bottom); + + @include property(--kt-app-header-primary-sticky-bg-color, $app-header-primary-sticky-bg-color); + @include property(--kt-app-header-primary-sticky-box-shadow, $app-header-primary-sticky-box-shadow); + @include property(--kt-app-header-primary-sticky-border-top, $app-header-primary-sticky-border-top); + @include property(--kt-app-header-primary-sticky-border-bottom, $app-header-primary-sticky-border-bottom); + + // Header secondary + @include property(--kt-app-header-secondary-base-bg-color, $app-header-secondary-base-bg-color); + @include property(--kt-app-header-secondary-base-bg-color-mobile, $app-header-secondary-base-bg-color-mobile); + @include property(--kt-app-header-secondary-base-box-shadow, $app-header-secondary-base-box-shadow); + @include property(--kt-app-header-secondary-base-box-shadow-mobile, $app-header-secondary-base-box-shadow-mobile); + @include property(--kt-app-header-secondary-base-border-top, $app-header-secondary-base-border-top); + @include property(--kt-app-header-secondary-base-border-bottom, $app-header-secondary-base-border-bottom); + @include property(--kt-app-header-secondary-base-border-start-mobile, $app-header-secondary-base-border-bottom); + @include property(--kt-app-header-secondary-base-border-end-mobile, $app-header-secondary-base-border-end-mobile); + + // Header secondary minimize + @include property(--kt-app-header-secondary-minimize-bg-color, $app-header-secondary-minimize-bg-color); + @include property(--kt-app-header-secondary-minimize-box-shadow, $app-header-secondary-minimize-box-shadow); + @include property(--kt-app-header-secondary-minimize-border-top, $app-header-secondary-minimize-border-top); + @include property(--kt-app-header-secondary-minimize-border-bottom, $app-header-secondary-minimize-border-bottom); + + // Header secondary sticky + @include property(--kt-app-header-secondary-sticky-bg-color, $app-header-secondary-sticky-bg-color); + @include property(--kt-app-header-secondary-sticky-box-shadow, $app-header-secondary-sticky-box-shadow); + @include property(--kt-app-header-secondary-sticky-border-top, $app-header-secondary-sticky-border-top); + @include property(--kt-app-header-secondary-sticky-border-bottom, $app-header-secondary-sticky-border-bottom); + + // Toolbar base + @include property(--kt-app-toolbar-base-bg-color, $app-toolbar-base-bg-color); + @include property(--kt-app-toolbar-base-bg-color-mobile, $app-toolbar-base-bg-color-mobile); + @include property(--kt-app-toolbar-base-box-shadow, $app-toolbar-base-box-shadow); + @include property(--kt-app-toolbar-base-box-shadow-mobile, $app-toolbar-base-box-shadow-mobile); + @include property(--kt-app-toolbar-base-border-top, $app-toolbar-base-border-top); + @include property(--kt-app-toolbar-base-border-top-mobile, $app-toolbar-base-border-top-mobile); + @include property(--kt-app-toolbar-base-border-bottom, $app-toolbar-base-border-bottom); + @include property(--kt-app-toolbar-base-border-bottom-mobile, $app-toolbar-base-border-bottom); + + // Toolbar minimize + @include property(--kt-app-toolbar-minimize-bg-color, $app-toolbar-minimize-bg-color); + @include property(--kt-app-toolbar-minimize-bg-color-mobile, $app-toolbar-minimize-bg-color-mobile); + @include property(--kt-app-toolbar-minimize-box-shadow, $app-toolbar-minimize-box-shadow); + @include property(--kt-app-toolbar-minimize-box-shadow-mobile, $app-toolbar-minimize-box-shadow-mobile); + @include property(--kt-app-toolbar-minimize-border-top, $app-toolbar-minimize-border-top); + @include property(--kt-app-toolbar-minimize-border-top-mobile, $app-toolbar-minimize-border-top-mobile); + @include property(--kt-app-toolbar-minimize-border-bottom, $app-toolbar-minimize-border-bottom); + @include property(--kt-app-toolbar-minimize-border-bottom-mobile, $app-toolbar-minimize-border-bottom-mobile); + + // Toolbar sticky + @include property(--kt-app-toolbar-sticky-bg-color, $app-toolbar-sticky-bg-color); + @include property(--kt-app-toolbar-sticky-bg-color-mobile, $app-toolbar-sticky-bg-color-mobile); + @include property(--kt-app-toolbar-sticky-box-shadow, $app-toolbar-sticky-box-shadow); + @include property(--kt-app-toolbar-sticky-box-shadow-mobile, $app-toolbar-sticky-box-shadow-mobile); + @include property(--kt-app-toolbar-sticky-border-top, $app-toolbar-sticky-border-top); + @include property(--kt-app-toolbar-sticky-border-top-mobile, $app-toolbar-sticky-border-top-mobile); + @include property(--kt-app-toolbar-sticky-border-bottom, $app-toolbar-sticky-border-bottom); + @include property(--kt-app-toolbar-sticky-border-bottom-mobile, $app-toolbar-sticky-border-bottom-mobile); + + // Sidebar base + @include property(--kt-app-sidebar-base-bg-color, $app-sidebar-base-bg-color); + @include property(--kt-app-sidebar-base-bg-color-mobile, $app-sidebar-base-bg-color-mobile); + @include property(--kt-app-sidebar-base-box-shadow, $app-sidebar-base-box-shadow); + @include property(--kt-app-sidebar-base-box-shadow-mobile, $app-sidebar-base-box-shadow-mobile); + @include property(--kt-app-sidebar-base-border-start, $app-sidebar-base-border-start); + @include property(--kt-app-sidebar-base-border-start-mobile, $app-sidebar-base-border-start-mobile); + @include property(--kt-app-sidebar-base-border-end, $app-sidebar-base-border-end); + @include property(--kt-app-sidebar-base-border-end-mobile, $app-sidebar-base-border-end-mobile); + + // Hero + @include property(--kt-app-hero-bg-color, $app-hero-bg-color); + @include property(--kt-app-hero-box-shadow, $app-hero-box-shadow); + @include property(--kt-app-hero-border-top, $app-hero-border-top); + @include property(--kt-app-hero-border-bottom, $app-hero-border-bottom); + + // Sidebar sticky + @include property(--kt-app-sidebar-sticky-bg-color, $app-sidebar-sticky-bg-color); + @include property(--kt-app-sidebar-sticky-box-shadow, $app-sidebar-sticky-box-shadow); + @include property(--kt-app-sidebar-sticky-border-start, $app-sidebar-sticky-border-start); + @include property(--kt-app-sidebar-sticky-border-end, $app-sidebar-sticky-border-end); + + // Sidebar minimize + @include property(--kt-app-sidebar-minimize-bg-color, $app-sidebar-minimize-bg-color); + @include property(--kt-app-sidebar-minimize-bg-color-mobile, $app-sidebar-minimize-bg-color-mobile); + @include property(--kt-app-sidebar-minimize-box-shadow, $app-sidebar-minimize-box-shadow); + @include property(--kt-app-sidebar-minimize-box-shadow-mobile, $app-sidebar-minimize-box-shadow-mobile); + @include property(--kt-app-sidebar-minimize-hover-box-shadow, $app-sidebar-minimize-hover-box-shadow); + @include property(--kt-app-sidebar-minimize-hover-box-shadow-mobile, $app-sidebar-minimize-hover-box-shadow-mobile); + @include property(--kt-app-sidebar-minimize-border-start, $app-sidebar-minimize-border-start); + @include property(--kt-app-sidebar-minimize-border-start-mobile, $app-sidebar-minimize-border-start-mobile); + @include property(--kt-app-sidebar-minimize-border-end, $app-sidebar-minimize-border-end); + @include property(--kt-app-sidebar-minimize-border-end-mobile, $app-sidebar-minimize-border-end-mobile); + + // Sidebar primary + @include property(--kt-app-sidebar-primary-base-bg-color, $app-sidebar-primary-base-bg-color); + @include property(--kt-app-sidebar-primary-base-bg-color-mobile, $app-sidebar-primary-base-bg-color-mobile); + @include property(--kt-app-sidebar-primary-base-box-shadow, $app-sidebar-primary-base-box-shadow); + @include property(--kt-app-sidebar-primary-base-box-shadow-mobile, $app-sidebar-primary-base-box-shadow-mobile); + @include property(--kt-app-sidebar-primary-base-border-start, $app-sidebar-primary-base-border-start); + @include property(--kt-app-sidebar-primary-base-border-start-mobile, $app-sidebar-primary-base-border-start-mobile); + @include property(--kt-app-sidebar-primary-base-border-end, $app-sidebar-primary-base-border-end); + @include property(--kt-app-sidebar-primary-base-border-end-mobile, $app-sidebar-primary-base-border-end-mobile); + + // Sidebar primary minimize + @include property(--kt-app-sidebar-primary-minimize-bg-color, $app-sidebar-primary-base-border-end-mobile); + @include property(--kt-app-sidebar-primary-minimize-bg-color-mobile, $app-sidebar-primary-minimize-bg-color-mobile); + @include property(--kt-app-sidebar-primary-minimize-box-shadow, $app-sidebar-primary-minimize-box-shadow); + @include property(--kt-app-sidebar-primary-minimize-box-shadow-mobile, $app-sidebar-primary-minimize-box-shadow-mobile); + @include property(--kt-app-sidebar-primary-minimize-hover-box-shadow, $app-sidebar-primary-minimize-hover-box-shadow); + @include property(--kt-app-sidebar-primary-minimize-hover-box-shadow-mobile, $app-sidebar-primary-minimize-hover-box-shadow-mobile); + @include property(--kt-app-sidebar-primary-minimize-border-start, $app-sidebar-primary-minimize-border-start); + @include property(--kt-app-sidebar-primary-minimize-border-start-mobile, $app-sidebar-primary-minimize-border-start-mobile); + @include property(--kt-app-sidebar-primary-minimize-border-end, $app-sidebar-primary-minimize-border-end); + @include property(--kt-app-sidebar-primary-minimize-border-end-mobile, $app-sidebar-primary-minimize-border-end-mobile); + + // Sidebar secondary base + @include property(--kt-app-sidebar-secondary-base-bg-color, $app-sidebar-secondary-base-bg-color); + @include property(--kt-app-sidebar-secondary-base-bg-color-mobile, $app-sidebar-secondary-base-bg-color-mobile); + @include property(--kt-app-sidebar-secondary-base-box-shadow, $app-sidebar-secondary-base-box-shadow); + @include property(--kt-app-sidebar-secondary-base-box-shadow-mobile, $app-sidebar-secondary-base-box-shadow-mobile); + @include property(--kt-app-sidebar-secondary-base-border-start, $app-sidebar-secondary-base-border-start); + @include property(--kt-app-sidebar-secondary-base-border-start-mobile, $app-sidebar-secondary-base-border-start-mobile); + @include property(--kt-app-sidebar-secondary-base-border-end, $app-sidebar-secondary-base-border-end); + @include property(--kt-app-sidebar-secondary-base-border-end-mobile, $app-sidebar-secondary-base-border-end-mobile); + + // Sidebar secondary minimize + @include property(--kt-app-sidebar-secondary-minimize-bg-color, $app-sidebar-secondary-minimize-bg-color); + @include property(--kt-app-sidebar-secondary-minimize-bg-color-mobile, $app-sidebar-secondary-minimize-bg-color-mobile); + @include property(--kt-app-sidebar-secondary-minimize-box-shadow, $app-sidebar-secondary-minimize-box-shadow); + @include property(--kt-app-sidebar-secondary-minimize-box-shadow-mobile, $app-sidebar-secondary-minimize-box-shadow-mobile); + @include property(--kt-app-sidebar-secondary-minimize-hover-box-shadow, $app-sidebar-secondary-minimize-hover-box-shadow); + @include property(--kt-app-sidebar-secondary-minimize-hover-box-shadow-mobile, $app-sidebar-secondary-minimize-hover-box-shadow-mobile); + @include property(--kt-app-sidebar-secondary-minimize-border-start, $app-sidebar-secondary-minimize-border-start); + @include property(--kt-app-sidebar-secondary-minimize-border-start-mobile, $app-sidebar-secondary-minimize-border-start-mobile); + @include property(--kt-app-sidebar-secondary-minimize-border-end, $app-sidebar-secondary-minimize-border-end); + @include property(--kt-app-sidebar-secondary-minimize-border-end-mobile, $app-sidebar-secondary-minimize-border-end-mobile); + + // Sidebar panel base + @include property(--kt-app-sidebar-panel-base-bg-color, $app-sidebar-panel-base-bg-color); + @include property(--kt-app-sidebar-panel-base-bg-color-mobile, $app-sidebar-panel-base-bg-color-mobile); + @include property(--kt-app-sidebar-panel-base-box-shadow, $app-sidebar-panel-base-box-shadow); + @include property(--kt-app-sidebar-panel-base-box-shadow-mobile, $app-sidebar-panel-base-box-shadow-mobile); + @include property(--kt-app-sidebar-panel-base-border-start, $app-sidebar-panel-base-border-start); + @include property(--kt-app-sidebar-panel-base-border-start-mobile, $app-sidebar-panel-base-border-start-mobile); + @include property(--kt-app-sidebar-panel-base-border-end, $app-sidebar-panel-base-border-end); + @include property(--kt-app-sidebar-panel-base-border-end-mobile, $app-sidebar-panel-base-border-end-mobile); + + // Sidebar panel sticky + @include property(--kt-app-sidebar-panel-sticky-bg-color, $app-sidebar-panel-sticky-bg-color); + @include property(--kt-app-sidebar-panel-sticky-box-shadow, $app-sidebar-panel-sticky-box-shadow); + @include property(--kt-app-sidebar-panel-sticky-border-start, $app-sidebar-panel-sticky-border-start); + @include property(--kt-app-sidebar-panel-sticky-border-end, $app-sidebar-panel-sticky-border-end); + + // Sidebar panel minimize + @include property(--kt-app-sidebar-panel-minimize-bg-color, $app-sidebar-panel-minimize-bg-color); + @include property(--kt-app-sidebar-panel-minimize-bg-color-mobile, $app-sidebar-panel-minimize-bg-color-mobile); + @include property(--kt-app-sidebar-panel-minimize-box-shadow, $app-sidebar-panel-minimize-box-shadow); + @include property(--kt-app-sidebar-panel-minimize-box-shadow-mobile, $app-sidebar-panel-minimize-box-shadow-mobile); + @include property(--kt-app-sidebar-panel-minimize-hover-box-shadow, $app-sidebar-panel-minimize-hover-box-shadow); + @include property(--kt-app-sidebar-panel-minimize-hover-box-shadow-mobile, $app-sidebar-panel-minimize-hover-box-shadow-mobile); + @include property(--kt-app-sidebar-panel-minimize-border-start, $app-sidebar-panel-minimize-border-start); + @include property(--kt-app-sidebar-panel-minimize-border-start-mobile, $app-sidebar-panel-minimize-border-start-mobile); + @include property(--kt-app-sidebar-panel-minimize-border-end, $app-sidebar-panel-minimize-border-end); + @include property(--kt-app-sidebar-panel-minimize-border-end-mobile, $app-sidebar-panel-minimize-border-end-mobile); + + // Aside base + @include property(--kt-app-aside-base-bg-color, $app-aside-base-bg-color); + @include property(--kt-app-aside-base-bg-color-mobile, $app-aside-base-bg-color-mobile); + @include property(--kt-app-aside-base-box-shadow, $app-aside-base-box-shadow); + @include property(--kt-app-aside-base-box-shadow-mobile, $app-aside-base-box-shadow-mobile); + @include property(--kt-app-aside-base-border-start, $app-aside-base-border-start); + @include property(--kt-app-aside-base-border-start-mobile, $app-aside-base-border-start-mobile); + @include property(--kt-app-aside-base-border-end, $app-aside-base-border-end); + @include property(--kt-app-aside-base-border-end-mobile, $app-aside-base-border-end-mobile); + + // Aside sticky + @include property(--kt-app-aside-sticky-bg-color, $app-aside-sticky-bg-color); + @include property(--kt-app-aside-sticky-box-shadow, $app-aside-sticky-box-shadow); + @include property(--kt-app-aside-sticky-border-start, $app-aside-sticky-border-start); + @include property(--kt-app-aside-sticky-border-end, $app-aside-sticky-border-end); + + // Aside minimize + @include property(--kt-app-aside-minimize-bg-color, $app-aside-minimize-bg-color); + @include property(--kt-app-aside-minimize-bg-color-mobile, $app-aside-minimize-bg-color-mobile); + @include property(--kt-app-aside-minimize-box-shadow, $app-aside-minimize-box-shadow); + @include property(--kt-app-aside-minimize-box-shadow-mobile, $app-aside-minimize-box-shadow-mobile); + @include property(--kt-app-aside-minimize-hover-box-shadow, $app-aside-minimize-hover-box-shadow); + @include property(--kt-app-aside-minimize-hover-box-shadow-mobile, $app-aside-minimize-hover-box-shadow-mobile); + @include property(--kt-app-aside-minimize-border-start, $app-aside-minimize-border-start); + @include property(--kt-app-aside-minimize-border-start-mobile, $app-aside-minimize-border-start-mobile); + @include property(--kt-app-aside-minimize-border-end, $app-aside-minimize-border-end); + @include property(--kt-app-aside-minimize-border-end-mobile, $app-aside-minimize-border-end-mobile); + + // Page + @include property(--kt-app-page-bg-color, $app-page-bg-color); + + // Wrapper + @include property(--kt-app-wrapper-bg-color, $app-wrapper-bg-color); + + // Footer + @include property(--kt-app-footer-bg-color, $app-footer-bg-color); + @include property(--kt-app-footer-bg-color-mobile, $app-footer-bg-color-mobile); + @include property(--kt-app-footer-box-shadow, $app-footer-box-shadow); + @include property(--kt-app-footer-box-shadow-mobile, $app-footer-box-shadow-mobile); + @include property(--kt-app-footer-border-top, $app-footer-border-top); + @include property(--kt-app-footer-border-top-mobile, $app-footer-border-top-mobile); +} + +[data-theme="dark"] { + // Layouts + @include property(--kt-app-bg-color, $app-bg-color-dark); + @include property(--kt-app-blank-bg-color, $app-blank-bg-color-dark); + + // Header base + @include property(--kt-app-header-base-bg-color, $app-header-base-bg-color-dark); + @include property(--kt-app-header-base-bg-color-mobile, $app-header-base-bg-color-mobile-dark); + @include property(--kt-app-header-base-box-shadow, $app-header-base-box-shadow-dark); + @include property(--kt-app-header-base-box-shadow-mobile, $app-header-base-box-shadow-mobile-dark); + @include property(--kt-app-header-base-border-bottom, $app-header-base-border-bottom-dark); + @include property(--kt-app-header-base-border-bottom-mobile, $app-header-base-border-bottom-mobile-dark); + + // Header minimize + @include property(--kt-app-header-minimize-bg-color, $app-header-minimize-bg-color-dark); + @include property(--kt-app-header-minimize-bg-color-mobile, $app-header-minimize-bg-color-mobile-dark); + @include property(--kt-app-header-minimize-box-shadow, $app-header-minimize-box-shadow-dark); + @include property(--kt-app-header-minimize-box-shadow-mobile, $app-header-minimize-box-shadow-mobile-dark); + @include property(--kt-app-header-minimize-border-bottom, $app-header-minimize-border-bottom-dark); + @include property(--kt-app-header-minimize-border-bottom-mobile, $app-header-minimize-border-bottom-mobile-dark); + + // Header sticky + @include property(--kt-app-header-sticky-bg-color, $app-header-sticky-bg-color-dark); + @include property(--kt-app-header-sticky-bg-color-mobile, $app-header-sticky-bg-color-mobile-dark); + @include property(--kt-app-header-sticky-box-shadow, $app-header-sticky-box-shadow-dark); + @include property(--kt-app-header-sticky-box-shadow-mobile, $app-header-sticky-box-shadow-mobile-dark); + @include property(--kt-app-header-sticky-border-bottom, $app-header-sticky-border-bottom-dark); + @include property(--kt-app-header-sticky-border-bottom-mobile, $app-header-sticky-border-bottom-mobile-dark); + + // Header primary + @include property(--kt-app-header-primary-base-bg-color, $app-header-primary-base-bg-color-dark); + @include property(--kt-app-header-primary-base-bg-color-mobile, $app-header-primary-base-bg-color-mobile-dark); + @include property(--kt-app-header-primary-base-box-shadow, $app-header-primary-base-box-shadow-dark); + @include property(--kt-app-header-primary-base-box-shadow-mobile, $app-header-primary-base-box-shadow-mobile-dark); + @include property(--kt-app-header-primary-base-border-bottom, $app-header-primary-base-border-bottom-dark); + @include property(--kt-app-header-primary-base-border-bottom-mobile, $app-header-primary-base-border-bottom-mobile-dark); + + @include property(--kt-app-header-primary-minimize-bg-color, $app-header-primary-minimize-bg-color-dark); + @include property(--kt-app-header-primary-minimize-box-shadow, $app-header-primary-minimize-box-shadow-dark); + @include property(--kt-app-header-primary-minimize-border-top, $app-header-primary-minimize-border-top-dark); + @include property(--kt-app-header-primary-minimize-border-bottom, $app-header-primary-minimize-border-bottom-dark); + + @include property(--kt-app-header-primary-sticky-bg-color, $app-header-primary-sticky-bg-color-dark); + @include property(--kt-app-header-primary-sticky-box-shadow, $app-header-primary-sticky-box-shadow-dark); + @include property(--kt-app-header-primary-sticky-border-top, $app-header-primary-sticky-border-top-dark); + @include property(--kt-app-header-primary-sticky-border-bottom, $app-header-primary-sticky-border-bottom-dark); + + // Header secondary + @include property(--kt-app-header-secondary-base-bg-color, $app-header-secondary-base-bg-color-dark); + @include property(--kt-app-header-secondary-base-bg-color-mobile, $app-header-secondary-base-bg-color-mobile-dark); + @include property(--kt-app-header-secondary-base-box-shadow, $app-header-secondary-base-box-shadow-dark); + @include property(--kt-app-header-secondary-base-box-shadow-mobile, $app-header-secondary-base-box-shadow-mobile-dark); + @include property(--kt-app-header-secondary-base-border-top, $app-header-secondary-base-border-top-dark); + @include property(--kt-app-header-secondary-base-border-bottom, $app-header-secondary-base-border-bottom-dark); + @include property(--kt-app-header-secondary-base-border-start-mobile, $app-header-secondary-base-border-bottom-dark); + @include property(--kt-app-header-secondary-base-border-end-mobile, $app-header-secondary-base-border-end-mobile-dark); + + @include property(--kt-app-header-secondary-minimize-bg-color, $app-header-secondary-minimize-bg-color-dark); + @include property(--kt-app-header-secondary-minimize-box-shadow, $app-header-secondary-minimize-box-shadow-dark); + @include property(--kt-app-header-secondary-minimize-border-top, $app-header-secondary-minimize-border-top-dark); + @include property(--kt-app-header-secondary-minimize-border-bottom, $app-header-secondary-minimize-border-bottom-dark); + + @include property(--kt-app-header-secondary-sticky-bg-color, $app-header-secondary-sticky-bg-color-dark); + @include property(--kt-app-header-secondary-sticky-box-shadow, $app-header-secondary-sticky-box-shadow-dark); + @include property(--kt-app-header-secondary-sticky-border-top, $app-header-secondary-sticky-border-top-dark); + @include property(--kt-app-header-secondary-sticky-border-bottom, $app-header-secondary-sticky-border-bottom-dark); + + // Toolbar base + @include property(--kt-app-toolbar-base-bg-color, $app-toolbar-base-bg-color-dark); + @include property(--kt-app-toolbar-base-bg-color-mobile, $app-toolbar-base-bg-color-mobile-dark); + @include property(--kt-app-toolbar-base-box-shadow, $app-toolbar-base-box-shadow-dark); + @include property(--kt-app-toolbar-base-box-shadow-mobile, $app-toolbar-base-box-shadow-mobile-dark); + @include property(--kt-app-toolbar-base-border-top, $app-toolbar-base-border-top-dark); + @include property(--kt-app-toolbar-base-border-top-mobile, $app-toolbar-base-border-top-mobile-dark); + @include property(--kt-app-toolbar-base-border-bottom, $app-toolbar-base-border-bottom-dark); + @include property(--kt-app-toolbar-base-border-bottom-mobile, $app-toolbar-base-border-bottom-dark); + + // Toolbar minimize + @include property(--kt-app-toolbar-minimize-bg-color, $app-toolbar-minimize-bg-color-dark); + @include property(--kt-app-toolbar-minimize-bg-color-mobile, $app-toolbar-minimize-bg-color-mobile-dark); + @include property(--kt-app-toolbar-minimize-box-shadow, $app-toolbar-minimize-box-shadow-dark); + @include property(--kt-app-toolbar-minimize-box-shadow-mobile, $app-toolbar-minimize-box-shadow-mobile-dark); + @include property(--kt-app-toolbar-minimize-border-top, $app-toolbar-minimize-border-top-dark); + @include property(--kt-app-toolbar-minimize-border-top-mobile, $app-toolbar-minimize-border-top-mobile-dark); + @include property(--kt-app-toolbar-minimize-border-bottom, $app-toolbar-minimize-border-bottom-dark); + @include property(--kt-app-toolbar-minimize-border-bottom-mobile, $app-toolbar-minimize-border-bottom-mobile-dark); + + // Toolbar sticky + @include property(--kt-app-toolbar-sticky-bg-color, $app-toolbar-sticky-bg-color-dark); + @include property(--kt-app-toolbar-sticky-bg-color-mobile, $app-toolbar-sticky-bg-color-mobile-dark); + @include property(--kt-app-toolbar-sticky-box-shadow, $app-toolbar-sticky-box-shadow-dark); + @include property(--kt-app-toolbar-sticky-box-shadow-mobile, $app-toolbar-sticky-box-shadow-mobile-dark); + @include property(--kt-app-toolbar-sticky-border-top, $app-toolbar-sticky-border-top-dark); + @include property(--kt-app-toolbar-sticky-border-top-mobile, $app-toolbar-sticky-border-top-mobile-dark); + @include property(--kt-app-toolbar-sticky-border-bottom, $app-toolbar-sticky-border-bottom-dark); + @include property(--kt-app-toolbar-sticky-border-bottom-mobile, $app-toolbar-sticky-border-bottom-mobile-dark); + + // Hero + @include property(--kt-app-hero-bg-color, $app-hero-bg-color-dark); + @include property(--kt-app-hero-box-shadow, $app-hero-box-shadow-dark); + @include property(--kt-app-hero-border-top, $app-hero-border-top-dark); + @include property(--kt-app-hero-border-bottom, $app-hero-border-bottom-dark); + + // Sidebar base + @include property(--kt-app-sidebar-base-bg-color, $app-sidebar-base-bg-color-dark); + @include property(--kt-app-sidebar-base-bg-color-mobile, $app-sidebar-base-bg-color-mobile-dark); + @include property(--kt-app-sidebar-base-box-shadow, $app-sidebar-base-box-shadow-dark); + @include property(--kt-app-sidebar-base-box-shadow-mobile, $app-sidebar-base-box-shadow-mobile-dark); + @include property(--kt-app-sidebar-base-border-start, $app-sidebar-base-border-start-dark); + @include property(--kt-app-sidebar-base-border-start-mobile, $app-sidebar-base-border-start-mobile-dark); + @include property(--kt-app-sidebar-base-border-end, $app-sidebar-base-border-end-dark); + @include property(--kt-app-sidebar-base-border-end-mobile, $app-sidebar-base-border-end-mobile-dark); + + // Sidebar sticky + @include property(--kt-app-sidebar-sticky-bg-color, $app-sidebar-sticky-bg-color-dark); + @include property(--kt-app-sidebar-sticky-box-shadow, $app-sidebar-sticky-box-shadow-dark); + @include property(--kt-app-sidebar-sticky-border-start, $app-sidebar-sticky-border-start-dark); + @include property(--kt-app-sidebar-sticky-border-end, $app-sidebar-sticky-border-end-dark); + + // Sidebar minimize + @include property(--kt-app-sidebar-minimize-bg-color, $app-sidebar-minimize-bg-color-dark); + @include property(--kt-app-sidebar-minimize-bg-color-mobile, $app-sidebar-minimize-bg-color-mobile-dark); + @include property(--kt-app-sidebar-minimize-box-shadow, $app-sidebar-minimize-box-shadow-dark); + @include property(--kt-app-sidebar-minimize-box-shadow-mobile, $app-sidebar-minimize-box-shadow-mobile-dark); + @include property(--kt-app-sidebar-minimize-hover-box-shadow, $app-sidebar-minimize-hover-box-shadow-dark); + @include property(--kt-app-sidebar-minimize-hover-box-shadow-mobile, $app-sidebar-minimize-hover-box-shadow-mobile-dark); + @include property(--kt-app-sidebar-minimize-border-start, $app-sidebar-minimize-border-start-dark); + @include property(--kt-app-sidebar-minimize-border-start-mobile, $app-sidebar-minimize-border-start-mobile-dark); + @include property(--kt-app-sidebar-minimize-border-end, $app-sidebar-minimize-border-end-dark); + @include property(--kt-app-sidebar-minimize-border-end-mobile, $app-sidebar-minimize-border-end-mobile-dark); + + // Sidebar primary + @include property(--kt-app-sidebar-primary-base-bg-color, $app-sidebar-primary-base-bg-color-dark); + @include property(--kt-app-sidebar-primary-base-bg-color-mobile, $app-sidebar-primary-base-bg-color-mobile-dark); + @include property(--kt-app-sidebar-primary-base-box-shadow, $app-sidebar-primary-base-box-shadow-dark); + @include property(--kt-app-sidebar-primary-base-box-shadow-mobile, $app-sidebar-primary-base-box-shadow-mobile-dark); + @include property(--kt-app-sidebar-primary-base-border-start, $app-sidebar-primary-base-border-start-dark); + @include property(--kt-app-sidebar-primary-base-border-start-mobile, $app-sidebar-primary-base-border-start-mobile-dark); + @include property(--kt-app-sidebar-primary-base-border-end, $app-sidebar-primary-base-border-end-dark); + @include property(--kt-app-sidebar-primary-base-border-end-mobile, $app-sidebar-primary-base-border-end-mobile-dark); + + @include property(--kt-app-sidebar-primary-minimize-bg-color, $app-sidebar-primary-base-border-end-mobile-dark); + @include property(--kt-app-sidebar-primary-minimize-bg-color-mobile, $app-sidebar-primary-minimize-bg-color-mobile-dark); + @include property(--kt-app-sidebar-primary-minimize-box-shadow, $app-sidebar-primary-minimize-box-shadow-dark); + @include property(--kt-app-sidebar-primary-minimize-box-shadow-mobile, $app-sidebar-primary-minimize-box-shadow-mobile-dark); + @include property(--kt-app-sidebar-primary-minimize-hover-box-shadow, $app-sidebar-primary-minimize-hover-box-shadow-dark); + @include property(--kt-app-sidebar-primary-minimize-hover-box-shadow-mobile, $app-sidebar-primary-minimize-hover-box-shadow-mobile-dark); + @include property(--kt-app-sidebar-primary-minimize-border-start, $app-sidebar-primary-minimize-border-start-dark); + @include property(--kt-app-sidebar-primary-minimize-border-start-mobile, $app-sidebar-primary-minimize-border-start-mobile-dark); + @include property(--kt-app-sidebar-primary-minimize-border-end, $app-sidebar-primary-minimize-border-end-dark); + @include property(--kt-app-sidebar-primary-minimize-border-end-mobile, $app-sidebar-primary-minimize-border-end-mobile-dark); + + // Sidebar secondary + @include property(--kt-app-sidebar-secondary-base-bg-color, $app-sidebar-secondary-base-bg-color-dark); + @include property(--kt-app-sidebar-secondary-base-bg-color-mobile, $app-sidebar-secondary-base-bg-color-mobile-dark); + @include property(--kt-app-sidebar-secondary-base-box-shadow, $app-sidebar-secondary-base-box-shadow-dark); + @include property(--kt-app-sidebar-secondary-base-box-shadow-mobile, $app-sidebar-secondary-base-box-shadow-mobile-dark); + @include property(--kt-app-sidebar-secondary-base-border-start, $app-sidebar-secondary-base-border-start-dark); + @include property(--kt-app-sidebar-secondary-base-border-start-mobile, $app-sidebar-secondary-base-border-start-mobile-dark); + @include property(--kt-app-sidebar-secondary-base-border-end, $app-sidebar-secondary-base-border-end-dark); + @include property(--kt-app-sidebar-secondary-base-border-end-mobile, $app-sidebar-secondary-base-border-end-mobile-dark); + + @include property(--kt-app-sidebar-secondary-minimize-bg-color, $app-sidebar-secondary-minimize-bg-color-dark); + @include property(--kt-app-sidebar-secondary-minimize-bg-color-mobile, $app-sidebar-secondary-minimize-bg-color-mobile-dark); + @include property(--kt-app-sidebar-secondary-minimize-box-shadow, $app-sidebar-secondary-minimize-box-shadow-dark); + @include property(--kt-app-sidebar-secondary-minimize-box-shadow-mobile, $app-sidebar-secondary-minimize-box-shadow-mobile-dark); + @include property(--kt-app-sidebar-secondary-minimize-hover-box-shadow, $app-sidebar-secondary-minimize-hover-box-shadow-dark); + @include property(--kt-app-sidebar-secondary-minimize-hover-box-shadow-mobile, $app-sidebar-secondary-minimize-hover-box-shadow-mobile-dark); + @include property(--kt-app-sidebar-secondary-minimize-border-start, $app-sidebar-secondary-minimize-border-start-dark); + @include property(--kt-app-sidebar-secondary-minimize-border-start-mobile, $app-sidebar-secondary-minimize-border-start-mobile-dark); + @include property(--kt-app-sidebar-secondary-minimize-border-end, $app-sidebar-secondary-minimize-border-end-dark); + @include property(--kt-app-sidebar-secondary-minimize-border-end-mobile, $app-sidebar-secondary-minimize-border-end-mobile-dark); + + // Sidebar panel base + @include property(--kt-app-sidebar-panel-base-bg-color, $app-sidebar-panel-base-bg-color-dark); + @include property(--kt-app-sidebar-panel-base-bg-color-mobile, $app-sidebar-panel-base-bg-color-mobile-dark); + @include property(--kt-app-sidebar-panel-base-box-shadow, $app-sidebar-panel-base-box-shadow-dark); + @include property(--kt-app-sidebar-panel-base-box-shadow-mobile, $app-sidebar-panel-base-box-shadow-mobile-dark); + @include property(--kt-app-sidebar-panel-base-border-start, $app-sidebar-panel-base-border-start-dark); + @include property(--kt-app-sidebar-panel-base-border-start-mobile, $app-sidebar-panel-base-border-start-mobile-dark); + @include property(--kt-app-sidebar-panel-base-border-end, $app-sidebar-panel-base-border-end-dark); + @include property(--kt-app-sidebar-panel-base-border-end-mobile, $app-sidebar-panel-base-border-end-mobile-dark); + + // Sidebar panel sticky + @include property(--kt-app-sidebar-panel-sticky-bg-color, $app-sidebar-panel-sticky-bg-color-dark); + @include property(--kt-app-sidebar-panel-sticky-box-shadow, $app-sidebar-panel-sticky-box-shadow-dark); + @include property(--kt-app-sidebar-panel-sticky-border-start, $app-sidebar-panel-sticky-border-start-dark); + @include property(--kt-app-sidebar-panel-sticky-border-end, $app-sidebar-panel-sticky-border-end-dark); + + // Sidebar panel minimize + @include property(--kt-app-sidebar-panel-minimize-bg-color, $app-sidebar-panel-minimize-bg-color-dark); + @include property(--kt-app-sidebar-panel-minimize-bg-color-mobile, $app-sidebar-panel-minimize-bg-color-mobile-dark); + @include property(--kt-app-sidebar-panel-minimize-box-shadow, $app-sidebar-panel-minimize-box-shadow-dark); + @include property(--kt-app-sidebar-panel-minimize-box-shadow-mobile, $app-sidebar-panel-minimize-box-shadow-mobile-dark); + @include property(--kt-app-sidebar-panel-minimize-hover-box-shadow, $app-sidebar-panel-minimize-hover-box-shadow-dark); + @include property(--kt-app-sidebar-panel-minimize-hover-box-shadow-mobile, $app-sidebar-panel-minimize-hover-box-shadow-mobile-dark); + @include property(--kt-app-sidebar-panel-minimize-border-start, $app-sidebar-panel-minimize-border-start-dark); + @include property(--kt-app-sidebar-panel-minimize-border-start-mobile, $app-sidebar-panel-minimize-border-start-mobile-dark); + @include property(--kt-app-sidebar-panel-minimize-border-end, $app-sidebar-panel-minimize-border-end-dark); + @include property(--kt-app-sidebar-panel-minimize-border-end-mobile, $app-sidebar-panel-minimize-border-end-mobile-dark); + + // Aside base + @include property(--kt-app-aside-base-bg-color, $app-aside-base-bg-color-dark); + @include property(--kt-app-aside-base-bg-color-mobile, $app-aside-base-bg-color-mobile-dark); + @include property(--kt-app-aside-base-box-shadow, $app-aside-base-box-shadow-dark); + @include property(--kt-app-aside-base-box-shadow-mobile, $app-aside-base-box-shadow-mobile-dark); + @include property(--kt-app-aside-base-border-start, $app-aside-base-border-start-dark); + @include property(--kt-app-aside-base-border-start-mobile, $app-aside-base-border-start-mobile-dark); + @include property(--kt-app-aside-base-border-end, $app-aside-base-border-end-dark); + @include property(--kt-app-aside-base-border-end-mobile, $app-aside-base-border-end-mobile-dark); + + // Aside sticky + @include property(--kt-app-aside-sticky-bg-color, $app-aside-sticky-bg-color-dark); + @include property(--kt-app-aside-sticky-box-shadow, $app-aside-sticky-box-shadow-dark); + @include property(--kt-app-aside-sticky-border-start, $app-aside-sticky-border-start-dark); + @include property(--kt-app-aside-sticky-border-end, $app-aside-sticky-border-end-dark); + + // Aside minimize + @include property(--kt-app-aside-minimize-bg-color, $app-aside-minimize-bg-color-dark); + @include property(--kt-app-aside-minimize-bg-color-mobile, $app-aside-minimize-bg-color-mobile-dark); + @include property(--kt-app-aside-minimize-box-shadow, $app-aside-minimize-box-shadow-dark); + @include property(--kt-app-aside-minimize-box-shadow-mobile, $app-aside-minimize-box-shadow-mobile-dark); + @include property(--kt-app-aside-minimize-hover-box-shadow, $app-aside-minimize-hover-box-shadow-dark); + @include property(--kt-app-aside-minimize-hover-box-shadow-mobile, $app-aside-minimize-hover-box-shadow-mobile-dark); + @include property(--kt-app-aside-minimize-border-start, $app-aside-minimize-border-start-dark); + @include property(--kt-app-aside-minimize-border-start-mobile, $app-aside-minimize-border-start-mobile-dark); + @include property(--kt-app-aside-minimize-border-end, $app-aside-minimize-border-end-dark); + @include property(--kt-app-aside-minimize-border-end-mobile, $app-aside-minimize-border-end-mobile-dark); + + // Page + @include property(--kt-app-page-bg-color, $app-page-bg-color-dark); + + // Wrapper + @include property(--kt-app-wrapper-bg-color, $app-wrapper-bg-color-dark); + + // Footer + @include property(--kt-app-footer-bg-color, $app-footer-bg-color-dark); + @include property(--kt-app-footer-bg-color-mobile, $app-footer-bg-color-mobile-dark); + @include property(--kt-app-footer-box-shadow, $app-footer-box-shadow-dark); + @include property(--kt-app-footer-box-shadow-mobile, $app-footer-box-shadow-mobile-dark); + @include property(--kt-app-footer-border-top, $app-footer-border-top-dark); + @include property(--kt-app-footer-border-top-mobile, $app-footer-border-top-mobile-dark); +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_toolbar.scss b/src/_metronic/assets/sass/core/layout/base/_toolbar.scss new file mode 100644 index 0000000..e80f74c --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_toolbar.scss @@ -0,0 +1,183 @@ +// +// Toolbar +// + +// General mode +.app-toolbar { + display: flex; + align-items: stretch; + + &.app-toolbar-minimize { + transition: $app-toolbar-base-transition; + } +} + +// Desktop mode +@include media-breakpoint-up(lg) { + // Base + .app-toolbar { + background-color: var(--kt-app-toolbar-base-bg-color); + box-shadow: var(--kt-app-toolbar-base-box-shadow); + border-top: var(--kt-app-toolbar-base-border-top); + border-bottom: var(--kt-app-toolbar-base-border-bottom); + } + + // Vars + :root { + --kt-app-toolbar-height: #{$app-toolbar-base-height}; + --kt-app-toolbar-height-actual: #{$app-toolbar-base-height}; + } + + [data-kt-app-toolbar-sticky="on"] { + --kt-app-toolbar-height: #{$app-toolbar-sticky-height}; + } + + [data-kt-app-toolbar-minimize="on"] { + --kt-app-toolbar-height: #{$app-toolbar-minimize-height}; + } + + // States + .app-toolbar { + height: var(--kt-app-toolbar-height); + + [data-kt-app-header-fixed="true"][data-kt-app-toolbar-fixed="true"] & { + @include property( z-index, $app-toolbar-base-z-index); + position: fixed; + left: 0; + right: 0; + top: 0; + } + + [data-kt-app-toolbar-sticky="on"] & { + position: fixed; + left: 0; + right: 0; + top: 0; + @include property( z-index, $app-toolbar-sticky-z-index); + @include property( backdrop-filter, $app-toolbar-sticky-backdrop-filter); + + box-shadow: var(--kt-app-toolbar-sticky-box-shadow); + background-color: var(--kt-app-toolbar-sticky-bg-color); + border-top: var(--kt-app-toolbar-sticky-border-top); + border-bottom: var(--kt-app-toolbar-sticky-border-bottom); + } + + [data-kt-app-toolbar-minimize="on"] & { + transition: $app-toolbar-base-transition; + @include property( z-index, $app-toolbar-minimize-z-index); + @include property( backdrop-filter, $app-toolbar-minimize-backdrop-filter); + + box-shadow: var(--kt-app-toolbar-minimize-box-shadow); + background-color: var(--kt-app-toolbar-minimize-bg-color); + border-top: var(--kt-app-toolbar-minimize-border-top); + border-bottom: var(--kt-app-toolbar-minimize-border-bottom); + } + } + + // Integration + .app-toolbar { + // Header + [data-kt-app-toolbar-fixed="true"][data-kt-app-header-fixed="true"] & { + top: var(--kt-app-header-height); + } + + // Sidebar + [data-kt-app-toolbar-sticky="on"][data-kt-app-sidebar-fixed="true"][data-kt-app-sidebar-push-toolbar="true"] &, + [data-kt-app-toolbar-fixed="true"][data-kt-app-sidebar-fixed="true"][data-kt-app-sidebar-push-toolbar="true"] & { + left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + ); + } + + // Sidebar panel + [data-kt-app-toolbar-sticky="on"][data-kt-app-sidebar-panel-fixed="true"][data-kt-app-sidebar-panel-push-toolbar="true"] &, + [data-kt-app-toolbar-fixed="true"][data-kt-app-sidebar-panel-fixed="true"][data-kt-app-sidebar-panel-push-toolbar="true"] & { + left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + + var(--kt-app-sidebar-panel-width) + + var(--kt-app-sidebar-panel-gap-start, 0px) + + var(--kt-app-sidebar-panel-gap-end, 0px) + ); + } + + // Aside + [data-kt-app-toolbar-sticky="on"][data-kt-app-aside-fixed="true"][data-kt-app-aside-push-toolbar="true"] &, + [data-kt-app-toolbar-fixed="true"][data-kt-app-aside-fixed="true"][data-kt-app-aside-push-toolbar="true"] & { + right: calc( + var(--kt-app-aside-width) + + var(--kt-app-aside-gap-start, 0px) + + var(--kt-app-aside-gap-end, 0px) + ); + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Base + .app-toolbar { + @include property( z-index, $app-toolbar-base-z-index-mobile); + + box-shadow: var(--kt-app-toolbar-base-box-shadow-mobile); + background-color: var(--kt-app-toolbar-base-bg-color-mobile); + border-top: var(--kt-app-toolbar-base-border-top-mobile); + border-bottom: var(--kt-app-toolbar-base-border-bottom-mobile); + } + + // Vars + :root { + --kt-app-toolbar-height: #{$app-toolbar-base-height-mobile}; + } + + [data-kt-app-toolbar-sticky="on"] { + --kt-app-toolbar-height: #{$app-toolbar-sticky-height-mobile}; + } + + [data-kt-app-toolbar-minimize="on"] { + --kt-app-toolbar-height: #{$app-toolbar-minimize-height-mobile}; + } + + // States + .app-toolbar { + height: var(--kt-app-toolbar-height); + + [data-kt-app-header-fixed-mobile="true"][data-kt-app-toolbar-fixed-mobile="true"] & { + @include property( z-index, $app-toolbar-base-z-index-mobile); + position: fixed; + top: calc(var(--kt-app-header-height, 0px) + var(--kt-app-header-mobile-height, 0px)); + left: 0; + right: 0; + } + + [data-kt-app-toolbar-sticky="on"] & { + position: fixed; + left: 0; + right: 0; + top: var(--kt-app-header-height, 0px); + + box-shadow: var(--kt-app-toolbar-sticky-box-shadow-mobile); + background-color: var(--kt-app-toolbar-sticky-bg-color-mobile); + border-top: var(--kt-app-toolbar-sticky-border-top-mobile); + border-bottom: var(--kt-app-toolbar-sticky-border-bottom-mobile); + + @include property( z-index, $app-toolbar-sticky-z-index-mobile); + @include property( backdrop-filter, $app-toolbar-sticky-backdrop-filter-mobile); + } + + [data-kt-app-toolbar-minimize="on"] & { + transition: $app-toolbar-base-transition; + + box-shadow: var(--kt-app-toolbar-minimize-box-shadow-mobile); + background-color: var(--kt-app-toolbar-minimize-bg-color-mobile); + border-top: var(--kt-app-toolbar-minimize-border-top-mobile); + border-bottom: var(--kt-app-toolbar-minimize-border-bottom-mobile); + + @include property( z-index, $app-toolbar-minimize-z-index-mobile); + @include property( backdrop-filter, $app-toolbar-minimize-backdrop-filter-mobile); + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_variables.scss b/src/_metronic/assets/sass/core/layout/base/_variables.scss new file mode 100644 index 0000000..2a95a9f --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_variables.scss @@ -0,0 +1,696 @@ +// +// Variables +// + +// Reboot +$app-bg-color: #f5f8fa !default; +$app-bg-color-dark: #151521 !default; +$app-blank-bg-color: $white; +$app-blank-bg-color-dark: $app-bg-color-dark; + +// General +$app-general-transition-duration: .3s !default; +$app-general-transition-timing: ease !default; +$app-general-root-font-size-desktop: 13px !default; +$app-general-root-font-size-tablet: 12px !default; +$app-general-root-font-size-mobile: 12px !default; + +// Container +$app-container-padding-x: 30px !default; +$app-container-padding-x-mobile: 20px !default; + +// Page +$app-page-bg-color: null !default; +$app-page-bg-color-dark: null !default; + +// Main +$app-main-transition: margin $app-general-transition-duration $app-general-transition-timing; +$app-main-padding-y: null !default; +$app-main-padding-y-mobile: null !default; +$app-main-padding-x: null !default; +$app-main-padding-x-mobile: 0 !default; +$app-main-margin-y: null !default; +$app-main-margin-y-mobile: null !default; +$app-main-margin-x: null !default; +$app-main-margin-x-mobile: null !default; + +// Wrapper +$app-wrapper-transition: margin-left $app-general-transition-duration $app-general-transition-timing, margin-right $app-general-transition-duration $app-general-transition-timing; +$app-wrapper-bg-color: null !default; +$app-wrapper-bg-color-dark: null !default; + +// Content +$app-content-padding-y: 30px !default; +$app-content-padding-y-mobile: 20px !default; +$app-content-padding-x: 0 !default; +$app-content-padding-x-mobile: 0 !default; + +// Header base +$app-header-base-transition: none !default; +$app-header-base-height: 70px !default; +$app-header-base-height-mobile: 70px !default; +$app-header-base-z-index: null !default; +$app-header-base-z-index-mobile: null !default; +$app-header-base-bg-color: null !default; +$app-header-base-bg-color-dark: null !default; +$app-header-base-bg-color-mobile: null !default; +$app-header-base-bg-color-mobile-dark: null !default; +$app-header-base-box-shadow: null !default; +$app-header-base-box-shadow-dark: null !default; +$app-header-base-box-shadow-mobile: null !default; +$app-header-base-box-shadow-mobile-dark: null !default; +$app-header-base-border-bottom: null !default; +$app-header-base-border-bottom-dark: null !default; +$app-header-base-border-bottom-mobile: null !default; +$app-header-base-border-bottom-mobile-dark: null !default; + +// Header fixed +$app-header-fixed-z-index: 100 !default; +$app-header-fixed-z-index-mobile: 100 !default; + +// Header minimize +$app-header-minimize-height: 70px !default; +$app-header-minimize-height-mobile: 70px !default; +$app-header-minimize-z-index: 100 !default; +$app-header-minimize-z-index-mobile: 100 !default; +$app-header-minimize-backdrop-filter: null !default; +$app-header-minimize-backdrop-filter-mobile: null !default; +$app-header-minimize-bg-color: null !default; +$app-header-minimize-bg-color-dark: null !default; +$app-header-minimize-bg-color-mobile: null !default; +$app-header-minimize-bg-color-mobile-dark: null !default; +$app-header-minimize-box-shadow: null !default; +$app-header-minimize-box-shadow-dark: null !default; +$app-header-minimize-box-shadow-mobile: null !default; +$app-header-minimize-box-shadow-mobile-dark: null !default; +$app-header-minimize-border-bottom: null !default; +$app-header-minimize-border-bottom-dark: null !default; +$app-header-minimize-border-bottom-mobile: null !default; +$app-header-minimize-border-bottom-mobile-dark: null !default; + +// Header sticky +$app-header-sticky-height: 70px !default; +$app-header-sticky-height-mobile: 70px !default; +$app-header-sticky-z-index: 100 !default; +$app-header-sticky-z-index-mobile: 100 !default; +$app-header-sticky-backdrop-filter: null !default; +$app-header-sticky-backdrop-filter-mobile: null !default; +$app-header-sticky-bg-color: null !default; +$app-header-sticky-bg-color-dark: null !default; +$app-header-sticky-bg-color-mobile: null !default; +$app-header-sticky-bg-color-mobile-dark: null !default; +$app-header-sticky-box-shadow: null !default; +$app-header-sticky-box-shadow-dark: null !default; +$app-header-sticky-box-shadow-mobile: null !default; +$app-header-sticky-box-shadow-mobile-dark: null !default; +$app-header-sticky-border-bottom: null !default; +$app-header-sticky-border-bottom-dark: null !default; +$app-header-sticky-border-bottom-mobile: null !default; +$app-header-sticky-border-bottom-mobile-dark: null !default; + +// Header primary +$app-header-primary-base-transition: none !default; +$app-header-primary-base-height: 70px !default; +$app-header-primary-base-z-index: null !default; +$app-header-primary-base-z-index-mobile: null !default; +$app-header-primary-base-bg-color: null !default; +$app-header-primary-base-bg-color-dark: null !default; +$app-header-primary-base-bg-color-mobile: null !default; +$app-header-primary-base-bg-color-mobile-dark: null !default; +$app-header-primary-base-box-shadow: null !default; +$app-header-primary-base-box-shadow-dark: null !default; +$app-header-primary-base-box-shadow-mobile: null !default; +$app-header-primary-base-box-shadow-mobile-dark: null !default; +$app-header-primary-base-border-bottom: null !default; +$app-header-primary-base-border-bottom-dark: null !default; +$app-header-primary-base-border-bottom-mobile: null !default; +$app-header-primary-base-border-bottom-mobile-dark: null !default; + +$app-header-primary-fixed-z-index: 100 !default; + +$app-header-primary-minimize-height: 70px !default; +$app-header-primary-minimize-z-index: 100 !default; +$app-header-primary-minimize-bg-color: null !default; +$app-header-primary-minimize-bg-color-dark: null !default; +$app-header-primary-minimize-box-shadow: null !default; +$app-header-primary-minimize-box-shadow-dark: null !default; +$app-header-primary-minimize-border-top: null !default; +$app-header-primary-minimize-border-top-dark: null !default; +$app-header-primary-minimize-border-bottom: null !default; +$app-header-primary-minimize-border-bottom-dark: null !default; + +$app-header-primary-sticky-height: 70px !default; +$app-header-primary-sticky-z-index: 100 !default; +$app-header-primary-sticky-bg-color: null !default; +$app-header-primary-sticky-bg-color-dark: null !default; +$app-header-primary-sticky-box-shadow: null !default; +$app-header-primary-sticky-box-shadow-dark: null !default; +$app-header-primary-sticky-border-top: null !default; +$app-header-primary-sticky-border-top-dark: null !default; +$app-header-primary-sticky-border-bottom: null !default; +$app-header-primary-sticky-border-bottom-dark: null !default; + +// Header secondary +$app-header-secondary-base-transition: none !default; +$app-header-secondary-base-height: 70px !default; +$app-header-secondary-base-z-index: null !default; +$app-header-secondary-base-bg-color: null !default; +$app-header-secondary-base-bg-color-dark: null !default; +$app-header-secondary-base-bg-color-mobile: null !default; +$app-header-secondary-base-bg-color-mobile-dark: null !default; +$app-header-secondary-base-box-shadow: null !default; +$app-header-secondary-base-box-shadow-dark: null !default; +$app-header-secondary-base-box-shadow-mobile: null !default; +$app-header-secondary-base-box-shadow-mobile-dark: null !default; +$app-header-secondary-base-border-top: null !default; +$app-header-secondary-base-border-top-dark: null !default; +$app-header-secondary-base-border-bottom: null !default; +$app-header-secondary-base-border-bottom-dark: null !default; +$app-header-secondary-base-border-start-mobile: null !default; +$app-header-secondary-base-border-start-mobile-dark: null !default; +$app-header-secondary-base-border-end-mobile: null !default; +$app-header-secondary-base-border-end-mobile-dark: null !default; + +$app-header-secondary-fixed-z-index: 100 !default; + +$app-header-secondary-minimize-height: 70px !default; +$app-header-secondary-minimize-z-index: 100 !default; +$app-header-secondary-minimize-bg-color: null !default; +$app-header-secondary-minimize-bg-color-dark: null !default; +$app-header-secondary-minimize-box-shadow: null !default; +$app-header-secondary-minimize-box-shadow-dark: null !default; +$app-header-secondary-minimize-border-top: null !default; +$app-header-secondary-minimize-border-top-dark: null !default; +$app-header-secondary-minimize-border-bottom: null !default; +$app-header-secondary-minimize-border-bottom-dark: null !default; + +$app-header-secondary-sticky-height: 70px !default; +$app-header-secondary-sticky-z-index: 100 !default; +$app-header-secondary-sticky-bg-color: null !default; +$app-header-secondary-sticky-bg-color-dark: null !default; +$app-header-secondary-sticky-box-shadow: null !default; +$app-header-secondary-sticky-box-shadow-dark: null !default; +$app-header-secondary-sticky-border-top: null !default; +$app-header-secondary-sticky-border-top-dark: null !default; +$app-header-secondary-sticky-border-bottom: null !default; +$app-header-secondary-sticky-border-bottom-dark: null !default; + +// Toolbar base +$app-toolbar-base-transition: none !default; +$app-toolbar-base-height: null !default; +$app-toolbar-base-height-mobile: null !default; +$app-toolbar-base-z-index: 99 !default; +$app-toolbar-base-z-index-mobile: 99 !default; +$app-toolbar-base-bg-color: null !default; +$app-toolbar-base-bg-color-dark: null !default; +$app-toolbar-base-bg-color-mobile: null !default; +$app-toolbar-base-bg-color-mobile-dark: null !default; +$app-toolbar-base-box-shadow: null !default; +$app-toolbar-base-box-shadow-dark: null !default; +$app-toolbar-base-box-shadow-mobile: null !default; +$app-toolbar-base-box-shadow-mobile-dark: null !default; +$app-toolbar-base-border-top: null !default; +$app-toolbar-base-border-top-dark: null !default; +$app-toolbar-base-border-top-mobile: null !default; +$app-toolbar-base-border-top-mobile-dark: null !default; +$app-toolbar-base-border-bottom: null !default; +$app-toolbar-base-border-bottom-dark: null !default; +$app-toolbar-base-border-bottom-mobile: null !default; +$app-toolbar-base-border-bottom-mobile-dark: null !default; + +// Toolbar minimize +$app-toolbar-minimize-height: 70px !default; +$app-toolbar-minimize-height-mobile: 70px !default; +$app-toolbar-minimize-z-index: 99 !default; +$app-toolbar-minimize-z-index-mobile: 99 !default; +$app-toolbar-minimize-backdrop-filter: null !default; +$app-toolbar-minimize-backdrop-filter-mobile: null !default; +$app-toolbar-minimize-bg-color: null !default; +$app-toolbar-minimize-bg-color-dark: null !default; +$app-toolbar-minimize-bg-color-mobile: null !default; +$app-toolbar-minimize-bg-color-mobile-dark: null !default; +$app-toolbar-minimize-box-shadow: null !default; +$app-toolbar-minimize-box-shadow-dark: null !default; +$app-toolbar-minimize-box-shadow-mobile: null !default; +$app-toolbar-minimize-box-shadow-mobile-dark: null !default; +$app-toolbar-minimize-border-top: null !default; +$app-toolbar-minimize-border-top-dark: null !default; +$app-toolbar-minimize-border-top-mobile: null !default; +$app-toolbar-minimize-border-top-mobile-dark: null !default; +$app-toolbar-minimize-border-bottom: null !default; +$app-toolbar-minimize-border-bottom-dark: null !default; +$app-toolbar-minimize-border-bottom-mobile: null !default; +$app-toolbar-minimize-border-bottom-mobile-dark: null !default; + +// Toolbar sticky +$app-toolbar-sticky-height: 70px !default; +$app-toolbar-sticky-height-mobile: 70px !default; +$app-toolbar-sticky-z-index: 99 !default; +$app-toolbar-sticky-z-index-mobile: 99 !default; +$app-toolbar-sticky-backdrop-filter: null !default; +$app-toolbar-sticky-backdrop-filter-mobile: null !default; +$app-toolbar-sticky-bg-color: null !default; +$app-toolbar-sticky-bg-color-dark: null !default; +$app-toolbar-sticky-bg-color-mobile: null !default; +$app-toolbar-sticky-bg-color-mobile-dark: null !default; +$app-toolbar-sticky-box-shadow: null !default; +$app-toolbar-sticky-box-shadow-dark: null !default; +$app-toolbar-sticky-box-shadow-mobile: null !default; +$app-toolbar-sticky-box-shadow-mobile-dark: null !default; +$app-toolbar-sticky-border-top: null !default; +$app-toolbar-sticky-border-top-dark: null !default; +$app-toolbar-sticky-border-top-mobile: null !default; +$app-toolbar-sticky-border-top-mobile-dark: null !default; +$app-toolbar-sticky-border-bottom: null !default; +$app-toolbar-sticky-border-bottom-dark: null !default; +$app-toolbar-sticky-border-bottom-mobile: null !default; +$app-toolbar-sticky-border-bottom-mobile-dark: null !default; + +// Hero +$app-hero-bg-color: null !default; +$app-hero-bg-color-dark: null !default; +$app-hero-box-shadow: null !default; +$app-hero-box-shadow-dark: null !default; +$app-hero-border-top: null !default; +$app-hero-border-top-dark: null !default; +$app-hero-border-bottom: null !default; +$app-hero-border-bottom-dark: null !default; + +// Sidebar base +$app-sidebar-base-transition: width $app-general-transition-duration $app-general-transition-timing !default; +$app-sidebar-base-width: 300px !default; +$app-sidebar-base-width-mobile: 275px !default; +$app-sidebar-base-z-index: null !default; +$app-sidebar-base-z-index-mobile: 106 !default; +$app-sidebar-base-bg-color: null !default; +$app-sidebar-base-bg-color-dark: null !default; +$app-sidebar-base-bg-color-mobile: null !default; +$app-sidebar-base-bg-color-mobile-dark: null !default; +$app-sidebar-base-box-shadow: null !default; +$app-sidebar-base-box-shadow-dark: null !default; +$app-sidebar-base-box-shadow-mobile: null !default; +$app-sidebar-base-box-shadow-mobile-dark: null !default; +$app-sidebar-base-border-start: null !default; +$app-sidebar-base-border-start-dark: null !default; +$app-sidebar-base-border-start-mobile: null !default; +$app-sidebar-base-border-start-mobile-dark: null !default; +$app-sidebar-base-border-end: null !default; +$app-sidebar-base-border-end-dark: null !default; +$app-sidebar-base-border-end-mobile: null !default; +$app-sidebar-base-border-end-mobile-dark: null !default; +$app-sidebar-base-gap-start: 0px !default; +$app-sidebar-base-gap-start-mobile: 0px !default; +$app-sidebar-base-gap-end: 0px !default; +$app-sidebar-base-gap-end-mobile: 0px !default; +$app-sidebar-base-gap-top: 0px !default; +$app-sidebar-base-gap-top-mobile: 0px !default; +$app-sidebar-base-gap-bottom: 0px !default; +$app-sidebar-base-gap-bottom-mobile: 0px !default; + +// Sidebar fixed +$app-sidebar-fixed-z-index: 105 !default; +$app-sidebar-fixed-left: 0 !default; +$app-sidebar-fixed-top: 0 !default; +$app-sidebar-fixed-bottom: 0 !default; + +// Sidebar sticky +$app-sidebar-sticky-top: auto !default; +$app-sidebar-sticky-bottom: auto !default; +$app-sidebar-sticky-left: auto !default; +$app-sidebar-sticky-width: 300px !default; +$app-sidebar-sticky-z-index: 105 !default; +$app-sidebar-sticky-bg-color: null !default; +$app-sidebar-sticky-bg-color-dark: null !default; +$app-sidebar-sticky-box-shadow: null !default; +$app-sidebar-sticky-box-shadow-dark: null !default; +$app-sidebar-sticky-border-start: null !default; +$app-sidebar-sticky-border-start-dark: null !default; +$app-sidebar-sticky-border-end: null !default; +$app-sidebar-sticky-border-end-dark: null !default; +$app-sidebar-sticky-gap-start: 0px !default; +$app-sidebar-sticky-gap-end: 0px !default; +$app-sidebar-sticky-gap-top: 0px !default; +$app-sidebar-sticky-gap-bottom: 0px !default; + +// Sidebar minimize +$app-sidebar-minimize-width: 75px !default; +$app-sidebar-minimize-width-mobile: 75px !default; +$app-sidebar-minimize-bg-color: null !default; +$app-sidebar-minimize-bg-color-dark: null !default; +$app-sidebar-minimize-bg-color-mobile: null !default; +$app-sidebar-minimize-bg-color-mobile-dark: null !default; +$app-sidebar-minimize-box-shadow: null !default; +$app-sidebar-minimize-box-shadow-dark: null !default; +$app-sidebar-minimize-box-shadow-mobile: null !default; +$app-sidebar-minimize-box-shadow-mobile-dark: null !default; +$app-sidebar-minimize-hover-box-shadow: null !default; +$app-sidebar-minimize-hover-box-shadow-dark: null !default; +$app-sidebar-minimize-hover-box-shadow-mobile: null !default; +$app-sidebar-minimize-hover-box-shadow-mobile-dark: null !default; +$app-sidebar-minimize-border-start: null !default; +$app-sidebar-minimize-border-start-dark: null !default; +$app-sidebar-minimize-border-start-mobile: null !default; +$app-sidebar-minimize-border-start-mobile-dark: null !default; +$app-sidebar-minimize-border-end: null !default; +$app-sidebar-minimize-border-end-dark: null !default; +$app-sidebar-minimize-border-end-mobile: null !default; +$app-sidebar-minimize-border-end-mobile-dark: null !default; +$app-sidebar-minimize-gap-start: 0px !default; +$app-sidebar-minimize-gap-start-mobile: 0px !default; +$app-sidebar-minimize-gap-end: 0px !default; +$app-sidebar-minimize-gap-end-mobile: 0px !default; +$app-sidebar-minimize-gap-top: 0px !default; +$app-sidebar-minimize-gap-top-mobile: 0px !default; +$app-sidebar-minimize-gap-bottom: 0px !default; +$app-sidebar-minimize-gap-bottom-mobile: 0px !default; + +// Sidebar primary +$app-sidebar-primary-base-transition: none !default; +$app-sidebar-primary-base-width: 100px !default; +$app-sidebar-primary-base-width-mobile: 100px !default; +$app-sidebar-primary-base-z-index: 1 !default; +$app-sidebar-primary-base-z-index-mobile: 1 !default; +$app-sidebar-primary-base-bg-color: null !default; +$app-sidebar-primary-base-bg-color-dark: null !default; +$app-sidebar-primary-base-bg-color-mobile: null !default; +$app-sidebar-primary-base-bg-color-mobile-dark: null !default; +$app-sidebar-primary-base-box-shadow: null !default; +$app-sidebar-primary-base-box-shadow-dark: null !default; +$app-sidebar-primary-base-box-shadow-mobile: null !default; +$app-sidebar-primary-base-box-shadow-mobile-dark: null !default; +$app-sidebar-primary-base-border-start: null !default; +$app-sidebar-primary-base-border-start-dark: null !default; +$app-sidebar-primary-base-border-start-mobile: null !default; +$app-sidebar-primary-base-border-start-mobile-dark: null !default; +$app-sidebar-primary-base-border-end: null !default; +$app-sidebar-primary-base-border-end-dark: null !default; +$app-sidebar-primary-base-border-end-mobile: null !default; +$app-sidebar-primary-base-border-end-mobile-dark: null !default; +$app-sidebar-primary-base-gap-start: 0px !default; +$app-sidebar-primary-base-gap-start-mobile: 0px !default; +$app-sidebar-primary-base-gap-end: 0px !default; +$app-sidebar-primary-base-gap-end-mobile: 0px !default; +$app-sidebar-primary-base-gap-top: 0px !default; +$app-sidebar-primary-base-gap-top-mobile: 0px !default; +$app-sidebar-primary-base-gap-bottom: 0px !default; +$app-sidebar-primary-base-gap-bottom-mobile: 0px !default; + +$app-sidebar-primary-minimize-width: 75px !default; +$app-sidebar-primary-minimize-width-mobile: 75px !default; +$app-sidebar-primary-minimize-z-index: null !default; +$app-sidebar-primary-minimize-bg-color: null !default; +$app-sidebar-primary-minimize-bg-color-dark: null !default; +$app-sidebar-primary-minimize-bg-color-mobile: null !default; +$app-sidebar-primary-minimize-bg-color-mobile-dark: null !default; +$app-sidebar-primary-minimize-box-shadow: null !default; +$app-sidebar-primary-minimize-box-shadow-dark: null !default; +$app-sidebar-primary-minimize-box-shadow-mobile: null !default; +$app-sidebar-primary-minimize-box-shadow-mobile-dark: null !default; +$app-sidebar-primary-minimize-hover-box-shadow: null !default; +$app-sidebar-primary-minimize-hover-box-shadow-dark: null !default; +$app-sidebar-primary-minimize-hover-box-shadow-mobile: null !default; +$app-sidebar-primary-minimize-hover-box-shadow-mobile-dark: null !default; +$app-sidebar-primary-minimize-border-start: null !default; +$app-sidebar-primary-minimize-border-start-dark: null !default; +$app-sidebar-primary-minimize-border-start-mobile: null !default; +$app-sidebar-primary-minimize-border-start-mobile-dark: null !default; +$app-sidebar-primary-minimize-border-end: null !default; +$app-sidebar-primary-minimize-border-end-dark: null !default; +$app-sidebar-primary-minimize-border-end-mobile: null !default; +$app-sidebar-primary-minimize-border-end-mobile-dark: null !default; +$app-sidebar-primary-minimize-gap-start: 0px !default; +$app-sidebar-primary-minimize-gap-start-mobile: 0px !default; +$app-sidebar-primary-minimize-gap-end: 0px !default; +$app-sidebar-primary-minimize-gap-end-mobile: 0px !default; +$app-sidebar-primary-minimize-gap-top: 0px !default; +$app-sidebar-primary-minimize-gap-top-mobile: 0px !default; +$app-sidebar-primary-minimize-gap-bottom: 0px !default; +$app-sidebar-primary-minimize-gap-bottom-mobile: 0px !default; + +// Sidebar secondary +$app-sidebar-secondary-base-transition: none !default; +$app-sidebar-secondary-base-z-index: null !default; +$app-sidebar-secondary-base-z-index-mobile: null !default; +$app-sidebar-secondary-base-bg-color: null !default; +$app-sidebar-secondary-base-bg-color-dark: null !default; +$app-sidebar-secondary-base-bg-color-mobile: null !default; +$app-sidebar-secondary-base-bg-color-mobile-dark: null !default; +$app-sidebar-secondary-base-box-shadow: null !default; +$app-sidebar-secondary-base-box-shadow-dark: null !default; +$app-sidebar-secondary-base-box-shadow-mobile: null !default; +$app-sidebar-secondary-base-box-shadow-mobile-dark: null !default; +$app-sidebar-secondary-base-border-start: null !default; +$app-sidebar-secondary-base-border-start-dark: null !default; +$app-sidebar-secondary-base-border-start-mobile: null !default; +$app-sidebar-secondary-base-border-start-mobile-dark: null !default; +$app-sidebar-secondary-base-border-end: null !default; +$app-sidebar-secondary-base-border-end-dark: null !default; +$app-sidebar-secondary-base-border-end-mobile: null !default; +$app-sidebar-secondary-base-border-end-mobile-dark: null !default; +$app-sidebar-secondary-base-gap-start: 0px !default; +$app-sidebar-secondary-base-gap-start-mobile: 0px !default; +$app-sidebar-secondary-base-gap-end: 0px !default; +$app-sidebar-secondary-base-gap-end-mobile: 0px !default; +$app-sidebar-secondary-base-gap-top: 0px !default; +$app-sidebar-secondary-base-gap-top-mobile: 0px !default; +$app-sidebar-secondary-base-gap-bottom: 0px !default; +$app-sidebar-secondary-base-gap-bottom-mobile: 0px !default; + +$app-sidebar-secondary-minimize-width: 75px !default; +$app-sidebar-secondary-minimize-width-mobile: 75px !default; +$app-sidebar-secondary-minimize-z-index: null !default; +$app-sidebar-secondary-minimize-bg-color: null !default; +$app-sidebar-secondary-minimize-bg-color-dark: null !default; +$app-sidebar-secondary-minimize-bg-color-mobile: null !default; +$app-sidebar-secondary-minimize-bg-color-mobile-dark: null !default; +$app-sidebar-secondary-minimize-box-shadow: null !default; +$app-sidebar-secondary-minimize-box-shadow-dark: null !default; +$app-sidebar-secondary-minimize-box-shadow-mobile: null !default; +$app-sidebar-secondary-minimize-box-shadow-mobile-dark: null !default; +$app-sidebar-secondary-minimize-hover-box-shadow: null !default; +$app-sidebar-secondary-minimize-hover-box-shadow-dark: null !default; +$app-sidebar-secondary-minimize-hover-box-shadow-mobile: null !default; +$app-sidebar-secondary-minimize-hover-box-shadow-mobile-dark: null !default; +$app-sidebar-secondary-minimize-border-start: null !default; +$app-sidebar-secondary-minimize-border-start-dark: null !default; +$app-sidebar-secondary-minimize-border-start-mobile: null !default; +$app-sidebar-secondary-minimize-border-start-mobile-dark: null !default; +$app-sidebar-secondary-minimize-border-end: null !default; +$app-sidebar-secondary-minimize-border-end-dark: null !default; +$app-sidebar-secondary-minimize-border-end-mobile: null !default; +$app-sidebar-secondary-minimize-border-end-mobile-dark: null !default; +$app-sidebar-secondary-minimize-gap-start: 0px !default; +$app-sidebar-secondary-minimize-gap-start-mobile: 0px !default; +$app-sidebar-secondary-minimize-gap-end: 0px !default; +$app-sidebar-secondary-minimize-gap-end-mobile: 0px !default; +$app-sidebar-secondary-minimize-gap-top: 0px !default; +$app-sidebar-secondary-minimize-gap-top-mobile: 0px !default; +$app-sidebar-secondary-minimize-gap-bottom: 0px !default; +$app-sidebar-secondary-minimize-gap-bottom-mobile: 0px !default; + +// Sidebar panel base +$app-sidebar-panel-base-transition: none !default; +$app-sidebar-panel-base-width: 300px !default; +$app-sidebar-panel-base-width-mobile: 300px !default; +$app-sidebar-panel-base-z-index: null !default; +$app-sidebar-panel-base-z-index-mobile: null !default; +$app-sidebar-panel-base-bg-color: null !default; +$app-sidebar-panel-base-bg-color-dark: null !default; +$app-sidebar-panel-base-bg-color-mobile: null !default; +$app-sidebar-panel-base-bg-color-mobile-dark: null !default; +$app-sidebar-panel-base-box-shadow: null !default; +$app-sidebar-panel-base-box-shadow-dark: null !default; +$app-sidebar-panel-base-box-shadow-mobile: null !default; +$app-sidebar-panel-base-box-shadow-mobile-dark: null !default; +$app-sidebar-panel-base-border-start: null !default; +$app-sidebar-panel-base-border-start-dark: null !default; +$app-sidebar-panel-base-border-start-mobile: null !default; +$app-sidebar-panel-base-border-start-mobile-dark: null !default; +$app-sidebar-panel-base-border-end: null !default; +$app-sidebar-panel-base-border-end-dark: null !default; +$app-sidebar-panel-base-border-end-mobile: null !default; +$app-sidebar-panel-base-border-end-mobile-dark: null !default; +$app-sidebar-panel-base-gap-start: 0px !default; +$app-sidebar-panel-base-gap-start-mobile: 0px !default; +$app-sidebar-panel-base-gap-end: 0px !default; +$app-sidebar-panel-base-gap-end-mobile: 0px !default; +$app-sidebar-panel-base-gap-top: 0px !default; +$app-sidebar-panel-base-gap-top-mobile: 0px !default; +$app-sidebar-panel-base-gap-bottom: 0px !default; +$app-sidebar-panel-base-gap-bottom-mobile: 0px !default; + +// Sidebar panel fixed +$app-sidebar-panel-fixed-z-index: 104 !default; +$app-sidebar-panel-fixed-z-index-mobile: 105 !default; + +// Sidebar panel sticky +$app-sidebar-panel-sticky-top: auto !default; +$app-sidebar-panel-sticky-bottom: auto !default; +$app-sidebar-panel-sticky-width: 300px !default; +$app-sidebar-panel-sticky-z-index: 104 !default; +$app-sidebar-panel-sticky-bg-color: null !default; +$app-sidebar-panel-sticky-bg-color-dark: null !default; +$app-sidebar-panel-sticky-box-shadow: null !default; +$app-sidebar-panel-sticky-box-shadow-dark: null !default; +$app-sidebar-panel-sticky-border-start: null !default; +$app-sidebar-panel-sticky-border-start-dark: null !default; +$app-sidebar-panel-sticky-border-end: null !default; +$app-sidebar-panel-sticky-border-end-dark: null !default; +$app-sidebar-panel-sticky-gap-start: 0px !default; +$app-sidebar-panel-sticky-gap-start-mobile: 0px !default; +$app-sidebar-panel-sticky-gap-end: 0px !default; +$app-sidebar-panel-sticky-gap-end-mobile: 0px !default; +$app-sidebar-panel-sticky-gap-top: 0px !default; +$app-sidebar-panel-sticky-gap-top-mobile: 0px !default; +$app-sidebar-panel-sticky-gap-bottom: 0px !default; +$app-sidebar-panel-sticky-gap-bottom-mobile: 0px !default; + +// Sidebar panel minimize +$app-sidebar-panel-minimize-width: 75px !default; +$app-sidebar-panel-minimize-width-mobile: 75px !default; +$app-sidebar-panel-minimize-bg-color: null !default; +$app-sidebar-panel-minimize-bg-color-dark: null !default; +$app-sidebar-panel-minimize-bg-color-mobile: null !default; +$app-sidebar-panel-minimize-bg-color-mobile-dark: null !default; +$app-sidebar-panel-minimize-box-shadow: null !default; +$app-sidebar-panel-minimize-box-shadow-dark: null !default; +$app-sidebar-panel-minimize-box-shadow-mobile: null !default; +$app-sidebar-panel-minimize-box-shadow-mobile-dark: null !default; +$app-sidebar-panel-minimize-hover-box-shadow: null !default; +$app-sidebar-panel-minimize-hover-box-shadow-dark: null !default; +$app-sidebar-panel-minimize-hover-box-shadow-mobile: null !default; +$app-sidebar-panel-minimize-hover-box-shadow-mobile-dark: null !default; +$app-sidebar-panel-minimize-border-start: null !default; +$app-sidebar-panel-minimize-border-start-dark: null !default; +$app-sidebar-panel-minimize-border-start-mobile: null !default; +$app-sidebar-panel-minimize-border-start-mobile-dark: null !default; +$app-sidebar-panel-minimize-border-end: null !default; +$app-sidebar-panel-minimize-border-end-dark: null !default; +$app-sidebar-panel-minimize-border-end-mobile: null !default; +$app-sidebar-panel-minimize-border-end-mobile-dark: null !default; +$app-sidebar-panel-minimize-gap-start: 0px !default; +$app-sidebar-panel-minimize-gap-start-mobile: 0px !default; +$app-sidebar-panel-minimize-gap-end: 0px !default; +$app-sidebar-panel-minimize-gap-end-mobile: 0px !default; +$app-sidebar-panel-minimize-gap-top: 0px !default; +$app-sidebar-panel-minimize-gap-top-mobile: 0px !default; +$app-sidebar-panel-minimize-gap-bottom: 0px !default; +$app-sidebar-panel-minimize-gap-bottom-mobile: 0px !default; + +// Aside base +$app-aside-base-transition: none; +$app-aside-base-width: 300px !default; +$app-aside-base-width-mobile: 275px !default; +$app-aside-base-z-index: null !default; +$app-aside-base-z-index-mobile: 106 !default; +$app-aside-base-bg-color: null !default; +$app-aside-base-bg-color-dark: null !default; +$app-aside-base-bg-color-mobile: null !default; +$app-aside-base-bg-color-mobile-dark: null !default; +$app-aside-base-box-shadow: null !default; +$app-aside-base-box-shadow-dark: null !default; +$app-aside-base-box-shadow-mobile: null !default; +$app-aside-base-box-shadow-mobile-dark: null !default; +$app-aside-base-border-start: null !default; +$app-aside-base-border-start-dark: null !default; +$app-aside-base-border-start-mobile: null !default; +$app-aside-base-border-start-mobile-dark: null !default; +$app-aside-base-border-end: null !default; +$app-aside-base-border-end-dark: null !default; +$app-aside-base-border-end-mobile: null !default; +$app-aside-base-border-end-mobile-dark: null !default; +$app-aside-base-gap-start: 0px !default; +$app-aside-base-gap-start-mobile: 0px !default; +$app-aside-base-gap-end: 0px !default; +$app-aside-base-gap-end-mobile: 0px !default; +$app-aside-base-gap-top: 0px !default; +$app-aside-base-gap-top-mobile: 0px !default; +$app-aside-base-gap-bottom: 0px !default; +$app-aside-base-gap-bottom-mobile: 0px !default; + +// Aside fixed +$app-aside-fixed-z-index: 105 !default; +$app-aside-fixed-right: 0 !default; +$app-aside-fixed-top: 0 !default; +$app-aside-fixed-bottom: 0 !default; + +// Aside sticky +$app-aside-sticky-top: auto !default; +$app-aside-sticky-bottom: auto !default; +$app-aside-sticky-left: auto !default; +$app-aside-sticky-width: 300px !default; +$app-aside-sticky-z-index: 105 !default; +$app-aside-sticky-bg-color: null !default; +$app-aside-sticky-bg-color-dark: null !default; +$app-aside-sticky-box-shadow: null !default; +$app-aside-sticky-box-shadow-dark: null !default; +$app-aside-sticky-border-start: null !default; +$app-aside-sticky-border-start-dark: null !default; +$app-aside-sticky-border-end: null !default; +$app-aside-sticky-border-end-dark: null !default; +$app-aside-sticky-gap-start: 0px !default; +$app-aside-sticky-gap-end: 0px !default; +$app-aside-sticky-gap-top: 0px !default; +$app-aside-sticky-gap-bottom: 0px !default; + +// Aside minimize +$app-aside-minimize-width: 75px !default; +$app-aside-minimize-width-mobile: 75px !default; +$app-aside-minimize-bg-color: null !default; +$app-aside-minimize-bg-color-dark: null !default; +$app-aside-minimize-bg-color-mobile: null !default; +$app-aside-minimize-bg-color-mobile-dark: null !default; +$app-aside-minimize-box-shadow: null !default; +$app-aside-minimize-box-shadow-dark: null !default; +$app-aside-minimize-box-shadow-mobile: null !default; +$app-aside-minimize-box-shadow-mobile-dark: null !default; +$app-aside-minimize-hover-box-shadow: null !default; +$app-aside-minimize-hover-box-shadow-dark: null !default; +$app-aside-minimize-hover-box-shadow-mobile: null !default; +$app-aside-minimize-hover-box-shadow-mobile-dark: null !default; +$app-aside-minimize-border-start: null !default; +$app-aside-minimize-border-start-dark: null !default; +$app-aside-minimize-border-start-mobile: null !default; +$app-aside-minimize-border-start-mobile-dark: null !default; +$app-aside-minimize-border-end: null !default; +$app-aside-minimize-border-end-dark: null !default; +$app-aside-minimize-border-end-mobile: null !default; +$app-aside-minimize-border-end-mobile-dark: null !default; +$app-aside-minimize-gap-start: 0px !default; +$app-aside-minimize-gap-start-mobile: 0px !default; +$app-aside-minimize-gap-end: 0px !default; +$app-aside-minimize-gap-end-mobile: 0px !default; +$app-aside-minimize-gap-top: 0px !default; +$app-aside-minimize-gap-top-mobile: 0px !default; +$app-aside-minimize-gap-bottom: 0px !default; +$app-aside-minimize-gap-bottom-mobile: 0px !default; + +// Footer +$app-footer-transition: left $app-general-transition-duration $app-general-transition-timing, right $app-general-transition-duration $app-general-transition-timing; +$app-footer-height: 70px !default; +$app-footer-height-mobile: 70px !default; +$app-footer-z-index: null !default; +$app-footer-z-index-mobile: null !default; +$app-footer-bg-color: null !default; +$app-footer-bg-color-dark: null !default; +$app-footer-bg-color-mobile: null !default; +$app-footer-bg-color-mobile-dark: null !default; +$app-footer-box-shadow: null !default; +$app-footer-box-shadow-dark: null !default; +$app-footer-box-shadow-mobile: null !default; +$app-footer-box-shadow-mobile-dark: null !default; +$app-footer-border-top: null !default; +$app-footer-border-top-dark: null !default; +$app-footer-border-top-mobile: null !default; +$app-footer-border-top-mobile-dark: null !default; + +// Footer fixed +$app-footer-fixed-z-index: 100 !default; +$app-footer-fixed-z-index-mobile: 100 !default; + +// Layout Builder +$app-layout-builder-toggle-z-index: 105 !default; +$app-layout-builder-toggle-bottom: 40px !default; +$app-layout-builder-toggle-bottom-mobile: 15px !default; +$app-layout-builder-toggle-end: 40px !default; +$app-layout-builder-toggle-end-mobile: 15px !default; \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/_wrapper.scss b/src/_metronic/assets/sass/core/layout/base/_wrapper.scss new file mode 100644 index 0000000..a8734b1 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/_wrapper.scss @@ -0,0 +1,100 @@ +// +// Wrapper +// + +// General mode +.app-wrapper { + display: flex; +} + +// Desktop mode +@include media-breakpoint-up(lg) { + // Integration + .app-wrapper { + transition: $app-wrapper-transition; + + // Header + [data-kt-app-header-sticky="on"] & { + margin-top: var(--kt-app-header-height-actual); + } + + [data-kt-app-header-fixed="true"] & { + margin-top: var(--kt-app-header-height); + } + + // Toolbar + [data-kt-app-toolbar-sticky="on"] & { + margin-top: var(--kt-app-toolbar-height); + } + + [data-kt-app-header-fixed="true"][data-kt-app-toolbar-sticky="on"] & { + margin-top: calc(var(--kt-app-header-height-actual) + var(--kt-app-toolbar-height-actual)); + } + + [data-kt-app-header-fixed="true"][data-kt-app-toolbar-fixed="true"] & { + margin-top: calc(var(--kt-app-header-height) + var(--kt-app-toolbar-height)); + } + + // Sidebar + [data-kt-app-sidebar-fixed="true"] & { + margin-left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + ); + } + + // Sidebar Panel + [data-kt-app-sidebar-panel-fixed="true"] & { + margin-left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + + var(--kt-app-sidebar-panel-width) + + var(--kt-app-sidebar-panel-gap-start, 0px) + + var(--kt-app-sidebar-panel-gap-end, 0px) + ); + } + + // Aside + [data-kt-app-aside-fixed="true"] & { + margin-right: calc( + var(--kt-app-aside-width) + + var(--kt-app-aside-gap-start, 0px) + + var(--kt-app-aside-gap-end, 0px) + ); + } + + // Footer + [data-kt-app-footer-fixed="true"] & { + margin-bottom: var(--kt-app-footer-height); + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Integration + .app-wrapper { + transition: $app-wrapper-transition; + + // Header + [data-kt-app-header-sticky="on"] & { + margin-top: var(--kt-app-header-height-actual); + } + + [data-kt-app-header-fixed-mobile="true"] & { + margin-top: var(--kt-app-header-height); + } + + // Toolbar + [data-kt-app-header-fixed-mobile="true"][data-kt-app-toolbar-sticky="on"] & { + margin-top: calc(var(--kt-app-header-height-actual) + var(--kt-app-toolbar-height-actual)); + } + + // Footer + [data-kt-app-footer-fixed-mobile="true"] & { + margin-bottom: var(--kt-app-footer-height); + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/aside/_aside.scss b/src/_metronic/assets/sass/core/layout/base/aside/_aside.scss new file mode 100644 index 0000000..71f38c3 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/aside/_aside.scss @@ -0,0 +1,294 @@ +// +// Aside +// + +// General mode +.app-aside { + transition: $app-aside-base-transition; +} + +// Utilities +.app-aside-minimize-d-flex, +.app-aside-sticky-d-flex, +.app-aside-collapse-d-flex, +.app-aside-minimize-mobile-d-flex, +.app-aside-collapse-mobile-d-flex { + display: none; +} + +// Desktop mode +@include media-breakpoint-up(lg) { + // Base + .app-aside { + display: flex; + flex-shrink: 0; + width: var(--kt-app-aside-width); + background-color: var(--kt-app-aside-base-bg-color); + box-shadow: var(--kt-app-aside-base-box-shadow); + border-left: var(--kt-app-aside-base-border-left); + border-right: var(--kt-app-aside-base-border-right); + + @include property( margin-left, $app-aside-base-gap-start); + @include property( margin-right, $app-aside-base-gap-end); + @include property( margin-top, $app-aside-base-gap-top); + @include property( margin-bottom, $app-aside-base-gap-bottom); + @include property( z-index, $app-aside-base-z-index); + } + + // Vars + :root { + --kt-app-aside-width: #{$app-aside-base-width}; + --kt-app-aside-width-actual: #{$app-aside-base-width}; + + --kt-app-aside-gap-start: #{$app-aside-base-gap-start}; + --kt-app-aside-gap-end: #{$app-aside-base-gap-end}; + --kt-app-aside-gap-top: #{$app-aside-base-gap-top}; + --kt-app-aside-gap-bottom: #{$app-aside-base-gap-bottom}; + } + + [data-kt-app-aside-stacked="true"] { + --kt-app-aside-width: calc(var(--kt-app-aside-primary-width) + var(--kt-app-aside-secondary-width)); + } + + [data-kt-app-aside-minimize="on"] { + --kt-app-aside-width: #{$app-aside-minimize-width}; + + --kt-app-aside-gap-start: #{$app-aside-minimize-gap-start}; + --kt-app-aside-gap-end: #{$app-aside-minimize-gap-end}; + --kt-app-aside-gap-top: #{$app-aside-minimize-gap-top}; + --kt-app-aside-gap-bottom: #{$app-aside-minimize-gap-bottom}; + } + + [data-kt-app-aside-sticky="on"] { + --kt-app-aside-width: #{$app-aside-sticky-width}; + + --kt-app-aside-gap-start: #{$app-aside-sticky-gap-start}; + --kt-app-aside-gap-end: #{$app-aside-sticky-gap-end}; + --kt-app-aside-gap-top: #{$app-aside-sticky-gap-top}; + --kt-app-aside-gap-bottom: #{$app-aside-sticky-gap-bottom}; + } + + [data-kt-app-aside-collapse="on"] { + --kt-app-aside-width: 0px; + } + + // States + .app-aside { + [data-kt-app-aside-static="true"] & { + position: relative; + } + + [data-kt-app-aside-offcanvas="true"] & { + display: none; + } + + [data-kt-app-aside-fixed="true"] & { + position: fixed; + @include property( z-index, $app-aside-fixed-z-index); + @include property( top, $app-aside-fixed-top); + @include property( bottom, $app-aside-fixed-bottom); + @include property( right, $app-aside-fixed-right); + } + + [data-kt-app-aside-stacked="true"] & { + align-items: stretch; + } + + [data-kt-app-aside-sticky="on"] & { + position: fixed; + transition: $app-aside-base-transition; + + box-shadow: var(--kt-app-aside-sticky-box-shadow); + border-left: var(--kt-aside-sticky-border-start); + border-right: var(--kt-app-aside-sticky-border-end); + + @include property( top, $app-aside-sticky-top); + @include property( bottom, $app-aside-sticky-bottom); + @include property( left, $app-aside-sticky-left); + @include property( z-index, $app-aside-sticky-z-index); + @include property( margin-left, $app-aside-sticky-gap-start); + @include property( margin-right, $app-aside-sticky-gap-end); + @include property( margin-top, $app-aside-sticky-gap-top); + @include property( margin-bottom, $app-aside-sticky-gap-bottom); + } + + [data-kt-app-aside-minimize="on"] & { + transition: $app-aside-base-transition; + + background-color: var(--kt-app-aside-minimize-bg-color); + box-shadow: var(--kt-app-aside-minimize-box-shadow); + border-start: var(--kt-app-aside-minimize-border-start); + border-end: var(--kt-app-aside-minimize-border-end); + + @include property( margin-left, $app-aside-minimize-gap-start); + @include property( margin-right, $app-aside-minimize-gap-end); + @include property( margin-top, $app-aside-minimize-gap-top); + @include property( margin-bottom, $app-aside-minimize-gap-bottom); + } + + [data-kt-app-aside-hoverable="true"] & { + .app-aside-wrapper { + width: var(--kt-app-aside-width-actual); + } + } + + [data-kt-app-aside-hoverable="true"][data-kt-app-aside-minimize="on"] &:hover:not(.animating) { + transition: $app-aside-base-transition; + width: var(--kt-app-aside-width-actual); + box-shadow: var(--kt-app-aside-minimize-hover-box-shadow); + } + + [data-kt-app-aside-collapse="on"] & { + transition: $app-aside-base-transition; + width: var(--kt-app-aside-width-actual); + margin-right: calc( -1 * var(--kt-app-aside-width-actual)); + } + } + + // Utilities + [data-kt-app-aside-minimize="on"] { + .app-aside-minimize-d-none { + display: none !important; + } + + .app-aside-minimize-d-flex { + display: flex !important; + } + } + + [data-kt-app-aside-sticky="on"] { + .app-aside-sticky-d-none { + display: none !important; + } + + .app-aside-sticky-d-flex { + display: flex !important; + } + } + + [data-kt-app-aside-collapse="on"] { + .app-aside-collapse-d-none { + display: none !important; + } + + .app-aside-collapse-d-flex { + display: flex !important; + } + } + + // Integration + .app-aside { + // Header + [data-kt-app-aside-fixed="true"][data-kt-app-header-fixed="true"]:not([data-kt-app-aside-push-header="true"]) & { + top: var(--kt-app-header-height); + } + + // Toolbar + [data-kt-app-aside-fixed="true"][data-kt-app-header-fixed="true"][data-kt-app-toolbar-fixed="true"]:not([data-kt-app-aside-push-toolbar="true"]) & { + top: calc(var(--kt-app-header-height) + var(--kt-app-toolbar-height, 0px)); + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Base + .app-aside { + display: none; + width: var(--kt-app-aside-width); + @include property( z-index, $app-aside-base-z-index-mobile); + + background-color: var(--kt-app-aside-base-bg-color-mobile); + box-shadow: var(--kt-app-aside-base-box-shadow-mobile); + border-left: var(--kt-app-aside-base-border-start-mobile); + order-right: var(--kt-app-aside-base-border-end-mobile); + + @include property( margin-left, $app-aside-base-gap-start-mobile); + @include property( margin-right, $app-aside-base-gap-end-mobile); + @include property( margin-top, $app-aside-base-gap-top-mobile); + @include property( margin-bottom, $app-aside-base-gap-bottom-mobile); + } + + // Vars + :root { + --kt-app-aside-width: #{$app-aside-base-width-mobile}; + --kt-app-aside-width-actual: #{$app-aside-base-width-mobile}; + + --kt-app-aside-gap-start: #{$app-aside-base-gap-start-mobile}; + --kt-app-aside-gap-end: #{$app-aside-base-gap-end-mobile}; + --kt-app-aside-gap-top: #{$app-aside-base-gap-top-mobile}; + --kt-app-aside-gap-bottom: #{$app-aside-base-gap-bottom-mobile}; + } + + [data-kt-app-aside-minimize-mobile="on"] { + --kt-app-aside-width: #{$app-aside-minimize-width-mobile}; + + --kt-app-aside-gap-start: #{$app-aside-minimize-gap-start-mobile}; + --kt-app-aside-gap-end: #{$app-aside-minimize-gap-end-mobile}; + --kt-app-aside-gap-top: #{$app-aside-minimize-gap-top-mobile}; + --kt-app-aside-gap-bottom: #{$app-aside-minimize-gap-bottom-mobile}; + } + + [data-kt-app-aside-collapse-mobile="on"] { + --kt-app-aside-width: 0px; + } + + // States + .app-aside { + [data-kt-app-aside-stacked="true"] & { + align-items: stretch; + } + + [data-kt-app-aside-minimize-mobile="on"] & { + transition: $app-aside-base-transition; + background-color: var(--kt-app-aside-minimize-bg-color-mobile); + box-shadow: var(--kt-app-aside-minimize-box-shadow-mobile); + border-left: var(--kt-app-aside-minimize-border-start-mobile); + border-right: var(--kt-app-aside-minimize-border-end-mobile); + + @include property( margin-left, $app-aside-minimize-gap-start-mobile); + @include property( margin-right, $app-aside-minimize-gap-end-mobile); + @include property( margin-top, $app-aside-minimize-gap-top-mobile); + @include property( margin-bottom, $app-aside-minimize-gap-bottom-mobile); + } + + [data-kt-app-aside-hoverable-mobile="true"] & { + .app-aside-wrapper { + width: var(--kt-app-aside-width-actual); + } + } + + [data-kt-app-aside-hoverable-mobile="true"][data-kt-app-aside-minimize-mobile="on"] &:hover:not(.animating) { + transition: $app-aside-base-transition; + width: var(--kt-app-aside-width-actual); + box-shadow: var(--kt-app-aside-minimize-hover-box-shadow-mobile); + } + + [data-kt-app-aside-collapse-mobile="on"] & { + transition: $app-aside-base-transition; + width: var(--kt-app-aside-width-actual); + margin-right: calc( -1 * var(--kt-app-aside-width-actual)); + } + } + + // Utilities + [data-kt-app-aside-minimize-mobile="on"] { + .app-aside-minimize-mobile-d-none { + display: none !important; + } + + .app-aside-minimize-mobile-d-flex { + display: flex !important; + } + } + + [data-kt-app-aside-collapse-mobile="on"] { + .app-aside-collapse-mobile-d-none { + display: none !important; + } + + .app-aside-collapse-mobile-d-flex { + display: flex !important; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/header/_header-primary.scss b/src/_metronic/assets/sass/core/layout/base/header/_header-primary.scss new file mode 100644 index 0000000..4456c2a --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/header/_header-primary.scss @@ -0,0 +1,120 @@ +// +// Header primary +// + +// General mode +.app-header-primary { + transition: $app-header-primary-base-transition; + display: flex; + align-items: stretch; +} + +// Desktop mode +@include media-breakpoint-up(lg) { + // Base + .app-header-primary { + @include property( z-index, $app-header-primary-base-z-index); + + background-color: var(--kt-app-header-primary-base-bg-color); + box-shadow: var(--kt-app-header-primary-base-box-shadow); + border-bottom: var(--kt-app-header-primary-base-border-bottom); + } + + // Vars + :root { + --kt-app-header-primary-height: #{$app-header-primary-base-height}; + } + + [data-kt-app-header-sticky="on"] { + --kt-app-header-primary-height: #{$app-header-primary-sticky-height}; + } + + [data-kt-app-header-minimize="on"] { + --kt-app-header-primary-height: #{$app-header-primary-minimize-height}; + } + + [data-kt-app-header-sticky="on"][data-kt-app-header-primary-sticky-hide="true"] { + --kt-app-header-primary-height: 0; + } + + // States + .app-header-primary { + height: var(--kt-app-header-primary-height); + + [data-kt-app-header-primary-fixed="true"] & { + @include property( z-index, $app-header-primary-fixed-z-index); + position: fixed; + left: 0; + right: 0; + top: 0; + } + + [data-kt-app-header-primary-static="true"] & { + position: relative; + } + + [data-kt-app-header-primary-sticky="on"] & { + position: fixed; + left: 0; + right: 0; + top: 0; + @include property( height, $app-header-primary-sticky-height); + @include property( z-index, $app-header-primary-sticky-z-index); + + background-color: var(--kt-app-header-primary-sticky-bg-color); + box-shadow: var(--kt-app-header-primary-sticky-box-shadow); + border-bottom: var(--kt-app-header-primary-sticky-border-bottom); + } + + [data-kt-app-header-primary-minimize="on"] & { + transition: $app-header-primary-base-transition; + @include property( height, $app-header-primary-minimize-height); + @include property( z-index, $app-header-primary-minimize-z-index); + + background-color: var(--kt-app-header-primary-minimize-bg-color); + box-shadow: var(--kt-app-header-primary-minimize-box-shadow); + border-bottom: var(--kt-app-header-primary-minimize-border-bottom); + } + + [data-kt-app-header-sticky="on"][data-kt-app-header-primary-sticky-hide="true"] & { + display: none !important; + } + } + + // Integration + .app-header-primary { + // Sidebar + [data-kt-app-sidebar-fixed="true"][data-kt-app-sidebar-push-header="true"] & { + left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + ); + } + + // Sidebar Panel + [data-kt-app-sidebar-panel-fixed="true"][data-kt-app-sidebar-panel-push-header="true"] & { + left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + + var(--kt-app-sidebar-panel-width) + + var(--kt-app-sidebar-panel-gap-start, 0px) + + var(--kt-app-sidebar-panel-gap-end, 0px) + ); + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Base + .app-header-primary { + flex-grow: 1; + @include property( z-index, $app-header-primary-base-z-index-mobile); + + background-color: var(--kt-app-header-primary-base-bg-color-mobile); + box-shadow: var(--kt-app-header-primary-base-box-shadow-mobile); + border-bottom: var(--kt-app-header-primary-base-border-bottom-mobile); + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/header/_header-secondary.scss b/src/_metronic/assets/sass/core/layout/base/header/_header-secondary.scss new file mode 100644 index 0000000..8549f76 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/header/_header-secondary.scss @@ -0,0 +1,120 @@ +// +// Header secondary +// + +// General mode +.app-header-secondary { + transition: $app-header-secondary-base-transition; + display: flex; + align-items: stretch; +} + +// Desktop mode +@include media-breakpoint-up(lg) { + // Base + .app-header-secondary { + @include property( z-index, $app-header-secondary-base-z-index); + + background-color: var(--kt-app-header-secondary-base-bg-color); + box-shadow: var(--kt-app-header-secondary-base-box-shadow); + border-bottom: var(--kt-app-header-secondary-base-border-bottom); + } + + // Vars + :root { + --kt-app-header-secondary-height: #{$app-header-secondary-base-height}; + } + + [data-kt-app-header-sticky="on"] { + --kt-app-header-secondary-height: #{$app-header-secondary-sticky-height}; + } + + [data-kt-app-header-minimize="on"] { + --kt-app-header-secondary-height: #{$app-header-secondary-minimize-height}; + } + + [data-kt-app-header-sticky="on"][data-kt-app-header-secondary-sticky-hide="true"] { + --kt-app-header-secondary-height: 0; + } + + // States + .app-header-secondary { + height: var(--kt-app-header-secondary-height); + + [data-kt-app-header-secondary-fixed="true"] & { + @include property( z-index, $app-header-secondary-fixed-z-index); + position: fixed; + left: 0; + right: 0; + top: 0; + } + + [data-kt-app-header-secondary-static="true"] & { + position: static; + } + + [data-kt-app-header-secondary-sticky="on"] & { + transition: $app-header-secondary-base-transition; + position: fixed; + left: 0; + right: 0; + top: 0; + @include property( height, $app-header-secondary-sticky-height); + @include property( z-index, $app-header-secondary-sticky-z-index); + + background-color: var(--kt-app-header-secondary-sticky-bg-color); + box-shadow: var(--kt-app-header-secondary-sticky-box-shadow); + border-bottom: var(--kt-app-header-secondary-sticky-border-bottom); + } + + [data-kt-app-header-secondary-minimize="on"] & { + transition: $app-header-secondary-base-transition; + @include property( height, $app-header-secondary-minimize-height); + @include property( z-index, $app-header-secondary-minimize-z-index); + + background-color: var(--kt-app-header-secondary-minimize-bg-color); + box-shadow: var(--kt-app-header-secondary-minimize-box-shadow); + border-bottom: var(--kt-app-header-secondary-minimize-border-bottom); + } + + [data-kt-app-header-sticky="on"][data-kt-app-header-secondary-sticky-hide="true"] & { + display: none !important; + } + } + + // Integration + .app-header-secondary { + // Sidebar + [data-kt-app-sidebar-fixed="true"][data-kt-app-sidebar-push-header="true"] & { + left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + ); + } + + // Sidebar Panel + [data-kt-app-sidebar-panel-fixed="true"][data-kt-app-sidebar-panel-push-header="true"] & { + left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + + var(--kt-app-sidebar-panel-width) + + var(--kt-app-sidebar-panel-gap-start, 0px) + + var(--kt-app-sidebar-panel-gap-end, 0px) + ); + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Base + .app-header-secondary { + flex-grow: 1; + background-color: var(--kt-app-header-secondary-base-bg-color-mobile); + box-shadow: var(--kt-app-header-secondary-base-box-shadow-mobile); + border-left: var(--kt-app-header-secondary-base-border-start-mobile); + border-right: var(--kt-app-header-secondary-base-border-end-mobile); + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/header/_header.scss b/src/_metronic/assets/sass/core/layout/base/header/_header.scss new file mode 100644 index 0000000..5283b2c --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/header/_header.scss @@ -0,0 +1,228 @@ +// +// sidebar +// + +// General mode +.app-header { + transition: $app-header-base-transition; + display: flex; + align-items: stretch; +} + +// Desktop mode +@include media-breakpoint-up(lg) { + // Base + .app-header { + @include property( z-index, $app-header-base-z-index); + + background-color: var(--kt-app-header-base-bg-color); + box-shadow: var(--kt-app-header-base-box-shadow); + border-bottom: var(--kt-app-header-base-border-bottom); + } + + // Vars + :root { + --kt-app-header-height: #{$app-header-base-height}; + --kt-app-header-height-actual: #{$app-header-base-height}; + } + + [data-kt-app-header-sticky="on"] { + --kt-app-header-height: #{$app-header-sticky-height}; + --kt-app-header-height-actual: #{$app-header-base-height}; + } + + [data-kt-app-header-sticky="on"][data-kt-app-header-stacked="true"] { + --kt-app-header-height: calc(var(--kt-app-header-primary-height, 0px) + var(--kt-app-header-secondary-height, 0px)); + --kt-app-header-height-actual: calc(#{$app-header-primary-base-height} + #{$app-header-secondary-base-height}); + } + + [data-kt-app-header-minimize="on"] { + --kt-app-header-height: #{$app-header-minimize-height}; + } + + // States + .app-header { + height: var(--kt-app-header-height); + + [data-kt-app-header-fixed="true"] & { + @include property( z-index, $app-header-fixed-z-index); + position: fixed; + left: 0; + right: 0; + top: 0; + } + + [data-kt-app-header-static="true"] & { + position: relative; + } + + [data-kt-app-header-stacked="true"] & { + flex-direction: column; + height: calc(var(--kt-app-header-primary-height) + var(--kt-app-header-secondary-height, 0px)); + } + + [data-kt-app-header-sticky="on"] & { + position: fixed; + left: 0; + right: 0; + top: 0; + @include property( z-index, $app-header-sticky-z-index); + @include property( backdrop-filter, $app-header-sticky-backdrop-filter); + + background-color: var(--kt-app-header-sticky-bg-color); + box-shadow: var(--kt-app-header-sticky-box-shadow); + border-bottom: var(--kt-app-header-sticky-border-bottom); + } + + [data-kt-app-header-minimize="on"] & { + transition: $app-header-base-transition; + @include property( z-index, $app-header-minimize-z-index); + @include property( backdrop-filter, $app-header-minimize-backdrop-filter); + + background-color: var(--kt-app-header-minimize-bg-color); + box-shadow: var(--kt-app-header-minimize-box-shadow); + border-bottom: var(--kt-app-header-minimize-border-bottom); + } + + .app-header-mobile-drawer { + display: flex; + } + } + + // Integration + .app-header { + // Sidebar + [data-kt-app-header-fixed="true"][data-kt-app-sidebar-fixed="true"][data-kt-app-sidebar-push-header="true"] &, + [data-kt-app-header-fixed="true"][data-kt-app-sidebar-sticky="on"][data-kt-app-sidebar-push-header="true"] & { + left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + ); + } + + body:not([data-kt-app-header-fixed="true"])[data-kt-app-sidebar-fixed="true"][data-kt-app-sidebar-push-header="true"] &, + body:not([data-kt-app-header-fixed="true"])[data-kt-app-sidebar-sticky="on"][data-kt-app-sidebar-push-header="true"] & { + margin-left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + ); + } + + // Sidebar Panel + [data-kt-app-header-fixed="true"][data-kt-app-sidebar-panel-fixed="true"][data-kt-app-sidebar-panel-push-header="true"] &, + [data-kt-app-header-fixed="true"][data-kt-app-sidebar-panel-sticky="on"][data-kt-app-sidebar-panel-push-header="true"] & { + left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + + var(--kt-app-sidebar-panel-width) + + var(--kt-app-sidebar-panel-gap-start, 0px) + + var(--kt-app-sidebar-panel-gap-end, 0px) + ); + } + + body:not([data-kt-app-header-fixed="true"])[data-kt-app-sidebar-panel-fixed="true"][data-kt-app-sidebar-panel-push-header="true"] &, + body:not([data-kt-app-header-fixed="true"])[data-kt-app-sidebar-panel-sticky="on"][data-kt-app-sidebar-panel-push-header="true"] & { + margin-left: calc( + var(--kt-app-sidebar-width) + + var(--kt-app-sidebar-gap-start, 0px) + + var(--kt-app-sidebar-gap-end, 0px) + + var(--kt-app-sidebar-panel-width) + + var(--kt-app-sidebar-panel-gap-start, 0px) + + var(--kt-app-sidebar-panel-gap-end, 0px) + ); + } + + // Toolbar + [data-kt-app-header-fixed="true"][data-kt-app-toolbar-fixed="true"] & { + box-shadow: none; + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Base + .app-header { + @include property( z-index, $app-header-base-z-index-mobile); + + background-color: var(--kt-app-header-base-bg-color-mobile); + box-shadow: var(--kt-app-header-base-box-shadow-mobile); + border-bottom: var(--kt-app-header-base-border-bottom-mobile); + } + + // Vars + :root { + --kt-app-header-height: #{$app-header-base-height-mobile}; + } + + [data-kt-app-header-sticky="on"] { + --kt-app-header-height: #{$app-header-sticky-height-mobile}; + --kt-app-header-height-actual: #{$app-header-sticky-height-mobile}; + } + + [data-kt-app-header-minimize="on"] { + --kt-app-header-height: #{$app-header-minimize-height-mobile}; + --kt-app-header-height-actual: #{$app-header-minimize-height-mobile}; + } + + // States + .app-header { + height: var(--kt-app-header-height); + align-items: stretch; + + .app-header-mobile-drawer { + display: none; + } + + [data-kt-app-header-stacked="true"] & { + flex-direction: column; + } + + [data-kt-app-header-fixed-mobile="true"] & { + @include property( z-index, $app-header-fixed-z-index-mobile); + transition: $app-header-base-transition; + position: fixed; + left: 0; + right: 0; + top: 0; + } + + [data-kt-app-header-sticky="on"] & { + position: fixed; + left: 0; + right: 0; + top: 0; + @include property( z-index, $app-header-sticky-z-index-mobile); + @include property( backdrop-filter, $app-header-sticky-backdrop-filter-mobile); + + background-color: var(--kt-app-header-sticky-bg-color-mobile); + box-shadow: var(--kt-app-header-sticky-box-shadow-mobile); + border-bottom: var(--kt-app-header-sticky-border-bottom-mobile); + } + + [data-kt-app-header-minimize="on"] & { + @include property( z-index, $app-header-minimize-z-index-mobile); + @include property( backdrop-filter, $app-header-minimize-backdrop-filter-mobile); + + transition: $app-header-base-transition; + background-color: var(--kt-app-header-minimize-bg-color-mobile); + box-shadow: var(--kt-app-header-minimize-box-shadow-mobile); + border-bottom: var(--kt-app-header-minimize-border-bottom-mobile); + } + } + + // Integration + .app-header { + // Toolbar + [data-kt-app-header-fixed-mobile="true"][data-kt-app-toolbar-fixed-mobile="true"] & { + box-shadow: none; + } + + [data-kt-app-header-fixed-mobile="true"][data-kt-app-toolbar-sticky="on"] & { + box-shadow: none; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/mixins/_layout-minimize.scss b/src/_metronic/assets/sass/core/layout/base/mixins/_layout-minimize.scss new file mode 100644 index 0000000..31b88d0 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/mixins/_layout-minimize.scss @@ -0,0 +1,41 @@ +// +// Hoverable +// + +@mixin app-layout-minimize($class) { + // Desktop mode + @include media-breakpoint-up(lg) { + [data-kt-#{$class}-minimize="on"]:not([data-kt-#{$class}-hoverable="true"]) { + .#{$class} { + @content; + } + } + + [data-kt-#{$class}-minimize="on"][data-kt-#{$class}-hoverable="true"] { + .#{$class} { + &:not(:hover) { + @content; + } + } + } + } +} + +@mixin app-layout-minimize-mobile($class) { + // Tablet & mobile modes + @include media-breakpoint-down(lg) { + [data-kt-#{$class}-minimize-mobile="on"]:not[data-kt-#{$class}-hoverable-mobile="true"] { + .#{$class} { + @content; + } + } + + [data-kt-#{$class}-minimize-mobile="on"][data-kt-#{$class}-hoverable-mobile="true"] { + .#{$class} { + &:not(:hover) { + @content; + } + } + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/mixins/_layout-transition.scss b/src/_metronic/assets/sass/core/layout/base/mixins/_layout-transition.scss new file mode 100644 index 0000000..4e0a84d --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/mixins/_layout-transition.scss @@ -0,0 +1,7 @@ +// +// Layout Transition Mixin +// + +@mixin app-layout-transition($properties: all) { + transition: $properties $app-general-transition-duration $app-general-transition-timing !important; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/sidebar/_sidebar-panel.scss b/src/_metronic/assets/sass/core/layout/base/sidebar/_sidebar-panel.scss new file mode 100644 index 0000000..9f2735b --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/sidebar/_sidebar-panel.scss @@ -0,0 +1,283 @@ +// +// sidebar +// + +// General mode +.app-sidebar-panel { + transition: $app-sidebar-panel-base-transition; +} + +// Utilities +.app-sidebar-panel-minimize-d-flex, +.app-sidebar-panel-sticky-d-flex, +.app-sidebar-panel-collapse-d-flex, +.app-sidebar-panel-minimize-mobile-d-flex, +.app-sidebar-panel-collapse-mobile-d-flex { + display: none; +} + +// Desktop mode +@include media-breakpoint-up(lg) { + // Base + .app-sidebar-panel { + display: flex; + flex-shrink: 0; + width: var(--kt-app-sidebar-panel-width); + background-color: var(--kt-app-sidebar-panel-base-bg-color); + box-shadow: var(--kt-app-sidebar-panel-base-box-shadow); + border-left: var(--kt-app-sidebar-panel-base-border-start); + border-right: var(--kt-app-sidebar-panel-base-border-end); + + @include property( z-index, $app-sidebar-panel-base-z-index); + @include property( margin-left, $app-sidebar-panel-base-gap-start); + @include property( margin-right, $app-sidebar-panel-base-gap-end); + @include property( margin-top, $app-sidebar-panel-base-gap-top); + @include property( margin-bottom, $app-sidebar-panel-base-gap-bottom); + } + + // Vars + :root { + --kt-app-sidebar-panel-width: #{$app-sidebar-panel-base-width}; + --kt-app-sidebar-panel-width-actual: #{$app-sidebar-panel-base-width}; + + --kt-app-sidebar-panel-gap-start: #{$app-sidebar-panel-base-gap-start}; + --kt-app-sidebar-panel-gap-end: #{$app-sidebar-panel-base-gap-end}; + --kt-app-sidebar-panel-gap-top: #{$app-sidebar-panel-base-gap-top}; + --kt-app-sidebar-panel-gap-bottom: #{$app-sidebar-panel-base-gap-bottom}; + } + + [data-kt-app-sidebar-panel-minimize="on"] { + --kt-app-sidebar-panel-width: #{$app-sidebar-panel-minimize-width}; + + --kt-app-sidebar-panel-gap-start: #{$app-sidebar-panel-minimize-gap-start}; + --kt-app-sidebar-panel-gap-end: #{$app-sidebar-panel-minimize-gap-end}; + --kt-app-sidebar-panel-gap-top: #{$app-sidebar-panel-minimize-gap-top}; + --kt-app-sidebar-panel-gap-bottom: #{$app-sidebar-panel-minimize-gap-bottom}; + } + + [data-kt-app-sidebar-panel-sticky="on"] { + --kt-app-sidebar-panel-width: #{$app-sidebar-panel-sticky-width}; + + --kt-app-sidebar-panel-gap-start: #{$app-sidebar-panel-sticky-gap-start}; + --kt-app-sidebar-panel-gap-end: #{$app-sidebar-panel-sticky-gap-end}; + --kt-app-sidebar-panel-gap-top: #{$app-sidebar-panel-sticky-gap-top}; + --kt-app-sidebar-panel-gap-bottom: #{$app-sidebar-panel-sticky-gap-bottom}; + } + + [data-kt-app-sidebar-panel-collapse="on"] { + --kt-app-sidebar-panel-width-actual: #{$app-sidebar-panel-base-width}; + --kt-app-sidebar-panel-width: 0px; + } + + // States + .app-sidebar-panel { + [data-kt-app-sidebar-panel-static="true"] & { + position: relative; + } + + [data-kt-app-sidebar-panel-offcanvas="true"] & { + display: none; + } + + [data-kt-app-sidebar-panel-fixed="true"] & { + @include property( z-index, $app-sidebar-panel-fixed-z-index); + position: fixed; + left: calc(var(--kt-app-sidebar-width) + var(--kt-app-sidebar-gap-start, 0px) + var(--kt-app-sidebar-gap-end, 0px)); + top: 0; + bottom: 0; + } + + [data-kt-app-sidebar-panel-sticky="on"] & { + position: fixed; + left: calc(var(--kt-app-sidebar-width) + var(--kt-app-sidebar-gap-start, 0px) + var(--kt-app-sidebar-gap-end, 0px)); + top: 0; + bottom: 0; + transition: $app-sidebar-panel-base-transition; + + box-shadow: var(--kt-app-sidebar-panel-sticky-box-shadow); + border-left: var(--kt-app-sidebar-panel-sticky-border-start); + border-right: var(--kt-app-sidebar-panel-sticky-border-end); + + @include property( z-index, $app-sidebar-panel-sticky-z-index); + @include property( margin-left, $app-sidebar-panel-sticky-gap-start); + @include property( margin-right, $app-sidebar-panel-sticky-gap-end); + @include property( margin-top, $app-sidebar-panel-sticky-gap-top); + @include property( margin-bottom, $app-sidebar-panel-sticky-gap-bottom); + } + + [data-kt-app-sidebar-panel-minimize="on"] & { + transition: $app-sidebar-panel-base-transition; + background-color: var(--kt-app-sidebar-panel-minimize-bg-color); + box-shadow: var(--kt-app-sidebar-panel-minimize-box-shadow); + border-left: var(--kt-app-sidebar-panel-minimize-border-start); + border-right: var(--kt-app-sidebar-panel-minimize-border-end); + + + @include property( margin-left, $app-sidebar-panel-minimize-gap-start); + @include property( margin-right, $app-sidebar-panel-minimize-gap-end); + @include property( margin-top, $app-sidebar-panel-minimize-gap-top); + @include property( margin-bottom, $app-sidebar-panel-minimize-gap-bottom); + } + + [data-kt-app-sidebar-panel-hoverable="true"] & { + .app-sidebar-panel-hoverable { + width: var(--kt-app-sidebar-panel-width-actual); + } + } + + [data-kt-app-sidebar-panel-hoverable="true"][data-kt-app-sidebar-panel-minimize="on"] &:hover:not(.animating) { + transition: $app-sidebar-panel-base-transition; + width: var(--kt-app-sidebar-panel-width-actual); + box-shadow: var(--kt-app-sidebar-panel-minimize-hover-box-shadow); + } + + [data-kt-app-sidebar-panel-collapse="on"] & { + transition: $app-sidebar-panel-base-transition; + width: var(--kt-app-sidebar-panel-width-actual); + margin-left: calc( -1 * (var(--kt-app-sidebar-panel-width-actual) + var(--kt-app-sidebar-gap-start, 0px) + var(--kt-app-sidebar-gap-end, 0px))); + } + } + + // Integration + .app-sidebar-panel { + // Header + [data-kt-app-sidebar-panel-fixed="true"][data-kt-app-header-fixed="true"]:not([data-kt-app-sidebar-panel-push-header="true"]) & { + top: var(--kt-app-header-height); + } + + // Toolbar + [data-kt-app-sidebar-panel-fixed="true"][data-kt-app-header-fixed="true"][data-kt-app-toolbar-fixed="true"]:not([data-kt-app-sidebar-panel-push-toolbar="true"]) & { + top: calc(var(--kt-app-header-height) + var(--kt-app-toolbar-height, 0)); + } + } + + // Utilities + [data-kt-app-sidebar-panel-minimize="on"] { + .app-sidebar-panel-minimize-d-none { + display: none !important; + } + + .app-sidebar-panel-minimize-d-flex { + display: flex !important; + } + } + + [data-kt-app-sidebar-panel-sticky="on"] { + .app-sidebar-panel-sticky-d-none { + display: none !important; + } + + .app-sidebar-panel-sticky-d-flex { + display: flex !important; + } + } + + [data-kt-app-sidebar-panel-collapse="on"] { + .app-sidebar-panel-collapse-d-none { + display: none !important; + } + + .app-sidebar-panel-collapse-d-flex { + display: flex !important; + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Base + .app-sidebar-panel { + display: none; + width: var(--kt-app-sidebar-panel-width); + + background-color: var(--kt-app-sidebar-panel-base-bg-color-mobile); + box-shadow: var(--kt-app-sidebar-panel-base-box-shadow-mobile); + border-left: var(--kt-app-sidebar-panel-base-border-start-mobile); + border-right: var(--kt-app-sidebar-panel-base-border-end-mobile); + + @include property( z-index, $app-sidebar-panel-base-z-index-mobile); + @include property( margin-left, $app-sidebar-panel-base-gap-start-mobile); + @include property( margin-right, $app-sidebar-panel-base-gap-end-mobile); + @include property( margin-top, $app-sidebar-panel-base-gap-top-mobile); + @include property( margin-bottom, $app-sidebar-panel-base-gap-bottom-mobile); + } + + // Vars + :root { + --kt-app-sidebar-panel-gap-start: #{$app-sidebar-panel-base-gap-start-mobile}; + --kt-app-sidebar-panel-gap-end: #{$app-sidebar-panel-base-gap-end-mobile}; + --kt-app-sidebar-panel-gap-top: #{$app-sidebar-panel-base-gap-top-mobile}; + --kt-app-sidebar-panel-gap-bottom: #{$app-sidebar-panel-base-gap-bottom-mobile}; + } + + [data-kt-app-sidebar-panel-minimize-mobile="on"] { + --kt-app-sidebar-panel-width: #{$app-sidebar-panel-minimize-width-mobile}; + + --kt-app-sidebar-panel-gap-start: #{$app-sidebar-panel-minimize-gap-start-mobile}; + --kt-app-sidebar-panel-gap-end: #{$app-sidebar-panel-minimize-gap-end-mobile}; + --kt-app-sidebar-panel-gap-top: #{$app-sidebar-panel-minimize-gap-top-mobile}; + --kt-app-sidebar-panel-gap-bottom: #{$app-sidebar-panel-minimize-gap-bottom-mobile}; + } + + [data-kt-app-sidebar-panel-collapse-mobile="on"] { + --kt-app-sidebar-panel-width-actual: #{$app-sidebar-panel-base-width-mobile}; + --kt-app-sidebar-panel-width: 0px; + } + + // States + .app-sidebar-panel { + [data-kt-app-sidebar-panel-minimize-mobile="on"] & { + transition: $app-sidebar-panel-base-transition; + + background-color: var(--kt-app-sidebar-panel-minimize-bg-color-mobile); + box-shadow: var(--kt-app-sidebar-panel-minimize-box-shadow-mobile); + border-left: var(--kt-app-sidebar-panel-minimize-border-start-mobile); + border-right: var(--kt-app-sidebar-panel-minimize-border-end-mobile); + + @include property( margin-left, $app-sidebar-panel-minimize-gap-start-mobile); + @include property( margin-right, $app-sidebar-panel-minimize-gap-end-mobile); + @include property( margin-top, $app-sidebar-panel-minimize-gap-top-mobile); + @include property( margin-bottom, $app-sidebar-panel-minimize-gap-bottom-mobile); + } + + [data-kt-app-sidebar-panel-hoverable-mobile="true"] & { + .app-sidebar-panel-hoverable { + width: var(--kt-app-sidebar-panel-width-actual); + } + } + + [data-kt-app-sidebar-panel-hoverable-mobile="true"][data-kt-app-sidebar-panel-minimize-mobile="on"] &:hover:not(.animating) { + transition: $app-sidebar-panel-base-transition; + width: var(--kt-app-sidebar-panel-width-actual); + + box-shadow: var(--kt-app-sidebar-panel-minimize-hover-box-shadow-mobile); + } + + [data-kt-app-sidebar-panel-collapse-mobile="on"] & { + transition: $app-sidebar-panel-base-transition; + width: var(--kt-app-sidebar-panel-width-actual); + margin-left: calc( -1 * var(--kt-app-sidebar-panel-width-actual)); + } + } + + // Utilities + [data-kt-app-sidebar-panel-minimize-mobile="on"] { + .app-sidebar-panel-minimize-mobile-d-none { + display: none !important; + } + + .app-sidebar-panel-minimize-mobile-d-flex { + display: flex !important; + } + } + + [data-kt-app-sidebar-panel-collapse-mobile="on"] { + .app-sidebar-panel-collapse-mobile-d-none { + display: none !important; + } + + .app-sidebar-panel-collapse-mobile-d-flex { + display: flex !important; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/sidebar/_sidebar-primary.scss b/src/_metronic/assets/sass/core/layout/base/sidebar/_sidebar-primary.scss new file mode 100644 index 0000000..9db9167 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/sidebar/_sidebar-primary.scss @@ -0,0 +1,236 @@ +// +// sidebar Primary +// + +// General mode +.app-sidebar-primary { + transition: $app-sidebar-primary-base-transition; + position: relative; + flex-shrink: 0; +} + +// Utilities +.app-sidebar-primary-collapse-d-flex, +.app-sidebar-primary-minimize-d-flex, +.app-sidebar-primary-collapse-mobile-d-flex, +.app-sidebar-primary-minimize-mobile-d-flex { + display: none; +} + +// Desktop mode +@include media-breakpoint-up(lg) { + // Base + .app-sidebar-primary { + background-color: var(--kt-app-sidebar-primary-base-bg-color); + box-shadow: var(--kt-app-sidebar-primary-base-box-shadow); + border-left: var(--kt-app-sidebar-primary-base-border-start); + border-right: var(--kt-app-sidebar-primary-base-border-end); + + @include property( z-index, $app-sidebar-primary-base-z-index); + @include property( margin-left, $app-sidebar-primary-base-gap-start); + @include property( margin-right, $app-sidebar-primary-base-gap-end); + @include property( margin-top, $app-sidebar-primary-base-gap-top); + @include property( margin-bottom, $app-sidebar-primary-base-gap-bottom); + } + + // Vars + :root { + --kt-app-sidebar-primary-width-actual: #{$app-sidebar-primary-base-width}; + } + + [data-kt-app-sidebar-stacked="true"] { + --kt-app-sidebar-primary-width: #{$app-sidebar-primary-base-width}; + + --kt-app-sidebar-primary-gap-start: #{$app-sidebar-primary-base-gap-start}; + --kt-app-sidebar-primary-gap-end: #{$app-sidebar-primary-base-gap-end}; + --kt-app-sidebar-primary-gap-top: #{$app-sidebar-primary-base-gap-top}; + --kt-app-sidebar-primary-gap-bottom: #{$app-sidebar-primary-base-gap-bottom}; + } + + [data-kt-app-sidebar-primary-minimize="on"] { + --kt-app-sidebar-primary-width: #{$app-sidebar-primary-minimize-width}; + + --kt-app-sidebar-primary-gap-start: #{$app-sidebar-primary-minimize-gap-start}; + --kt-app-sidebar-primary-gap-end: #{$app-sidebar-primary-minimize-gap-end}; + --kt-app-sidebar-primary-gap-top: #{$app-sidebar-primary-minimize-gap-top}; + --kt-app-sidebar-primary-gap-bottom: #{$app-sidebar-primary-minimize-gap-bottom}; + } + + [data-kt-app-sidebar-primary-collapse="on"] { + --kt-app-sidebar-primary-width: 0px; + } + + // States + .app-sidebar-primary { + width: var(--kt-app-sidebar-primary-width); + + [data-kt-app-sidebar-primary-collapse="on"] & { + transition: $app-sidebar-primary-base-transition; + width: var(--kt-app-sidebar-primary-width-actual); + margin-left: calc( -1 * var(--kt-app-sidebar-primary-width-actual)); + } + + [data-kt-app-sidebar-primary-minimize="on"] & { + transition: $app-sidebar-primary-base-transition; + + background-color: var(--kt-app-sidebar-primary-minimize-bg-color); + box-shadow: var(--kt-app-sidebar-primary-minimize-box-shadow); + border-left: var(--kt-app-sidebar-primary-minimize-border-start); + border-right: var(--kt-app-sidebar-primary-minimize-border-end); + + @include property( margin-left, $app-sidebar-primary-minimize-gap-start); + @include property( margin-right, $app-sidebar-primary-minimize-gap-end); + @include property( margin-top, $app-sidebar-primary-minimize-gap-top); + @include property( margin-bottom, $app-sidebar-primary-minimize-gap-bottom); + } + + [data-kt-app-sidebar-primary-hoverable="true"] & { + .app-sidebar-primary-hoverable { + width: var(--kt-app-sidebar-primary-width-actual); + } + } + + // Hover minimized + [data-kt-app-sidebar-primary-hoverable="true"][data-kt-app-sidebar-primary-minimize="on"] &:hover:not(.animating) { + transition: $app-sidebar-primary-base-transition; + width: var(--kt-app-sidebar-primary-width-actual); + box-shadow: var(--kt-app-sidebar-primary-minimize-hover-box-shadow); + } + } + + // Integration + .app-sidebar-primary { + // Header + [data-kt-app-sidebar-fixed="true"][data-kt-app-header-fixed="true"][data-kt-app-sidebar-primary-below-header="true"] & { + top: var(--kt-app-header-height); + } + + // Toolbar + [data-kt-app-sidebar-fixed="true"][data-kt-app-header-fixed="true"][data-kt-app-toolbar-fixed="true"][data-kt-app-sidebar-primary-below-toolbar="true"] & { + top: calc(var(--kt-app-header-height) + var(--kt-app-toolbar-height, 0)); + } + } + + // Utilities + [data-kt-app-sidebar-primary-minimize="on"] { + .app-sidebar-primary-minimize-d-none { + display: none !important; + } + + .app-sidebar-primary-minimize-d-flex { + display: flex !important; + } + } + + [data-kt-app-sidebar-primary-collapse="on"] { + .app-sidebar-primary-collapse-d-none { + display: none !important; + } + + .app-sidebar-primary-collapse-d-flex { + display: flex !important; + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Base + .app-sidebar-primary { + @include property( z-index, $app-sidebar-primary-base-z-index-mobile); + + background-color: var(--kt-app-sidebar-primary-base-bg-color-mobile); + box-shadow: var(--kt-app-sidebar-primary-base-box-shadow-mobile); + border-left: var(--kt-app-sidebar-primary-base-border-start-mobile); + border-right: var(--kt-app-sidebar-primary-base-border-end-mobile); + + @include property( margin-left, $app-sidebar-primary-base-gap-start-mobile); + @include property( margin-right, $app-sidebar-primary-base-gap-end-mobile); + @include property( margin-top, $app-sidebar-primary-base-gap-top-mobile); + @include property( margin-bottom, $app-sidebar-primary-base-gap-bottom-mobile); + } + + // Vars + :root { + --kt-app-sidebar-primary-width-actual: #{$app-sidebar-primary-base-width-mobile}; + } + + [data-kt-app-sidebar-stacked="true"] { + --kt-app-sidebar-primary-width: #{$app-sidebar-primary-base-width-mobile}; + + --kt-app-sidebar-primary-gap-start: #{$app-sidebar-primary-base-gap-start-mobile}; + --kt-app-sidebar-primary-gap-end: #{$app-sidebar-primary-base-gap-end-mobile}; + --kt-app-sidebar-primary-gap-top: #{$app-sidebar-primary-base-gap-top-mobile}; + --kt-app-sidebar-primary-gap-bottom: #{$app-sidebar-primary-base-gap-bottom-mobile}; + } + + [data-kt-app-sidebar-primary-minimize-mobile="on"] { + --kt-app-sidebar-primary-width: #{$app-sidebar-primary-minimize-width-mobile}; + + --kt-app-sidebar-primary-gap-start: #{$app-sidebar-primary-minimize-gap-start-mobile}; + --kt-app-sidebar-primary-gap-end: #{$app-sidebar-primary-minimize-gap-end-mobile}; + --kt-app-sidebar-primary-gap-top: #{$app-sidebar-primary-minimize-gap-top-mobile}; + --kt-app-sidebar-primary-gap-bottom: #{$app-sidebar-primary-minimize-gap-bottom-mobile}; + } + + [data-kt-app-sidebar-primary-collapse-mobile="on"] { + --kt-app-sidebar-primary-width: 0px; + } + + // States + .app-sidebar-primary { + width: var(--kt-app-sidebar-primary-width); + + [data-kt-app-sidebar-primary-collapse-mobile="on"] & { + transition: $app-sidebar-primary-base-transition; + width: var(--kt-app-sidebar-primary-width-actual); + margin-left: calc( -1 * var(--kt-app-sidebar-primary-width-actual)); + } + + [data-kt-app-sidebar-primary-minimize-mobile="on"] & { + transition: $app-sidebar-primary-base-transition; + background-color: var(--kt-app-sidebar-primary-minimize-bg-color-mobile); + box-shadow: var(--kt-app-sidebar-primary-base-box-shadow-mobile); + border-left: var(--kt-app-sidebar-primary-minimize-border-start-mobile); + border-left: var(--kt-app-sidebar-primary-minimize-border-end-mobile); + + @include property( margin-left, $app-sidebar-primary-minimize-gap-start-mobile); + @include property( margin-right, $app-sidebar-primary-minimize-gap-end-mobile); + @include property( margin-top, $app-sidebar-primary-minimize-gap-top-mobile); + @include property( margin-bottom, $app-sidebar-primary-minimize-gap-bottom-mobile); + } + + [data-kt-app-sidebar-primary-hoverable-mobile="true"] & { + .app-sidebar-primary-hoverable { + width: var(--kt-app-sidebar-primary-width-actual); + } + } + + [data-kt-app-sidebar-primary-hoverable-mobile="true"][data-kt-app-sidebar-primary-minimize-mobile="on"] &:hover:not(.animating) { + transition: $app-sidebar-primary-base-transition; + width: var(--kt-app-sidebar-primary-width-actual); + box-shadow: var(--kt-app-sidebar-primary-minimize-hover-box-shadow-mobile); + } + } + + // Utilities + [data-kt-app-sidebar-primary-minimize-mobile="on"] { + .app-sidebar-primary-minimize-mobile-d-none { + display: none !important; + } + + .app-sidebar-primary-minimize-mobile-d-flex { + display: flex !important; + } + } + + [data-kt-app-sidebar-primary-collapse-mobile="on"] { + .app-sidebar-primary-collapse-mobile-d-none { + display: none !important; + } + + .app-sidebar-primary-collapse-mobile-d-flex { + display: flex !important; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/sidebar/_sidebar-secondary.scss b/src/_metronic/assets/sass/core/layout/base/sidebar/_sidebar-secondary.scss new file mode 100644 index 0000000..0641268 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/sidebar/_sidebar-secondary.scss @@ -0,0 +1,282 @@ +// +// sidebar Secondary +// + +// General mode +.app-sidebar-secondary { + transition: $app-sidebar-secondary-base-transition; + position: relative; + flex-shrink: 0; +} + +// Utilities +.app-sidebar-secondary-collapse-d-flex, +.app-sidebar-secondary-minimize-d-flex, +.app-sidebar-secondary-collapse-mobile-d-flex, +.app-sidebar-secondary-minimize-mobile-d-flex { + display: none; +} + +// Desktop mode +@include media-breakpoint-up(lg) { + // Base + .app-sidebar-secondary { + @include property( z-index, $app-sidebar-secondary-base-z-index); + + background-color: var(--kt-app-sidebar-secondary-base-bg-color); + box-shadow: var(--kt-app-sidebar-secondary-base-box-shadow); + border-left: var(--kt-app-sidebar-secondary-base-border-start); + border-right: var(--kt-app-sidebar-secondary-base-border-end); + + @include property( margin-left, $app-sidebar-secondary-base-gap-start-mobile); + @include property( margin-right, $app-sidebar-secondary-base-gap-end-mobile); + @include property( margin-top, $app-sidebar-secondary-base-gap-top-mobile); + @include property( margin-bottom, $app-sidebar-secondary-base-gap-bottom-mobile); + } + + // Vars + :root { + --kt-app-sidebar-secondary-width-actual: calc( + #{$app-sidebar-base-width} - + #{$app-sidebar-primary-base-width} - + #{$app-sidebar-primary-base-gap-start} - + #{$app-sidebar-primary-base-gap-end} - + #{$app-sidebar-secondary-base-gap-start} - + #{$app-sidebar-secondary-base-gap-end} + ); + } + + [data-kt-app-sidebar-stacked="true"] { + --kt-app-sidebar-secondary-width: calc( + #{$app-sidebar-base-width} - + #{$app-sidebar-primary-base-width} - + #{$app-sidebar-primary-base-gap-start} - + #{$app-sidebar-primary-base-gap-end} - + #{$app-sidebar-secondary-base-gap-start} - + #{$app-sidebar-secondary-base-gap-end} + ); + + --kt-app-sidebar-secondary-gap-start: #{$app-sidebar-secondary-base-gap-start}; + --kt-app-sidebar-secondary-gap-end: #{$app-sidebar-secondary-base-gap-end}; + --kt-app-sidebar-secondary-gap-top: #{$app-sidebar-secondary-base-gap-top}; + --kt-app-sidebar-secondary-gap-bottom: #{$app-sidebar-secondary-base-gap-bottom}; + } + + [data-kt-app-sidebar-secondary-minimize="on"] { + --kt-app-sidebar-secondary-width: #{$app-sidebar-secondary-minimize-width}; + + --kt-app-sidebar-secondary-gap-start: #{$app-sidebar-secondary-minimize-gap-start}; + --kt-app-sidebar-secondary-gap-end: #{$app-sidebar-secondary-minimize-gap-end}; + --kt-app-sidebar-secondary-gap-top: #{$app-sidebar-secondary-minimize-gap-top}; + --kt-app-sidebar-secondary-gap-bottom: #{$app-sidebar-secondary-minimize-gap-bottom}; + } + + [data-kt-app-sidebar-secondary-collapse="on"] { + --kt-app-sidebar-secondary-width-actual: calc( + #{$app-sidebar-base-width} - + #{$app-sidebar-primary-base-width} - + #{$app-sidebar-primary-base-gap-start} - + #{$app-sidebar-primary-base-gap-end} - + #{$app-sidebar-secondary-base-gap-start} - + #{$app-sidebar-secondary-base-gap-end} + ); + + --kt-app-sidebar-secondary-width: 0px; + } + + // States + .app-sidebar-secondary { + width: var(--kt-app-sidebar-secondary-width); + + [data-kt-app-sidebar-secondary-collapse="on"] & { + transition: $app-sidebar-secondary-base-transition; + width: var(--kt-app-sidebar-secondary-width-actual); + margin-left: calc( -1 * var(--kt-app-sidebar-secondary-width-actual)); + } + + [data-kt-app-sidebar-secondary-minimize="on"] & { + transition: $app-sidebar-secondary-base-transition; + + background-color: var(--kt-app-sidebar-secondary-minimize-bg-color); + box-shadow: var(--kt-app-sidebar-secondary-minimize-box-shadow); + border-left: var(--kt-app-sidebar-secondary-minimize-border-start); + border-right: var(--kt-app-sidebar-secondary-minimize-border-end); + + @include property( margin-left, $app-sidebar-secondary-minimize-gap-start-mobile); + @include property( margin-right, $app-sidebar-secondary-minimize-gap-end-mobile); + @include property( margin-top, $app-sidebar-secondary-minimize-gap-top-mobile); + @include property( margin-bottom, $app-sidebar-secondary-minimize-gap-bottom-mobile); + } + + [data-kt-app-sidebar-secondary-hoverable="true"] & { + .app-sidebar-secondary-hoverable { + width: var(--kt-app-sidebar-secondary-width-actual); + } + } + + [data-kt-app-sidebar-secondary-hoverable="true"][data-kt-app-sidebar-secondary-minimize="on"] &:hover:not(.animating) { + transition: $app-sidebar-secondary-base-transition; + width: var(--kt-app-sidebar-secondary-width-actual); + box-shadow: var(--kt-app-sidebar-secondary-minimize-hover-box-shadow); + } + } + + // Integration + .app-sidebar-secondary { + // Header + [data-kt-app-sidebar-fixed="true"][data-kt-app-header-fixed="true"][data-kt-app-sidebar-secondary-below-header="true"] & { + top: var(--kt-app-header-height); + } + + // Toolbar + [data-kt-app-sidebar-fixed="true"][data-kt-app-header-fixed="true"][data-kt-app-toolbar-fixed="true"][data-kt-app-sidebar-secondary-below-toolbar="true"] & { + top: calc(var(--kt-app-header-height) + var(--kt-app-toolbar-height, 0)); + } + } + + // Utilities + [data-kt-app-sidebar-secondary-minimize="on"] { + .app-sidebar-secondary-minimize-d-none { + display: none !important; + } + + .app-sidebar-secondary-minimize-d-flex { + display: flex !important; + } + } + + [data-kt-app-sidebar-secondary-collapse="on"] { + .app-sidebar-secondary-collapse-d-none { + display: none !important; + } + + .app-sidebar-secondary-collapse-d-flex { + display: flex !important; + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Base + .app-sidebar-secondary { + @include property( z-index, $app-sidebar-secondary-base-z-index-mobile); + + background-color: var(--kt-app-sidebar-secondary-base-bg-color-mobile); + box-shadow: var(--kt-app-sidebar-secondary-base-box-shadow-mobile); + border-left: var(--kt-app-sidebar-secondary-base-border-start-mobile); + border-right: var(--kt-app-sidebar-secondary-base-border-end-mobile); + + @include property( margin-left, $app-sidebar-secondary-base-gap-start-mobile); + @include property( margin-right, $app-sidebar-secondary-base-gap-end-mobile); + @include property( margin-top, $app-sidebar-secondary-base-gap-top-mobile); + @include property( margin-bottom, $app-sidebar-secondary-base-gap-bottom-mobile); + } + + // Vars + :root { + --kt-app-sidebar-secondary-width-actual: calc( + #{$app-sidebar-base-width-mobile} - + #{$app-sidebar-primary-base-width-mobile} - + #{$app-sidebar-primary-base-gap-start-mobile} - + #{$app-sidebar-primary-base-gap-end-mobile} - + #{$app-sidebar-secondary-base-gap-start-mobile} - + #{$app-sidebar-secondary-base-gap-end-mobile} + ); + } + + [data-kt-app-sidebar-stacked="true"] { + --kt-app-sidebar-secondary-width: calc( + #{$app-sidebar-base-width-mobile} - + #{$app-sidebar-primary-base-width-mobile} - + #{$app-sidebar-primary-base-gap-start-mobile} - + #{$app-sidebar-primary-base-gap-end-mobile} - + #{$app-sidebar-secondary-base-gap-start-mobile} - + #{$app-sidebar-secondary-base-gap-end-mobile} + ); + + --kt-app-sidebar-secondary-gap-start: #{$app-sidebar-secondary-base-gap-start-mobile}; + --kt-app-sidebar-secondary-gap-end: #{$app-sidebar-secondary-base-gap-end-mobile}; + --kt-app-sidebar-secondary-gap-top: #{$app-sidebar-secondary-base-gap-top-mobile}; + --kt-app-sidebar-secondary-gap-bottom: #{$app-sidebar-secondary-base-gap-bottom-mobile}; + } + + [data-kt-app-sidebar-secondary-minimize-mobile="on"] { + --kt-app-sidebar-secondary-width: #{$app-sidebar-secondary-minimize-width-mobile}; + + --kt-app-sidebar-secondary-gap-start: #{$app-sidebar-secondary-minimize-gap-start-mobile}; + --kt-app-sidebar-secondary-gap-end: #{$app-sidebar-secondary-minimize-gap-end-mobile}; + --kt-app-sidebar-secondary-gap-top: #{$app-sidebar-secondary-minimize-gap-top-mobile}; + --kt-app-sidebar-secondary-gap-bottom: #{$app-sidebar-secondary-minimize-gap-bottom-mobile}; + } + + [data-kt-app-sidebar-secondary-collapse-mobile="on"] { + --kt-app-sidebar-secondary-width-actual: calc( + #{$app-sidebar-base-width-mobile} - + #{$app-sidebar-primary-base-width-mobile} - + #{$app-sidebar-primary-base-gap-start-mobile} - + #{$app-sidebar-primary-base-gap-end-mobile} - + #{$app-sidebar-secondary-base-gap-start-mobile} - + #{$app-sidebar-secondary-base-gap-end-mobile} + ); + + --kt-app-sidebar-secondary-width: 0px; + } + + // States + .app-sidebar-secondary { + width: var(--kt-app-sidebar-secondary-width); + + [data-kt-app-sidebar-secondary-collapse-mobile="on"] & { + transition: $app-sidebar-secondary-base-transition; + width: var(--kt-app-sidebar-secondary-width-actual); + margin-left: calc( -1 * var(--kt-app-sidebar-secondary-width-actual)); + } + + [data-kt-app-sidebar-secondary-minimize-mobile="on"] & { + transition: $app-sidebar-secondary-base-transition; + background-color: var(--kt-app-sidebar-secondary-minimize-bg-color-mobile); + box-shadow: var(--kt-app-sidebar-secondary-minimize-box-shadow-mobile); + border-left: var(--kt-app-sidebar-secondary-minimize-border-start-mobile); + border-right: var(--kt-app-sidebar-secondary-minimize-border-end-mobile); + + @include property( margin-left, $app-sidebar-secondary-minimize-gap-start-mobile); + @include property( margin-right, $app-sidebar-secondary-minimize-gap-end-mobile); + @include property( margin-top, $app-sidebar-secondary-minimize-gap-top-mobile); + @include property( margin-bottom, $app-sidebar-secondary-minimize-gap-bottom-mobile); + } + + [data-kt-app-sidebar-secondary-hoverable-mobile="true"] & { + .app-sidebar-secondary-hoverable { + width: var(--kt-app-sidebar-secondary-width-actual); + } + } + + [data-kt-app-sidebar-secondary-hoverable-mobile="true"][data-kt-app-sidebar-secondary-minimize-mobile="on"] &:hover:not(.animating) { + transition: $app-sidebar-secondary-base-transition; + width: var(--kt-app-sidebar-secondary-width-actual); + box-shadow: var(--kt-app-sidebar-secondary-minimize-hover-box-shadow-mobile); + } + } + + // Utilities + [data-kt-app-sidebar-secondary-minimize-mobile="on"] { + .app-sidebar-secondary-minimize-mobile-d-none { + display: none !important; + } + + .app-sidebar-secondary-minimize-mobile-d-flex { + display: flex !important; + } + } + + [data-kt-app-sidebar-secondary-collapse="on"] { + .app-sidebar-secondary-collapse-mobile-d-none { + display: none !important; + } + + .app-sidebar-secondary-collapse-mobile-d-flex { + display: flex !important; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/layout/base/sidebar/_sidebar.scss b/src/_metronic/assets/sass/core/layout/base/sidebar/_sidebar.scss new file mode 100644 index 0000000..097b6b3 --- /dev/null +++ b/src/_metronic/assets/sass/core/layout/base/sidebar/_sidebar.scss @@ -0,0 +1,296 @@ +// +// sidebar +// + +// General mode +.app-sidebar { + transition: $app-sidebar-base-transition; +} + +// Utilities +.app-sidebar-minimize-d-flex, +.app-sidebar-sticky-d-flex, +.app-sidebar-collapse-d-flex, +.app-sidebar-minimize-mobile-d-flex, +.app-sidebar-collapse-mobile-d-flex { + display: none; +} + +// Desktop mode +@include media-breakpoint-up(lg) { + // Base + .app-sidebar { + display: flex; + flex-shrink: 0; + width: var(--kt-app-sidebar-width); + + background-color: var(--kt-app-sidebar-base-bg-color); + box-shadow: var(--kt-app-sidebar-base-box-shadow); + border-left: var(--kt-app-sidebar-base-border-start); + border-right: var(--kt-app-sidebar-base-border-end); + + @include property( z-index, $app-sidebar-base-z-index); + @include property( margin-left, $app-sidebar-base-gap-start); + @include property( margin-right, $app-sidebar-base-gap-end); + @include property( margin-top, $app-sidebar-base-gap-top); + @include property( margin-bottom, $app-sidebar-base-gap-bottom); + } + + // Vars + :root { + --kt-app-sidebar-width: #{$app-sidebar-base-width}; + --kt-app-sidebar-width-actual: #{$app-sidebar-base-width}; + + --kt-app-sidebar-gap-start: #{$app-sidebar-base-gap-start}; + --kt-app-sidebar-gap-end: #{$app-sidebar-base-gap-end}; + --kt-app-sidebar-gap-top: #{$app-sidebar-base-gap-top}; + --kt-app-sidebar-gap-bottom: #{$app-sidebar-base-gap-bottom}; + } + + [data-kt-app-sidebar-stacked="true"] { + --kt-app-sidebar-width: calc(var(--kt-app-sidebar-primary-width) + var(--kt-app-sidebar-secondary-width)); + } + + [data-kt-app-sidebar-minimize="on"] { + --kt-app-sidebar-width: #{$app-sidebar-minimize-width}; + + --kt-app-sidebar-gap-start: #{$app-sidebar-minimize-gap-start}; + --kt-app-sidebar-gap-end: #{$app-sidebar-minimize-gap-end}; + --kt-app-sidebar-gap-top: #{$app-sidebar-minimize-gap-top}; + --kt-app-sidebar-gap-bottom: #{$app-sidebar-minimize-gap-bottom}; + } + + [data-kt-app-sidebar-sticky="on"] { + --kt-app-sidebar-width: #{$app-sidebar-sticky-width}; + + --kt-app-sidebar-gap-start: #{$app-sidebar-sticky-gap-start}; + --kt-app-sidebar-gap-end: #{$app-sidebar-sticky-gap-end}; + --kt-app-sidebar-gap-top: #{$app-sidebar-sticky-gap-top}; + --kt-app-sidebar-gap-bottom: #{$app-sidebar-sticky-gap-bottom}; + } + + [data-kt-app-sidebar-collapse="on"] { + --kt-app-sidebar-width: 0px; + } + + // States + .app-sidebar { + [data-kt-app-sidebar-static="true"] & { + position: relative; + } + + [data-kt-app-sidebar-offcanvas="true"] & { + display: none; + } + + [data-kt-app-sidebar-fixed="true"] & { + position: fixed; + @include property( z-index, $app-sidebar-fixed-z-index); + @include property( top, $app-sidebar-fixed-top); + @include property( bottom, $app-sidebar-fixed-bottom); + @include property( left, $app-sidebar-fixed-left); + } + + [data-kt-app-sidebar-stacked="true"] & { + align-items: stretch; + } + + [data-kt-app-sidebar-sticky="on"] & { + position: fixed; + transition: $app-sidebar-base-transition; + @include property( top, $app-sidebar-sticky-top); + @include property( bottom, $app-sidebar-sticky-bottom); + @include property( left, $app-sidebar-sticky-left); + @include property( z-index, $app-sidebar-sticky-z-index); + + box-shadow: var(--kt-app-sidebar-sticky-box-shadow); + border-left: var(--kt-app-sidebar-sticky-border-start); + border-right: var(--kt-app-sidebar-sticky-border-end); + + @include property( margin-left, $app-sidebar-sticky-gap-start); + @include property( margin-right, $app-sidebar-sticky-gap-end); + @include property( margin-top, $app-sidebar-sticky-gap-top); + @include property( margin-bottom, $app-sidebar-sticky-gap-bottom); + } + + [data-kt-app-sidebar-minimize="on"] & { + transition: $app-sidebar-base-transition; + + background-color: var(--kt-app-sidebar-minimize-bg-color); + box-shadow: var(--kt-app-sidebar-minimize-box-shadow); + border-left: var(--kt-app-sidebar-minimize-border-start); + border-right: var(--kt-app-sidebar-minimize-border-end); + + @include property( margin-left, $app-sidebar-minimize-gap-start); + @include property( margin-right, $app-sidebar-minimize-gap-end); + @include property( margin-top, $app-sidebar-minimize-gap-top); + @include property( margin-bottom, $app-sidebar-minimize-gap-bottom); + } + + [data-kt-app-sidebar-hoverable="true"] & { + .app-sidebar-wrapper { + width: var(--kt-app-sidebar-width-actual); + } + } + + [data-kt-app-sidebar-hoverable="true"][data-kt-app-sidebar-minimize="on"] &:hover:not(.animating) { + transition: $app-sidebar-base-transition; + width: var(--kt-app-sidebar-width-actual); + @include property( box-shadow, $app-sidebar-minimize-hover-box-shadow); + } + + [data-kt-app-sidebar-collapse="on"] & { + transition: $app-sidebar-base-transition; + width: var(--kt-app-sidebar-width-actual); + margin-left: calc( -1 * var(--kt-app-sidebar-width-actual)); + } + } + + // Utilities + [data-kt-app-sidebar-minimize="on"] { + .app-sidebar-minimize-d-none { + display: none !important; + } + + .app-sidebar-minimize-d-flex { + display: flex !important; + } + } + + [data-kt-app-sidebar-sticky="on"] { + .app-sidebar-sticky-d-none { + display: none !important; + } + + .app-sidebar-sticky-d-flex { + display: flex !important; + } + } + + [data-kt-app-sidebar-collapse="on"] { + .app-sidebar-collapse-d-none { + display: none !important; + } + + .app-sidebar-collapse-d-flex { + display: flex !important; + } + } + + // Integration + .app-sidebar { + // Header + [data-kt-app-sidebar-fixed="true"][data-kt-app-header-fixed="true"]:not([data-kt-app-sidebar-push-header="true"]) & { + top: var(--kt-app-header-height); + } + + // Toolbar + [data-kt-app-sidebar-fixed="true"][data-kt-app-header-fixed="true"][data-kt-app-toolbar-fixed="true"]:not([data-kt-app-sidebar-push-toolbar="true"]) & { + top: calc(var(--kt-app-header-height) + var(--kt-app-toolbar-height, 0px)); + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + // Base + .app-sidebar { + display: none; + width: var(--kt-app-sidebar-width); + + background-color: var(--kt-app-sidebar-base-bg-color-mobile); + box-shadow: var(--kt-app-sidebar-base-box-shadow-mobile); + border-left: var(--kt-app-sidebar-base-border-start-mobile); + border-right: var(--kt-app-sidebar-base-border-end-mobile); + + @include property( z-index, $app-sidebar-base-z-index-mobile); + @include property( margin-left, $app-sidebar-base-gap-start-mobile); + @include property( margin-right, $app-sidebar-base-gap-end-mobile); + @include property( margin-top, $app-sidebar-base-gap-top-mobile); + @include property( margin-bottom, $app-sidebar-base-gap-bottom-mobile); + } + + // Vars + :root { + --kt-app-sidebar-width: #{$app-sidebar-base-width-mobile}; + --kt-app-sidebar-width-actual: #{$app-sidebar-base-width-mobile}; + + --kt-app-sidebar-gap-start: #{$app-sidebar-base-gap-start-mobile}; + --kt-app-sidebar-gap-end: #{$app-sidebar-base-gap-end-mobile}; + --kt-app-sidebar-gap-top: #{$app-sidebar-base-gap-top-mobile}; + --kt-app-sidebar-gap-bottom: #{$app-sidebar-base-gap-bottom-mobile}; + } + + [data-kt-app-sidebar-minimize-mobile="on"] { + --kt-app-sidebar-width: #{$app-sidebar-minimize-width-mobile}; + + --kt-app-sidebar-gap-start: #{$app-sidebar-minimize-gap-start-mobile}; + --kt-app-sidebar-gap-end: #{$app-sidebar-minimize-gap-end-mobile}; + --kt-app-sidebar-gap-top: #{$app-sidebar-minimize-gap-top-mobile}; + --kt-app-sidebar-gap-bottom: #{$app-sidebar-minimize-gap-bottom-mobile}; + } + + [data-kt-app-sidebar-collapse-mobile="on"] { + --kt-app-sidebar-width: 0px; + } + + // States + .app-sidebar { + [data-kt-app-sidebar-stacked="true"] & { + align-items: stretch; + } + + [data-kt-app-sidebar-minimize-mobile="on"] & { + transition: $app-sidebar-base-transition; + + background-color: var(--kt-app-sidebar-minimize-bg-color-mobilee); + box-shadow: var(--kt-app-sidebar-minimize-box-shadow-mobile); + border-left: var(--kt-app-sidebar-minimize-border-start-mobile); + border-right: var(--kt-app-sidebar-minimize-border-end-mobile); + + @include property( margin-left, $app-sidebar-minimize-gap-start-mobile); + @include property( margin-right, $app-sidebar-minimize-gap-end-mobile); + @include property( margin-top, $app-sidebar-minimize-gap-top-mobile); + @include property( margin-bottom, $app-sidebar-minimize-gap-bottom-mobile); + } + + [data-kt-app-sidebar-hoverable-mobile="true"] & { + .app-sidebar-wrapper { + width: var(--kt-app-sidebar-width-actual); + } + } + + [data-kt-app-sidebar-hoverable-mobile="true"][data-kt-app-sidebar-minimize-mobile="on"] &:hover:not(.animating) { + transition: $app-sidebar-base-transition; + width: var(--kt-app-sidebar-width-actual); + box-shadow: var(--kt-app-sidebar-minimize-hover-box-shadow-mobile); + } + + [data-kt-app-sidebar-collapse-mobile="on"] & { + transition: $app-sidebar-base-transition; + width: var(--kt-app-sidebar-width-actual); + margin-left: calc( -1 * var(--kt-app-sidebar-width-actual)); + } + } + + // Utilities + [data-kt-app-sidebar-minimize-mobile="on"] { + .app-sidebar-minimize-mobile-d-none { + display: none !important; + } + + .app-sidebar-minimize-mobile-d-flex { + display: flex !important; + } + } + + [data-kt-app-sidebar-collapse-mobile="on"] { + .app-sidebar-collapse-mobile-d-none { + display: none !important; + } + + .app-sidebar-collapse-mobile-d-flex { + display: flex !important; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_apexcharts.scss b/src/_metronic/assets/sass/core/vendors/plugins/_apexcharts.scss new file mode 100644 index 0000000..87b14f2 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_apexcharts.scss @@ -0,0 +1,129 @@ +// +// Apexcharts +// + +// Text +.apexcharts-text, +.apexcharts-title-text, +.apexcharts-legend-text { + font-family: $font-family-sans-serif !important; +} + +.apexcharts-title-text { + font-weight: $font-weight-normal; +} + +.apexcharts-pie-label { + font-weight: $font-weight-normal; + font-size: $font-size-sm; +} + +// Dropdown +.apexcharts-toolbar{ + text-align: left !important; +} + +.apexcharts-menu { + background-color: var(--kt-body-bg); + border: 0 !important; + padding: 0.5rem 0 !important; + box-shadow: var(--kt-dropdown-box-shadow); + border-radius: $border-radius !important; + overflow: hidden; + min-width: 10rem !important; + + .apexcharts-menu-item { + padding: $dropdown-item-padding-y $dropdown-item-padding-x; + transition: $transition-base; + + &:hover{ + background-color: var(--kt-hover-bg) !important; + } + } +} + +// Tooltips +.apexcharts-tooltip { + &.apexcharts-theme-light { + @include border-radius($border-radius); + box-shadow: var(--kt-dropdown-box-shadow); + border: 0 !important; + background: var(--kt-body-bg) !important; + color: var(--kt-gray-800); + + .apexcharts-tooltip-title { + background: var(--kt-body-bg) !important; + font-weight: $font-weight-semibold; + color: var(--kt-gray-800); + border-bottom: 1px solid var(--kt-gray-100) !important; + } + } + + .apexcharts-tooltip-title { + padding: 0.5rem 1rem; + } + + .apexcharts-tooltip-series-group { + } +} + +.apexcharts-xaxistooltip { + &.apexcharts-theme-light { + @include border-radius($border-radius !important); + box-shadow: var(--kt-dropdown-box-shadow) !important; + border: 0 !important; + background: var(--kt-dropdown-box-shadow) !important; + color: var(--kt-gray-800); + + &:before { + border-bottom: 0 !important; + } + + &:after { + border-bottom-color: var(--kt-dropdown-box-shadow) !important; + } + } +} + +// Border radius integration +.card-rounded-bottom { + .apexcharts-canvas { + svg { + border-bottom-left-radius: $card-border-radius; + border-bottom-right-radius: $card-border-radius; + } + } +} + +// Border radius options +.rounded { + .apexcharts-canvas { + svg { + border-radius: $border-radius !important; + } + } +} + +.rounded-sm { + .apexcharts-canvas { + svg { + border-radius: $border-radius-sm !important; + } + } +} + +.rounded-lg { + .apexcharts-canvas { + svg { + border-radius: $border-radius-lg !important; + } + } +} + +.rounded-xl { + .apexcharts-canvas { + svg { + border-radius: $border-radius-xl !important; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_bootstrap-maxlength.scss b/src/_metronic/assets/sass/core/vendors/plugins/_bootstrap-maxlength.scss new file mode 100644 index 0000000..a450979 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_bootstrap-maxlength.scss @@ -0,0 +1,16 @@ +// +// Bootstrap Maxlength +// + +.bootstrap-maxlength { + z-index: $bootstrap-maxlength-z-index !important; + + // In modal + .modal-open & { + z-index: #{$zindex-modal + 5} !important; + } + + &.badge { + display: inline-flex !important; + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_ckeditor.scss b/src/_metronic/assets/sass/core/vendors/plugins/_ckeditor.scss new file mode 100644 index 0000000..9d9c4e6 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_ckeditor.scss @@ -0,0 +1,54 @@ +// +// CKEditor +// + + +// Base +.ck-target{ + display: none; +} + +.ck-toolbar{ + @include border-radius($border-radius !important); +} + +.ck-content{ + min-height: 200px; + @include border-radius($border-radius !important); + + &.ck-focused{ + border-color: var(--kt-primary) !important; + box-shadow: none !important; + } +} + +// CKEditor Classic & Document +.ck-editor{ + .ck-toolbar{ + @include border-top-radius($border-radius !important); + @include border-bottom-radius(0 !important); + } + .ck-content{ + @include border-bottom-radius($border-radius !important); + @include border-top-radius(0 !important); + } +} + +// CKEditor Inline / Balloon / Balloon Block +.ck-body { + .ck-balloon-panel{ + .ck-content{ + min-height: 200px; + border-color: transparent !important; + + &.ck-focused{ + border-color: var(--kt-primary) !important; + } + } + + &.ck-toolbar-container, + .ck-toolbar { + @include border-radius($border-radius !important); + } + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_datatables.scss b/src/_metronic/assets/sass/core/vendors/plugins/_datatables.scss new file mode 100644 index 0000000..41d0dbc --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_datatables.scss @@ -0,0 +1,233 @@ +// +// DataTables +// + +$toolbar-spacing: 1rem 0; + +// Base +table.dataTable { + width: 100% !important; + margin: 0 !important; + + th { + border-bottom-color: var(--kt-table-border-color); + } +} + +// Toolbar +div.dataTables_wrapper div.dataTables_length { + padding: $toolbar-spacing; +} + +div.dataTables_wrapper div.dataTables_filter { + padding: $toolbar-spacing; +} + +div.dataTables_wrapper div.dataTables_info { + display: flex; + flex-direction: column; + font-weight: $font-weight-semibold; + color: var(--kt-gray-700); + padding: $toolbar-spacing; + + .select-info, + .select-item { + margin-left: 0; + font-size: 0.9rem; + color: var(--kt-text-muted); + } +} + +div.dataTables_length + div.dataTables_info { + margin-left: 1rem; +} + +// Pagination +div.dataTables_wrapper div.dataTables_paginate { + padding: $toolbar-spacing; + margin-left: 0.5rem; + + .pagination { + margin: 0; + } +} + +// Head +table.dataTable>thead>tr> { + td, th { + &:not(.sorting_disabled) { + padding-right: 0; + } + } +} + +// Sorting +table.dataTable > thead { + .sorting { + &:after, + &:before { + display: none !important; + } + } + + .sorting_asc, + .sorting_desc { + vertical-align: middle; + + &:before, + &:after { + position: relative !important; + opacity: 1 !important; + display: inline-block !important; + width: 0.75rem; + height: 0.75rem; + content: " " !important; + //top: 50%; + bottom: auto; + right: auto !important; + left: auto; + margin-left: 0.5rem; + } + + &:before { + display: none !important; + } + } +} + +table.dataTable > thead .sorting_asc:after { + opacity: 1; + @include svg-bg-icon(arrow-top, var(--kt-text-muted)); +} + +table.dataTable > thead .sorting_desc:after { + opacity: 1; + @include svg-bg-icon(arrow-bottom, var(--kt-text-muted)); +} + +// Processing +div.dataTables_wrapper { + .table-responsive { + position: relative; + } + + div.dataTables_processing { + @include border-radius($border-radius); + box-shadow: var(--kt-dropdown-box-shadow); + background-color: var(--kt-tooltip-bg); + color: var(--kt-gray-700); + font-weight: $font-weight-semibold; + margin: 0 !important; + width: auto; + padding: 1rem 2rem !important; + transform: translateX(-50%) translateY(-50%); + + > div { + display: none; + } + } +} + +// Responsive +table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control, +table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control { + $icon-size: 1.35rem; + + &:before { + top: 50%; + left: 0; + height: $icon-size; + width: $icon-size; + line-height: 1.5; + text-indent: -999px !important; + margin-top: -(divide($icon-size, 2)); + margin-right: divide($icon-size, 2); + display: inline-block; + position: relative; + font-size: 1.05rem; + border: 0; + box-shadow: none; + mask-size: 85%; + -webkit-mask-size: 85%; + content: "."; + + :root &, + [data-theme="light"] & { + @include svg-bg-icon(expand, $gray-600); + } + + [data-theme="dark"] & { + @include svg-bg-icon(expand, $gray-600-dark); + } + } +} + +table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before, +table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before { + @include svg-bg-icon(collapse, $primary); +} + +table.dataTable > tbody > tr.child span.dtr-title { + display: inline-block; + min-width: 100px; + font-weight: $font-weight-semibold; +} + +table.dataTable > tbody > tr.child span.dtr-data { + font-weight: $font-weight-normal; +} + +// Striped +table.dataTable.table-striped > tbody > tr.odd > * { + box-shadow: inset 0 0 0 9999px var(--bs-table-striped-bg); +} + +table.dataTable > tbody > tr.selected > * { + box-shadow: inset 0 0 0 9999px var(--kt-primary); + color: var(--kt-primary-inverse); + + a:not([class="btn"]) { + color: var(--kt-primary-light); + font-weight: $font-weight-semibold; + text-decoration: underline; + text-decoration-style: dotted; + + &:hover { + color: var(--kt-primary-inverse); + } + } +} + +// Scroll +div.dataTables_scrollBody { + border-left: 0 !important; +} + +.dataTables_scroll .dataTables_scrollBody .table { + thead { + line-height: 0; + + .sorting { + &:after, + &:before { + display: none !important; + } + } + } +} + +div.dtfc-right-top-blocker, +div.dtfc-left-top-blocker { + background-color: var(--kt-body-bg); +} + +// Fixed column +table.dataTable thead tr > .dtfc-fixed-left, +table.dataTable thead tr > .dtfc-fixed-right { + background-color: var(--kt-body-bg); +} + +table.dataTable tbody tr > .dtfc-fixed-left, +table.dataTable tbody tr > .dtfc-fixed-right { + background-color: var(--kt-body-bg); +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_daterangepicker.scss b/src/_metronic/assets/sass/core/vendors/plugins/_daterangepicker.scss new file mode 100644 index 0000000..546af4b --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_daterangepicker.scss @@ -0,0 +1,272 @@ +// +// Bootstrap Daterangepicker plugin customization: https://www.daterangepicker.com +// + + +// Base +.daterangepicker { + padding: 0; + margin: 0; + border: 0; + width: auto; + background-color: var(--kt-body-bg); + box-shadow: var(--kt-dropdown-box-shadow); + font-family: $font-family-sans-serif; + z-index: $zindex-dropdown; + @include border-radius($dropdown-border-radius); + + &:after, + &:before { + display: none; + } + + td { + &.off, + &.off.in-range, + &.off.start-date, + &.off.end-date { + background-color: transparent; + } + } + + .modal-open & { + z-index: $zindex-modal + 1; + } + + .calendar-table { + background-color: var(--kt-body-bg); + border: 0; + } + + .ranges { + @include border-radius($dropdown-border-radius); + background-color: var(--kt-body-bg); + position: relative; + overflow: hidden; + + ul { + padding: 1rem 0; + width: $daterangepicker-ranges-list-width; + overflow: auto; + max-height: $daterangepicker-ranges-list-height; + } + + li { + padding: 0.7rem 1.75rem; + font-weight: 500; + font-size: 1rem; + color: var(--kt-gray-600); + transition: $transition-link; + + &:hover { + background-color: var(--kt-component-hover-bg); + color: var(--kt-component-hover-color); + transition: $transition-link; + } + + &.active { + background-color: var(--kt-component-active-bg); + color: var(--kt-component-active-color); + transition: $transition-link; + } + } + } + + &.show-calendar { + .ranges { + @include border-radius(0); + @include border-top-start-radius($dropdown-border-radius); + margin-top: 0; + height: 297px; + } + } + + &.show-ranges { + &.show-calendar { + .ranges { + border-right: 1px solid var(--kt-gray-200); + } + } + + .drp-calendar.left { + border-left: 0; + } + } + + .drp-buttons { + padding: 1rem 1.75rem; + border-top: 1px solid var(--kt-gray-200); + + .btn { + font-size: 1rem; + font-weight: $font-weight-semibold; + padding: 0.5rem 1rem; + } + + .cancelBtn { + @include button-custom-variant( + $color: var(--kt-light-inverse), + $icon-color: var(--kt-light-inverse), + $border-color: var(--kt-light), + $bg-color: var(--kt-light), + $color-active: var(--kt-light-inverse), + $icon-color-active: var(--kt-light-inverse), + $border-color-active: var(--kt-light-active), + $bg-color-active: var(--kt-light-active) + ); + } + } + + .drp-selected { + font-size: 0.9rem; + } + + .drp-calendar { + &.left, + &.right { + padding: 1rem 1rem; + } + + &.left { + border-left: 0 !important; + } + + th, + td { + font-size: 1rem; + font-weight: $font-weight-normal; + width: 33px; + height: 33px; + + &.available:hover { + @include border-radius($border-radius); + background-color: var(--kt-component-hover-bg); + color: var(--kt-component-hover-color); + } + } + + th { + font-weight: $font-weight-semibold; + color: var(--kt-gray-800); + + &.month { + font-weight: $font-weight-semibold; + color: var(--kt-gray-800); + } + + &.next, + &.prev { + span { + border-width: 0 1px 1px 0; + border-color: var(--kt-gray-600); + } + + &.available:hover { + span { + border-color: var(--kt-component-hover-color); + } + } + } + + &.next { + span { + margin-right: 1px; + } + } + + &.prev { + span { + margin-left: 1px; + } + } + } + + td { + color: var(--kt-gray-700); + + &.available.off { + color: var(--kt-gray-400); + } + + &.active { + background-color: var(--kt-component-active-bg) !important; + color: var(--kt-component-active-color) !important; + @include border-radius($border-radius); + + &.start-date { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + &.end-date { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + &.start-date.end-date { + @include border-radius($border-radius); + } + } + + &.today, + &.today.active { + background: var(--kt-component-hover-bg) !important; + color: var(--kt-component-hover-color) !important; + @include border-radius($border-radius); + } + + &.in-range.available:not(.active):not(.off):not(.today) { + background-color: var(--kt-component-hover-bg); + color: var(--kt-component-hover-color); + } + + &:hover { + background-color: var(--kt-component-hover-bg); + color: var(--kt-component-hover-color); + } + } + } + + select.ampmselect, + select.minuteselect, + select.hourselect, + select.monthselect, + select.yearselect { + padding-top: 0.35rem; + padding-bottom: 0.35rem; + @include border-radius($border-radius); + background-color: var(--kt-body-bg) !important; + border-color: transparent; + color: var(--kt-input-color); + font-weight: $font-weight-semibold; + outline: 0 !important; + + &:focus { + background-color: var(--kt-gray-100); + } + } +} + +// Tablet mode +@include media-breakpoint-down(md) { + .daterangepicker { + &.show-calendar { + .ranges { + float: none !important; + height: auto !important; + + ul { + width: 100%; + } + } + + .drp-calendar { + float: none !important; + max-width: unset !important; + display: flex; + flex-direction: column; + align-items: center; + } + } + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_draggable.scss b/src/_metronic/assets/sass/core/vendors/plugins/_draggable.scss new file mode 100644 index 0000000..f542f34 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_draggable.scss @@ -0,0 +1,28 @@ +// +// Draggable plugin customization: https://shopify.github.io/draggable +// + +.draggable { + transition: opacity 0.3s ease; + outline: none !important; + + &.draggable-mirror { + opacity: 0.8; + transition: opacity 0.3s ease; + border: 2px dashed var(--kt-gray-300) !important; + @include border-radius($border-radius); + } + + &.draggable--original { + opacity: 0 !important; + } + + &.draggable-source--is-dragging.draggable--over { + opacity: 0 !important; + } + + // Handle + .draggable-handle { + cursor: move; + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_dropzone.scss b/src/_metronic/assets/sass/core/vendors/plugins/_dropzone.scss new file mode 100644 index 0000000..f0b4bb8 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_dropzone.scss @@ -0,0 +1,188 @@ +// +// Dropzone plugin customization: https://www.dropzonejs.com +// + +// Basic +.dropzone { + min-height: auto; + padding: 1.5rem 1.75rem; + text-align: center; + cursor: pointer; + border: 1px dashed var(--kt-primary); + background-color: var(--kt-primary-light); + border-radius: $border-radius !important; + + .dz-message{ + margin: 0; + display: flex; + text-align: left; + } + + .dz-preview { + border-radius: $border-radius !important; + margin: 0.75rem; + + .dz-image { + border-radius: $border-radius !important; + z-index: 1; + } + + &.dz-file-preview { + .dz-image { + background: var(--kt-gray-200); + } + } + } + + .dz-success-mark, + .dz-error-mark { + $size: 40px; + + margin-left: -(divide($size, 2)) !important; + margin-top: -(divide($size, 2)) !important; + + svg { + height: $size !important; + width: $size !important; + } + } + + .dz-remove { + $size: 1.65rem; + display:flex; + justify-content: center; + align-items: center; + height: $size; + width: $size; + font-size: 1rem; + text-indent: -9999px; + white-space: nowrap; + position: absolute; + z-index: 2; + background-color: var(--kt-body-bg) !important; + box-shadow: var(--kt-box-shadow); + border-radius: 100%; + top: -(divide($size,2)); + right: -(divide($size,2)); + + &:after { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + display: block; + content: ""; + mask-size: 40%; + -webkit-mask-size: 40%; + @include svg-bg-icon(close, var(--kt-gray-600)); + } + + &:hover { + &:after { + @include svg-bg-icon(close, var(--kt-primary)); + } + } + } + + .dz-error-message { + color: var(--kt-danger-inverse); + background: var(--kt-danger); + } +} + +// Queue upload +.dropzone.dropzone-queue { + border: 0; + padding: 0; + background-color: transparent; + text-align: left; + + .dz-message{ + display: none; + } + + .dropzone-panel { + .dropzone-upload, + .dropzone-remove-all{ + display: none; + } + } + + .dropzone-item { + display: flex; + align-items: center; + margin-top: 0.75rem; + @include border-radius($border-radius); + padding: 0.5rem 1rem; + background-color: var(--kt-gray-100); + + .dropzone-file { + flex-grow: 1; + + .dropzone-filename { + font-size: 0.9rem; + font-weight: 500; + color: var(--kt-gray-600); + text-overflow: ellipsis; + margin-right: 0.5rem; + + &:hover { + color: var(--kt-primary); + } + } + + .dropzone-error { + margin-top: 0.25rem; + font-size: 0.9rem; + font-weight: 400; + color: var(--kt-danger); + text-overflow: ellipsis; + } + } + + .dropzone-progress { + width: 15%; + + .progress { + height: 5px; + @include transition; + } + } + + .dropzone-toolbar { + margin-left: 1rem; + display: flex; + flex-wrap: nowrap; + + .dropzone-start, + .dropzone-cancel, + .dropzone-delete { + height: 25px; + width: 25px; + display: inline-flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: $transition-link; + + i { + transition: $transition-link; + font-size: 0.8rem; + color: var(--kt-gray-600); + } + + &:hover { + transition: $transition-link; + i { + color: var(--kt-primary); + } + } + } + + .dropzone-start{ + transition: $transition-link; + } + } + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_flatpickr.scss b/src/_metronic/assets/sass/core/vendors/plugins/_flatpickr.scss new file mode 100644 index 0000000..8892ae6 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_flatpickr.scss @@ -0,0 +1,407 @@ +// +// Flatpickr +// + +$flatpickr-padding-y: 0.5rem; +$flatpickr-padding-x: 1rem; +$flatpickr-width: 280px; +$flatpickr-width-week-numbers: 325px; +$flatpickr-day-height: 36px; +$flatpickr-day-width: 100%; +$flatpickr-time-height: 46px; + +// Container +.flatpickr-calendar { + width: $flatpickr-width !important; + font-family: inherit; + border: 0; + border-radius: 0; + box-shadow: var(--kt-dropdown-box-shadow); + background-color: var(--kt-body-bg); + @include border-radius($dropdown-border-radius); + + // Remow arrows + &:before, + &:after { + display: none; + } + + // Week numbers + &.hasWeeks { + width: $flatpickr-width-week-numbers !important; + } +} + +// Months container +.flatpickr-months { + padding: 0 $flatpickr-padding-x; + padding-top: $flatpickr-padding-y; +} + +// Inner container +.flatpickr-innerContainer { + padding: $flatpickr-padding-y $flatpickr-padding-x; +} + +// Day containers +.flatpickr-days, +.dayContainer { + width: 100% !important; + min-width: 100% !important; + max-width: 100% !important; +} + +// Months +.flatpickr-months { + .flatpickr-month { + background: transparent; + color: var(--kt-gray-600); + fill: var(--kt-gray-600); + height: 46px; + } + + .flatpickr-prev-month, + .flatpickr-next-month { + display: flex; + align-items: center; + justify-content: center; + @include border-radius($border-radius); + top: 1rem; + + svg { + fill: var(--kt-gray-500); + height: 13px; + width: 13px; + } + + &:hover { + background: var(--kt-gray-100); + + svg { + fill: var(--kt-gray-700); + } + } + } + + .flatpickr-prev-month.flatpickr-prev-month, + .flatpickr-next-month.flatpickr-prev-month { + /*rtl:begin:ignore*/ + left: $flatpickr-padding-x; + /*rtl:end:ignore*/ + } + + .flatpickr-prev-month.flatpickr-next-month, + .flatpickr-next-month.flatpickr-next-month { + /*rtl:begin:ignore*/ + right: $flatpickr-padding-x; + /*rtl:end:ignore*/ + } +} + +// Month selector +.flatpickr-current-month { + font-weight: $font-weight-semibold; + color: inherit; + + .numInputWrapper { + @include border-radius($border-radius); + width: 65px; + + span { + &.arrowUp { + @include border-top-end-radius($border-radius); + } + + &.arrowDown { + @include border-bottom-end-radius($border-radius); + } + } + } + + .flatpickr-monthDropdown-months { + border: 0 !important; + background-color: var(--kt-body-bg); + font-size: 1rem; + color: var(--kt-gray-700); + font-weight: $font-weight-semibold; + padding: 0.5rem 0.75rem; + margin-right: 0.5rem; + outline: none !important; + @include border-radius($border-radius); + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + + &:hover { + background: var(--kt-gray-100); + } + + .flatpickr-monthDropdown-month { + font-size: 1rem; + color: var(--kt-gray-700); + font-weight: $font-weight-semibold; + background-color: transparent; + outline: none; + padding: 0; + } + } + + span.cur-month { + color: var(--kt-gray-700); + font-size: 1rem; + font-weight: $font-weight-semibold; + + &:hover { + background: var(--kt-gray-100); + } + } + + input.cur-year { + color: var(--kt-gray-700); + font-size: 1.1rem; + padding: 0.5rem 0.75rem; + font-weight: $font-weight-semibold; + outline: 0 !important; + } +} + +// Week days +span.flatpickr-weekday { + color: var(--kt-gray-800); + font-size: 1rem; + font-weight: $font-weight-bold; +} + +// Time +.flatpickr-time { + @include border-bottom-radius($border-radius); + + .flatpickr-calendar.hasTime & { + height: height; + line-height: height; + max-height: height; + border-top: 1px solid var(--kt-gray-100); + } + + .numInputWrapper { + height: height; + } + + .flatpickr-am-pm { + color: var(--kt-gray-700); + font-size: 1rem; + font-weight: $font-weight-semibold; + } + + input { + &.flatpickr-hour, + &.flatpickr-minute { + color: var(--kt-gray-700); + font-size: 1rem; + font-weight: $font-weight-semibold; + } + } + + input:hover, + .flatpickr-am-pm:hover, + input:focus, + .flatpickr-am-pm:focus { + background: transparent; + } +} + +// Number input +.numInputWrapper { + span { + border-left: 0 !important; + border-top: 0 !important; + border-bottom: 0 !important; + border-right: 0 !important; + + &:hover { + background: transparent !important; + } + + &:after { + top: 50% !important; + transform: translateY(-50%); + } + + &.arrowUp { + &:after { + border-bottom-color: var(--kt-gray-500) !important; + } + + &:hover { + &:after { + border-bottom-color: var(--kt-gray-700) !important; + } + } + } + + &.arrowDown { + &:after { + border-top-color: var(--kt-gray-500) !important; + } + + &:hover { + &:after { + border-top-color: var(--kt-gray-700) !important; + } + } + } + } + + &:hover { + background: transparent; + } +} + +// Day +.flatpickr-day { + font-size: 1rem; + @include border-radius($border-radius); + box-shadow: none !important; + height: $flatpickr-day-height; + width: $flatpickr-day-width; + max-width: 100% !important; + margin: 0; + line-height: $flatpickr-day-height; + color: var(--kt-gray-600); + margin-top: 0 !important; + + &.inRange, + &.prevMonthDay.inRange, + &.nextMonthDay.inRange, + &.today.inRange, + &.prevMonthDay.today.inRange, + &.nextMonthDay.today.inRange, + &:hover, + &.prevMonthDay:hover, + &.nextMonthDay:hover, + &:focus, + &.prevMonthDay:focus, + &.nextMonthDay:focus { + cursor: pointer; + outline: 0; + background: var(--kt-component-hover-bg); + color: var(--kt-component-hover-color); + border-color: transparent; + } + + // Today + &.today { + background: var(--kt-gray-100); + color: var(--kt-gray-600); + border-color: transparent; + + &:hover, + &:focus { + border-color: transparent; + background: var(--kt-gray-200); + color: var(--kt-gray-700); + } + } + + // Selected + &.selected, + &.startRange, + &.endRange, + &.selected.inRange, + &.startRange.inRange, + &.endRange.inRange, + &.selected:focus, + &.startRange:focus, + &.endRange:focus, + &.selected:hover, + &.startRange:hover, + &.endRange:hover, + &.selected.prevMonthDay, + &.startRange.prevMonthDay, + &.endRange.prevMonthDay, + &.selected.nextMonthDay, + &.startRange.nextMonthDay, + &.endRange.nextMonthDay { + background: var(--kt-component-active-bg); + color: var(--kt-component-active-color);; + border-color: transparent; + } + + &.inRange, + &.prevMonthDay.inRange, + &.nextMonthDay.inRange, + &.today.inRange, + &.prevMonthDay.today.inRange, + &.nextMonthDay.today.inRange, + &:hover, + &.prevMonthDay:hover, + &.nextMonthDay:hover, + &:focus, + &.prevMonthDay:focus, + &.nextMonthDay:focus { + cursor: pointer; + outline: 0; + background: var(--kt-component-hover-bg); + color: var(--kt-component-hover-color); + border-color: transparent; + } + + // Today + &.today { + border-color: transparent; + } + + &.today:hover, + &.today:focus { + border-color: transparent; + background: var(--kt-gray-100); + color: var(--kt-gray-600); + } + + // Selected + &.selected, + &.startRange, + &.endRange, + &.selected.inRange, + &.startRange.inRange, + &.endRange.inRange, + &.selected:focus, + &.startRange:focus, + &.endRange:focus, + &.selected:hover, + &.startRange:hover, + &.endRange:hover, + &.selected.prevMonthDay, + &.startRange.prevMonthDay, + &.endRange.prevMonthDay, + &.selected.nextMonthDay, + &.startRange.nextMonthDay, + &.endRange.nextMonthDay { + background: var(--kt-component-active-bg); + color: var(--kt-component-active-color);; + border-color: transparent; + } + + // Disabled + &.flatpickr-disabled, + &.flatpickr-disabled:hover, + &.prevMonthDay, + &.nextMonthDay, + &.notAllowed, + &.notAllowed.prevMonthDay, + &.notAllowed.nextMonthDay { + color: var(--kt-gray-400); + background: transparent; + border-color: transparent; + } + &.flatpickr-disabled, + &.flatpickr-disabled:hover { + cursor: not-allowed; + color: var(--kt-gray-400); + } +} + +// Week numbers +.flatpickr-weekwrapper { + margin-right: 5px; +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_formvalidation.scss b/src/_metronic/assets/sass/core/vendors/plugins/_formvalidation.scss new file mode 100644 index 0000000..dd853e4 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_formvalidation.scss @@ -0,0 +1,19 @@ +// +// FormValidation Customization. More info: https://formvalidation.io/ +// + +.fv-plugins-message-container { + margin-top: 0.3rem; + + .fv-help-block { + color: var(--kt-danger); + font-size: 1rem; + font-weight: $font-weight-normal; + } + + &.valid-feedback, + &.invalid-feedback { + display: block; + font-weight: $font-weight-normal; + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_fslightbox.scss b/src/_metronic/assets/sass/core/vendors/plugins/_fslightbox.scss new file mode 100644 index 0000000..a9390cf --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_fslightbox.scss @@ -0,0 +1,11 @@ +// +// fslightbox +// + +.fslightbox-slide-btn { + border-radius: $border-radius; +} + +.fslightbox-toolbar { + border-bottom-left-radius: $border-radius; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_fullcalendar.scss b/src/_metronic/assets/sass/core/vendors/plugins/_fullcalendar.scss new file mode 100644 index 0000000..2923198 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_fullcalendar.scss @@ -0,0 +1,297 @@ +// +// Fullcalendar plugin customization: https://fullcalendar.io/ +// + +body { + --fc-event-border-color: var(--kt-primary); + --fc-event-bg-color: var(--kt-primary); + --fc-event-text-color: var(--kt-primary-inverse); +} + +// Base +.fc { + // Border color + --fc-border-color: #{var(--kt-gray-200)}; + --fc-page-bg-color: #{$white}; + --fc-small-font-size: 0.95rem; + + // General + --fc-highlight-color: var(--kt-light); + //--fc-non-business-color: + //--fc-bg-event-color: + --fc-bg-event-opacity: 0.3; + --fc-neutral-bg-color: var(--kt-light); + //--fc-event-selected-overlay-color: + --fc-today-bg-color: var(--kt--success-light); + //--fc-neutral-bg-color: + //--fc-neutral-text-color: + //--fc-more-link-text-color: + //--fc-more-link-bg-color: + --fc-now-indicator-color: var(--kt-danger); + --fc-list-event-hover-bg-color: var(--kt-light); + + // Buttons + --fc-button-text-color: var(--kt-gray-600); + --fc-button-bg-color: var(--kt-gray-100); + --fc-button-border-color: var(--kt-gray-100); + + --fc-button-hover-bg-color: var(--kt-gray-100); + --fc-button-hover-border-color: var(--kt-gray-100); + + --fc-button-active-bg-color: var(--kt-gray-200); + --fc-button-active-border-color: var(--kt-gray-200); + + // Table + table { + font-size: 1rem; + } + + // Button + .fc-button { + padding: 0.75rem 1.25rem; + box-shadow: none !important; + border: 0 !important; + border-radius: $btn-border-radius; + vertical-align: middle; + font-weight: $font-weight-semibold; + text-transform: capitalize; + } + + // Primary button + .fc-button-primary { + margin: 0; + + // Icon + .fc-icon { + font-size: 1.35rem; + margin-bottom: 0.15rem; + } + + &:not(:disabled):not(.fc-button-active) { + &:focus, + &:hover, + &:active { + color: var(--kt-gray-900); + + .fc-icon { + color: var(--kt-gray-900); + } + } + } + + &:not(:disabled).fc-button-active { + color: var(--kt-gray-900); + + .fc-icon { + color: var(--kt-gray-900); + } + } + } + + // Button group + .fc-button-group { + .fc-button { + margin: 0 !important; + } + } + + // Toolbar title + .fc-toolbar-title { + font-size: 1.5rem; + font-weight: $font-weight-bold; + color: var(--kt-gray-800); + } + + // Header cell + .fc-col-header-cell { + padding: 0.75rem 0.5rem; + + .fc-col-header-cell-cushion { + font-size: 1.1rem; + font-weight: $font-weight-semibold; + color: var(--kt-gray-800); + } + } + + // Border radius + .fc-scrollgrid { + @include border-radius($border-radius); + + thead > tr { + td:first-child { + @include border-top-start-radius($border-radius); + } + + td:last-child { + @include border-top-end-radius($border-radius); + } + } + + tbody > tr:last-child { + td:first-child { + @include border-bottom-start-radius($border-radius); + } + + td:last-child { + @include border-bottom-end-radius($border-radius); + } + } + } + + // Event + .fc-daygrid-event { + margin-top: 3px; + } + + // Event title + .fc-daygrid-dot-event, + .fc-daygrid-block-event { + .fc-event-title, + .fc-event-time { + padding: 0.25rem 0.25rem; + } + } + + // Day number + .fc-daygrid-day-number { + color: var(--kt-gray-800); + } + + // Dot event + .fc-daygrid-dot-event { + background-color: var(--kt-light); + color: var(--kt-gray-600); + + .fc-event-title { + font-weight: $font-weight-semibold; + } + + &:hover, + &.fc-event-mirror { + background-color: var(--kt-light); + color: var(--kt-primary); + } + } + + // Event dot + .fc-daygrid-event-dot { + margin-left: 0.5rem; + margin-right: 0.1rem; + } + + // Popover + .fc-popover { + border: 0 !important; + background-color: var(--kt-tooltip-bg); + box-shadow: var(--kt-dropdown-box-shadow); + @include border-radius($dropdown-border-radius); + + .fc-popover-header { + @include border-top-radius($dropdown-border-radius); + padding: 0.65rem 0.75rem; + background-color: var(--kt-tooltip-bg); + + .fc-popover-title { + color: var(--kt-gray-800); + font-size: 1rem; + font-weight: $font-weight-semibold; + } + + .fc-popover-close { + font-size: 1rem; + color: var(--kt-gray-600); + + &:hover { + color: var(--kt-primary); + } + } + } + + .fc-popover-body { + padding: 0.5rem 0.75rem 0.75rem 0.75rem; + } + } + + // More link + .fc-daygrid-more-link { + font-weight: $font-weight-semibold; + } + + // Slot + .fc-timegrid-slot { + height: 2rem; + font-size: 0.95rem; + } + + // List + .fc-list-day-cushion, + .fc-list-table td { + padding: 0.85rem 1.15rem; + } + + .fc-list-day-text, + .fc-list-day-side-text { + font-size: 1.1rem; + color: var(--kt-gray-900); + font-weight: $font-weight-bold; + } + + .fc-list, + //.fc-scroller, + .fc-list-table { + @include border-radius($border-radius); + } + + .fc-list { + overflow: hidden; + position: relative; + } + + // Week + .fc-timegrid-axis { + padding-left: 0rem; + padding-right: 0; + } + + // Main + .fc-timegrid-event .fc-event-main { + padding: 0.25rem 0.25rem; + } + + // Indicator arrow + .fc-timegrid-now-indicator-arrow { + margin-top: -1px; + } +} + +// Event +.fc-h-event { + font-weight: $font-weight-normal; +} + +// Mobile mode +@include media-breakpoint-down(md) { + .fc { + // Header toolbar + .fc-header-toolbar { + flex-direction: column; + align-items: flex-start; + + .fc-toolbar-chunk { + &:nth-child(1), + &:nth-child(3) { + order: 2; + } + + &:nth-child(2) { + order: 1; + } + + &:nth-child(2), + &:nth-child(1) { + margin-bottom: 1rem; + } + } + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_gmaps.scss b/src/_metronic/assets/sass/core/vendors/plugins/_gmaps.scss new file mode 100644 index 0000000..0f9dd4c --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_gmaps.scss @@ -0,0 +1,18 @@ +// +// Gmaps Plugin +// + +.gmaps { + /* important! bootstrap sets max-width on img to 100% which conflicts with google map canvas*/ + img { + max-width: none; + } + + &.gmaps-static { + > div { + background-repeat: no-repeat ; + background-position: 50% 50% ; + display:block; + } + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_jkanban.scss b/src/_metronic/assets/sass/core/vendors/plugins/_jkanban.scss new file mode 100644 index 0000000..d889064 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_jkanban.scss @@ -0,0 +1,94 @@ +// +// Kanban Board +// + +// Variables +$kanban-spacer-y: 1.25rem; +$kanban-spacer-x: 1.25rem; + +.kanban-container { + width: 100% !important; + display: flex; + flex-wrap: wrap; + + .kanban-board { + float: none; + flex-shrink: 0; + margin-bottom: $kanban-spacer-y; + margin-right: $kanban-spacer-x !important; + background-color: var(--kt-gray-100); + @include border-radius($border-radius); + + &:last-child { + margin-right: 0 !important; + } + + .kanban-board-header { + @include border-top-start-radius($border-radius); + @include border-top-end-radius($border-radius); + + .kanban-title-board { + font-size: 1.2rem; + font-weight: 500; + color: var(--kt-gray-900); + } + + @each $name, $color in $theme-colors { + &.#{$name} { + background-color: var(--kt-#{$name}); + box-shadow: none; + + .kanban-title-board { + color: var(--kt-#{$name}-inverse); + } + } + + &.light-#{$name} { + color: rgba(var(--kt-#{$name}), 0.1); + box-shadow: none; + + .kanban-title-board { + color: var(--kt-#{$name}); + } + } + } + } + + .kanban-drag { + .kanban-item { + @include border-radius($border-radius); + box-shadow: 0px 0px 13px 0px rgba(0, 0, 0, 0.05); + background: var(--kt-body-bg); + + @each $name, $color in $theme-colors { + &[data-class="#{$name}"] { + background-color: var(--kt-#{$name}); + color: var(--kt-#{$name}-inverse); + box-shadow: none; + } + + &[data-class="light-#{$name}"] { + background-color: var(--kt-#{$name}-light); + color: var(--kt-#{$name}); + box-shadow: none; + } + } + } + } + + footer { + } + } +} + +// Fixed height +.kanban-fixed-height { + .kanban-container { + .kanban-board { + .kanban-drag { + position: relative; + overflow-y: auto; + } + } + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_jstree.scss b/src/_metronic/assets/sass/core/vendors/plugins/_jstree.scss new file mode 100644 index 0000000..412d142 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_jstree.scss @@ -0,0 +1,150 @@ +// +// jsTree +// + +.jstree-default { + .jstree-anchor { + color: var(--kt-gray-700); + padding: 0 8px 0 4px; + } + + .jstree-icon { + color: var(--kt-gray-700); + + font-size: 1.3rem; + + &.la { + font-size: 1.5rem; + } + &.fa { + font-size: 1.2rem; + } + } + + .jstree-disabled { + cursor: not-allowed; + line-height: auto; + height: auto; + opacity: 0.7; + + .jstree-icon { + color: var(--kt-gray-700); + } + } + + .jstree-clicked { + border: 0; + background: var(--kt-gray-100); + box-shadow: none; + } + + .jstree-hovered { + border: 0; + background-color: var(--kt-gray-100); + box-shadow: none; + } + + .jstree-wholerow-clicked, + .jstree-wholerow-clicked { + background: var(--kt-gray-200); + box-shadow: none; + } + + .jstree-wholerow-hovered, + &.jstree-wholerow .jstree-wholerow-hovered { + border: 0; + background-color: var(--kt-gray-100); + box-shadow: none; + } +} + +.jstree-open>.jstree-anchor>.fa-folder:before { + margin-left: 2px; + content: "\f07c"; +} + +.jstree-open>.jstree-anchor>.la-folder:before { + margin-left: 2px; + content: "\f200"; +} + +.jstree-default.jstree-rtl .jstree-node { + background-position: 100% 1px#{'/*rtl:ignore*/'} !important; +} + +.jstree-default.jstree-rtl .jstree-last { + background: transparent #{'/*rtl:ignore*/'}; + background-repeat: no-repeat; +} + +.jstree-rtl .jstree-anchor { + padding: 0 4px 0 8px#{'/*rtl:ignore*/'}; +} + +// context menu +.vakata-context, +.vakata-context ul { + padding: 0.5rem 0; + min-width: 150px; + font-size: 1rem; + font-family: $font-family-base; + background: var(--kt-body-bg); + box-shadow: var(--kt-dropdown-box-shadow); + border: 0; + @include border-radius($border-radius); + + li { + padding: 0; + border: 0; + + a { + padding: 0rem 1.2rem; + border: 0; + //line-height: 2.2em; + + i { + display: none; + } + + .vakata-contextmenu-sep { + display: none; + } + + span, + ins { + display: none; + border: 0 !important; + } + } + } + + .vakata-context-hover>a, + li a:hover { + margin: 0; + background-color: var(--kt-gray-100); + color: var(--kt-primary); + box-shadow: none; + + .span, + .ins { + border: 0 !important; + } + } +} + +.vakata-context .vakata-context-separator a, +.vakata-context-rtl .vakata-context-separator a { + margin: 0; + border: 0; + height: 2px; + background-color: var(--kt-gray-200); +} + +.jstree-rename-input { + outline: none !important; + padding: 2px 6px !important; + margin-right: -4px !important; + background-color: var(--kt-gray-100) !important; + border: 1px solid var(--kt-gray-100) !important; + @include border-radius($border-radius); +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_leaflet.scss b/src/_metronic/assets/sass/core/vendors/plugins/_leaflet.scss new file mode 100644 index 0000000..3cc6f34 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_leaflet.scss @@ -0,0 +1,23 @@ +// +// leaflet +// + +.leaflet-container { + .leaflet-pane, + .leaflet-top, + .leaflet-bottom, + .leaflet-control { + z-index: 1 !important; + } + + .leaflet-popup-content-wrapper { + border-radius: $border-radius !important; + text-align: center; + box-shadow: var(--kt-box-shadow) !important; + + .leaflet-popup-content { + font-family: $font-family-sans-serif; + font-size: $font-size-base; + } + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_mixins.scss b/src/_metronic/assets/sass/core/vendors/plugins/_mixins.scss new file mode 100644 index 0000000..c22460e --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_mixins.scss @@ -0,0 +1,5 @@ +// +// Mixins +// + +@import "mixins/nouislider"; diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_nouislider.scss b/src/_metronic/assets/sass/core/vendors/plugins/_nouislider.scss new file mode 100644 index 0000000..e61522d --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_nouislider.scss @@ -0,0 +1,103 @@ +// +// NoUiSlider +// + + +// Base +.noUi-target { + border: 0; + background: var(--kt-gray-100); + box-shadow:none; + + &.noUi-horizontal { + height: 15px; + + .noUi-handle { + width: 24px; + height: 24px; + top: -4.5px; + border-radius: 50%; + outline: none; + + &::before { + display: none; + } + + &::after { + display: none; + } + } + } + + &.noUi-vertical { + height: 150px; + width: 15px; + + .noUi-handle { + width: 24px; + height: 24px; + right: -4.5px; + border-radius: 50%; + outline: none; + + &::before { + display: none; + } + + &::after { + display: none; + } + } + } + + .noUi-connect { + background: var(--kt-component-active-bg); + } + + .noUi-handle { + background-color: $white; //var(--kt-body-bg); + border: 1px solid var(--kt-gray-200); + box-shadow:var(--kt-box-shadow-sm) + } + + // Small size + &.noUi-sm { + @include nouislider-size(6px, 20px, 20px, 7px); + } + + // Large size + &.noUi-lg { + @include nouislider-size(18px, 30px, 30px, 6px); + } +} + +// Theme colors +@each $name, $value in $theme-colors { + // NoUiSlider success color option + .noUi-target.noUi-target-#{$name} { + .noUi-connects { + background-color: var(--kt-#{$name}-light); + + .noUi-connect { + background-color: var(--kt-#{$name}); + } + } + + .noUi-handle { + border: 1px solid var(--kt-#{$name}); + box-shadow: 0 3px 6px -3px rgba(var(--kt-#{$name}), 0.7); + background-color: var(--kt-#{$name}); + } + } +} + +// Tooltip +.noUi-tooltip { + box-shadow: var(--kt-tooltip-box-shadow); + background: var(--kt-tooltip-bg); + color: var(--kt-tooltip-color); + font-size: $tooltip-font-size; + border: 0; + padding: 0.5rem 0.75rem; + @include border-radius($tooltip-border-radius); +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_plugins.angular.scss b/src/_metronic/assets/sass/core/vendors/plugins/_plugins.angular.scss new file mode 100644 index 0000000..0242e13 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_plugins.angular.scss @@ -0,0 +1,12 @@ +// +// Plugins +// + +// Import Dependencies +@import "root"; +@import "prismjs"; +@import "nouislider"; +@import "apexcharts"; +@import "fslightbox"; +@import "tiny-slider"; +@import "fullcalendar"; \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_plugins.react.scss b/src/_metronic/assets/sass/core/vendors/plugins/_plugins.react.scss new file mode 100644 index 0000000..0242e13 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_plugins.react.scss @@ -0,0 +1,12 @@ +// +// Plugins +// + +// Import Dependencies +@import "root"; +@import "prismjs"; +@import "nouislider"; +@import "apexcharts"; +@import "fslightbox"; +@import "tiny-slider"; +@import "fullcalendar"; \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_plugins.scss b/src/_metronic/assets/sass/core/vendors/plugins/_plugins.scss new file mode 100644 index 0000000..c2df238 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_plugins.scss @@ -0,0 +1,32 @@ +// +// Plugins +// + +// Import Dependencies +@import "root"; +@import "prismjs"; +@import "fslightbox"; +@import "select2"; +@import "formvalidation"; +@import "daterangepicker"; +@import "flatpickr"; +@import "tagify"; +@import "bootstrap-maxlength"; +@import "ckeditor"; +@import "datatables"; +@import "dropzone"; +@import "gmaps"; +@import "nouislider"; +@import "quill"; +@import "recaptcha"; +@import "sweetalert2"; +@import "tinymce"; +@import "toastr"; +@import "draggable"; +@import "apexcharts"; +@import "leaflet"; +@import "tiny-slider"; +@import "fullcalendar"; +@import "jkanban"; +@import "jstree"; +@import "vis-timeline"; \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_plugins.vue.scss b/src/_metronic/assets/sass/core/vendors/plugins/_plugins.vue.scss new file mode 100644 index 0000000..0242e13 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_plugins.vue.scss @@ -0,0 +1,12 @@ +// +// Plugins +// + +// Import Dependencies +@import "root"; +@import "prismjs"; +@import "nouislider"; +@import "apexcharts"; +@import "fslightbox"; +@import "tiny-slider"; +@import "fullcalendar"; \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_prismjs.scss b/src/_metronic/assets/sass/core/vendors/plugins/_prismjs.scss new file mode 100644 index 0000000..fa95a54 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_prismjs.scss @@ -0,0 +1,84 @@ +// +// Prismjs +// + +// Highlight +.highlight { + position: relative; + background: var(--kt-highlight-bg); + border-radius: $border-radius; + padding: 1.75rem 1.5rem 1.75rem 1.5rem; + + // Tabs + .nav { + border-bottom: 1px solid var(--kt-highlight-border); + padding-bottom: 1rem; + margin-bottom: 1rem; + margin-top: -0.25rem; + + .nav-item { + margin-right: 0.75rem; + } + + .nav-link { + font-size: 0.9rem; + font-weight: 500; + padding: 0.35rem 1rem; + border-radius: $border-radius; + color: var(--kt-highlight-btn-color); + transition: $transition-base; + background-color: transparent; + + &:focus, + &.active { + transition: $transition-base; + background-color: var(--kt-highlight-btn-bg-hover); + color: var(--kt-highlight-btn-color-hover); + } + } + } + + .highlight-copy { + display: none; + position: absolute; + right: 1.75rem; + top: 1.5rem; + font-size: 0.85rem; + font-weight: 500; + padding: 0.35rem 1rem !important; + transition: $transition-base; + background-color: var(--kt-highlight-btn-bg); + color: var(--kt-highlight-btn-color); + + &:focus, + &:hover { + transition: $transition-base; + background-color: var(--kt-highlight-btn-bg-hover); + color: var(--kt-highlight-btn-color-hover); + } + } + + &:hover { + .highlight-copy { + display: flex; + } + } + + // Code + .highlight-code { + pre { + background-color: transparent; + overflow: auto; + padding: 0; + margin: 0; + + @include scrollbar-color( var(--kt-highlight-scrollbar-color), var(--kt-highlight-scrollbar-color-hover)); + + code[class*="language-"] { + padding: 0; + margin: 0; + font-size: 1rem !important; + } + } + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_quill.scss b/src/_metronic/assets/sass/core/vendors/plugins/_quill.scss new file mode 100644 index 0000000..5f52679 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_quill.scss @@ -0,0 +1,185 @@ +// +// Quill +// + +// Base +.ql-toolbar { + font-family: $font-family-sans-serif; + + &.ql-snow { + border: 1px solid var(--kt-border-color); + @include border-top-radius($border-radius); + + .ql-picker, + button { + .ql-fill, + .ql-stroke { + stroke: var(--kt-gray-500); + } + + .ql-fill { + fill: var(--kt-gray-500); + } + + &.ql-expanded, + &.ql-active, + &:focus, + &:hover { + .ql-fill, + .ql-stroke { + stroke: var(--kt-primary); + } + + .ql-fill { + fill: var(--kt-primary); + } + } + } + } +} + +.ql-editor { + color: var(--kt-input-color); + + &.ql-blank { + &:before { + left: auto !important; + right: auto !important; + color: var(--kt-text-muted) !important; + font-style: normal !important; + } + } +} + +.ql-container { + &.ql-snow { + background-color: var(--kt-input-bg); + border: 1px solid var(--kt-gray-200); + border-top: 0; + @include border-bottom-radius($border-radius); + } +} + +.ql-snow { + .ql-picker { + .ql-picker-label { + color: var(--kt-gray-500); + + &.ql-active, + &:hover { + color: var(--kt-primary); + } + } + + &.ql-expanded { + outline: none !important; + border-color: transparent !important; + + .ql-picker-label { + border-color: transparent !important; + color: var(--kt-primary); + outline: none !important; + + &.ql-active, + &:hover { + color: var(--kt-primary); + } + } + + .ql-picker-options { + border: 0; + padding: 0.5rem 1rem; + box-shadow: var(--kt-dropdown-box-shadow); + background-color: var(--kt-body-bg); + @include border-radius($border-radius); + + .ql-picker-item { + color: var(--kt-gray-600); + outline: none; + + &.ql-selected, + &.ql-active, + &:hover { + color: var(--kt-primary); + } + } + } + } + } + + .ql-tooltip { + border: 0; + padding: 0.5rem 1rem; + box-shadow: var(--kt-dropdown-box-shadow); + @include border-radius($border-radius); + + input[type=text] { + @include input-reset(); + border: 1px solid var(--kt-border-color); + color: $input-plaintext-color; + outline: none !important; + @include border-radius($border-radius); + + &:active, + &:focus { + border-color: var(--kt-input-focus-border-color) !important; + } + } + + .ql-preview { + color: var(--kt-gray-600); + } + + .ql-action { + transition: color 0.3s ease; + color: var(--kt-gray-600); + + &:hover { + transition: color 0.3s ease; + color: var(--kt-primary); + } + } + + // Tooltip adjustment in modal + .modal & { + &.ql-editing { + left: 20px !important; + } + } + } + + .ql-editor { + pre.ql-syntax { + background-color: var(--kt-gray-900); + color: var(--kt-text-muted); + overflow: visible; + @include border-radius($border-radius); + } + } +} + +// Plain Style +.ql-quil.ql-quil-plain { + .ql-toolbar { + padding: 0; + margin: 0; + border: 0; + + &:after { + display: none; + } + + .ql-picker-label { + padding-left: 0; + } + } + + .ql-container { + border: 0; + } + + .ql-editor { + border: 0; + padding: 0; + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_recaptcha.scss b/src/_metronic/assets/sass/core/vendors/plugins/_recaptcha.scss new file mode 100644 index 0000000..4c0d42e --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_recaptcha.scss @@ -0,0 +1,32 @@ +// +// Recaptcha +// + + +// Base +.recaptcha { + padding: 15px; + border: 1px solid var(--kt-gray-200); + @include border-radius($border-radius); + + .recaptcha-img { + margin-bottom: 10px; + } + + .recaptcha_only_if_incorrect_sol { + color: var(--kt-danger); + } + + .input-group { + .btn { + i { + padding-right: 0; + } + } + + .form-control { + @include border-top-start-radius($border-radius !important); + @include border-bottom-start-radius($border-radius !important); + } + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_root.scss b/src/_metronic/assets/sass/core/vendors/plugins/_root.scss new file mode 100644 index 0000000..afab66f --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_root.scss @@ -0,0 +1,36 @@ +// +// CSS Variables +// + +:root, +[data-theme="light"] { + // Select2 + + // Prismjs + --kt-highlight-bg: #{$highlight-bg}; + + --kt-highlight-border: #{$highlight-border}; + + --kt-highlight-btn-bg: #{$highlight-btn-bg}; + --kt-highlight-btn-bg-hover: #{$highlight-btn-bg-hover}; + --kt-highlight-btn-color: #{$highlight-btn-color}; + --kt-highlight-btn-color-hover: #{$highlight-btn-color-hover}; + + --kt-highlight-scrollbar-color: #{$highlight-scrollbar-color}; + --kt-highlight-scrollbar-color: #{$highlight-scrollbar-hover-color}; +} + +[data-theme="dark"] { + // Prismjs + --kt-highlight-bg: #{$highlight-bg-dark}; + + --kt-highlight-border: #{$highlight-border-dark}; + + --kt-highlight-btn-bg: #{$highlight-btn-bg-dark}; + --kt-highlight-btn-bg-hover: #{$highlight-btn-bg-hover-dark}; + --kt-highlight-btn-color: #{$highlight-btn-color-dark}; + --kt-highlight-btn-color-hover: #{$highlight-btn-color-hover-dark}; + + --kt-highlight-scrollbar-color: #{$highlight-scrollbar-color-dark}; + --kt-highlight-scrollbar-color-hover: #{$highlight-scrollbar-hover-color-dark}; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_select2.scss b/src/_metronic/assets/sass/core/vendors/plugins/_select2.scss new file mode 100644 index 0000000..20fc962 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_select2.scss @@ -0,0 +1,399 @@ +// +// Select2 plugin customization: https://select2.org +// + +$select2-dropdown-padding: 1rem 0; +$select2-dropdown-option-padding: 0.75rem 1.25rem; +$select2-dropdown-option-margin: 0 0; +$select2-dropdown-option-check-padding: 1.25rem; + +$select2-dropdown-group-padding: 0 1.25rem 0 1.25rem; +$select2-dropdown-group-margin: 0 0 0.25rem 0; + +$select2-search-padding: 0.5rem 1.25rem; +$select2-search-margin: 0 0 0.5rem 0; + +$select2-clear-size: 0.7rem; +$select2-clear-color: var(--kt-gray-700); +$select2-clear-color-dark: var(--kt-gray-700); +$select2-clear-color-hover: var(--kt-primary); +$select2-clear-right: $form-select-indicator-padding; //$form-select-padding-x + + + +// Bootstrap .form-control sizing integration +$select2-tag-clear-size: 0.6rem; + +$select2-tag-padding-y-sm: 0.1rem; +$select2-tag-padding-x-sm: 0.35rem; +$select2-input-padding-y-sm: $input-padding-y-sm - $select2-tag-padding-y-sm * 2; + +$select2-tag-padding-y: 0.1rem; +$select2-tag-padding-x: 0.5rem; +$select2-input-padding-y: $input-padding-y - $select2-tag-padding-y * 2; + +$select2-tag-padding-y-lg: 0.15rem; +$select2-tag-padding-x-lg: 0.65rem; +$select2-input-padding-y-lg: $input-padding-y-lg - $select2-tag-padding-y-lg * 2; + +// Bootstrapa 5 Theme +.select2-container--bootstrap5 { + // Selection + .select2-selection { + box-shadow: none !important; + height: auto; + outline: none !important; + } + + // Selection focus & open states + &.select2-container--focus, + &.select2-container--open { + .form-select-solid { + background-color: var(--kt-input-solid-bg-focus); + } + + .form-select:not(.form-select-solid):not(.form-select-transparent) { + border-color: var(--kt-input-focus-border-color); + } + } + + // Search + .select2-search.select2-search--inline { + .select2-search__field { + color: var(--kt-input-color); + @include placeholder($input-placeholder-color); + font-weight: $input-font-weight; + font-family: inherit !important; + background-color: transparent; + border: 0; + box-shadow: none; + outline: none; + line-height: 1; + margin: 0; + padding: 0; + } + } + + .form-select-solid .select2-search.select2-search--inline { + .select2-search__field { + color: var(--kt-input-solid-color); + font-family: inherit !important; + @include placeholder(var(--kt-input-solid-placeholder-color)); + } + } + + // Single mode + .select2-selection--single { + display: flex; + align-items: center; + + // Selected + .select2-selection__rendered { + display: block; + padding-left: 0; + padding-right: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: var(--kt-input-color); + } + + // Placeholder + .select2-selection__placeholder { + color: $input-placeholder-color; + } + + // Form select solid + &.form-select-solid { + // Selected + .select2-selection__rendered { + color: var(--kt-input-solid-color); + } + + // Placeholder + .select2-selection__placeholder { + color: var(--kt-input-solid-placeholder-color); + } + } + + // Form select transparent + &.form-select-transparent { + // Selected + .select2-selection__rendered { + color: var(--kt-gray-800); + } + + // Placeholder + .select2-selection__placeholder { + color: var(--kt-gray-800); + } + } + + // Form select dark color + &.form-select-dark { + // Selected + .select2-selection__rendered { + color: var(--kt-gray-900); + } + } + } + + // Multiple mode + .select2-selection--multiple { + display: flex; + align-items: center; + + // Search + .select2-search.select2-search--inline { + display: inline-flex; + } + + // Selected + .select2-selection__rendered { + display: inline; + margin: 0; + padding: 0; + + .select2-selection__choice { + display: inline-flex; + align-items: center; + position: relative; + background-color: var(--kt-gray-300); + + .select2-selection__choice__remove { + @include svg-bg-icon(close, var(--kt-gray-700)); + display: block; + position: absolute; + transform: translateY(-50%); + opacity: 0.5; + border: 0; + transition: $transition-link; + top: 50%; + + span { + display: none; + } + + &:hover { + opacity: 1; + @include svg-bg-icon(close, var(--kt-primary)); + transition: $transition-link; + } + } + + .select2-selection__choice__display { + font-weight: $font-weight-semibold; + } + } + } + + // Choice + .select2-selection__choice { + .select2-selection__choice__remove { + height: $select2-tag-clear-size; + width: $select2-tag-clear-size; + } + } + + // Sizes + &.form-select-sm { + min-height: $input-height-sm; + padding-top: $select2-input-padding-y-sm; + padding-bottom: $select2-input-padding-y-sm; + + .select2-selection__choice { + border-radius: $btn-border-radius-sm; + padding: $select2-tag-padding-y-sm $select2-tag-padding-x-sm; + margin-right: $select2-tag-padding-x-sm; + margin-top: $select2-tag-padding-y-sm; + margin-bottom: $select2-tag-padding-y-sm; + + .select2-selection__choice__display { + margin-left: $select2-tag-padding-x-sm + $select2-tag-clear-size; + font-size: $input-btn-font-size-sm; + } + } + + .select2-search__field { + height: 14px; + } + } + + &:not(.form-select-sm):not(.form-select-lg) { + min-height: $input-height; + padding-top: $select2-input-padding-y; + padding-bottom: $select2-input-padding-y; + + .select2-selection__choice { + border-radius: $btn-border-radius; + padding: $select2-tag-padding-y $select2-tag-padding-x; + margin-right: $select2-tag-padding-x; + margin-top: $select2-tag-padding-y; + margin-bottom: $select2-tag-padding-y; + + .select2-selection__choice__display { + margin-left: $select2-tag-padding-x + $select2-tag-clear-size; + font-size: $input-btn-font-size; + } + } + + .select2-search__field { + height: 16px; + } + } + + &.form-select-lg { + min-height: $input-height-lg; + padding-top: $select2-input-padding-y-lg; + padding-bottom: $select2-input-padding-y-lg; + + .select2-selection__choice { + border-radius: $btn-border-radius-lg; + padding: $select2-tag-padding-y-lg $select2-tag-padding-x-lg; + margin-right: $select2-tag-padding-x-lg; + margin-top: $select2-tag-padding-y-lg; + margin-bottom: $select2-tag-padding-y-lg; + + .select2-selection__choice__display { + margin-left: $select2-tag-padding-x-lg + $select2-tag-clear-size; + font-size: $input-btn-font-size-lg; + } + } + + .select2-search__field { + height: 18px; + } + } + } + + // Dropdown + .select2-dropdown { + border: 0; + box-shadow: var(--kt-dropdown-box-shadow); + border-radius: $dropdown-border-radius; + padding: $select2-dropdown-padding; + background-color: var(--kt-dropdown-bg); + + // In modal + .modal-open & { + z-index: $zindex-modal + 1; + } + + // Search + .select2-search { + padding: $select2-search-padding; + margin: $select2-search-margin; + + .select2-search__field { + background-color: var(--kt-body-bg); + padding: $input-padding-y-sm $input-padding-x-sm; + color: var(--kt-input-color); + font-size: $input-font-size-sm; + border: 1px solid var(--kt-input-border-color); + border-radius: $input-border-radius-sm; + outline: 0 !important; + + &:focus, + &:active { + border: 1px solid var(--kt-input-focus-border-color); + } + } + } + + // Options + .select2-results__options { + max-height: 250px; + overflow-y: auto; + } + + // Option + .select2-results__option { + color: var(--kt-gray-700); + transition: $transition-link; + padding: $select2-dropdown-option-padding; + margin: $select2-dropdown-option-margin; + + &.select2-results__option--highlighted { + background-color: var(--kt-component-hover-bg); + color: var(--kt-component-hover-color); + transition: $transition-link; + } + + &.select2-results__option--selected { + background-color: var(--kt-component-hover-bg); + color: var(--kt-component-hover-color); + transition: $transition-link; + position: relative; + + &:after { + top: 50%; + display: block; + position: absolute; + transform: translateY(-50%); + height: 0.75rem; + width: 0.75rem; + content: ""; + @include svg-bg-icon(check, var(--kt-component-hover-color)); + mask-position: center; + -webkit-mask-position: center; + right: $select2-dropdown-option-check-padding; + } + } + + &.select2-results__option--disabled { + color: var(--kt-gray-400); + } + + &.select2-results__message { + color: var(--kt-gray-600); + } + + &.select2-results__option--group { + padding-left: 0; + padding-right: 0; + + .select2-results__group { + display: block; + color: var(--kt-gray-800); + font-weight: $font-weight-semibold; + font-size: $h5-font-size; + padding: $select2-dropdown-group-padding; + margin: $select2-dropdown-group-margin; + } + + .select2-results__option { + padding: $select2-dropdown-option-padding; + margin: $select2-dropdown-option-margin; + } + } + } + } + + // Clear + .select2-selection__clear { + display: block; + height: $select2-clear-size; + width: $select2-clear-size; + top: 50%; + right: $select2-clear-right; + position: absolute; + transform: translateY(-50%); + background-color: var(--kt-gray-700) !important; + @include svg-bg-icon(close, var(--kt-gray-700)); + + span { + display: none; + } + + &:hover { + background-color: var(--kt-primary) !important; + @include svg-bg-icon(close, var(--kt-primary)); + } + } +} + +// Floating label integration +.form-floating { + .form-select { + padding-top: $form-floating-input-padding-t !important; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_sweetalert2.scss b/src/_metronic/assets/sass/core/vendors/plugins/_sweetalert2.scss new file mode 100644 index 0000000..4dbe6ab --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_sweetalert2.scss @@ -0,0 +1,112 @@ +// +// SweetAlert2 +// + +// Base +html.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown), +body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown):not(.modal-open) { + overflow-y: initial !important; + + &:not(.sweetalert2-nopadding) { + padding-right: 0 !important; + } +} + +// Popup +.swal2-popup { + background-color: var(--kt-body-bg); + padding: 2rem; + @include border-radius($border-radius); + + .swal2-title { + font-weight: 500; + font-size: 1.3rem; + color: var(--kt-dark); + } + + .swal2-html-container, + .swal2-content { + font-weight: normal; + font-size: 1.1rem; + margin-top: 1.5rem; + color: var(--kt-gray-800); + } + + .btn { + margin: 15px 5px 0; + } + + .swal2-styled { + &:focus { + box-shadow: none; + } + } + + .swal2-actions { + margin: 1.5rem auto 1rem auto; + } +} + +// Container +.swal2-container { + overflow-y: hidden !important; + + &.swal2-shown { + background-color: rgba($black, 0.2); + } + + // Content + .swal2-html-container { + max-height: 200px; + overflow: auto; + } +} + +body.swal2-height-auto { + height: 100% !important; +} + +// State Colors +.swal2-icon { + // Warning + &.swal2-warning { + border-color: var(--kt-warning); + color: var(--kt-warning); + } + + // Error + &.swal2-error { + border-color: var(--kt-danger); + color: var(--kt-danger); + + [class^=swal2-x-mark-line] { + background-color: rgba(var(--kt-danger-rgb), 0.75); + } + } + + // Success + &.swal2-success { + border-color: var(--kt-success); + color: var(--kt-success); + + [class^=swal2-success-line] { + background-color: var(--kt-success); + } + + .swal2-success-ring { + border-color: rgba(var(--kt-success-rgb), 0.3); + } + } + + // Info + &.swal2-info { + border-color: var(--kt-info); + color: var(--kt-info); + } + + // Question + &.swal2-question { + border-color: var(--kt-primary); + color: var(--kt-primary); + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_tagify.scss b/src/_metronic/assets/sass/core/vendors/plugins/_tagify.scss new file mode 100644 index 0000000..3be65c6 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_tagify.scss @@ -0,0 +1,221 @@ +// +// Tagify +// + +// Bootstrap .form-control sizing integration +$tagify-tag-padding-y-sm: 0.3rem; +$tagify-tag-padding-x-sm: 0.3rem; +$tagify-input-padding-y-sm: #{$input-padding-y-sm - $tagify-tag-padding-y-sm}; + +$tagify-tag-padding-y: 0.4rem; +$tagify-tag-padding-x: 0.4rem; +$tagify-input-padding-y: $input-padding-y - $tagify-tag-padding-y; + +$tagify-tag-padding-y-lg: 0.5rem; +$tagify-tag-padding-x-lg: 0.5rem; +$tagify-input-padding-y-lg: $input-padding-y-lg - $tagify-tag-padding-y-lg; + +// Base +.tagify { + --tagify-dd-bg-color : var(--kt-body-bg); + --tags-border-color : var(--kt-input-border-color); + --tags-hover-border-color : var(--kt-input-border-color); + --tags-focus-border-color : var(--kt-input-focus-border-color); + --tag-bg : var(--kt-gray-200); + --tag-hover : var(--kt-gray-200); + --tag-text-color : var(--kt-gray-700); + --tag-text-color--edit : var(--kt-gray-700); + --tag-pad : 0 0.5rem; + --tag-inset-shadow-size : 1rem; + --tag-invalid-color : var(--kt-danger); + --tag-invalid-bg : var(--kt-danger-light); + --tag-remove-bg : var(--kt-gray-200); + --tag-remove-btn-color : transparent; + --tag-remove-btn-bg : transparent; + --tag-remove-btn-bg--hover : transparent; + --input-color : var(--kt-gray-700); + --placeholder-color : var(--kt-gray-400); + --placeholder-color-focus : var(--kt-gray-500); + --loader-size : .8rem; + + .tagify__tag { + background-color: var(--tag-bg); + margin: 0; + line-height: 1; + + div { + border-radius: inherit; + } + + .tagify__tag-text { + overflow: visible; + } + + .tagify__tag__removeBtn { + width: 0.6rem; + height: 0.6rem; + margin: 0 0.5rem 0 0; + border-radius: 0; + content: " "; + @include svg-bg-icon(close, var(--kt-gray-500)); + + &:after { + display: none; + } + + &:hover { + @include svg-bg-icon(close, var(--kt-primary)); + } + } + + // Not allowed state + &.tagify--notAllowed { + div { + .tagify__tag-text { + color: var(--kt-danger); + opacity: .5; + } + } + + .tagify__tag__removeBtn { + opacity: .5; + @include svg-bg-icon(close, var(--kt-danger)); + + &:hover { + background: transparent; + opacity: .75; + } + } + } + } + + .tagify__input { + margin: 0; + + &:before { + font-size: inherit; + line-height: inherit; + font-weight: inherit; + } + } + + // Sizing + &.form-control { + display: flex; + align-items: center; + gap: 0.25rem; + } + + &.form-control-sm { + border-radius: $btn-border-radius-sm; + min-height: $input-height-sm; + padding-top: $tagify-input-padding-y-sm; + padding-bottom: $tagify-input-padding-y-sm; + + .tagify__tag { + padding: $tagify-tag-padding-y-sm $tagify-tag-padding-x-sm; + border-radius: $btn-border-radius-sm; + + .tagify__tag-text { + font-size: $input-btn-font-size-sm; + } + } + } + + &:not(.form-control-sm):not(.form-control-lg) { + border-radius: $btn-border-radius; + min-height: $input-height; + padding-top: $tagify-input-padding-y; + padding-bottom: $tagify-input-padding-y; + + .tagify__tag { + padding: $tagify-tag-padding-y $tagify-tag-padding-x; + border-radius: $btn-border-radius; + + .tagify__tag-text { + font-size: $input-btn-font-size; + } + } + } + + &.form-control-lg { + border-radius: $btn-border-radius-lg; + min-height: $input-height-lg; + padding-top: $tagify-input-padding-y-lg; + padding-bottom: $tagify-input-padding-y-lg; + + .tagify__tag { + padding: $tagify-tag-padding-y-lg $tagify-tag-padding-x-lg; + border-radius: $btn-border-radius-lg; + + .tagify__tag-text { + font-size: $input-btn-font-size-lg; + } + } + } +} + +// Dropdown +.tagify__dropdown { + box-shadow: var(--kt-dropdown-box-shadow); + border: 0 !important; + outline: none !important; + padding: 0.75rem 0; + z-index: $zindex-dropdown; + background-color: var(--kt-body-bg); + @include border-radius($border-radius); + + // Wrapper + ._wrapper { + max-height: none; + @include border-radius($border-radius); + } + + // In modal + .modal-open & { + z-index: $zindex-modal + 1; + } + + .tagify__dropdown__wrapper { + background-color: var(--kt-body-bg); + border: 0 !important; + outline: none !important; + box-shadow: none; + } + + .tagify__dropdown__item { + color: var(--kt-gray-700); + border-radius: 0; + padding: 0.75rem 1.5rem; + margin: 0; + box-shadow: none; + font-weight: $font-weight-semibold; + + &:hover, + &.tagify__dropdown__item--active { + background-color: var(--kt-component-hover-bg); + color: var(--kt-component-hover-color); + } + } + + // Suggestions + &.tagify__inline__suggestions { + padding: $input-padding-y $input-padding-x; + + .tagify__dropdown__item { + display: inline-block; + font-size: $font-size-sm; + padding: 0.35rem 0.5rem; + margin: 0.25rem 0.5rem 0.25rem 0; + background-color: var(--kt-gray-200); + color: var(--kt-gray-700); + @include border-radius($border-radius); + + &:hover, + &.tagify__dropdown__item--active { + background-color: var(--kt-component-hover-bg); + color: var(--kt-component-hover-color); + } + } + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_tiny-slider.scss b/src/_metronic/assets/sass/core/vendors/plugins/_tiny-slider.scss new file mode 100644 index 0000000..c8a6872 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_tiny-slider.scss @@ -0,0 +1,109 @@ +// +// Slider +// + +// Base +.tns { + position: relative; + overflow: hidden; + + [data-tns="true"] { + display: none; + } + + .tns-item { + opacity: 0; + transition: all 0.3s ease; + } + + .tns-controls { + display: flex; + justify-content: center; + align-items: center; + + button { + outline: none; + border: 0; + margin: 0 0.25rem; + @include border-radius($btn-border-radius); + padding: 0.5rem 0.75rem; + background-color: var(--kt-primary); + color: var(--kt-primary-inverse); + + &:hover { + background-color: var(--kt-primary-active); + } + } + } + + .tns-nav { + display: flex; + justify-content: center; + align-items: center; + padding-top: 1.5rem; + padding-bottom: 1.5rem; + + button { + display: block; + outline: none; + width: 1.25rem; + height: 0.75rem; + background-color: var(--kt-gray-200); + margin: 0 0.25rem; + border: 0; + @include border-radius(0.35rem); + + &.tns-nav-active{ + background-color: var(--kt-primary); + } + } + } + + &.tns-initiazlied { + [data-tns="true"] { + display: flex; + } + + .tns-item { + opacity: 1; + transition: all 0.3s ease; + } + } + + // Default + &.tns-default { + position: relative; + + // Navs + [data-controls="prev"], + [data-controls="next"] { + position: absolute; + top: 50%; + transform: translateY(-50%); + } + + [data-controls="prev"] { + left: 0; + } + + [data-controls="next"] { + right: 0; + } + + .tns-outer { + margin: 0 4rem; + + // Tablet mode + @include media-breakpoint-down(md) { + margin: 0 2rem; + } + } + } +} + +// Utils +.tns-hide-disabled-nav { + [disabled] { + display: none !important; + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_tinymce.scss b/src/_metronic/assets/sass/core/vendors/plugins/_tinymce.scss new file mode 100644 index 0000000..bc9f624 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_tinymce.scss @@ -0,0 +1,13 @@ +// +// TinyMCE +// + + +// Base +.tox-target{ + display: none; +} + +.tox-tinymce{ + @include border-radius($border-radius !important); +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_toastr.scss b/src/_metronic/assets/sass/core/vendors/plugins/_toastr.scss new file mode 100644 index 0000000..62d9fc4 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_toastr.scss @@ -0,0 +1,87 @@ +// +// Toastr +// + +// Base +.toastr { + // this is for RTL + background-position: calc(100% - 1.5rem) center !important; + /*rtl:ignore*/ + background-position: 1.5rem center !important; + box-shadow: var(--kt-dropdown-box-shadow) !important; + border-radius: $dropdown-border-radius !important; + border: 0 !important; + background-color: var(--kt-gray-100); + color: var(--kt-gray-700); + padding: 1.25rem 1.25rem 1.25rem 4.5rem !important; + + .toastr-close-button { + outline: none !important; + font-size: 0; + width: 0.85rem; + height: 0.85rem; + } + + // Title + .toastr-title { + font-size: 1.15rem; + font-weight: $font-weight-semibold; + + & + .toastr-message { + margin-top: 0.25rem; + } + } + + // Message + .toastr-message { + font-size: 1rem; + font-weight: $font-weight-normal; + } + + // States + &.toastr-success { + background-color: var(--kt-success); + color: var(--kt-success-inverse); + + .toastr-close-button { + @include svg-bg-icon(close, var(--kt-success-inverse)); + } + } + + &.toastr-info { + background-color: var(--kt-info); + color: var(--kt-info-inverse); + + .toastr-close-button { + @include svg-bg-icon(close, var(--kt-info-inverse)); + } + } + + &.toastr-warning { + background-color: var(--kt-warning); + color: var(--kt-warning-inverse); + + .toastr-close-button { + @include svg-bg-icon(close, var(--kt-warning-inverse)); + } + } + + &.toastr-error { + background-color: var(--kt-danger); + color: var(--kt-danger-inverse); + + .toastr-close-button { + @include svg-bg-icon(close, var(--kt-danger-inverse)); + } + } +} + + +// Placements +.toastr-top-center { + top: 12px; +} + +.toastr-bottom-center { + bottom: 12px; +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_variables.scss b/src/_metronic/assets/sass/core/vendors/plugins/_variables.scss new file mode 100644 index 0000000..6918d84 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_variables.scss @@ -0,0 +1,35 @@ +// +// 3rd-party config +// + + +// Prismjs +$highlight-bg: #1e1e3f; +$highlight-bg-dark: #151521; + +$highlight-border: rgba($white, 0.1); +$highlight-border-dark: rgba($white, 0.1); + +$highlight-btn-bg: lighten($highlight-bg, 9%); +$highlight-btn-bg-dark: lighten($highlight-bg-dark, 9%); +$highlight-btn-bg-hover: lighten($highlight-bg, 9%); +$highlight-btn-bg-hover-dark: lighten($highlight-bg-dark, 9%); + +$highlight-btn-color: rgba($white, 0.75); +$highlight-btn-color-dark: rgba($white, 0.75); +$highlight-btn-color-hover: $primary; +$highlight-btn-color-hover-dark: $primary; + +$highlight-scrollbar-color: lighten($highlight-bg, 12%); +$highlight-scrollbar-color-dark: lighten($highlight-bg-dark, 12%); +$highlight-scrollbar-hover-color: lighten($highlight-bg, 15%); +$highlight-scrollbar-hover-color-dark: lighten($highlight-bg-dark, 15%); + +// Bootstrap Maxlength +$bootstrap-maxlength-z-index: 1040; + +// Daterangepicker +$daterangepicker-ranges-list-height: 260px; +$daterangepicker-ranges-list-width: 150px; + + diff --git a/src/_metronic/assets/sass/core/vendors/plugins/_vis-timeline.scss b/src/_metronic/assets/sass/core/vendors/plugins/_vis-timeline.scss new file mode 100644 index 0000000..1f8e01c --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/_vis-timeline.scss @@ -0,0 +1,131 @@ +// +// Vis Timeline +// + +// Variables +$vis-border-color: var(--kt-border-color); +$vis-border-dashed-color: var(--kt-border-dashed-color); + +// General +.vis-timeline { + border: 1px solid $vis-border-color !important; + + @if ($enable-rounded) { + border-radius: $border-radius !important; + } + + .vis-labelset { + .vis-label { + display: flex; + align-items: center; + padding-left: 1rem; + padding-right: 1rem; + border-bottom: none; + font-size: $h4-font-size; + font-weight: $font-weight-semibold; + color: var(--kt-gray-900); + } + } + + .vis-itemset { + } + + .vis-foreground { + .vis-group { + border-bottom: none; + } + } + + .vis-item { + position: absolute; + color: var(--kt-gray-700); + border-color: var(--kt-primary); + border-width: 1px; + background-color: var(--kt-gray-100); + + @if ($enable-rounded) { + border-radius: $border-radius !important; + } + + &.vis-selected { + background-color: var(--kt-warning-light); + color: var(--kt-gray-700); + border-color: var(--kt-warning); + } + + .vis-item-content { + padding: 0.75rem 1rem; + width: 100%; + transform: none !important; + } + } + + .vis-time-axis { + font-size: $font-size-sm; + text-transform: uppercase; + font-weight: $font-weight-semibold; + + .vis-text { + color: var(--kt-gray-400); + } + + .vis-grid.vis-minor { + border-left-color: $vis-border-dashed-color !important; + } + + .vis-grid.vis-vertical { + border-left-style: dashed !important; + } + } + + .vis-panel { + .vis-shadow { + box-shadow: none !important; + } + } + + .vis-panel { + &.vis-bottom, + &.vis-center, + &.vis-left, + &.vis-right, + &.vis-top { + border-color: $vis-border-color !important; + } + } + + .vis-current-time { + background-color: var(--kt-success); + } +} + +// Custom style +.vis-timeline-custom { + .vis-timeline { + border: 0 !important; + + .vis-label { + padding-left: 0 !important; + } + } + + .vis-panel { + &.vis-bottom, + &.vis-center, + &.vis-left, + &.vis-right, + &.vis-top { + border: 0 !important; + } + } + + .vis-item { + background-color: transparent; + border: 0 !important; + border-radius: 0 !important; + + .vis-item-content { + padding: 0 !important; + } + } +} diff --git a/src/_metronic/assets/sass/core/vendors/plugins/mixins/_nouislider.scss b/src/_metronic/assets/sass/core/vendors/plugins/mixins/_nouislider.scss new file mode 100644 index 0000000..455a2b2 --- /dev/null +++ b/src/_metronic/assets/sass/core/vendors/plugins/mixins/_nouislider.scss @@ -0,0 +1,13 @@ +// +// noUiSlider Mixins +// + +@mixin nouislider-size($height, $handle-width, $handle-height, $handle-pos-top) { + height: $height; + + .noUi-handle { + width: $handle-width; + height: $handle-height; + top: -#{$handle-pos-top}; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/layout/_content.scss b/src/_metronic/assets/sass/layout/_content.scss new file mode 100644 index 0000000..0aebeaa --- /dev/null +++ b/src/_metronic/assets/sass/layout/_content.scss @@ -0,0 +1,21 @@ +// +// Content +// + +// Desktop mode +@include media-breakpoint-up(lg) { + .app-content { + [data-kt-app-toolbar-enabled="true"]:not([data-kt-app-toolbar-fixed="true"]) & { + padding-top: 0; + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + .app-content { + [data-kt-app-toolbar-enabled="true"]:not([data-kt-app-toolbar-fixed-mobile="true"]) & { + padding-top: 0; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/layout/_layout.scss b/src/_metronic/assets/sass/layout/_layout.scss new file mode 100644 index 0000000..1ee48df --- /dev/null +++ b/src/_metronic/assets/sass/layout/_layout.scss @@ -0,0 +1,15 @@ +// +// Layout +// + +@import "root"; +@import "sidebar/sidebar"; +@import "sidebar/sidebar-minimize"; +@import "sidebar/sidebar-dark"; +@import "sidebar/sidebar-light"; +@import "header/header"; +@import "header/header-dark"; +@import "header/header-sidebar-light"; +@import "content"; +@import "toolbar"; +@import "page-title"; \ No newline at end of file diff --git a/src/_metronic/assets/sass/layout/_page-title.scss b/src/_metronic/assets/sass/layout/_page-title.scss new file mode 100644 index 0000000..f345706 --- /dev/null +++ b/src/_metronic/assets/sass/layout/_page-title.scss @@ -0,0 +1,14 @@ +// +// Page Title(used by Dark Header layout only) +// + +// Desktop mode +@include media-breakpoint-up(lg) { + [data-kt-app-layout="dark-header"] { + .app-header { + .page-heading { + color: $white !important; + } + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/layout/_root.scss b/src/_metronic/assets/sass/layout/_root.scss new file mode 100644 index 0000000..8eab1bd --- /dev/null +++ b/src/_metronic/assets/sass/layout/_root.scss @@ -0,0 +1,89 @@ +// +// Root +// + +// Light mode +@include theme-light() { + // Reboot + --kt-app-bg-color: #{$app-bg-color}; + --kt-app-blank-bg-color: #{$app-blank-bg-color}; + + // Header base + --kt-app-header-base-bg-color: #{$app-header-base-bg-color}; + --kt-app-header-base-bg-color-mobile: #{$app-header-base-bg-color-mobile}; + --kt-app-header-base-box-shadow: #{$app-header-base-box-shadow}; + --kt-app-header-base-box-shadow-mobile: #{$app-header-base-box-shadow-mobile}; + --kt-app-header-base-menu-link-bg-color-active: #{$app-header-base-menu-link-bg-color-active}; + + // Header light + --kt-app-header-light-separator-color: #{$app-header-light-separator-color}; + + // Sidebar base + --kt-app-sidebar-base-toggle-btn-box-shadow: #{$app-sidebar-base-toggle-btn-box-shadow}; + --kt-app-sidebar-base-toggle-btn-bg-color: #{$app-sidebar-base-toggle-btn-bg-color}; + + // Sidebar light + --kt-app-sidebar-light-bg-color: #{$app-sidebar-light-bg-color}; + --kt-app-sidebar-light-box-shadow: #{$app-sidebar-light-box-shadow}; + --kt-app-sidebar-light-separator-color: #{$app-sidebar-light-separator-color}; + --kt-app-sidebar-light-scrollbar-color: #{$app-sidebar-light-scrollbar-color}; + --kt-app-sidebar-light-scrollbar-color-hover: #{$app-sidebar-light-scrollbar-color-hover}; + --kt-app-sidebar-light-menu-heading-color: #{$app-sidebar-light-menu-heading-color}; + --kt-app-sidebar-light-menu-link-bg-color-active: #{$app-sidebar-light-menu-link-bg-color-active}; + --kt-app-sidebar-light-header-menu-link-bg-color-active: #{$app-sidebar-light-header-menu-link-bg-color-active}; + + // Toolbar base + --kt-app-toolbar-base-bg-color: #{$app-toolbar-base-bg-color}; + --kt-app-toolbar-base-bg-color-mobile: #{$app-toolbar-base-bg-color-mobile}; + --kt-app-toolbar-base-box-shadow: #{$app-toolbar-base-box-shadow}; + --kt-app-toolbar-base-box-shadow-mobile: #{$app-toolbar-base-box-shadow-mobile}; + --kt-app-toolbar-base-border-top: #{$app-toolbar-base-border-top}; + --kt-app-toolbar-base-border-top-mobile: #{$app-toolbar-base-border-top-mobile}; + + // Footer + --kt-app-footer-bg-color: #{$app-footer-bg-color}; + --kt-app-footer-bg-color-mobile: #{$app-footer-bg-color-mobile}; +} + +// Dark mode +@include theme-dark() { + // Reboot + --kt-app-bg-color: #{$app-bg-color-dark}; + --kt-app-blank-bg-color: #{$app-blank-bg-color-dark}; + + // Header base + --kt-app-header-base-bg-color: #{$app-header-base-bg-color-dark}; + --kt-app-header-base-bg-color-mobile: #{$app-header-base-bg-color-mobile-dark}; + --kt-app-header-base-box-shadow: #{$app-header-base-box-shadow-dark}; + --kt-app-header-base-box-shadow-mobile: #{$app-header-base-box-shadow-mobile-dark}; + --kt-app-header-base-menu-link-bg-color-active: #{$app-header-base-menu-link-bg-color-active-dark}; + + // Header light + --kt-app-header-light-separator-color: #{$app-header-light-separator-color-dark}; + + // Sidebar base + --kt-app-sidebar-base-toggle-btn-box-shadow: #{$app-sidebar-base-toggle-btn-box-shadow-dark}; + --kt-app-sidebar-base-toggle-btn-bg-color: #{$app-sidebar-base-toggle-btn-bg-color-dark}; + + // Sidebar light + --kt-app-sidebar-light-bg-color: #{$app-sidebar-light-bg-color-dark}; + --kt-app-sidebar-light-box-shadow: #{$app-sidebar-light-box-shadow-dark}; + --kt-app-sidebar-light-separator-color: #{$app-sidebar-light-separator-color-dark}; + --kt-app-sidebar-light-scrollbar-color: #{$app-sidebar-light-scrollbar-color-dark}; + --kt-app-sidebar-light-scrollbar-color-hover: #{$app-sidebar-light-scrollbar-color-hover-dark}; + --kt-app-sidebar-light-menu-heading-color: #{$app-sidebar-light-menu-heading-color-dark}; + --kt-app-sidebar-light-menu-link-bg-color-active: #{$app-sidebar-light-menu-link-bg-color-active-dark}; + --kt-app-sidebar-light-header-menu-link-bg-color-active: #{$app-sidebar-light-header-menu-link-bg-color-active-dark}; + + // Toolbar base + --kt-app-toolbar-base-bg-color: #{$app-toolbar-base-bg-color-dark}; + --kt-app-toolbar-base-bg-color-mobile: #{$app-toolbar-base-bg-color-mobile-dark}; + --kt-app-toolbar-base-box-shadow: #{$app-toolbar-base-box-shadow-dark}; + --kt-app-toolbar-base-box-shadow-mobile: #{$app-toolbar-base-box-shadow-mobile-dark}; + --kt-app-toolbar-base-border-top: #{$app-toolbar-base-border-top-dark}; + --kt-app-toolbar-base-border-top-mobile: #{$app-toolbar-base-border-top-mobile-dark}; + + // Footer + --kt-app-footer-bg-color: #{$app-footer-bg-color-dark}; + --kt-app-footer-bg-color-mobile: #{$app-footer-bg-color-mobile-dark}; +} diff --git a/src/_metronic/assets/sass/layout/_toolbar.scss b/src/_metronic/assets/sass/layout/_toolbar.scss new file mode 100644 index 0000000..6b6dd12 --- /dev/null +++ b/src/_metronic/assets/sass/layout/_toolbar.scss @@ -0,0 +1,38 @@ +// +// Toolbar +// + +// Form controls +:is([data-kt-app-layout="light-sidebar"], [data-kt-app-layout="light-header"], [data-kt-app-layout="dark-header"]) { + .app-toolbar { + .form-select.form-select { + background-color: var(--kt-body-bg) !important; + } + } +} + +// Desktop mode +@include media-breakpoint-up(lg) { + .app-toolbar { + body:not([data-kt-app-toolbar-fixed="true"]) & { + height: auto; + background-color: transparent; + border-top: 0; + border-bottom: 0; + box-shadow: none; + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + .app-toolbar { + body:not([data-kt-app-toolbar-fixed-mobile="true"]) & { + height: auto; + background-color: transparent; + border-top: 0; + border-bottom: 0; + box-shadow: none; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/layout/_variables.custom.scss b/src/_metronic/assets/sass/layout/_variables.custom.scss new file mode 100644 index 0000000..ab486ed --- /dev/null +++ b/src/_metronic/assets/sass/layout/_variables.custom.scss @@ -0,0 +1,111 @@ +// +// Variables +// + +// Reboot +$app-bg-color: #f5f8fa; +$app-bg-color-dark: #151521; +$app-blank-bg-color: $white; +$app-blank-bg-color-dark: $app-bg-color-dark; + +// Header base +$app-header-base-height: 70px; +$app-header-base-height-mobile: 60px; +$app-header-base-bg-color: $body-bg; +$app-header-base-bg-color-dark: #1e1e2d; +$app-header-base-bg-color-mobile: $app-header-base-bg-color; +$app-header-base-bg-color-mobile-dark: $app-header-base-bg-color-dark; +$app-header-base-box-shadow: 0px 10px 30px 0px rgba(82,63,105,0.05); +$app-header-base-box-shadow-dark: none; +$app-header-base-box-shadow-mobile: $app-header-base-box-shadow; +$app-header-base-box-shadow-mobile-dark: $app-header-base-box-shadow-dark; +$app-header-base-menu-link-bg-color-active: $menu-link-bg-color-active; +$app-header-base-menu-link-bg-color-active-dark: #2A2A3C; + +// Header light +$app-header-light-separator-color: #E4E6EF; +$app-header-light-separator-color-dark: $border-color-dark; + +// Header dark +$app-header-dark-bg-color: #1e1e2d; +$app-header-dark-separator-color: #282a3d; +$app-header-dark-scrollbar-color: #3b3b64; +$app-header-dark-scrollbar-color-hover: lighten($app-header-dark-scrollbar-color, 3%); + +// Sidebar base +$app-sidebar-base-width: 265px; +$app-sidebar-base-width-mobile: 250px; + +$app-sidebar-base-toggle-btn-box-shadow: 0px 0px 10px rgba(113, 121, 136, 0.1); +$app-sidebar-base-toggle-btn-box-shadow-dark: none; +$app-sidebar-base-toggle-btn-bg-color: $body-bg; +$app-sidebar-base-toggle-btn-bg-color-dark: $app-header-base-menu-link-bg-color-active-dark; + +// Sidebar minimize +$app-sidebar-minimize-width: 75px; + +// Sidebar light +$app-sidebar-light-bg-color: $body-bg; +$app-sidebar-light-bg-color-dark: #1e1e2d; + +$app-sidebar-light-box-shadow: 0 0 28px 0 rgba(82,63,105,.05); +$app-sidebar-light-box-shadow-dark: none; + +$app-sidebar-light-separator-color: $app-header-light-separator-color; +$app-sidebar-light-separator-color-dark: $app-header-light-separator-color-dark; + +$app-sidebar-light-scrollbar-color: $gray-200; +$app-sidebar-light-scrollbar-color-dark: $gray-200-dark; +$app-sidebar-light-scrollbar-color-hover: $gray-200; +$app-sidebar-light-scrollbar-color-hover-dark: $gray-200-dark; +$app-sidebar-light-menu-heading-color: #B5B5C3; +$app-sidebar-light-menu-heading-color-dark: $gray-500-dark; +$app-sidebar-light-menu-link-bg-color-active: #F4F6FA; +$app-sidebar-light-menu-link-bg-color-active-dark: #2A2A3C; +$app-sidebar-light-header-menu-link-bg-color-active: #EAEEF2; +$app-sidebar-light-header-menu-link-bg-color-active-dark: $gray-100-dark; + +// Sidebar dark +$app-sidebar-dark-bg-color: #1e1e2d; +$app-sidebar-dark-separator-color: #393945; +$app-sidebar-dark-scrollbar-color: $gray-300-dark; +$app-sidebar-dark-scrollbar-color-hover: $gray-300-dark; +$app-sidebar-dark-menu-heading-color: #646477; +$app-sidebar-dark-menu-link-bg-color-active: #2A2A3C; + +// Toolbar base +$app-toolbar-base-height: 55px; +$app-toolbar-base-bg-color:$body-bg; +$app-toolbar-base-bg-color-dark: darken(#1e1e2d, 2%); +$app-toolbar-base-bg-color-mobile: $app-toolbar-base-bg-color; +$app-toolbar-base-bg-color-mobile-dark: $app-toolbar-base-bg-color-dark; +$app-toolbar-base-box-shadow: 0px 10px 30px 0px rgba(82,63,105,0.05); +$app-toolbar-base-box-shadow-dark: none; +$app-toolbar-base-box-shadow-mobile: $app-toolbar-base-box-shadow; +$app-toolbar-base-box-shadow-mobile-dark: $app-toolbar-base-box-shadow-mobile; +$app-toolbar-base-border-top: 1px solid $border-color; +$app-toolbar-base-border-top-dark: 0; +$app-toolbar-base-border-top-mobile: $app-toolbar-base-border-top; +$app-toolbar-base-border-top-mobile-dark: $app-toolbar-base-border-top-mobile; + +// Footer +$app-footer-height: 60px; +$app-footer-height-mobile: auto; +$app-footer-bg-color: $body-bg; +$app-footer-bg-color-dark: #1e1e2d; +$app-footer-bg-color-mobile: $app-footer-bg-color; +$app-footer-bg-color-mobile-dark: $app-footer-bg-color-dark; + +// Scrolltop +$scrolltop-bottom: 43px; +$scrolltop-bottom-mobile: 23px; +$scrolltop-end: 7px; +$scrolltop-end-mobile: 5px; + +// Layout builder toggle(used for Demo purposes only) +$app-layout-builder-toggle-end: 50px; +$app-layout-builder-toggle-end-mobile: 40px; +$app-layout-builder-toggle-bottom: 40px; +$app-layout-builder-toggle-bottom-mobile: 20px; + + diff --git a/src/_metronic/assets/sass/layout/header/_header-dark.scss b/src/_metronic/assets/sass/layout/header/_header-dark.scss new file mode 100644 index 0000000..3fd8699 --- /dev/null +++ b/src/_metronic/assets/sass/layout/header/_header-dark.scss @@ -0,0 +1,80 @@ +// +// Dark Header(used by Dark Header layout only) +// + +[data-kt-app-layout="dark-header"] { + .app-header { + background-color: $app-header-dark-bg-color; + border-bottom: 0 !important; + + .btn-custom { + @include button-custom-variant( + $color:#B5B5C3, + $icon-color: #B5B5C3, + $border-color: null, + $bg-color: null, + $color-active: #B5B5C3, + $icon-color-active: var(--kt-primary), + $border-color-active: null, + $bg-color-active: rgba(63, 66, 84, 0.35) + ); + } + } + + // Desktop mode + @include media-breakpoint-up(lg) { + // General mode + .app-header-menu { + .menu { + // Menu root links + > .menu-item { + @include menu-link-default-state( + $title-color: #9D9DA6, + $icon-color:#C5C5D8, + $bullet-color:#787887, + $arrow-color: #787887, + $bg-color: null, + $all-links: false + ); + + @include menu-link-hover-state( + $title-color: var(--kt-primary-inverse), + $icon-color: var(--kt-primary-inverse), + $bullet-color: var(--kt-primary-inverse), + $arrow-color: var(--kt-primary-inverse), + $bg-color: $app-sidebar-dark-menu-link-bg-color-active, + $all-links: false + ); + + @include menu-link-show-state( + $title-color: var(--kt-primary-inverse), + $icon-color: var(--kt-primary-inverse), + $bullet-color: var(--kt-primary-inverse), + $arrow-color: var(--kt-primary-inverse), + $bg-color: null, + $all-links: false + ); + + @include menu-link-here-state( + $title-color: var(--kt-primary-inverse), + $icon-color: var(--kt-primary-inverse), + $bullet-color: var(--kt-primary-inverse), + $arrow-color: var(--kt-primary-inverse), + $bg-color: $app-sidebar-dark-menu-link-bg-color-active, + $all-links: false + ); + + @include menu-link-active-state( + $title-color: var(--kt-primary-inverse), + $icon-color: var(--kt-primary-inverse), + $bullet-color: var(--kt-primary-inverse), + $arrow-color: var(--kt-primary-inverse), + $bg-color: $app-sidebar-dark-menu-link-bg-color-active, + $all-links: false + ); + } + } + } + } +} + diff --git a/src/_metronic/assets/sass/layout/header/_header-sidebar-light.scss b/src/_metronic/assets/sass/layout/header/_header-sidebar-light.scss new file mode 100644 index 0000000..db38db8 --- /dev/null +++ b/src/_metronic/assets/sass/layout/header/_header-sidebar-light.scss @@ -0,0 +1,55 @@ +// +// Custom Header(used by Light Sidebar layout only) +// + +[data-kt-app-layout="light-sidebar"] { + // Desktop mode + @include media-breakpoint-up(lg) { + .app-header-menu { + .menu { + // Menu root item + > .menu-item { + @include menu-link-here-state( + $title-color: var(--kt-primary), + $icon-color: var(--kt-primary), + $bullet-color: var(--kt-primary), + $arrow-color: var(--kt-primary), + $bg-color: var(--kt-app-sidebar-light-header-menu-link-bg-color-active), + $all-links: false + ); + + @include menu-link-active-state( + $title-color: var(--kt-primary), + $icon-color: var(--kt-primary), + $bullet-color: var(--kt-primary), + $arrow-color: var(--kt-primary), + $bg-color: var(--kt-app-sidebar-light-header-menu-link-bg-color-active), + $all-links: false + ); + } + } + } + } +} + +// Desktop mode +@include media-breakpoint-up(lg) { + [data-kt-app-layout="light-sidebar"]:not([data-kt-app-header-fixed="true"]) { + .app-header { + background-color: transparent; + box-shadow: none; + border-bottom: 1px solid var(--kt-app-sidebar-light-separator-color); + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + [data-kt-app-layout="light-sidebar"]:not([data-kt-app-header-fixed-mobile="true"]) { + .app-header { + background-color: transparent; + box-shadow: none; + border-bottom: 1px solid var(--kt-app-sidebar-light-separator-color); + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/layout/header/_header.scss b/src/_metronic/assets/sass/layout/header/_header.scss new file mode 100644 index 0000000..693134d --- /dev/null +++ b/src/_metronic/assets/sass/layout/header/_header.scss @@ -0,0 +1,104 @@ +// +// Header +// + +// General mode +.app-header-menu { + .menu { + .menu-item { + @include menu-link-default-state( + $title-color: var(--kt-gray-700), + $icon-color: var(--kt-gray-500), + $bullet-color: var(--kt-gray-500), + $arrow-color: var(--kt-gray-500), + $bg-color: null, + ); + + @include menu-link-hover-state( + $title-color: var(--kt-primary), + $icon-color: var(--kt-primary), + $bullet-color: var(--kt-primary), + $arrow-color: var(--kt-primary), + $bg-color: var(--kt-menu-link-bg-color-active) + ); + + @include menu-link-show-state( + $title-color: var(--kt-primary), + $icon-color: var(--kt-primary), + $bullet-color: var(--kt-primary), + $arrow-color: var(--kt-primary), + $bg-color: null, + ); + + @include menu-link-here-state( + $title-color: var(--kt-primary), + $icon-color: var(--kt-primary), + $bullet-color: var(--kt-primary), + $arrow-color: var(--kt-primary), + $bg-color: var(--kt-menu-link-bg-color-active) + ); + + @include menu-link-active-state( + $title-color: var(--kt-primary), + $icon-color: var(--kt-primary), + $bullet-color: var(--kt-primary), + $arrow-color: var(--kt-primary), + $bg-color: var(--kt-menu-link-bg-color-active) + ); + } + } + + .menu-extended { + --kt-menu-link-bg-color-active: rgba(var(--kt-gray-100-rgb), 0.7); + --kt-menu-link-bg-color-hover: rgba(var(--kt-gray-100-rgb), 0.7); + + + .menu-custom-icon { + background-color: var(--kt-gray-100); + } + + .menu-link { + &.active, + &:hover { + .menu-custom-icon { + background-color: var(--kt-gray-200); + } + } + } + } +} + +// Desktop mode +@include media-breakpoint-up(lg) { + .app-header-menu { + .menu { + // Menu root item + > .menu-item { + margin-right: 0.5rem; + + > .menu-link { + padding-top: 0.775rem; + padding-bottom: 0.775rem; + font-weight: $font-weight-semibold; + } + + @include menu-link-here-state( + $title-color: var(--kt-primary), + $icon-color: var(--kt-primary), + $bullet-color: var(--kt-primary), + $arrow-color: var(--kt-primary), + $bg-color: var(--kt-app-header-base-menu-link-bg-color-active) + ); + } + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + .app-header { + .page-title { + display: none !important; + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/layout/sidebar/_sidebar-dark.scss b/src/_metronic/assets/sass/layout/sidebar/_sidebar-dark.scss new file mode 100644 index 0000000..360a232 --- /dev/null +++ b/src/_metronic/assets/sass/layout/sidebar/_sidebar-dark.scss @@ -0,0 +1,79 @@ +// +// Dark Sidebar(used by Dark Sidebar layout only) +// + +[data-kt-app-layout="dark-sidebar"] { + .app-sidebar { + background-color: $app-sidebar-dark-bg-color; + border-right: 0 !important; + + .hover-scroll-overlay-y { + @include scrollbar-color($app-sidebar-dark-scrollbar-color, $app-sidebar-dark-scrollbar-color-hover); + } + + .app-sidebar-logo { + border-bottom: 1px dashed $app-sidebar-dark-separator-color; + } + + .btn-custom { + @include button-custom-variant( + $color:#B5B5C3, + $icon-color: #B5B5C3, + $border-color: null, + $bg-color: rgba(63, 66, 84, 0.35), + $color-active: #B5B5C3, + $icon-color-active: null, + $border-color-active: null, + $bg-color-active: rgba(63, 66, 84, 0.35) + ); + } + + .menu { + .menu-item { + .menu-heading { + color: $app-sidebar-dark-menu-heading-color !important; + } + + @include menu-link-default-state( + $title-color: #9D9DA6, + $icon-color:#C5C5D8, + $bullet-color:#787887, + $arrow-color: #787887, + $bg-color: null + ); + + @include menu-link-hover-state( + $title-color: var(--kt-primary-inverse), + $icon-color: var(--kt-primary-inverse), + $bullet-color: var(--kt-primary-inverse), + $arrow-color: var(--kt-primary-inverse), + $bg-color: null + ); + + @include menu-link-here-state( + $title-color: var(--kt-primary-inverse), + $icon-color: var(--kt-primary-inverse), + $bullet-color: var(--kt-primary-inverse), + $arrow-color: var(--kt-primary-inverse), + $bg-color: null + ); + + @include menu-link-show-state( + $title-color: var(--kt-primary-inverse), + $icon-color: var(--kt-primary-inverse), + $bullet-color: var(--kt-primary-inverse), + $arrow-color: var(--kt-primary-inverse), + $bg-color: null + ); + + @include menu-link-active-state( + $title-color: var(--kt-primary-inverse), + $icon-color: var(--kt-primary-inverse), + $bullet-color: var(--kt-primary-inverse), + $arrow-color: var(--kt-primary-inverse), + $bg-color: $app-sidebar-dark-menu-link-bg-color-active + ); + } + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/layout/sidebar/_sidebar-light.scss b/src/_metronic/assets/sass/layout/sidebar/_sidebar-light.scss new file mode 100644 index 0000000..ab0bd0e --- /dev/null +++ b/src/_metronic/assets/sass/layout/sidebar/_sidebar-light.scss @@ -0,0 +1,76 @@ +// +// Light Sidebar(used by Light Sidebar layout only) +// + +[data-kt-app-layout="light-sidebar"] { + .app-sidebar { + background-color: var(--kt-app-sidebar-light-bg-color); + border-right: 0 !important; + + .hover-scroll-overlay-y { + @include scrollbar-color(var(--kt-app-sidebar-light-scrollbar-color), var(--kt-app-sidebar-light-scrollbar-color-hover)); + } + + .app-sidebar-logo { + border-bottom: 1px solid var(--kt-app-sidebar-light-separator-color); + } + + .menu { + font-weight: $font-weight-semibold; + + .menu-item { + .menu-heading { + color: var(--kt-app-sidebar-light-menu-heading-color) !important; + } + + @include menu-link-default-state( + $title-color: var(--kt-gray-700), + $icon-color: var(--kt-gray-500), + $bullet-color: var(--kt-gray-500), + $arrow-color: var(--kt-gray-500), + $bg-color: null + ); + + @include menu-link-hover-state( + $title-color: var(--kt-gray-900), + $icon-color: var(--kt-gray-700), + $bullet-color: var(--kt-gray-700), + $arrow-color: var(--kt-gray-700), + $bg-color: null + ); + + @include menu-link-show-state( + $title-color: var(--kt-gray-900), + $icon-color: var(--kt-gray-700), + $bullet-color: var(--kt-gray-700), + $arrow-color: var(--kt-gray-700), + $bg-color: null + ); + + @include menu-link-here-state( + $title-color: var(--kt-gray-900), + $icon-color: var(--kt-gray-700), + $bullet-color: var(--kt-gray-700), + $arrow-color: var(--kt-gray-700), + $bg-color: null + ); + + @include menu-link-active-state( + $title-color: var(--kt-primary), + $icon-color: var(--kt-primary), + $bullet-color: var(--kt-primary), + $arrow-color: var(--kt-primary), + $bg-color: var(--kt-app-sidebar-light-menu-link-bg-color-active) + ); + } + } + } +} + +[data-kt-app-layout="light-sidebar"][data-kt-app-header-fixed="true"] { + .app-sidebar { + .app-sidebar-logo { + border-bottom: 1px dashed var(--kt-app-sidebar-light-separator-color); + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/layout/sidebar/_sidebar-minimize.scss b/src/_metronic/assets/sass/layout/sidebar/_sidebar-minimize.scss new file mode 100644 index 0000000..99d3481 --- /dev/null +++ b/src/_metronic/assets/sass/layout/sidebar/_sidebar-minimize.scss @@ -0,0 +1,64 @@ +// +// Sidebar Minimize +// + +.app-sidebar-logo-minimize { + display: none; +} + +// Sidebar footer +.app-sidebar-footer { + .btn-custom { + .btn-icon { + display: none; + } + } +} + +// Desktop sidebar minimize mode +@include app-layout-minimize(app-sidebar) { + .app-sidebar-logo { + .app-sidebar-logo-default { + display: none; + } + + .app-sidebar-logo-minimize { + display: inline-block; + } + } + + .app-sidebar-wrapper { + width: var(--kt-app-sidebar-width-actual); + } + + .app-sidebar-menu { + .menu-content, + .menu-title { + opacity: 0; + @include app-layout-transition(opacity); + } + + .menu-item.show > .menu-sub { + height: 0; + overflow: hidden; + @include app-layout-transition(height); + } + } + + .app-sidebar-footer { + .btn-custom { + padding-left: 0 !important; + padding-right: 0 !important; + + .btn-label { + width: 0; + display: none; + } + + .btn-icon { + width: auto; + display: block; + } + } + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/layout/sidebar/_sidebar.scss b/src/_metronic/assets/sass/layout/sidebar/_sidebar.scss new file mode 100644 index 0000000..481890e --- /dev/null +++ b/src/_metronic/assets/sass/layout/sidebar/_sidebar.scss @@ -0,0 +1,51 @@ +// +// Sidebar +// + +// Desktop mode +@include media-breakpoint-up(lg) { + .app-sidebar-toggle { + box-shadow: var(--kt-app-sidebar-base-toggle-btn-box-shadow) !important; + background-color: var(--kt-app-sidebar-base-toggle-btn-bg-color) !important; + + .active .svg-icon { + transform: rotateZ(0deg) !important; + } + } + + [dir="rtl"] { + .app-sidebar-toggle { + .svg-icon { + transform: rotateZ(180deg); + } + + &.active .svg-icon { + transform: rotateZ(0deg) !important; + } + } + } + + .app-sidebar-logo { + height: var(--kt-app-header-height); + display: flex; + align-items: center; + justify-content: space-between; + position: relative; + flex-shrink: 0; + } + + .app-sidebar-menu { + .menu { + & > .menu-item { + margin-left: 0.115rem; + } + } + } +} + +// Tablet & mobile modes +@include media-breakpoint-down(lg) { + .app-sidebar-logo { + display: none; + } +} \ No newline at end of file diff --git a/src/_metronic/assets/sass/plugins.scss b/src/_metronic/assets/sass/plugins.scss new file mode 100644 index 0000000..e25c213 --- /dev/null +++ b/src/_metronic/assets/sass/plugins.scss @@ -0,0 +1,13 @@ +// +// Vendors customization +// + +//////////////////////////////////////////////////////////////// +///////////// DO NOT MODIFY BELOW INCLUDE ORDER //////////////// +//////////////////////////////////////////////////////////////// + +// Initialize +@import "init"; + +// Plugins +@import "./core/vendors/plugins/plugins"; diff --git a/src/_metronic/assets/sass/style.react.scss b/src/_metronic/assets/sass/style.react.scss new file mode 100644 index 0000000..67306fc --- /dev/null +++ b/src/_metronic/assets/sass/style.react.scss @@ -0,0 +1,7 @@ +// React vendors +@import '~socicon/css/socicon.css'; +@import '~@fortawesome/fontawesome-free/css/all.min.css'; +@import '~line-awesome/dist/line-awesome/css/line-awesome.css'; +@import '~prism-themes/themes/prism-shades-of-purple.css'; +@import '~bootstrap-icons/font/bootstrap-icons.css'; +@import '~animate.css/animate.css'; diff --git a/src/_metronic/assets/sass/style.scss b/src/_metronic/assets/sass/style.scss new file mode 100644 index 0000000..ae464dd --- /dev/null +++ b/src/_metronic/assets/sass/style.scss @@ -0,0 +1,14 @@ +// +// Theme style +// + +// Initialize +@import "init"; + +// Components +@import "./core/components/components"; +@import "components/components"; + +// Layout +@import "./core/layout/base/layout"; +@import "layout/layout"; \ No newline at end of file diff --git a/src/_metronic/assets/ts/_utils/DomHelpers.ts b/src/_metronic/assets/ts/_utils/DomHelpers.ts new file mode 100644 index 0000000..a98a203 --- /dev/null +++ b/src/_metronic/assets/ts/_utils/DomHelpers.ts @@ -0,0 +1,478 @@ +import {OffsetModel} from './models/OffsetModel' +import {ViewPortModel} from './models/ViewPortModel' +import {ElementStyleUtil} from './_ElementStyleUtil' +import {DataUtil} from './_DataUtil' +import {ElementAnimateUtil} from './ElementAnimateUtil' +import {getObjectPropertyValueByKey, toJSON} from './_TypesHelpers' + +function getCSS(el: HTMLElement, styleProp: string) { + const defaultView = (el.ownerDocument || document).defaultView + + if (!defaultView) { + return '' + } + + // sanitize property name to css notation + // (hyphen separated words eg. font-Size) + styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase() + + return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp) +} + +function getCSSVariableValue(variableName: string) { + let hex = getComputedStyle(document.documentElement).getPropertyValue(variableName) + if (hex && hex.length > 0) { + hex = hex.trim() + } + + return hex +} + +function getElementActualCss(el: HTMLElement, prop: any, cache: boolean) { + let css = '' + + if (!el.getAttribute('kt-hidden-' + prop) || cache === false) { + let value + + // the element is hidden so: + // making the el block so we can meassure its height but still be hidden + css = el.style.cssText + el.style.cssText = 'position: absolute; visibility: hidden; display: block;' + + if (prop === 'width') { + value = el.offsetWidth + } else if (prop === 'height') { + value = el.offsetHeight + } + + el.style.cssText = css + + // store it in cache + if (value !== undefined) { + el.setAttribute('kt-hidden-' + prop, value.toString()) + return parseFloat(value.toString()) + } + return 0 + } else { + // store it in cache + const attributeValue = el.getAttribute('kt-hidden-' + prop) + if (attributeValue || attributeValue === '0') { + return parseFloat(attributeValue) + } + } +} + +function getElementActualHeight(el: HTMLElement) { + return getElementActualCss(el, 'height', false) +} + +function getElementActualWidth(el: HTMLElement, cache?: boolean) { + return getElementActualCss(el, 'width', false) +} + +function getElementIndex(element: HTMLElement) { + if (element.parentNode) { + const c = element.parentNode.children + for (let i = 0; i < c.length; i++) { + if (c[i] === element) return i + } + } + return -1 +} + +// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches +function getElementMatches(element: HTMLElement, selector: string) { + const p = Element.prototype + const f = p.matches || p.webkitMatchesSelector + + if (element && element.tagName) { + return f.call(element, selector) + } else { + return false + } +} + +function getElementOffset(el: HTMLElement): OffsetModel { + // Return zeros for disconnected and hidden (display: none) elements (gh-2310) + // Support: IE <=11 only + // Running getBoundingClientRect on a + // disconnected node in IE throws an error + if (!el.getClientRects().length) { + return {top: 0, left: 0} + } + + // Get document-relative position by adding viewport scroll to viewport-relative gBCR + const rect = el.getBoundingClientRect() + const win = el.ownerDocument.defaultView + if (win) { + return { + top: rect.top + win.pageYOffset, + left: rect.left + win.pageXOffset, + } + } + + return rect +} + +function getElementParents(element: Element, selector: string) { + // Element.matches() polyfill + if (!Element.prototype.matches) { + Element.prototype.matches = function (s) { + const matches = (document || this.ownerDocument).querySelectorAll(s) + let i = matches.length + while (--i >= 0 && matches.item(i) !== this) {} + return i > -1 + } + } + + // Set up a parent array + const parents: Array = [] + + let el: Element | null = element + + // Push each parent element to the array + for (; el && el !== document.body; el = el.parentElement) { + if (selector) { + if (el.matches(selector)) { + parents.push(el) + } + continue + } + parents.push(el) + } + + // Return our parent array + return parents +} + +function getHighestZindex(el: HTMLElement) { + let bufferNode: Node | null = el as Node + let buffer = el + while (bufferNode && bufferNode !== document) { + // Ignore z-index if position is set to a value where z-index is ignored by the browser + // This makes behavior of this function consistent across browsers + // WebKit always returns auto if the element is positioned + const position = buffer.style.getPropertyValue('position') + if (position === 'absolute' || position === 'relative' || position === 'fixed') { + // IE returns 0 when zIndex is not specified + // other browsers return a string + // we ignore the case of nested elements with an explicit value of 0 + //
+ const value = parseInt(buffer.style.getPropertyValue('z-index')) + if (!isNaN(value) && value !== 0) { + return value + } + } + + bufferNode = bufferNode.parentNode + buffer = bufferNode as HTMLElement + } + return null +} + +function getScrollTop(): number { + return (document.scrollingElement || document.documentElement).scrollTop +} + +// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth +function getViewPort(): ViewPortModel { + return { + width: window.innerWidth, + height: window.innerHeight, + } +} + +function insertAfterElement(el: HTMLElement, referenceNode: HTMLElement) { + return referenceNode.parentNode?.insertBefore(el, referenceNode.nextSibling) +} + +function isElementHasClasses(element: HTMLElement, classesStr: string): boolean { + const classes = classesStr.split(' ') + for (let i = 0; i < classes.length; i++) { + if (!element.classList.contains(classes[i])) { + return false + } + } + + return true +} + +function isVisibleElement(element: HTMLElement): boolean { + return !(element.offsetWidth === 0 && element.offsetHeight === 0) +} + +// Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds +function throttle(timer: number | undefined, func: Function, delay?: number) { + // If setTimeout is already scheduled, no need to do anything + if (timer) { + return + } + + // Schedule a setTimeout after delay seconds + timer = window.setTimeout(function () { + func() + + // Once setTimeout function execution is finished, timerId = undefined so that in
+ // the next scroll event function execution can be scheduled by the setTimeout + timer = undefined + }, delay) +} + +function getElementChildren(element: HTMLElement, selector: string): Array | null { + if (!element || !element.childNodes) { + return null + } + + const result: Array = [] + for (let i = 0; i < element.childNodes.length; i++) { + const child = element.childNodes[i] + // child.nodeType == 1 => Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference + if (child.nodeType === 1 && getElementMatches(child as HTMLElement, selector)) { + result.push(child as HTMLElement) + } + } + + return result +} + +function getElementChild(element: HTMLElement, selector: string): HTMLElement | null { + const children = getElementChildren(element, selector) + return children ? children[0] : null +} + +function isMobileDevice(): boolean { + let test = getViewPort().width < +getBreakpoint('lg') ? true : false + + if (test === false) { + // For use within normal web clients + test = navigator.userAgent.match(/iPad/i) != null + } + + return test +} + +function slide(el: HTMLElement, dir: string, speed: number, callback: any) { + if ( + !el || + (dir === 'up' && isVisibleElement(el) === false) || + (dir === 'down' && isVisibleElement(el) === true) + ) { + return + } + + speed = speed ? speed : 600 + let calcHeight = getElementActualHeight(el) + let calcPaddingTop: number = 0 + let calcPaddingBottom: number = 0 + + if (ElementStyleUtil.get(el, 'padding-top') && DataUtil.get(el, 'slide-padding-top') !== true) { + DataUtil.set(el, 'slide-padding-top', ElementStyleUtil.get(el, 'padding-top')) + } + + if ( + ElementStyleUtil.get(el, 'padding-bottom') && + DataUtil.has(el, 'slide-padding-bottom') !== true + ) { + DataUtil.set(el, 'slide-padding-bottom', ElementStyleUtil.get(el, 'padding-bottom')) + } + + if (DataUtil.has(el, 'slide-padding-top')) { + const data = DataUtil.get(el, 'slide-padding-top') as string + calcPaddingTop = parseInt(data as string) + } + + if (DataUtil.has(el, 'slide-padding-bottom')) { + const data = DataUtil.get(el, 'slide-padding-bottom') as string + calcPaddingBottom = parseInt(data) + } + + if (dir === 'up') { + // up + el.style.cssText = 'display: block; overflow: hidden;' + + if (calcPaddingTop) { + ElementAnimateUtil.animate(0, calcPaddingTop, speed, function (value: number) { + el.style.paddingTop = calcPaddingTop - value + 'px' + }) + } + + if (calcPaddingBottom) { + ElementAnimateUtil.animate(0, calcPaddingBottom, speed, function (value: number) { + el.style.paddingBottom = calcPaddingBottom - value + 'px' + }) + } + + ElementAnimateUtil.animate( + 0, + calcHeight || 0, + speed, + function (value: number) { + el.style.height = (calcHeight || 0) - value + 'px' + }, + function () { + el.style.height = '' + el.style.display = 'none' + + if (typeof callback === 'function') { + callback() + } + } + ) + } else if (dir === 'down') { + // down + el.style.cssText = 'display: block; overflow: hidden;' + + if (calcPaddingTop) { + ElementAnimateUtil.animate( + 0, + calcPaddingTop, + speed, + function (value: number) { + // + el.style.paddingTop = value + 'px' + }, + function () { + el.style.paddingTop = '' + } + ) + } + + if (calcPaddingBottom) { + ElementAnimateUtil.animate( + 0, + calcPaddingBottom, + speed, + function (value: number) { + el.style.paddingBottom = value + 'px' + }, + function () { + el.style.paddingBottom = '' + } + ) + } + + ElementAnimateUtil.animate( + 0, + calcHeight || 0, + speed, + function (value: number) { + el.style.height = value + 'px' + }, + function () { + el.style.height = '' + el.style.display = '' + el.style.overflow = '' + + if (typeof callback === 'function') { + callback() + } + } + ) + } +} + +function slideUp(el: HTMLElement, speed: number, callback: any) { + slide(el, 'up', speed, callback) +} + +function slideDown(el: HTMLElement, speed: number, callback: any) { + slide(el, 'down', speed, callback) +} + +function getBreakpoint(breakpoint: string) { + let value: number | string = getCSSVariableValue('--kt-' + breakpoint) + if (value) { + value = parseInt(value.trim()) + } + + return value +} + +function getAttributeValueByBreakpoint(incomingAttr: string): string | JSON { + let value = toJSON(incomingAttr) + if (typeof value !== 'object') { + return incomingAttr + } + + const width = getViewPort().width + let resultKey + let resultBreakpoint = -1 + let breakpoint + + for (let key in value) { + if (key === 'default') { + breakpoint = 0 + } else { + breakpoint = getBreakpoint(key) ? +getBreakpoint(key) : parseInt(key) + } + + if (breakpoint <= width && breakpoint > resultBreakpoint) { + resultKey = key + resultBreakpoint = breakpoint + } + } + + return resultKey ? getObjectPropertyValueByKey(value, resultKey) : value +} + +function colorLighten(color: string, amount: number) { + const addLight = (_color: string, _amount: number) => { + const cc = parseInt(_color, 16) + _amount + const cNum = cc > 255 ? 255 : cc + const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}` + return c + } + + color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color + amount = parseInt(((255 * amount) / 100).toString()) + return (color = `#${addLight(color.substring(0, 2), amount)}${addLight( + color.substring(2, 4), + amount + )}${addLight(color.substring(4, 6), amount)}`) +} + +function colorDarken(color: string, amount: number) { + const subtractLight = (_color: string, _amount: number) => { + const cc = parseInt(color, 16) - amount + const cNum = cc < 0 ? 0 : cc + const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}` + return c + } + + color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color + amount = parseInt(((255 * amount) / 100).toString()) + + return (color = `#${subtractLight(color.substring(0, 2), amount)}${subtractLight( + color.substring(2, 4), + amount + )}${subtractLight(color.substring(4, 6), amount)}`) +} + +export { + getBreakpoint, + getCSS, + getCSSVariableValue, + getElementActualCss, + getElementActualHeight, + getElementActualWidth, + getElementIndex, + getElementMatches, + getElementOffset, + getElementParents, + getHighestZindex, + getScrollTop, + getViewPort, + insertAfterElement, + isElementHasClasses, + isVisibleElement, + throttle, + getElementChildren, + getElementChild, + isMobileDevice, + slide, + slideUp, + slideDown, + getAttributeValueByBreakpoint, + colorLighten, + colorDarken, +} diff --git a/src/_metronic/assets/ts/_utils/ElementAnimateUtil.ts b/src/_metronic/assets/ts/_utils/ElementAnimateUtil.ts new file mode 100644 index 0000000..20a2339 --- /dev/null +++ b/src/_metronic/assets/ts/_utils/ElementAnimateUtil.ts @@ -0,0 +1,111 @@ +import {DOMEventHandlerUtil} from './_DOMEventHandlerUtil' +import {ElementStyleUtil} from './_ElementStyleUtil' +import {getElementOffset} from './DomHelpers' + +export class ElementAnimateUtil { + public static animate( + from: number, + to: number, + duration: number, + update: Function, + complete?: Function + ) { + /** + * TinyAnimate.easings + * Adapted from jQuery Easing + */ + const easings = { + linear: function (t: number, b: number, c: number, d: number) { + return (c * t) / d + b + }, + } + + // Create mock done() function if necessary + if (!complete) { + complete = function () {} + } + + // Animation loop + // let canceled = false; + const change = to - from + + function loop(timestamp: number) { + var time = (timestamp || +new Date()) - start + + if (time >= 0) { + update(easings.linear(time, from, change, duration)) + } + if (time >= 0 && time >= duration) { + update(to) + if (complete) { + complete() + } + } else { + window.requestAnimationFrame(loop) + } + } + + update(from) + + // Start animation loop + const start = + window.performance && window.performance.now ? window.performance.now() : +new Date() + + window.requestAnimationFrame(loop) + } + + public static animateClass( + element: HTMLElement, + animationName: string, + callBack?: Function + ): void { + const animateClasses = animationName.split(' ') + animateClasses.forEach((cssClass) => element.classList.add(cssClass)) + DOMEventHandlerUtil.one(element, 'animationend', function () { + animateClasses.forEach((cssClass) => element.classList.remove(cssClass)) + }) + + if (callBack) { + DOMEventHandlerUtil.one(element, 'animationend', callBack) + } + } + + public static transitionEnd(element: HTMLElement, callBack: Function) { + DOMEventHandlerUtil.one(element, 'transitionend', callBack) + } + + public static animationEnd(element: HTMLElement, callBack: Function) { + DOMEventHandlerUtil.one(element, 'animationend', callBack) + } + + public static animationDelay(element: HTMLElement, value: string) { + ElementStyleUtil.set(element, 'animation-delay', value) + } + + public static animationDuration(element: HTMLElement, value: string) { + ElementStyleUtil.set(element, 'animation-duration', value) + } + + public static scrollTo(element: HTMLElement | null, offset: number, duration: number = 500) { + let targetPos = element ? getElementOffset(element).top : 0 + let scrollPos = + window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0 + + if (offset) { + scrollPos += offset + targetPos = targetPos - offset + } + + const from = scrollPos + const to = targetPos + + ElementAnimateUtil.animate(from, to, duration, function (value: number) { + document.documentElement.scrollTop = value + // document.body.parentNode.scrollTop = value; + document.body.scrollTop = value + }) //, easing, done + } + public static scrollTop(offset: number, duration: number) { + ElementAnimateUtil.scrollTo(null, offset, duration) + } +} diff --git a/src/_metronic/assets/ts/_utils/EventHandlerUtil.ts b/src/_metronic/assets/ts/_utils/EventHandlerUtil.ts new file mode 100644 index 0000000..878a793 --- /dev/null +++ b/src/_metronic/assets/ts/_utils/EventHandlerUtil.ts @@ -0,0 +1,144 @@ +import {DataUtil} from './_DataUtil' +import {getUniqueIdWithPrefix} from './_TypesHelpers' + +export interface EventMeta { + name: string + callback: Function + one: boolean + fired: boolean +} + +export class EventHandlerUtil { + static store: { + [name: string]: { + [handlerId: string]: EventMeta + } + } = {} + + private static setEventMetasByName( + name: string, + handlers: { + [handlerId: string]: EventMeta + } + ): void { + EventHandlerUtil.store[name] = handlers + } + + private static getEventMetaByName(name: string): + | { + [handlerId: string]: EventMeta + } + | undefined { + return EventHandlerUtil.store[name] + } + + private static setEventMetaByNameAndHandlerId( + name: string, + handlerId: string, + meta: EventMeta + ): void { + if (EventHandlerUtil.store[name]) { + EventHandlerUtil.store[name][handlerId] = meta + return + } + EventHandlerUtil.store[name] = {} + EventHandlerUtil.store[name][handlerId] = meta + } + + private static getEventMetaByHandlerId(name: string, handlerId: string): EventMeta | undefined { + const handlersIds = EventHandlerUtil.store[name] + if (!handlersIds) { + return + } + return handlersIds[handlerId] + } + + private static setFiredByNameAndHandlerId(name: string, handerId: string, fired: boolean): void { + const meta = EventHandlerUtil.getEventMetaByHandlerId(name, handerId) + if (!meta) { + return + } + + meta.fired = fired + EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handerId, meta) + } + + private static addEvent( + element: HTMLElement, + name: string, + callback: Function, + one: boolean = false + ): string { + const handlerId = getUniqueIdWithPrefix('event') + const data = DataUtil.get(element, name) + const handlersIds = data ? (data as string[]) : [] + handlersIds.push(handlerId) + + DataUtil.set(element, name, handlersIds) + + const meta: EventMeta = { + name: name, + callback: callback, + one: one, + fired: false, + } + + EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handlerId, meta) + return handlerId + } + + private static removeEvent(element: HTMLElement, name: string, handerId: string) { + DataUtil.removeOne(element, name, handerId) + const handlersIds = EventHandlerUtil.store[name] + if (handlersIds) { + return + } + + delete EventHandlerUtil.store[name][handerId] + } + + public static trigger(element: HTMLElement, name: string, target?: any, e?: Event): boolean { + let returnValue = true + if (!DataUtil.has(element, name)) { + return returnValue + } + + let eventValue + let handlerId + const data = DataUtil.get(element, name) + const handlersIds = data ? (data as string[]) : [] + for (let i = 0; i < handlersIds.length; i++) { + handlerId = handlersIds[i] + if (EventHandlerUtil.store[name] && EventHandlerUtil.store[name][handlerId]) { + const handler = EventHandlerUtil.store[name][handlerId] + if (handler.name === name) { + if (handler.one) { + if (handler.fired) { + EventHandlerUtil.store[name][handlerId].fired = true + eventValue = handler.callback.call(this, target) + } + } else { + eventValue = handler.callback.call(this, target) + } + + if (eventValue === false) { + returnValue = false + } + } + } + } + return returnValue + } + + public static on = function (element: HTMLElement, name: string, callBack: Function): void { + EventHandlerUtil.addEvent(element, name, callBack, false) + } + + public static one(element: HTMLElement, name: string, callBack: Function): void { + EventHandlerUtil.addEvent(element, name, callBack, true) + } + + public static off(element: HTMLElement, name: string, handerId: string): void { + EventHandlerUtil.removeEvent(element, name, handerId) + } +} diff --git a/src/_metronic/assets/ts/_utils/_DOMEventHandlerUtil.ts b/src/_metronic/assets/ts/_utils/_DOMEventHandlerUtil.ts new file mode 100644 index 0000000..568f812 --- /dev/null +++ b/src/_metronic/assets/ts/_utils/_DOMEventHandlerUtil.ts @@ -0,0 +1,60 @@ +import {getUniqueIdWithPrefix} from './_TypesHelpers' + +export class DOMEventHandlerUtil { + public static store = new Map() + + public static on( + element: HTMLElement, + selector: string, + eventName: string, + callBack: any + ): string { + const eventId = getUniqueIdWithPrefix('DOMEvent') + DOMEventHandlerUtil.store.set(eventId, (e: Event) => { + const targets = element.querySelectorAll(selector) + let target: HTMLElement | null = e.target as HTMLElement + while (target && target !== element) { + for (let i = 0; i < targets.length; i++) { + if (target === targets[i]) { + callBack.call(target, e) + } + } + + if (target.parentElement) { + target = target.parentElement + } else { + target = null + } + } + }) + element.addEventListener(eventName, DOMEventHandlerUtil.store.get(eventId)) + return eventId + } + + public static off(element: HTMLElement, eventName: string, eventId: string): void { + const funcFromStore = DOMEventHandlerUtil.store.get(eventId) + if (!funcFromStore) { + return + } + + element.removeEventListener(eventName, funcFromStore) + DOMEventHandlerUtil.store.delete(eventId) + } + + public static one(element: HTMLElement, eventName: string, callBack: Function): void { + element.addEventListener(eventName, function calee(e) { + // remove event + if (e.target && e.target.removeEventListener) { + e.target.removeEventListener(e.type, calee) + } + + if (element && e && e.currentTarget) { + // if (element && element.removeEventListener && e && e.currentTarget) { + e.currentTarget.removeEventListener(e.type, calee) + } + + // call hander + return callBack(e) + }) + } +} diff --git a/src/_metronic/assets/ts/_utils/_DataUtil.ts b/src/_metronic/assets/ts/_utils/_DataUtil.ts new file mode 100644 index 0000000..14e9cae --- /dev/null +++ b/src/_metronic/assets/ts/_utils/_DataUtil.ts @@ -0,0 +1,72 @@ +export class DataUtil { + static store: Map> = new Map() + + public static set(instance: HTMLElement | undefined, key: string, data: unknown): void { + if (!instance) { + return + } + + const instanceData = DataUtil.store.get(instance) + if (!instanceData) { + const newMap = new Map().set(key, data) + DataUtil.store.set(instance, newMap) + return + } + + instanceData.set(key, data) + } + + public static get(instance: HTMLElement, key: string): unknown | undefined { + const instanceData = DataUtil.store.get(instance) + if (!instanceData) { + return + } + + return instanceData.get(key) + } + + public static remove(instance: HTMLElement, key: string): void { + const instanceData = DataUtil.store.get(instance) + if (!instanceData) { + return + } + + instanceData.delete(key) + } + + public static removeOne(instance: HTMLElement, key: string, eventId: string) { + const instanceData = DataUtil.store.get(instance) + if (!instanceData) { + return + } + + const eventsIds = instanceData.get(key) + if (!eventsIds) { + return + } + + const updateEventsIds = (eventsIds as string[]).filter((f) => f !== eventId) + DataUtil.set(instance, key, updateEventsIds) + } + + public static has(instance: HTMLElement, key: string): boolean { + const instanceData = DataUtil.store.get(instance) + if (instanceData) { + return instanceData.has(key) + } + + return false + } + + public static getAllInstancesByKey(key: string) { + const result: any[] = [] + DataUtil.store.forEach((val) => { + val.forEach((v, k) => { + if (k === key) { + result.push(v) + } + }) + }) + return result + } +} diff --git a/src/_metronic/assets/ts/_utils/_ElementStyleUtil.ts b/src/_metronic/assets/ts/_utils/_ElementStyleUtil.ts new file mode 100644 index 0000000..b0ddda4 --- /dev/null +++ b/src/_metronic/assets/ts/_utils/_ElementStyleUtil.ts @@ -0,0 +1,17 @@ +export class ElementStyleUtil { + public static set(element: HTMLElement, property: string, value?: any, important?: boolean) { + if (important) { + element.style.setProperty(property, value, 'important') + } else { + element.style.setProperty(property, value) + } + } + + public static get(element: HTMLElement, attributeName: string) { + return element.style.getPropertyValue(attributeName) + } + + public static remove(element: HTMLElement, attibuteName: string) { + element.style.removeProperty(attibuteName) + } +} diff --git a/src/_metronic/assets/ts/_utils/_TypesHelpers.ts b/src/_metronic/assets/ts/_utils/_TypesHelpers.ts new file mode 100644 index 0000000..5c32269 --- /dev/null +++ b/src/_metronic/assets/ts/_utils/_TypesHelpers.ts @@ -0,0 +1,54 @@ +function getObjectPropertyValueByKey(obj: any, key: string): any | undefined { + const map = new Map(Object.entries(obj)) + if (obj.hasOwnProperty(key) && map) { + return map.get(key) + } +} + +/** + * Generates unique ID for give prefix. + * @param {string} prefix Prefix for generated ID + * @returns {boolean} + */ +function getUniqueIdWithPrefix(prefix: string | undefined): string { + const result = Math.floor(Math.random() * new Date().getTime()).toString() + if (!prefix) { + return result + } + + return `${prefix}${result}` +} + +/* eslint-disable no-useless-escape */ +function stringSnakeToCamel(str: string): string { + return str.replace(/(\-\w)/g, function (m) { + return m[1].toUpperCase() + }) +} + +function toJSON(value: string | JSON): JSON | undefined { + if (typeof value !== 'string') { + return value + } + + if (!value) { + return undefined + } + + // ("'" => "\""); + const result = value + .toString() + .split('') + .map((el) => (el !== "'" ? el : '"')) + .join('') + var jsonStr = result.replace(/(\w+:)|(\w+ :)/g, function (matched) { + return '"' + matched.substring(0, matched.length - 1) + '":' + }) + try { + return JSON.parse(jsonStr) + } catch { + return undefined + } +} + +export {getObjectPropertyValueByKey, getUniqueIdWithPrefix, stringSnakeToCamel, toJSON} diff --git a/src/_metronic/assets/ts/_utils/index.ts b/src/_metronic/assets/ts/_utils/index.ts new file mode 100644 index 0000000..02ad68f --- /dev/null +++ b/src/_metronic/assets/ts/_utils/index.ts @@ -0,0 +1,12 @@ +// Types +export * from './models/OffsetModel' +export * from './models/ViewPortModel' +// Helpers +export * from './DomHelpers' +export * from './_TypesHelpers' +// Basic +export * from './_DataUtil' +export * from './_DOMEventHandlerUtil' +export * from './_ElementStyleUtil' +export * from './ElementAnimateUtil' +export * from './EventHandlerUtil' diff --git a/src/_metronic/assets/ts/_utils/models/OffsetModel.ts b/src/_metronic/assets/ts/_utils/models/OffsetModel.ts new file mode 100644 index 0000000..bea6c4e --- /dev/null +++ b/src/_metronic/assets/ts/_utils/models/OffsetModel.ts @@ -0,0 +1,4 @@ +export interface OffsetModel { + top: number + left: number +} diff --git a/src/_metronic/assets/ts/_utils/models/ViewPortModel.ts b/src/_metronic/assets/ts/_utils/models/ViewPortModel.ts new file mode 100644 index 0000000..63ee145 --- /dev/null +++ b/src/_metronic/assets/ts/_utils/models/ViewPortModel.ts @@ -0,0 +1,4 @@ +export interface ViewPortModel { + width: number + height: number +} diff --git a/src/_metronic/assets/ts/components/MenuComponent.ts b/src/_metronic/assets/ts/components/MenuComponent.ts new file mode 100644 index 0000000..e27ac0b --- /dev/null +++ b/src/_metronic/assets/ts/components/MenuComponent.ts @@ -0,0 +1,1088 @@ +import {createPopper, VirtualElement} from '@popperjs/core' +import { + getElementChild, + getElementParents, + getAttributeValueByBreakpoint, + getUniqueIdWithPrefix, + DataUtil, + ElementStyleUtil, + EventHandlerUtil, + insertAfterElement, + slideUp, + slideDown, + DOMEventHandlerUtil, + throttle, + getHighestZindex, +} from '../_utils/index' + +export interface MenuOptions { + dropdown: { + hoverTimeout: number + zindex: number + } + accordion: { + slideSpeed: number + expand: boolean + } +} + +const defaultMenuOptions: MenuOptions = { + dropdown: { + hoverTimeout: 200, + zindex: 105, + }, + accordion: { + slideSpeed: 250, + expand: false, + }, +} + +type PopperPlacement = + | 'right' + | 'auto' + | 'auto-start' + | 'auto-end' + | 'top' + | 'bottom' + | 'left' + | 'top-start' + | 'top-end' + | 'bottom-start' + | 'bottom-end' + | 'right-start' + | 'right-end' + | 'left-start' + | 'left-end' + | undefined + +class MenuComponent { + element: HTMLElement + options: MenuOptions + instanceUid: string + triggerElement: HTMLElement | null = null + + constructor(_element: HTMLElement, options: MenuOptions) { + this.element = _element + this.options = Object.assign(defaultMenuOptions, options) + this.instanceUid = getUniqueIdWithPrefix('menu') + // this.element.setAttribute('data-kt-menu', 'true') + this._setTriggerElement() + this._update() + DataUtil.set(this.element, 'menu', this) + return this + } + + // Set external trigger element + private _setTriggerElement = () => { + const target = document.querySelector( + `[data-kt-menu-target="#${this.element.getAttribute('id')}"` + ) + + if (target) { + this.triggerElement = target as HTMLElement + } else if (this.element.closest('[data-kt-menu-trigger]')) { + this.triggerElement = this.element.closest('[data-kt-menu-trigger]') as HTMLElement + } else if ( + this.element.parentNode && + getElementChild(this.element.parentNode as HTMLElement, '[data-kt-menu-trigger]') + ) { + const child = getElementChild( + this.element.parentNode as HTMLElement, + '[data-kt-menu-trigger]' + ) + if (child) { + this.triggerElement = child + } + } + + if (this.triggerElement) { + DataUtil.set(this.triggerElement, 'menu', this) + } + } + + // Test if menu has external trigger element + private _isTriggerElement = (item: HTMLElement) => { + return this.triggerElement === item + } + + // Get item option(through html attributes) + private _getItemOption = (item: HTMLElement, name: string) => { + let value: string | JSON | null | boolean = null + if (item && item.hasAttribute('data-kt-menu-' + name)) { + const attr = item.getAttribute('data-kt-menu-' + name) || '' + value = getAttributeValueByBreakpoint(attr) + if (value !== null && String(value) === 'true') { + value = true + } else if (value !== null && String(value) === 'false') { + value = false + } + } + return value + } + + // Get item element + private _getItemElement = (_element: HTMLElement): HTMLElement | undefined => { + // Element is the external trigger element + if (this._isTriggerElement(_element)) { + return _element + } + + // Element has item toggler attribute + if (_element.hasAttribute('data-kt-menu-trigger')) { + return _element + } + + // Element has item DOM reference in it's data storage + const itemElement = DataUtil.get(_element, 'item') + if (itemElement) { + return itemElement as HTMLElement + } + + // Item is parent of element + const item = _element.closest('.menu-item[data-kt-menu-trigger]') + if (item) { + return item + } + + // Element's parent has item DOM reference in it's data storage + const sub = _element.closest('.menu-sub') + if (sub) { + const subItem = DataUtil.get(sub as HTMLElement, 'item') + if (subItem) { + return subItem as HTMLElement + } + } + } + + // Get item parent element + private _getItemParentElement = (item: HTMLElement) => { + const sub = item.closest('.menu-sub') + if (!sub) { + return null + } + + const subItem = DataUtil.get(sub, 'item') + if (subItem) { + return subItem as HTMLElement + } + + const parentItem = sub.closest('.menu-item[data-kt-menu-trigger]') + if (sub && parentItem) { + return parentItem + } + + return null + } + + // Get item parent elements + private _getItemParentElements = (item: HTMLElement) => { + const parents: Array = [] + let parent: HTMLElement | null + let i = 0 + let buffer: HTMLElement = item + + do { + parent = this._getItemParentElement(buffer) + if (parent) { + parents.push(parent) + buffer = parent as HTMLElement + } + + i++ + } while (parent !== null && i < 20) + + if (this.triggerElement) { + parents.unshift(this.triggerElement) + } + + return parents + } + + // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/) + private _getDropdownPopperConfig = (item: HTMLElement) => { + // Placement + const placementOption = this._getItemOption(item, 'placement') + let placement: PopperPlacement = 'right' + if (placementOption) { + placement = placementOption as PopperPlacement + } + + // Flip + // const flipValue = this._getItemOption(item, 'flip') + // const flip = flipValue ? flipValue.toString().split(',') : [] + + // Offset + const offsetValue = this._getItemOption(item, 'offset') + const offset = offsetValue ? offsetValue.toString().split(',') : [] + + // Strategy + const strategy: 'absolute' | 'fixed' | undefined = + this._getItemOption(item, 'overflow') === true ? 'absolute' : 'fixed' + + return { + placement: placement, + strategy: strategy, + modifiers: [ + { + name: 'offset', + options: { + offset: offset, + }, + }, + { + name: 'preventOverflow', + }, + { + name: 'flip', + options: { + // altBoundary: true, + // fallbackPlacements: flip, + flipVariations: false, + }, + }, + ], + } + } + + // Get item child element + private _getItemChildElement = (item: HTMLElement): HTMLElement | null => { + let selector = item + + const subItem = DataUtil.get(item, 'sub') + if (subItem) { + selector = subItem as HTMLElement + } + + if (selector) { + //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]'); + const element = selector.querySelector('.menu-item[data-kt-menu-trigger]') + if (element) { + return element + } + } + return null + } + + // Get item child elements + private _getItemChildElements = (item: HTMLElement) => { + const children: Array = [] + let child: HTMLElement | null + let i = 0 + let buffer = item + do { + child = this._getItemChildElement(buffer) + if (child) { + children.push(child) + buffer = child as HTMLElement + } + + i++ + } while (child !== null && i < 20) + + return children + } + + // Get item sub element + private _getItemSubElement = (item: HTMLElement): HTMLElement | null => { + if (!item) { + return null + } + + if (this._isTriggerElement(item)) { + return this.element + } + + if (item.classList.contains('menu-sub')) { + return item + } else if (DataUtil.has(item, 'sub')) { + const itemSub = DataUtil.get(item, 'sub') + return itemSub ? (itemSub as HTMLElement) : null + } else { + return getElementChild(item, '.menu-sub') + } + } + + private _getCss = (el: HTMLElement, styleProp: string) => { + const defaultView = (el.ownerDocument || document).defaultView + if (!defaultView) { + return '' + } + + // sanitize property name to css notation + // (hyphen separated words eg. font-Size) + styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase() + + return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp) + } + + // Get item sub type + private _getItemSubType = (element: HTMLElement) => { + const sub = this._getItemSubElement(element) + if (sub && parseInt(this._getCss(sub as HTMLElement, 'z-index')) > 0) { + return 'dropdown' + } else { + return 'accordion' + } + } + + // Test if item's sub is shown + private _isItemSubShown = (item: HTMLElement) => { + let sub = this._getItemSubElement(item) + if (sub) { + if (this._getItemSubType(item) === 'dropdown') { + const subHTMLElement = sub as HTMLElement + return ( + subHTMLElement.classList.contains('show') && + subHTMLElement.hasAttribute('data-popper-placement') + ) + } else { + return item.classList.contains('show') + } + } + + return false + } + + // Test if item dropdown is permanent + private _isItemDropdownPermanent = (item: HTMLElement) => { + return this._getItemOption(item, 'permanent') === true + } + + // Test if item's parent is shown + private _isItemParentShown = (item: HTMLElement) => { + return getElementParents(item, '.menu-item.show').length > 0 + } + + // Test of it is item sub element + private _isItemSubElement = (item: HTMLElement) => { + return item.classList.contains('menu-sub') + } + + // Test if item has sub + private _hasItemSub = (item: HTMLElement) => { + return item.classList.contains('menu-item') && item.hasAttribute('data-kt-menu-trigger') + } + + // Get link element + private _getItemLinkElement = (item: HTMLElement) => { + return getElementChild(item, '.menu-link') + } + + // Get toggle element + private _getItemToggleElement = (item: HTMLElement) => { + if (this.triggerElement) { + return this.triggerElement + } + + return this._getItemLinkElement(item) + } + + // Show item dropdown + private _showDropdown = (item: HTMLElement) => { + if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.show') === false) { + return + } + + // Hide all currently shown dropdowns except current one + MenuComponent.hideDropdowns(item) + + // const toggle = this._isTriggerElement(item) ? item : this._getItemLinkElement(item); + const sub = this._getItemSubElement(item) + const width = this._getItemOption(item, 'width') + const height = this._getItemOption(item, 'height') + + let zindex = this.options.dropdown.zindex + const parentZindex = getHighestZindex(item) // update + // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update + if (parentZindex !== null && parentZindex >= zindex) { + zindex = parentZindex + 1 + } + + if (zindex && sub) { + ElementStyleUtil.set(sub, 'z-index', zindex) + } + + if (width && sub) { + ElementStyleUtil.set(sub, 'width', width) + } + + if (height && sub) { + ElementStyleUtil.set(sub, 'height', height) + } + + this.initDropdownPopper(item, sub as HTMLElement) + + item.classList.add('show') + item.classList.add('menu-dropdown') + sub?.classList.add('show') + + // Append the sub the the root of the menu + if (this._getItemOption(item, 'overflow') === true) { + if (sub) { + document.body.appendChild(sub) + DataUtil.set(item, 'sub', sub) + DataUtil.set(sub, 'item', item) + DataUtil.set(sub, 'menu', this) + } + } else { + if (sub) { + DataUtil.set(sub, 'item', item) + } + } + + EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.shown') + } + + // Init dropdown popper(new) + private initDropdownPopper = (item: HTMLElement, sub: HTMLElement) => { + // Setup popper instance + let reference + const attach = this._getItemOption(item, 'attach') as string + + if (attach) { + if (attach === 'parent') { + reference = item.parentNode + } else { + reference = document.querySelector(attach) + } + } else { + reference = item + } + + if (reference) { + const popper = createPopper( + reference as Element | VirtualElement, + sub, + this._getDropdownPopperConfig(item) + ) + DataUtil.set(item, 'popper', popper) + } + } + + // Hide item dropdown + private _hideDropdown = (item: HTMLElement) => { + if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hide') === false) { + return + } + + const sub = this._getItemSubElement(item) + if (sub) { + ElementStyleUtil.set(sub, 'z-index', '') + ElementStyleUtil.set(sub, 'width', '') + ElementStyleUtil.set(sub, 'height', '') + } + + item.classList.remove('show') + item.classList.remove('menu-dropdown') + if (sub) { + sub.classList.remove('show') + } + + // Append the sub back to it's parent + if (this._getItemOption(item, 'overflow') === true) { + if (item.classList.contains('menu-item')) { + if (sub) { + item.appendChild(sub) + } + } else { + insertAfterElement(this.element, item) + } + + if (sub) { + DataUtil.remove(item, 'sub') + DataUtil.remove(sub, 'item') + DataUtil.remove(sub, 'menu') + } + } + + if (DataUtil.has(item, 'popper') === true) { + // @ts-ignore + DataUtil.get(item, 'popper').destroy() + DataUtil.remove(item, 'popper') + } + + // Destroy popper(new) + this.destroyDropdownPopper(item) + EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden') + } + + // Destroy dropdown popper(new) + private destroyDropdownPopper = (item: HTMLElement) => { + if (DataUtil.has(item, 'popper') === true) { + // @ts-ignore + DataUtil.get(item, 'popper').destroy() + DataUtil.remove(item, 'popper') + } + + EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden') + } + + private _showAccordion = (item: HTMLElement) => { + if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.show') === false) { + return + } + + if (this.options.accordion.expand === false) { + this._hideAccordions(item) + } + + if (DataUtil.has(item, 'popper') === true) { + this._hideDropdown(item) + } + + item.classList.add('hover') // updateWW + item.classList.add('showing') + + const subElement = this._getItemSubElement(item) + if (subElement) { + const sub = subElement as HTMLElement + slideDown(sub, this.options.accordion.slideSpeed, () => { + item.classList.remove('showing') + item.classList.add('show') + sub.classList.add('show') + EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.shown') + }) + } + } + + private _hideAccordion = (item: HTMLElement) => { + if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hide') === false) { + return + } + + const sub = this._getItemSubElement(item) + item.classList.add('hiding') + + if (sub) { + slideUp(sub, this.options.accordion.slideSpeed, () => { + item.classList.remove('hiding') + item.classList.remove('show') + sub.classList.remove('show') + item.classList.remove('hover') // update + EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hidden') + }) + } + } + + // Hide all shown accordions of item + private _hideAccordions = (item: HTMLElement) => { + const itemsToHide = this.element.querySelectorAll('.show[data-kt-menu-trigger]') + if (itemsToHide && itemsToHide.length > 0) { + for (var i = 0, len = itemsToHide.length; i < len; i++) { + const itemToHide = itemsToHide[i] as HTMLElement + + if ( + this._getItemSubType(itemToHide) === 'accordion' && + itemToHide !== item && + item.contains(itemToHide) === false && + itemToHide.contains(item) === false + ) { + this._hideAccordion(itemToHide) + } + } + } + } + + // Event Handlers + // Reset item state classes if item sub type changed + private _reset = (item: HTMLElement) => { + if (this._hasItemSub(item) === false) { + return + } + + const sub = this._getItemSubElement(item) + + // Reset sub state if sub type is changed during the window resize + if (DataUtil.has(item, 'type') && DataUtil.get(item, 'type') !== this._getItemSubType(item)) { + // updated + item.classList.remove('hover') + item.classList.remove('show') + item.classList.remove('show') + if (sub) { + sub.classList.remove('show') + } + } // updated + } + + // TODO: not done + private _destroy = () => {} + + // Update all item state classes if item sub type changed + private _update = () => { + const items = this.element.querySelectorAll('.menu-item[data-kt-menu-trigger]') + items.forEach((el) => this._reset(el as HTMLElement)) + } + + // Hide item sub + private _hide = (item: HTMLElement) => { + if (!item) { + return + } + + if (this._isItemSubShown(item) === false) { + return + } + + if (this._getItemSubType(item) === 'dropdown') { + this._hideDropdown(item) + } else if (this._getItemSubType(item) === 'accordion') { + this._hideAccordion(item) + } + } + + // Show item sub + private _show = (item: HTMLElement) => { + if (!item) { + return + } + + if (this._isItemSubShown(item) === true) { + return + } + + if (this._getItemSubType(item) === 'dropdown') { + this._showDropdown(item) // // show current dropdown + } else if (this._getItemSubType(item) === 'accordion') { + this._showAccordion(item) + } + + // Remember last submenu type + + DataUtil.set(item, 'type', this._getItemSubType(item)) // updated + } + + // Toggle item sub + private _toggle = (item: HTMLElement) => { + if (!item) { + return + } + + if (this._isItemSubShown(item) === true) { + this._hide(item) + } else { + this._show(item) + } + } + + // Mouseout handle + private _mouseout = (element: HTMLElement, e: MouseEvent) => { + const item = this._getItemElement(element) + if (!item) { + return + } + + if (this._getItemOption(item, 'trigger') !== 'hover') { + return + } + + const timeout = setTimeout(() => { + if (DataUtil.get(item, 'hover') === '1') { + this._hide(item) + } + }, this.options.dropdown.hoverTimeout) + + DataUtil.set(item, 'hover', '1') + DataUtil.set(item, 'timeout', timeout) + } + + // Mouseover handle + private _mouseover = (element: HTMLElement, e: MouseEvent) => { + const item = this._getItemElement(element) + if (!item) { + return + } + + if (this._getItemOption(item, 'trigger') !== 'hover') { + return + } + + if (DataUtil.get(item, 'hover') === '1') { + const timeout = DataUtil.get(item, 'timeout') + if (timeout) { + clearTimeout(timeout as number) + } + DataUtil.remove(item, 'hover') + DataUtil.remove(item, 'timeout') + } + + this._show(item) + } + + // Dismiss handler + private _dismiss = (element: HTMLElement, e: Event) => { + const item = this._getItemElement(element) + if (!item) { + return + } + const items = this._getItemChildElements(item) + //if ( item !== null && _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) { + const itemSubType = this._getItemSubType(item) + if (item !== null && itemSubType === 'dropdown') { + this._hide(item) // hide items dropdown + + // Hide all child elements as well + if (items.length > 0) { + for (let i = 0, len = items.length; i < len; i++) { + //if ( _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) { + if (items[i] !== null && this._getItemSubType(items[i] as HTMLElement) === 'dropdown') { + this._hide(items[i] as HTMLElement) + } + } + } + } + } + + // Link handler + private _link = (element: HTMLElement, e: Event) => { + if (EventHandlerUtil.trigger(this.element, 'kt.menu.link.click') === false) { + return + } + + // Dismiss all shown dropdowns + MenuComponent.hideDropdowns(undefined) + EventHandlerUtil.trigger(this.element, 'kt.menu.link.clicked') + } + + private _click = (element: HTMLElement, e: Event) => { + e.preventDefault() + const item = this._getItemElement(element) + if (item) { + if (this._getItemOption(item, 'trigger') !== 'click') { + return + } + + if (this._getItemOption(item, 'toggle') === false) { + this._show(item) + } else { + this._toggle(item) + } + } + } + + /////////////////////// + // ** Public API ** // + /////////////////////// + public click = (element: HTMLElement, e: Event) => { + return this._click(element, e) + } + + public link = (element: HTMLElement, e: Event) => { + return this._link(element, e) + } + + public dismiss = (element: HTMLElement, e: Event) => { + return this._dismiss(element, e) + } + + public mouseover = (element: HTMLElement, e: Event) => { + return this._mouseover(element, e as MouseEvent) + } + + public mouseout = (element: HTMLElement, e: Event) => { + return this._mouseout(element, e as MouseEvent) + } + + // General Methods + public getItemTriggerType = (item: HTMLElement) => { + return this._getItemOption(item, 'trigger') + } + + public getItemSubType = (element: HTMLElement) => { + return this._getItemSubType(element) + } + + public show = (item: HTMLElement) => { + return this._show(item) + } + + public hide = (item: HTMLElement) => { + return this._hide(item) + } + + public reset = (item: HTMLElement) => { + return this._reset(item) + } + + public update = () => { + return this._update() + } + + public getElement = () => { + return this.element + } + + public getItemLinkElement = (item: HTMLElement) => { + return this._getItemLinkElement(item) + } + + public getItemToggleElement = (item: HTMLElement) => { + return this._getItemToggleElement(item) + } + + public getItemSubElement = (item: HTMLElement) => { + return this._getItemSubElement(item) + } + + public getItemParentElements = (item: HTMLElement) => { + return this._getItemParentElements(item) + } + + public isItemSubShown = (item: HTMLElement) => { + return this._isItemSubShown(item) + } + + public isItemParentShown = (item: HTMLElement) => { + return this._isItemParentShown(item) + } + + public getTriggerElement = () => { + return this.triggerElement + } + + public isItemDropdownPermanent = (item: HTMLElement) => { + return this._isItemDropdownPermanent(item) + } + + // Accordion Mode Methods + public hideAccordions = (item: HTMLElement) => { + return this._hideAccordions(item) + } + + // Event API + public on = (name: string, handler: any) => { + return EventHandlerUtil.on(this.element, name, handler) + } + + public one = (name: string, handler: any) => { + return EventHandlerUtil.one(this.element, name, handler) + } + + public off = (name: string, handlerId: string) => { + return EventHandlerUtil.off(this.element, name, handlerId) + } + + // public static methods + // Get KTMenu instance by element + public static getInstance = (element: HTMLElement): MenuComponent | null => { + // Element has menu DOM reference in it's DATA storage + const elementMenu = DataUtil.get(element, 'menu') + if (elementMenu) { + return elementMenu as MenuComponent + } + + // Element has .menu parent + const menu = element.closest('.menu') + if (menu) { + const menuData = DataUtil.get(menu as HTMLElement, 'menu') + if (menuData) { + return menuData as MenuComponent + } + } + + // Element has a parent with DOM reference to .menu in it's DATA storage + if (element.classList.contains('menu-link')) { + const sub = element.closest('.menu-sub') + if (sub) { + const subMenu = DataUtil.get(sub as HTMLElement, 'menu') + if (subMenu) { + return subMenu as MenuComponent + } + } + } + + return null + } + + // Hide all dropdowns and skip one if provided + public static hideDropdowns = (skip: HTMLElement | undefined) => { + const items = document.querySelectorAll( + '.show.menu-dropdown[data-kt-menu-trigger]' + ) + + if (items && items.length > 0) { + for (let i = 0, len = items.length; i < len; i++) { + const item = items[i] + const menu = MenuComponent.getInstance(item as HTMLElement) + + if (menu && menu.getItemSubType(item) === 'dropdown') { + if (skip) { + if ( + // @ts-ignore + menu.getItemSubElement(item).contains(skip) === false && + item.contains(skip) === false && + item !== skip + ) { + menu.hide(item) + } + } else { + menu.hide(item) + } + } + } + } + } + + public static updateDropdowns = () => { + const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]') + if (items && items.length > 0) { + for (var i = 0, len = items.length; i < len; i++) { + var item = items[i] + + if (DataUtil.has(item as HTMLElement, 'popper')) { + // @ts-ignore + DataUtil.get(item as HTMLElement, 'popper').forceUpdate() + } + } + } + } + + // Global handlers + public static createInstances = (selector: string) => { + // Initialize menus + document.querySelectorAll(selector).forEach((el) => { + const menuItem = el as HTMLElement + let menuInstance = MenuComponent.getInstance(menuItem) + if (!menuInstance) { + menuInstance = new MenuComponent(el as HTMLElement, defaultMenuOptions) + } + }) + } + + public static initGlobalHandlers = () => { + // Dropdown handler + document.addEventListener('click', (e) => { + const menuItems = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]') + if (menuItems && menuItems.length > 0) { + for (let i = 0; i < menuItems.length; i++) { + const item = menuItems[i] as HTMLElement + const menuObj = MenuComponent.getInstance(item) as MenuComponent + if (menuObj && menuObj.getItemSubType(item) === 'dropdown') { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const menu = menuObj.getElement() + const sub = menuObj.getItemSubElement(item) as HTMLElement + if (item === e.target || item.contains(e.target as HTMLElement)) { + continue + } + + if (sub && (sub === e.target || sub.contains(e.target as HTMLElement))) { + continue + } + menuObj.hide(item) + } + } + } + }) + + // Sub toggle handler + DOMEventHandlerUtil.on( + document.body, + '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger="auto"])', + 'click', + function (this: HTMLElement, e: Event) { + const menu = MenuComponent.getInstance(this) as MenuComponent + if (menu) { + return menu.click(this, e) + } + } + ) + + // // Link handler + DOMEventHandlerUtil.on( + document.body, + '.menu-item:not([data-kt-menu-trigger]) > .menu-link', + 'click', + function (this: HTMLElement, e: Event) { + e.stopPropagation() + const menu = MenuComponent.getInstance(this) + if (menu && menu.link) { + return menu.link(this, e) + } + } + ) + + // Dismiss handler + DOMEventHandlerUtil.on( + document.body, + '[data-kt-menu-dismiss="true"]', + 'click', + function (this: HTMLElement, e: Event) { + const menu = MenuComponent.getInstance(this) as MenuComponent + if (menu) { + return menu.dismiss(this, e) + } + } + ) + + // Mouseover handler + DOMEventHandlerUtil.on( + document.body, + '[data-kt-menu-trigger], .menu-sub', + 'mouseover', + function (this: HTMLElement, e: Event) { + const menu = MenuComponent.getInstance(this) as MenuComponent + if (menu && menu.getItemSubType(this) === 'dropdown') { + return menu.mouseover(this, e) + } + } + ) + + // Mouseout handler + DOMEventHandlerUtil.on( + document.body, + '[data-kt-menu-trigger], .menu-sub', + 'mouseout', + function (this: HTMLElement, e: Event) { + const menu = MenuComponent.getInstance(this) as MenuComponent + if (menu && menu.getItemSubType(this) === 'dropdown') { + return menu.mouseout(this, e) + } + } + ) + + // Resize handler + window.addEventListener('resize', () => { + let timer + throttle( + timer, + () => { + // Locate and update Drawer instances on window resize + const elements = document.querySelectorAll('[data-kt-menu="true"]') + elements.forEach((el) => { + const menu = MenuComponent.getInstance(el as HTMLElement) + if (menu) { + menu.update() + } + }) + }, + 200 + ) + }) + } + + public static bootstrap = () => { + MenuComponent.initGlobalHandlers() + MenuComponent.createInstances('[data-kt-menu="true"]') + } + + public static reinitialization = () => { + MenuComponent.createInstances('[data-kt-menu="true"]') + } + + public static createInsance = ( + selector: string, + options: MenuOptions = defaultMenuOptions + ): MenuComponent | undefined => { + const element = document.body.querySelector(selector) + if (!element) { + return + } + const item = element as HTMLElement + let menu = MenuComponent.getInstance(item) + if (!menu) { + menu = new MenuComponent(item, options) + } + return menu + } +} + +export {MenuComponent, defaultMenuOptions} diff --git a/src/_metronic/assets/ts/components/SearchComponent.ts b/src/_metronic/assets/ts/components/SearchComponent.ts new file mode 100644 index 0000000..88a6609 --- /dev/null +++ b/src/_metronic/assets/ts/components/SearchComponent.ts @@ -0,0 +1,478 @@ +import { + EventHandlerUtil, + DataUtil, + getBreakpoint, + getAttributeValueByBreakpoint, + stringSnakeToCamel, + getObjectPropertyValueByKey, + getViewPort, + isVisibleElement, + throttle, +} from '../_utils/index' + +import {MenuComponent, defaultMenuOptions} from './MenuComponent' + +export interface ISearchOptions { + minLength: number // Miniam text lenght to query search + keypress: boolean // Enable search on keypress + enter: boolean // Enable search on enter key press + layout: 'menu' | 'inline' // Use 'menu' or 'inline' layout options to display search results + responsive?: number // Pass integer value or bootstrap compatible breakpoint key(sm,md,lg,xl,xxl) to enable reponsive form mode for device width below the breakpoint value + showOnFocus: boolean // Always show menu on input focus +} + +export interface ISearchQueries { + componentName: string + instanseQuery: string + attrQuery: string +} + +const defaultSearchOptions: ISearchOptions = { + minLength: 2, // Miniam text lenght to query search + keypress: true, // Enable search on keypress + enter: true, // Enable search on enter key press + layout: 'menu', // Use 'menu' or 'inline' layout options to display search results + showOnFocus: true, // Always show menu on input focus +} + +const defaultSearchQueires: ISearchQueries = { + componentName: 'search', + instanseQuery: '[data-kt-search]', + attrQuery: 'data-kt-search-', +} + +class SearchComponent { + element: HTMLElement + contentElement: HTMLElement + formElement: HTMLFormElement + inputElement: HTMLInputElement + spinnerElement: HTMLElement + clearElement: HTMLElement + toggleElement: HTMLElement + submitElement: HTMLElement + toolbarElement: HTMLElement + resultsElement: HTMLElement + suggestionElement: HTMLElement + emptyElement: HTMLElement + layout: any + + options: ISearchOptions + queries: ISearchQueries + + processing: boolean = false + menuObject: MenuComponent | undefined + + constructor(_element: HTMLElement, _options: ISearchOptions, _queries: ISearchQueries) { + // Variables + this.options = Object.assign(defaultSearchOptions, _options) + this.queries = _queries + + // Elements + this.element = _element + this.contentElement = this._getElement('content') as HTMLElement + this.formElement = this._getElement('form') as HTMLFormElement + this.inputElement = this._getElement('input') as HTMLInputElement + this.spinnerElement = this._getElement('spinner') as HTMLElement + this.clearElement = this._getElement('clear') as HTMLElement + this.toggleElement = this._getElement('toggle') as HTMLElement + this.submitElement = this._getElement('submit') as HTMLElement + this.toolbarElement = this._getElement('toolbar') as HTMLElement + + this.resultsElement = this._getElement('results') as HTMLElement + this.suggestionElement = this._getElement('suggestion') as HTMLElement + this.emptyElement = this._getElement('empty') as HTMLElement + + // Layout + this.layout = this.getOption('layout') + if (this.layout === 'menu') { + this.menuObject = new MenuComponent(this.contentElement, defaultMenuOptions) + } + + // Update + this.update() + + // Event Handlers + this.handlers() + + DataUtil.set(this.element, this.queries.componentName, this) + } + + private _getElement = (name: string) => { + return this.element.querySelector('[data-kt-search-element="' + name + '"]') + } + + // Get option + private getOption = (name: string) => { + const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`) + if (attr) { + let value = getAttributeValueByBreakpoint(attr) + + if (value !== null && String(value) === 'true') { + return true + } else if (value !== null && String(value) === 'false') { + return false + } + + return value + } else { + const optionName = stringSnakeToCamel(name) + + const option = getObjectPropertyValueByKey(this.options, optionName) + if (option) { + return getAttributeValueByBreakpoint(option) + } else { + return null + } + } + } + + // Check if responsive form mode is enabled + private getResponsiveFormMode = () => { + const responsive = this.getOption('responsive') as string + const width = getViewPort().width + + if (!responsive) { + return null + } + + const breakpoint = getBreakpoint(responsive) + let breakPointNum = -1 + if (!breakpoint) { + breakPointNum = parseInt(responsive) + } else { + breakPointNum = +breakpoint + } + + if (width < breakPointNum) { + return 'on' + } else { + return 'off' + } + } + + // Focus + private focus = () => { + this.element.classList.add('focus') + + if ( + this.getOption('show-on-focus') === true || + this.inputElement.value.length >= this.options.minLength + ) { + this.show() + } + } + + // Blur + private blur = () => { + this.element.classList.remove('focus') + } + + // Enter + private enter = (e: KeyboardEvent) => { + const key = e.charCode || e.keyCode || 0 + + if (key === 13) { + e.preventDefault() + + this.search() + } + } + + // Input + private input = () => { + if (this.getOption('min-length')) { + const minLength = parseInt(this.getOption('min-length') as string) + + if (this.inputElement.value.length >= minLength) { + this.search() + } else if (this.inputElement.value.length === 0) { + this.clear() + } + } + } + + private handlers(): void { + const context = this + + // Focus + this.inputElement.addEventListener('focus', this.focus) + + // Blur + this.inputElement.addEventListener('blur', this.blur) + + // Keypress + if (this.getOption('keypress') === true) { + this.inputElement.addEventListener('input', this.input) + } + + // Submit + if (this.submitElement) { + this.submitElement.addEventListener('click', this.search) + } + + // Enter + if (this.getOption('enter') === true) { + this.inputElement.addEventListener('keypress', this.enter) + } + + // Clear + if (this.clearElement) { + this.clearElement.addEventListener('click', this.clear) + } + + // Menu + if (this.menuObject) { + // Toggle menu + if (this.toggleElement) { + this.toggleElement.addEventListener('click', this.show) + + this.menuObject.on('kt.menu.dropdown.show', function () { + // @ts-ignore + if (isVisibleElement(context.toggleElement)) { + // @ts-ignore + context.toggleElement.classList.add('active') + // @ts-ignore + context.toggleElement.classList.add('show') + } + }) + + this.menuObject.on('kt.menu.dropdown.hide', function () { + // @ts-ignore + if (isVisibleElement(context.toggleElement)) { + // @ts-ignore + context.toggleElement.classList.remove('active') + // @ts-ignore + context.toggleElement.classList.remove('show') + } + }) + } + + this.menuObject.on('kt.menu.dropdown.shown', function () { + // @ts-ignore + context.inputElement.focus() + }) + } + + // Window resize handling + window.addEventListener('resize', () => { + let timer + + throttle( + timer, + () => { + this.update() + }, + 200 + ) + }) + } + + /////////////////////// + // ** Public API ** // + /////////////////////// + // Update + public update = () => { + // Handle responsive form + if (this.layout === 'menu') { + let responsiveFormMode = this.getResponsiveFormMode() + + if (responsiveFormMode === 'on' && !this.contentElement.contains(this.formElement)) { + this.contentElement.prepend(this.formElement) + this.formElement.classList.remove('d-none') + } else if (responsiveFormMode === 'off' && this.contentElement.contains(this.formElement)) { + this.element.prepend(this.formElement) + this.formElement.classList.add('d-none') + } + } + } + + // Show menu + public show = () => { + if (this.menuObject) { + this.update() + + this.menuObject.show(this.element) + } + } + + // Hide menu + public hide = () => { + if (this.menuObject) { + this.update() + + this.menuObject.hide(this.element) + } + } + + // Search + public search = () => { + if (!this.processing) { + // Show search spinner + if (this.spinnerElement) { + this.spinnerElement.classList.remove('d-none') + } + + // Hide search clear button + if (this.clearElement) { + this.clearElement.classList.add('d-none') + } + + // Hide search toolbar + if (this.toolbarElement) { + this.toolbarElement.classList.add('d-none') + } + + // Focus input + this.inputElement.focus() + + this.processing = true + EventHandlerUtil.trigger(this.element, 'kt.search.process', this) + } + } + + // Complete + public complete = () => { + if (this.spinnerElement) { + this.spinnerElement.classList.add('d-none') + } + + // Show search toolbar + if (this.clearElement) { + this.clearElement.classList.remove('d-none') + } + + if (this.inputElement.value.length === 0) { + this.clear() + } + + // Focus input + this.inputElement.focus() + + this.show() + + this.processing = false + } + + // Clear + public clear = () => { + if (EventHandlerUtil.trigger(this.element, 'kt.search.clear') === false) { + return + } + + // Clear and focus input + this.inputElement.value = '' + this.inputElement.focus() + + // Hide clear icon + if (this.clearElement) { + this.clearElement.classList.add('d-none') + } + + // Show search toolbar + if (this.toolbarElement) { + this.toolbarElement.classList.remove('d-none') + } + + // Hide menu + if (this.getOption('show-on-focus') === false) { + this.hide() + } + + EventHandlerUtil.trigger(this.element, 'kt.search.cleared') + } + + public isProcessing = () => { + return this.processing + } + + public getQuery = () => { + return this.inputElement.value + } + + public getMenu = () => { + return this.menuObject + } + + public getFormElement = () => { + return this.formElement + } + + public getInputElement(): HTMLInputElement { + return this.inputElement + } + + public getContentElement(): HTMLElement { + return this.contentElement + } + + public getElement(): HTMLElement { + return this.element + } + + // Event API + public on = (name: string, handler: Function) => { + return EventHandlerUtil.on(this.element, name, handler) + } + + public one = (name: string, handler: Function) => { + return EventHandlerUtil.one(this.element, name, handler) + } + + public off = (name: string, handlerId: string) => { + return EventHandlerUtil.off(this.element, name, handlerId) + } + + // Static methods + public static getInstance = ( + el: HTMLElement, + componentName: string = defaultSearchQueires.componentName + ) => { + const Search = DataUtil.get(el, componentName) + if (Search) { + return Search as SearchComponent + } + + return null + } + + public static createInstances = ( + selector: string = defaultSearchQueires.instanseQuery, + options: ISearchOptions = defaultSearchOptions, + queries: ISearchQueries = defaultSearchQueires + ) => { + const elements = document.body.querySelectorAll(selector) + elements.forEach((el) => { + const item = el as HTMLElement + let Search = SearchComponent.getInstance(item) + if (!Search) { + Search = new SearchComponent(item, options, queries) + } + }) + } + + public static createInsance = ( + selector: string = defaultSearchQueires.instanseQuery, + options: ISearchOptions = defaultSearchOptions, + queries: ISearchQueries = defaultSearchQueires + ): SearchComponent | undefined => { + const element = document.body.querySelector(selector) + if (!element) { + return + } + const item = element as HTMLElement + let Search = SearchComponent.getInstance(item) + if (!Search) { + Search = new SearchComponent(item, options, queries) + } + return Search + } + + public static bootstrap = (selector: string = defaultSearchQueires.instanseQuery) => { + SearchComponent.createInstances(selector) + } + + public static reinitialization = (selector: string = defaultSearchQueires.instanseQuery) => { + SearchComponent.createInstances(selector) + } +} +export {SearchComponent, defaultSearchOptions, defaultSearchQueires} diff --git a/src/_metronic/assets/ts/components/_CookieComponent.ts b/src/_metronic/assets/ts/components/_CookieComponent.ts new file mode 100644 index 0000000..67b3d44 --- /dev/null +++ b/src/_metronic/assets/ts/components/_CookieComponent.ts @@ -0,0 +1,60 @@ +/* eslint-disable no-useless-escape */ +// DOCS: https://javascript.info/cookie +export class CookieComponent { + /** + * Returns the cookie with the given name, or undefined if not found + * + * @param {string} name - cookie name + * @returns string | null + */ + public static get(name: string): string | undefined { + let matches = document.cookie.match( + new RegExp('(?:^|; )' + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + '=([^;]*)') + ) + return matches ? decodeURIComponent(matches[1]) : undefined + } + + /** + * Please note that a cookie value is encoded, + * so getCookie uses a built-in decodeURIComponent function to decode it. + * + * @param {string} name - cookie name + * @param {string | number | boolean} value - cookie value + * @param {any} cookieOptions - cookie options + * @returns void + */ + public static set(name: string, value: string | number | boolean, cookieOptions: any): void { + const options = { + path: '/', + // add other defaults here if necessary + ...cookieOptions, + } + + if (options.expires instanceof Date) { + options.expires = options.expires.toUTCString() + } + + let updatedCookie = encodeURIComponent(name) + '=' + encodeURIComponent(value) + + for (let optionKey in options) { + updatedCookie += '; ' + optionKey + let optionValue = options[optionKey] + if (optionValue !== true) { + updatedCookie += '=' + optionValue + } + } + + document.cookie = updatedCookie + } + + /** + * To delete a cookie, we can call it with a negative expiration date + * + * @param {string} name + */ + public static delete(name: string): void { + CookieComponent.set(name, '', { + 'max-age': -1, + }) + } +} diff --git a/src/_metronic/assets/ts/components/_DrawerComponent.ts b/src/_metronic/assets/ts/components/_DrawerComponent.ts new file mode 100644 index 0000000..6dbfd44 --- /dev/null +++ b/src/_metronic/assets/ts/components/_DrawerComponent.ts @@ -0,0 +1,385 @@ +import { + EventHandlerUtil, + getUniqueIdWithPrefix, + getObjectPropertyValueByKey, + stringSnakeToCamel, + getAttributeValueByBreakpoint, + throttle, + getCSS, + DOMEventHandlerUtil, + ElementStyleUtil, +} from '../_utils/index' + +export class DrawerStore { + static store: Map = new Map() + + public static set(instanceId: string, drawerComponentObj: DrawerComponent): void { + if (DrawerStore.has(instanceId)) { + return + } + + DrawerStore.store.set(instanceId, drawerComponentObj) + } + + public static get(instanceId: string): DrawerComponent | undefined { + if (!DrawerStore.has(instanceId)) { + return + } + return DrawerStore.store.get(instanceId) + } + + public static remove(instanceId: string): void { + if (!DrawerStore.has(instanceId)) { + return + } + + DrawerStore.store.delete(instanceId) + } + + public static has(instanceId: string): boolean { + return DrawerStore.store.has(instanceId) + } + + public static getAllInstances() { + return DrawerStore.store + } +} + +export interface DrawerOptions { + overlay: boolean + baseClass: string + overlayClass: string + direction: string +} + +const defaultDrawerOptions: DrawerOptions = { + overlay: true, + baseClass: 'drawer', + overlayClass: 'drawer-overlay', + direction: 'end', +} + +class DrawerComponent { + element: HTMLElement + overlayElement: HTMLElement | null = null + toggleElement: HTMLElement | null = null + options: DrawerOptions + instanceUid: string + name: string = '' + shown: boolean = false + lastWidth: number = 0 + closeElement: HTMLElement | null = null + + constructor(_element: HTMLElement, options: DrawerOptions) { + this.element = _element + this.options = Object.assign(defaultDrawerOptions, options) + this.instanceUid = getUniqueIdWithPrefix('drawer') + this.overlayElement = null + this.name = this.element.getAttribute('data-kt-drawer-name') || '' + this.shown = false + this.toggleElement = null + // Event Handlers + this._handlers() + // Update Instance + this._update() + // Bind Instance + DrawerStore.set(this.element.id, this) + } + + private _handlers = () => { + const togglers = this._getOption('toggle') as string + const closers = this._getOption('close') as string + + if (togglers !== null && togglers.length > 0) { + DOMEventHandlerUtil.on(document.body, togglers, 'click', (e: Event) => { + e.preventDefault() + this.toggleElement = document.getElementById(togglers) + this._toggle() + }) + } + + if (closers !== null && closers.length > 0) { + DOMEventHandlerUtil.on(document.body, closers, 'click', (e: Event) => { + e.preventDefault() + this.closeElement = document.getElementById(closers) + + this._hide() + }) + } + } + + private _update = () => { + const width = String(this._getOption('width')) + const direction = String(this._getOption('direction')) + + // Reset state + const hasBaseClass = this.element.classList.contains(`${this.options.baseClass}-on`) + const bodyCanvasAttr = String(document.body.getAttribute(`data-kt-drawer-${this.name}-`)) + + if (hasBaseClass === true && bodyCanvasAttr === 'on') { + this.shown = true + } else { + this.shown = false + } + + // Activate/deactivate + if (this._getOption('activate') === true) { + this.element.classList.add(this.options.baseClass) + this.element.classList.add(`${this.options.baseClass}-${direction}`) + ElementStyleUtil.set(this.element, 'width', width, true) + + this.lastWidth = parseInt(width) + } else { + ElementStyleUtil.set(this.element, 'width', '') + this.element.classList.remove(this.options.baseClass) + this.element.classList.remove(`${this.options.baseClass}-${direction}`) + this._hide() + } + } + + private _getOption = (name: string) => { + const attr = this.element.getAttribute(`data-kt-drawer-${name}`) + if (attr) { + let value = getAttributeValueByBreakpoint(attr) + if (value !== null && String(value) === 'true') { + return true + } else { + if (value !== null && String(value) === 'false') { + return false + } + } + + return value + } else { + const optionName = stringSnakeToCamel(name) + const option = getObjectPropertyValueByKey(this.options, optionName) + if (option) { + return getAttributeValueByBreakpoint(option) + } else { + return null + } + } + } + + private _toggle = () => { + if (EventHandlerUtil.trigger(this.element, 'kt.drawer.toggle') === false) { + return + } + + if (this.shown) { + this._hide() + } else { + this._show() + } + + EventHandlerUtil.trigger(this.element, 'kt.drawer.toggled') + } + + private _hide = () => { + if (EventHandlerUtil.trigger(this.element, 'kt.drawer.hide') === false) { + return + } + + this.shown = false + this._deleteOverlay() + document.body.removeAttribute(`data-kt-drawer-${this.name}`) + document.body.removeAttribute(`data-kt-drawer`) + this.element.classList.remove(`${this.options.baseClass}-on`) + if (this.toggleElement != null) { + this.toggleElement.classList.remove('active') + } + + EventHandlerUtil.trigger(this.element, 'kt.drawer.after.hidden') + } + + private _show = () => { + if (EventHandlerUtil.trigger(this.element, 'kt.drawer.show') === false) { + return + } + + this.shown = true + this._createOverlay() + document.body.setAttribute(`data-kt-drawer-${this.name}`, 'on') + document.body.setAttribute('data-kt-drawer', 'on') + this.element.classList.add(`${this.options.baseClass}-on`) + if (this.toggleElement !== null) { + this.toggleElement.classList.add('active') + } + + EventHandlerUtil.trigger(this.element, 'kt.drawer.shown') + } + + private _createOverlay = () => { + if (this._getOption('overlay') === true) { + this.overlayElement = document.createElement('DIV') + const elementZIndex = getCSS(this.element, 'z-index') + if (elementZIndex) { + const overlayZindex = parseInt(elementZIndex) - 1 + ElementStyleUtil.set(this.overlayElement, 'z-index', overlayZindex) // update + } + document.body.append(this.overlayElement) + const overlayClassOption = this._getOption('overlay-class') + if (overlayClassOption) { + this.overlayElement.classList.add(overlayClassOption.toString()) + } + this.overlayElement.addEventListener('click', (e) => { + e.preventDefault() + this._hide() + }) + } + } + + private _deleteOverlay = () => { + if (this.overlayElement !== null && this.overlayElement.parentNode) { + this.overlayElement.parentNode.removeChild(this.overlayElement) + } + } + + private _getDirection = () => { + return String(this._getOption('direction')) === 'left' ? 'left' : 'right' + } + + private _getWidth = () => { + let width = this._getOption('width') + if (width && width === 'auto') { + width = getCSS(this.element, 'width') + } + + return width + } + + /////////////////////// + // ** Public API ** // + /////////////////////// + public toggle = () => { + this._toggle() + } + + public show = () => { + this._show() + } + + public hide = () => { + this._hide() + } + + public isShown = () => { + return this.shown + } + + public update = () => { + this._update() + } + + public goElement = () => { + return this.element + } + + // Event API + public on = (name: string, handler: Function) => { + return EventHandlerUtil.on(this.element, name, handler) + } + + public one = (name: string, handler: Function) => { + return EventHandlerUtil.one(this.element, name, handler) + } + + public off = (name: string, handerId: string) => { + return EventHandlerUtil.off(this.element, name, handerId) + } + + public trigger = (name: string, event: Event) => { + return EventHandlerUtil.trigger(this.element, name, event) + } + + // Static methods + public static hasInstace = (elementId: string): boolean => { + return DrawerStore.has(elementId) + } + + public static getInstance = (elementId: string) => { + return DrawerStore.get(elementId) + } + + public static hideAll = () => { + const oldInstances = DrawerStore.getAllInstances() + oldInstances.forEach((dr) => { + dr.hide() + }) + } + + public static updateAll = () => { + const oldInstances = DrawerStore.getAllInstances() + oldInstances.forEach((dr) => { + dr.update() + }) + } + + // Create Instances + public static createInstances(selector: string): void { + const elements = document.body.querySelectorAll(selector) + elements.forEach((element) => { + const item = element as HTMLElement + let drawer = DrawerComponent.getInstance(item.id) + if (!drawer) { + drawer = new DrawerComponent(item, defaultDrawerOptions) + } + drawer.element = item + drawer.hide() + }) + } + + // Dismiss instances + public static handleDismiss = () => { + // External drawer toggle handler + DOMEventHandlerUtil.on(document.body, '[data-kt-drawer-dismiss="true"]', 'click', () => { + /* @ts-ignore */ + const element = this.closest('[data-kt-drawer="true"]') + if (element) { + const drawer = DrawerComponent.getInstance(element) + if (drawer && drawer.isShown()) { + drawer.hide() + } + } + }) + } + + // Global Initialization + public static initGlobalHandlers(): void { + // Window Resize Handling + window.addEventListener('resize', function () { + let timer: number | undefined + throttle( + timer, + () => { + // Locate and update Drawer instances on window resize + const elements = document.body.querySelectorAll('[data-kt-drawer="true"]') + elements.forEach((el) => { + const item = el as HTMLElement + const instance = DrawerComponent.getInstance(item.id) + if (instance) { + instance.element = item + instance.update() + } + }) + }, + 200 + ) + }) + } + + public static bootstrap = () => { + DrawerComponent.createInstances('[data-kt-drawer="true"]') + DrawerComponent.initGlobalHandlers() + DrawerComponent.handleDismiss() + } + + public static reinitialization = () => { + DrawerComponent.createInstances('[data-kt-drawer="true"]') + DrawerComponent.hideAll() + DrawerComponent.updateAll() + DrawerComponent.handleDismiss() + } +} + +export {DrawerComponent, defaultDrawerOptions} diff --git a/src/_metronic/assets/ts/components/_FeedbackComponent.ts b/src/_metronic/assets/ts/components/_FeedbackComponent.ts new file mode 100644 index 0000000..c3ebb12 --- /dev/null +++ b/src/_metronic/assets/ts/components/_FeedbackComponent.ts @@ -0,0 +1,152 @@ +import { + DataUtil, + ElementStyleUtil, + EventHandlerUtil, + getUniqueIdWithPrefix, + getAttributeValueByBreakpoint, +} from '../_utils/index' + +export interface FeedbackOptions { + width?: number + placement?: string + content?: string + type?: string +} + +const defaultFeedbackOptions: FeedbackOptions = { + width: 100, + placement: 'top-center', + content: '', + type: 'popup', +} + +class FeedbackComponent { + element: HTMLElement + options: FeedbackOptions + instanceUid: string + shown: boolean + + constructor(_element: HTMLElement, options: FeedbackOptions) { + this.element = _element + this.options = Object.assign(defaultFeedbackOptions, options) + this.instanceUid = getUniqueIdWithPrefix('feedback') + this.shown = false + + // Event handlers + this._handlers() // will add in the show popup + DataUtil.set(this.element, 'feedback', this) + } + + private _handlers = () => { + this.element.addEventListener('click', (e: Event) => { + e.preventDefault() + this._go() + }) + } + + private _go = () => {} + + private showPopup = () => { + this.element = document.createElement('DIV') + + this.element.classList.add('feedback feedback-popup') + this.element.innerHTML = this.options.content || '' + + if (this.options.placement === 'top-center') { + this.setPopupTopCenterPosition() + } + + document.body.appendChild(this.element) + this.element.classList.add('feedback-shown') + this.shown = true + } + + private setPopupTopCenterPosition = () => { + const width = getAttributeValueByBreakpoint(this.options.width?.toString() || '0') + const height = ElementStyleUtil.get(this.element, 'height') + this.element.classList.add('feedback-top-center') + ElementStyleUtil.set(this.element, 'width', width) + ElementStyleUtil.set(this.element, 'left', '50%') + ElementStyleUtil.set(this.element, 'top', '-' + height) + } + + private hidePopup = () => { + this.element.remove() + } + + /////////////////////// + // ** Public API ** // + /////////////////////// + public show = () => { + if (EventHandlerUtil.trigger(this.element, 'kt.feedback.show') === false) { + return + } + + if (this.options.type === 'popup') { + this.showPopup() + } + + EventHandlerUtil.trigger(this.element, 'kt.feedback.shown') + + return this + } + + public hide = () => { + if (EventHandlerUtil.trigger(this.element, 'kt.feedback.hide') === false) { + return + } + + if (this.options.type === 'popup') { + this.hidePopup() + } + + this.shown = false + EventHandlerUtil.trigger(this.element, 'kt.feedback.hidden') + return this + } + + public isShown = () => { + return this.isShown + } + + public getElement = () => { + return this.element + } + + // Event API + public on = (name: string, handler: Function) => { + return EventHandlerUtil.on(this.element, name, handler) + } + + public one = (name: string, handler: Function) => { + return EventHandlerUtil.one(this.element, name, handler) + } + + public off = (name: string, handerId: string) => { + return EventHandlerUtil.off(this.element, name, handerId) + } + + public trigger = (name: string, event: Event) => { + return EventHandlerUtil.trigger(this.element, name, event) + } + + // Create Instances + public static createInstances(selector: string) { + throw new Error('not implemented') + } + + // Static methods + public static hasInstace(element: HTMLElement) { + throw new Error('not implemented') + } + + public static getInstance(element: HTMLElement) { + throw new Error('not implemented') + } + + public static bootstrap(attr: string = '[data-Feedback]') { + throw new Error('not implemented') + } +} + +export {FeedbackComponent, defaultFeedbackOptions} diff --git a/src/_metronic/assets/ts/components/_ImageInputComponent.ts b/src/_metronic/assets/ts/components/_ImageInputComponent.ts new file mode 100644 index 0000000..1301a95 --- /dev/null +++ b/src/_metronic/assets/ts/components/_ImageInputComponent.ts @@ -0,0 +1,229 @@ +import {EventHandlerUtil, DataUtil, getUniqueIdWithPrefix, getCSS} from '../_utils/index' + +export interface IImageInputOptions {} + +export interface IImageInputQueries { + componentName: string + instanseQuery: string + inputQuery: string + wrapperQuery: string + cancelQuery: string + removeQuery: string + hiddenQuery: string +} + +const defaultImageInputOptions = {} + +const defaultImageInputQueires: IImageInputQueries = { + componentName: 'image-input', + instanseQuery: '[data-kt-image-input]', + inputQuery: 'input[type="file"]', + wrapperQuery: '.image-input-wrapper', + cancelQuery: '[data-kt-image-input-action="cancel"]', + removeQuery: '[data-kt-image-input-action="remove"]', + hiddenQuery: 'input[type="hidden"]', +} + +class ImageInputComponent { + element: HTMLElement + inputElement: HTMLInputElement | null + wrapperElement: HTMLElement | null + cancelElement: HTMLElement | null + removeElement: HTMLElement | null + hiddenElement: HTMLInputElement | null + src: string = '' + options: IImageInputOptions + queries: IImageInputQueries + uid: string + value: string = '' + + constructor(_element: HTMLElement, _options: IImageInputOptions, _queries: IImageInputQueries) { + // Variables + this.options = Object.assign(defaultImageInputOptions, _options) + this.queries = _queries + this.uid = getUniqueIdWithPrefix(this.queries.componentName) + + // Elements + this.element = _element + this.inputElement = this.element.querySelector(this.queries.inputQuery) + this.wrapperElement = this.element.querySelector(this.queries.wrapperQuery) + this.cancelElement = this.element.querySelector(this.queries.cancelQuery) + this.removeElement = this.element.querySelector(this.queries.removeQuery) + this.hiddenElement = this.element.querySelector(this.queries.hiddenQuery) + if (this.wrapperElement) { + this.src = getCSS(this.wrapperElement, 'backgroundImage') + } + + // Event Handlers + this.handlers() + + DataUtil.set(this.element, this.queries.componentName, this) + } + + private handlers(): void { + this.element.addEventListener('change', this._change) + if (this.cancelElement) { + this.cancelElement.addEventListener('click', this._cancel) + } + + if (this.removeElement) { + this.removeElement.addEventListener('click', this._cancel) + } + } + + // Event Handlers + private _change = (e: Event) => { + e.preventDefault() + + if (this.inputElement !== null && this.inputElement.files && this.inputElement.files[0]) { + // Fire change event + if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.change', e) === false) { + return + } + + const reader = new FileReader() + + reader.onload = (e: ProgressEvent) => { + if (this.wrapperElement && e.target) { + this.wrapperElement.style.setProperty('background-image', `url('${e.target.result}')`) + } + } + + reader.readAsDataURL(this.inputElement.files[0]) + this.element.classList.add('image-input-changed') + this.element.classList.remove('image-input-empty') + + // Fire removed event + EventHandlerUtil.trigger(this.element, 'kt.imageinput.changed', e) + } + } + + private _cancel = (e: Event) => { + e.preventDefault() + + // Fire cancel event + if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.cancel', e) === false) { + return + } + + this.element.classList.remove('image-input-changed') + this.element.classList.remove('image-input-empty') + this.element.style.setProperty('background-image', this.src) + if (this.inputElement) { + this.inputElement.value = '' + } + + if (this.hiddenElement !== null) { + this.hiddenElement.value = '0' + } + + // Fire canceled event + EventHandlerUtil.trigger(this.element, 'kt.imageinput.canceled', e) + } + + private _remove = (e: Event) => { + e.preventDefault() + + // Fire remove event + if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.remove', e) === false) { + return + } + + this.element.classList.remove('image-input-changed') + this.element.classList.add('image-input-empty') + if (this.wrapperElement) { + this.wrapperElement.style.setProperty('background-image', 'none') + } + + if (this.inputElement) { + this.inputElement.value = '' + } + + if (this.hiddenElement !== null) { + this.hiddenElement.value = '1' + } + + // Fire removed event + EventHandlerUtil.trigger(this.element, 'kt.imageinput.removed', e) + } + + /////////////////////// + // ** Public API ** // + /////////////////////// + public getInputElement(): HTMLInputElement | null { + return this.inputElement + } + + public getElement(): HTMLElement { + return this.element + } + + // Event API + public on = (name: string, handler: Function) => { + return EventHandlerUtil.on(this.element, name, handler) + } + + public one = (name: string, handler: Function) => { + return EventHandlerUtil.one(this.element, name, handler) + } + + public off = (name: string, handlerId: string) => { + return EventHandlerUtil.off(this.element, name, handlerId) + } + + public trigger = (name: string, event: Event) => { + return EventHandlerUtil.trigger(this.element, name, event) + } + + // Static methods + public static getInstance = ( + el: HTMLElement, + componentName: string = defaultImageInputQueires.componentName + ): ImageInputComponent | undefined => { + const ImageInput = DataUtil.get(el, componentName) + if (ImageInput) { + return ImageInput as ImageInputComponent + } + } + + public static createInstances = ( + selector: string = defaultImageInputQueires.instanseQuery, + options: IImageInputOptions = defaultImageInputOptions, + queries: IImageInputQueries = defaultImageInputQueires + ) => { + const elements = document.body.querySelectorAll(selector) + elements.forEach((el) => { + const item = el as HTMLElement + let ImageInput = ImageInputComponent.getInstance(item) + if (!ImageInput) { + ImageInput = new ImageInputComponent(item, options, queries) + } + }) + } + + public static createInsance = ( + selector: string = defaultImageInputQueires.instanseQuery, + options: IImageInputOptions = defaultImageInputOptions, + queries: IImageInputQueries = defaultImageInputQueires + ): ImageInputComponent | undefined => { + const element = document.body.querySelector(selector) + if (!element) { + return + } + const item = element as HTMLElement + let ImageInput = ImageInputComponent.getInstance(item) + if (!ImageInput) { + ImageInput = new ImageInputComponent(item, options, queries) + } + return ImageInput + } + + public static bootstrap = (selector: string = defaultImageInputQueires.instanseQuery) => { + ImageInputComponent.createInstances(selector) + } + + public static reinitialization = (selector: string = defaultImageInputQueires.instanseQuery) => { + ImageInputComponent.createInstances(selector) + } +} +export {ImageInputComponent, defaultImageInputOptions, defaultImageInputQueires} diff --git a/src/_metronic/assets/ts/components/_PasswordMeterComponent.ts b/src/_metronic/assets/ts/components/_PasswordMeterComponent.ts new file mode 100644 index 0000000..8a90252 --- /dev/null +++ b/src/_metronic/assets/ts/components/_PasswordMeterComponent.ts @@ -0,0 +1,273 @@ +/* eslint-disable array-callback-return */ +/* eslint-disable no-useless-escape */ +import {DataUtil} from '../_utils/index' + +export interface IPasswordMeterOptions { + minLength: number + checkUppercase: boolean + checkLowercase: boolean + checkDigit: boolean + checkChar: boolean + scoreHighlightClass: string +} + +export interface IPasswordMeterQueries { + componentName: string + instanseQuery: string + inputQuery: string + visibilityQuery: string + highlightQuery: string +} + +const defaultPasswordMeterOptions = { + minLength: 8, + checkUppercase: true, + checkLowercase: true, + checkDigit: true, + checkChar: true, + scoreHighlightClass: 'active', +} + +const defaultPasswordMeterQueires: IPasswordMeterQueries = { + componentName: 'password-meter', + instanseQuery: '[data-kt-password-meter]', + inputQuery: 'input[type]', + visibilityQuery: '[data-kt-password-meter-control="visibility"]', + highlightQuery: '[data-kt-password-meter-control="highlight"]', +} + +class PasswordMeterComponent { + element: HTMLElement + inputElement: HTMLInputElement | null + visibilityElement: HTMLElement | null + highlightElement: HTMLElement | null + options: IPasswordMeterOptions + queries: IPasswordMeterQueries + score: number + checkSteps: number + + constructor( + _element: HTMLElement, + _options: IPasswordMeterOptions, + _queries: IPasswordMeterQueries + ) { + this.element = _element + this.options = Object.assign(defaultPasswordMeterOptions, _options) + this.queries = _queries + this.score = 0 + this.checkSteps = 5 + + // Elements + this.inputElement = this.element.querySelector(this.queries.inputQuery) + this.visibilityElement = this.element.querySelector(this.queries.visibilityQuery) + this.highlightElement = this.element.querySelector(this.queries.highlightQuery) + + // Event Handlers + this.handlers() + + DataUtil.set(this.element, this.queries.componentName, this) + } + + private handlers(): void { + if (this.inputElement) { + this.inputElement.addEventListener('input', () => { + this.check() + }) + } + + if (this.visibilityElement) { + this.visibilityElement.addEventListener('click', () => { + this.visitbility() + }) + } + } + + private visitbility() { + if (this.visibilityElement && this.inputElement) { + const visibleIcon = this.visibilityElement.querySelector( + 'i:not(.d-none), .svg-icon:not(.d-none)' + ) + + const hiddenIcon = this.visibilityElement.querySelector('i.d-none, .svg-icon.d-none') + + const typeAttr = this.inputElement.getAttribute('type') || '' + + if (typeAttr === 'password') { + this.inputElement.setAttribute('type', 'text') + } else { + this.inputElement.setAttribute('type', 'password') + } + + visibleIcon?.classList.add('d-none') + hiddenIcon?.classList.remove('d-none') + + this.inputElement.focus() + } + } + + private checkScore(): number { + return 0 + } + + private checkLength(): boolean { + if (this.inputElement) { + return this.inputElement.value.length >= this.options.minLength // 20 score + } + + return false + } + + private checkLowerCase(): boolean { + const val = this.inputElement ? this.inputElement.value : '' + return /[a-z]/.test(val) // 20 score + } + + private checkUppercase(): boolean { + const val = this.inputElement ? this.inputElement.value : '' + return /[A-Z]/.test(val) // 20 score + } + + private checkDigit(): boolean { + const val = this.inputElement ? this.inputElement.value : '' + return /[0-9]/.test(val) // 20 score + } + + private checkChar(): boolean { + const val = this.inputElement ? this.inputElement.value : '' + return /[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g.test(val) // 20 score + } + + private getCheckScore(): number { + let count = 1 + if (this.options.checkUppercase) { + count++ + } + + if (this.options.checkLowercase) { + count++ + } + + if (this.options.checkDigit) { + count++ + } + + if (this.options.checkChar) { + count++ + } + + this.checkSteps = count + return 100 / this.checkSteps + } + + private highlight() { + const items = this.highlightElement + ? [].slice.call(this.highlightElement.querySelectorAll('div')) + : [] + const total = items.length + let index = 0 + const checkScore = this.getCheckScore() + const score = this.getScore() + + items.map((item: HTMLElement) => { + index++ + if (checkScore * index * (this.checkSteps / total) <= score) { + item.classList.add('active') + } else { + item.classList.remove('active') + } + }) + } + + /////////////////////// + // ** Public API ** // + /////////////////////// + public reset = () => { + this.score = 0 + this.highlight() + } + + public getScore() { + return this.score + } + + public check() { + let score = 0 + const checkScore = this.getCheckScore() + if (this.checkLength()) { + score = score + checkScore + } + + if (this.options.checkUppercase && this.checkLowerCase()) { + score = score + checkScore + } + + if (this.options.checkLowercase && this.checkUppercase()) { + score = score + checkScore + } + + if (this.options.checkDigit && this.checkDigit()) { + score = score + checkScore + } + + if (this.options.checkChar && this.checkChar()) { + score = score + checkScore + } + + this.score = score + this.highlight() + } + + // Static methods + public static getInstance = ( + el: HTMLElement, + componentName: string = defaultPasswordMeterQueires.componentName + ): PasswordMeterComponent | undefined => { + const passwordMeter = DataUtil.get(el, componentName) + if (passwordMeter) { + return passwordMeter as PasswordMeterComponent + } + } + + public static createInstances = ( + selector: string = defaultPasswordMeterQueires.instanseQuery, + options: IPasswordMeterOptions = defaultPasswordMeterOptions, + queries: IPasswordMeterQueries = defaultPasswordMeterQueires + ) => { + const elements = document.body.querySelectorAll(selector) + elements.forEach((el) => { + const item = el as HTMLElement + let passwordMeter = PasswordMeterComponent.getInstance(item) + if (!passwordMeter) { + passwordMeter = new PasswordMeterComponent(item, options, queries) + } + }) + } + + public static createInsance = ( + selector: string = defaultPasswordMeterQueires.instanseQuery, + options: IPasswordMeterOptions = defaultPasswordMeterOptions, + queries: IPasswordMeterQueries = defaultPasswordMeterQueires + ): PasswordMeterComponent | undefined => { + const element = document.body.querySelector(selector) + if (!element) { + return + } + const item = element as HTMLElement + let passwordMeter = PasswordMeterComponent.getInstance(item) + if (!passwordMeter) { + passwordMeter = new PasswordMeterComponent(item, options, queries) + } + return passwordMeter + } + + public static bootstrap = (selector: string = defaultPasswordMeterQueires.instanseQuery) => { + PasswordMeterComponent.createInstances(selector) + } + + public static reinitialization = ( + selector: string = defaultPasswordMeterQueires.instanseQuery + ) => { + PasswordMeterComponent.createInstances(selector) + } +} +export {PasswordMeterComponent, defaultPasswordMeterOptions, defaultPasswordMeterQueires} diff --git a/src/_metronic/assets/ts/components/_ScrollComponent.ts b/src/_metronic/assets/ts/components/_ScrollComponent.ts new file mode 100644 index 0000000..67a461f --- /dev/null +++ b/src/_metronic/assets/ts/components/_ScrollComponent.ts @@ -0,0 +1,312 @@ +import { + DataUtil, + getObjectPropertyValueByKey, + stringSnakeToCamel, + getAttributeValueByBreakpoint, + getViewPort, + isVisibleElement, + throttle, + getCSS, + ElementStyleUtil, +} from '../_utils/index' +import {CookieComponent} from './_CookieComponent' + +export interface ScrollOptions { + saveState?: boolean +} + +const defaultScrollOptions: ScrollOptions = { + saveState: true, +} + +class ScrollComponent { + element: HTMLElement + options: ScrollOptions + id: string + + constructor(_element: HTMLElement, options: ScrollOptions) { + this.element = _element + this.options = Object.assign(defaultScrollOptions, options) + this.id = this.element.getAttribute('id') || '' + this.update() + // this.element.setAttribute('data-kt-scrolltop', 'true') + DataUtil.set(this.element, 'scroll', this) + } + + private getOption = (name: string) => { + if (this.element.hasAttribute('data-kt-scroll-' + name) === true) { + const attr = this.element.getAttribute('data-kt-scroll-' + name) || '' + let value: string | JSON | boolean = getAttributeValueByBreakpoint(attr) + if (value !== null && String(value) === 'true') { + value = true + } else if (value !== null && String(value) === 'false') { + value = false + } + + return value + } else { + const optionName = stringSnakeToCamel(name) + const option = getObjectPropertyValueByKey(this.options, optionName) + if (option) { + return getAttributeValueByBreakpoint(option) + } else { + return null + } + } + } + + private getHeightType = () => { + if (this.getOption('height')) { + return 'height' + } + if (this.getOption('min-height')) { + return 'min-height' + } + if (this.getOption('max-height')) { + return 'max-height' + } + } + + private getAutoHeight = () => { + let height: number | string = getViewPort().height + const dependencies = this.getOption('dependencies') + const wrappers = this.getOption('wrappers') + const offset = this.getOption('offset') + + // Height dependencies + if (dependencies !== null) { + const elements = document.querySelectorAll(dependencies as string) + if (elements && elements.length > 0) { + for (let i = 0, len = elements.length; i < len; i++) { + const element = elements[i] as HTMLElement + if (isVisibleElement(element) === false) { + continue + } + + height = height - parseInt(getCSS(element, 'height')) + height = height - parseInt(getCSS(element, 'margin-top')) + height = height - parseInt(getCSS(element, 'margin-bottom')) + + const borderTop = getCSS(element, 'border-top') + if (borderTop) { + height = height - parseInt(borderTop) + } + + const borderBottom = getCSS(element, 'border-bottom') + if (borderBottom) { + height = height - parseInt(borderBottom) + } + } + } + } + + // Wrappers + if (wrappers !== null) { + var elements = document.querySelectorAll(wrappers as string) + if (elements && elements.length > 0) { + for (let i = 0, len = elements.length; i < len; i++) { + const element = elements[i] as HTMLElement + + if (!isVisibleElement(element)) { + continue + } + + height = height - parseInt(getCSS(element, 'margin-top')) + height = height - parseInt(getCSS(element, 'margin-bottom')) + height = height - parseInt(getCSS(element, 'padding-top')) + height = height - parseInt(getCSS(element, 'padding-bottom')) + + const borderTop = getCSS(element, 'border-top') + if (borderTop) { + height = height - parseInt(borderTop) + } + + const borderBottom = getCSS(element, 'border-bottom') + if (borderBottom) { + height = height - parseInt(borderBottom) + } + } + } + } + + // Custom offset + if (offset !== null) { + height = height - parseInt(offset as string) + } + + height = height - parseInt(getCSS(this.element, 'margin-top')) + height = height - parseInt(getCSS(this.element, 'margin-bottom')) + + const borderTop = getCSS(this.element, 'border-top') + if (borderTop) { + height = height - parseInt(borderTop) + } + + const borderBottom = getCSS(this.element, 'border-bottom') + if (borderBottom) { + height = height - parseInt(borderBottom) + } + + height = String(height) + 'px' + + return height + } + + private setupHeight = () => { + let height = this.getHeight() + let heightType = this.getHeightType() as string + + // Set height + if (height !== null && height.length > 0) { + ElementStyleUtil.set(this.element, heightType, height) + } else { + ElementStyleUtil.set(this.element, heightType, '') + } + } + + private setupState = () => { + if (this.getOption('save-state') === true && this.id) { + const cookie = CookieComponent.get(this.id + 'st') + if (cookie) { + var pos = parseInt(cookie) + + if (pos > 0) { + this.element.scrollTop = pos + } + } + } + } + + private setupScrollHandler = () => { + if (this.getOption('save-state') === true && this.id) { + this.element.addEventListener('scroll', this.scrollHandler) + } else { + this.element.removeEventListener('scroll', this.scrollHandler) + } + } + + private scrollHandler = () => { + const cookieId = this.id + 'st' + CookieComponent.set(cookieId, this.element.scrollTop, {}) + } + + private destroyScrollHandler = () => { + this.element.removeEventListener('scroll', this.scrollHandler) + } + + private resetHeight = () => { + const heghtType = this.getHeightType() + if (heghtType) { + ElementStyleUtil.set(this.element, heghtType, '') + } + } + + /////////////////////// + // ** Public API ** // + /////////////////////// + public update = () => { + // Activate/deactivate + if ( + this.getOption('activate') === true || + !this.element.hasAttribute('data-kt-scroll-activate') + ) { + this.setupHeight() + this.setupScrollHandler() + this.setupState() + } else { + this.resetHeight() + this.destroyScrollHandler() + } + } + + public getHeight = () => { + const heightType = this.getHeightType() + const height = this.getOption(heightType || '') + if (height instanceof Function) { + return height.call(height) + } else if (height !== null && typeof height === 'string' && height.toLowerCase() === 'auto') { + return this.getAutoHeight() + } else { + return height + } + } + + public getElement = () => { + return this.element + } + + // Static methods + public static hasInstace(element: HTMLElement) { + return DataUtil.has(element, 'scroll') + } + + public static getInstance(element: HTMLElement): ScrollComponent | undefined { + if (element !== null && ScrollComponent.hasInstace(element)) { + const data = DataUtil.get(element, 'scroll') + if (data) { + return data as ScrollComponent + } + } + } + + // Create Instances + public static createInstances(selector: string) { + const elements = document.body.querySelectorAll(selector) + elements.forEach((element: Element) => { + const item = element as HTMLElement + let scroll = ScrollComponent.getInstance(item) + if (!scroll) { + scroll = new ScrollComponent(item, defaultScrollOptions) + } + }) + } + + public static destroyAll(attr: string = '[data-kt-scroll="true"]') {} + + public static bootstrap(attr: string = '[data-kt-scroll="true"]') { + ScrollComponent.createInstances(attr) + ScrollComponent.resize() + } + + public static createInstance = ( + element: HTMLElement, + options: ScrollOptions = defaultScrollOptions + ): ScrollComponent | undefined => { + let scroll = ScrollComponent.getInstance(element) + if (!scroll) { + scroll = new ScrollComponent(element, options) + } + return scroll + } + + public static reinitialization(attr: string = '[data-kt-scroll="true"]') { + ScrollComponent.createInstances(attr) + } + + public static updateAll() { + const elements = document.body.querySelectorAll('[data-kt-scroll="true"]') + elements.forEach((element: Element) => { + const instance = ScrollComponent.getInstance(element as HTMLElement) + if (instance) { + instance.update() + } + }) + } + + public static resize() { + // Window Resize Handling + window.addEventListener('resize', function () { + let timer + throttle( + timer, + () => { + // Locate and update Drawer instances on window resize + ScrollComponent.updateAll() + }, + 200 + ) + }) + } +} + +export {ScrollComponent, defaultScrollOptions} diff --git a/src/_metronic/assets/ts/components/_ScrollTopComponent.ts b/src/_metronic/assets/ts/components/_ScrollTopComponent.ts new file mode 100644 index 0000000..ea8d924 --- /dev/null +++ b/src/_metronic/assets/ts/components/_ScrollTopComponent.ts @@ -0,0 +1,148 @@ +import { + getScrollTop, + getAttributeValueByBreakpoint, + throttle, + getObjectPropertyValueByKey, + stringSnakeToCamel, + getUniqueIdWithPrefix, + DataUtil, + ElementAnimateUtil, +} from '../_utils/index' + +export interface IScrollTopOptions { + offset: number + speed: number +} + +const defaultScrollTopOptions: IScrollTopOptions = { + offset: 200, + speed: 600, +} + +class ScrollTopComponent { + element: HTMLElement + options: IScrollTopOptions + instanceUid: string + + constructor(_element: HTMLElement, options: IScrollTopOptions) { + this.element = _element + this.options = Object.assign(defaultScrollTopOptions, options) + this.instanceUid = getUniqueIdWithPrefix('scrolltop') + + // Event Handlers + this._handlers() + + // Bind Instance + DataUtil.set(this.element, 'scrolltop', this) + } + + private _handlers = () => { + let timer: number + window.addEventListener('scroll', () => { + throttle(timer, () => { + this._scroll() + }) + }) + + this.element.addEventListener('click', (e: Event) => { + e.preventDefault() + this._go() + }) + } + + private _scroll = () => { + const offset = parseInt(this._getOption('offset') as string) + const pos = getScrollTop() // current vertical position + if (pos > offset) { + if (!document.body.hasAttribute('data-kt-scrolltop')) { + document.body.setAttribute('data-kt-scrolltop', 'on') + } + } else { + if (document.body.hasAttribute('data-kt-scrolltop')) { + document.body.removeAttribute('data-kt-scrolltop') + } + } + } + + private _go = () => { + const speed = parseInt(this._getOption('speed') as string) + ElementAnimateUtil.scrollTop(0, speed) + } + + private _getOption = (name: string) => { + const attr = this.element.getAttribute(`data-kt-scrolltop-${name}`) + if (attr) { + const value = getAttributeValueByBreakpoint(attr) + return value !== null && String(value) === 'true' + } + + const optionName = stringSnakeToCamel(name) + const option = getObjectPropertyValueByKey(this.options, optionName) + if (option) { + return getAttributeValueByBreakpoint(option) + } + + return null + } + + /////////////////////// + // ** Public API ** // + /////////////////////// + + // Plugin API + public go = () => { + return this._go() + } + + public getElement = () => { + return this.element + } + + // Static methods + public static getInstance = (el: HTMLElement): ScrollTopComponent | undefined => { + const scrollTop = DataUtil.get(el, 'scrolltop') + if (scrollTop) { + return scrollTop as ScrollTopComponent + } + } + + public static createInstances = (selector: string) => { + const elements = document.body.querySelectorAll(selector) + elements.forEach((el) => { + const item = el as HTMLElement + let scrollTop = ScrollTopComponent.getInstance(item) + if (!scrollTop) { + scrollTop = new ScrollTopComponent(item, defaultScrollTopOptions) + } + }) + } + + public static createInsance = ( + selector: string, + options: IScrollTopOptions = defaultScrollTopOptions + ): ScrollTopComponent | undefined => { + const element = document.body.querySelector(selector) + if (!element) { + return + } + const item = element as HTMLElement + let scrollTop = ScrollTopComponent.getInstance(item) + if (!scrollTop) { + scrollTop = new ScrollTopComponent(item, options) + } + return scrollTop + } + + public static bootstrap = () => { + ScrollTopComponent.createInstances('[data-kt-scrolltop="true"]') + } + + public static reinitialization = () => { + ScrollTopComponent.createInstances('[data-kt-scrolltop="true"]') + } + + public static goTop = () => { + ElementAnimateUtil.scrollTop(0, defaultScrollTopOptions.speed) + } +} +export {ScrollTopComponent, defaultScrollTopOptions} diff --git a/src/_metronic/assets/ts/components/_StepperComponent.ts b/src/_metronic/assets/ts/components/_StepperComponent.ts new file mode 100644 index 0000000..4e88aa6 --- /dev/null +++ b/src/_metronic/assets/ts/components/_StepperComponent.ts @@ -0,0 +1,332 @@ +import { + getElementIndex, + getUniqueIdWithPrefix, + ElementAnimateUtil, + EventHandlerUtil, + DataUtil, + DOMEventHandlerUtil, + ElementStyleUtil, +} from '../_utils/index' + +export interface IStepperOptions { + startIndex: number + animation: boolean + animationSpeed: string + animationNextClass: string + animationPreviousClass: string +} + +const defaultStepperOptions: IStepperOptions = { + startIndex: 1, + animation: false, + animationSpeed: '0.3s', + animationNextClass: 'animate__animated animate__slideInRight animate__fast', + animationPreviousClass: 'animate__animated animate__slideInLeft animate__fast', +} + +class StepperComponent { + element: HTMLElement + options: IStepperOptions + instanceUid: string + steps: NodeListOf + btnNext: HTMLElement | null + btnPrev: HTMLElement | null + btnSubmit: HTMLElement | null + totatStepsNumber: number = 0 + passedStepIndex: number = 0 + currentStepIndex: number = 1 + + constructor(_element: HTMLElement, options: IStepperOptions) { + this.element = _element + this.options = Object.assign(defaultStepperOptions, options) + this.instanceUid = getUniqueIdWithPrefix('stepper') + + // Elements + this.steps = this.element.querySelectorAll('[data-kt-stepper-element="nav"]') + this.btnNext = this.element.querySelector('[data-kt-stepper-action="next"]') + this.btnPrev = this.element.querySelector('[data-kt-stepper-action="previous"]') + this.btnSubmit = this.element.querySelector('[data-kt-stepper-action="submit"]') + + // Variables + this.totatStepsNumber = this.steps?.length | 0 + this.passedStepIndex = 0 + this.currentStepIndex = 1 + + // Set Current Step + if (this.options.startIndex > 1) { + this._goTo(this.options.startIndex) + } + + // Event Handlers + this.initHandlers() + + // Bind Instance + DataUtil.set(this.element, 'stepper', this) + } + + private _goTo = (index: number) => { + EventHandlerUtil.trigger(this.element, 'kt.stepper.change') + // Skip if this step is already shown + if (index === this.currentStepIndex || index > this.totatStepsNumber || index < 0) { + return + } + + // Validate step number + index = parseInt(index.toString()) + // Set current step + this.passedStepIndex = this.currentStepIndex + this.currentStepIndex = index + + // Refresh elements + this.refreshUI() + + EventHandlerUtil.trigger(this.element, 'kt.stepper.changed') + } + + private initHandlers = () => { + this.btnNext?.addEventListener('click', (e: Event) => { + e.preventDefault() + + EventHandlerUtil.trigger(this.element, 'kt.stepper.next', e) + }) + + this.btnPrev?.addEventListener('click', (e: Event) => { + e.preventDefault() + + EventHandlerUtil.trigger(this.element, 'kt.stepper.previous', e) + }) + + DOMEventHandlerUtil.on(this.element, '[data-kt-stepper-action="step"]', 'click', (e: Event) => { + e.preventDefault() + + if (this.steps && this.steps.length > 0) { + for (let i = 0; i < this.steps.length; i++) { + if ((this.steps[i] as HTMLElement) === this.element) { + let index = i + 1 + + const stepDirection = this._getStepDirection(index) + EventHandlerUtil.trigger(this.element, `stepper.${stepDirection}`, e) + return + } + } + } + }) + } + + private _getStepDirection = (index: number) => { + return index > this.currentStepIndex ? 'next' : 'previous' + } + + private getStepContent = (index: number) => { + const content = this.element.querySelectorAll('[data-kt-stepper-element="content"]') + if (!content) { + return false + } + + if (content[index - 1]) { + return content[index - 1] + } + + return false + } + + private getLastStepIndex = () => { + return this.totatStepsNumber + } + + private getTotalStepsNumber = () => { + return this.totatStepsNumber + } + + private refreshUI = () => { + let state = '' + + if (this.isLastStep()) { + state = 'last' + } else if (this.isFirstStep()) { + state = 'first' + } else { + state = 'between' + } + + // Set state class + this.element.classList.remove('last') + this.element.classList.remove('first') + this.element.classList.remove('between') + + this.element.classList.add(state) + + // Step Items + const elements = this.element.querySelectorAll( + '[data-kt-stepper-element="nav"], [data-kt-stepper-element="content"], [data-kt-stepper-element="info"]' + ) + + if (!elements || elements.length <= 0) { + return + } + + for (var i = 0, len = elements.length; i < len; i++) { + var element = elements[i] as HTMLElement + var index = getElementIndex(element) + 1 + + element.classList.remove('current') + element.classList.remove('completed') + element.classList.remove('pending') + + if (index === this.currentStepIndex) { + element.classList.add('current') + + if ( + this.options.animation !== false && + element.getAttribute('data-kt-stepper-element') === 'content' + ) { + ElementStyleUtil.set(element, 'animationDuration', this.options.animationSpeed) + + const animation = + this._getStepDirection(this.passedStepIndex) === 'previous' + ? this.options.animationPreviousClass + : this.options.animationNextClass + ElementAnimateUtil.animateClass(element, animation) + } + } else { + if (index < this.currentStepIndex) { + element.classList.add('completed') + } else { + element.classList.add('pending') + } + } + } + } + + private isLastStep = () => { + return this.currentStepIndex === this.totatStepsNumber + } + + private isFirstStep = () => { + return this.currentStepIndex === 1 + } + + private isBetweenStep = () => { + return this.isLastStep() === false && this.isFirstStep() === false + } + + // /////////////////////// + // // ** Public API ** // + // /////////////////////// + + // // Plugin API + public goto = (index: number) => { + return this._goTo(index) + } + + public goNext = () => { + return this.goto(this.getNextStepIndex()) + } + + public goPrev = () => { + return this.goto(this.getPrevStepIndex()) + } + + public goFirst = () => { + return this.goto(1) + } + + public goLast = () => { + return this.goto(this.getLastStepIndex()) + } + + public getCurrentStepIndex = () => { + return this.currentStepIndex + } + + public getNextStepIndex = () => { + if (this.totatStepsNumber >= this.currentStepIndex + 1) { + return this.currentStepIndex + 1 + } else { + return this.totatStepsNumber + } + } + + public getPassedStepIndex = () => { + return this.passedStepIndex + } + + public getPrevStepIndex = () => { + if (this.currentStepIndex - 1 > 1) { + return this.currentStepIndex - 1 + } else { + return 1 + } + } + + public getElement = (index: number) => { + return this.element + } + + // Event API + public on = (name: string, handler: Function) => { + return EventHandlerUtil.on(this.element, name, handler) + } + + public one = (name: string, handler: Function) => { + return EventHandlerUtil.one(this.element, name, handler) + } + + public off = (name: string, handlerId: string) => { + return EventHandlerUtil.off(this.element, name, handlerId) + } + + public destroy = () => { + console.log('destroy stepper') + } + + public trigger = (name: string, event: Event) => { + return EventHandlerUtil.trigger(this.element, name, event) + } + + // Static methods + public static hasInstace(element: HTMLElement): boolean { + return DataUtil.has(element, 'stepper') + } + + public static getInstance(element: HTMLElement): StepperComponent | undefined { + if (element !== null && StepperComponent.hasInstace(element)) { + const data = DataUtil.get(element, 'stepper') + if (data) { + return data as StepperComponent + } + } + } + + // Create Instances + public static createInstances(selector: string): void { + const elements = document.body.querySelectorAll(selector) + elements.forEach((element) => { + const item = element as HTMLElement + let stepper = StepperComponent.getInstance(item) + if (!stepper) { + stepper = new StepperComponent(item, defaultStepperOptions) + } + }) + } + + public static createInsance = ( + element: HTMLElement, + options: IStepperOptions = defaultStepperOptions + ): StepperComponent | null => { + if (!element) { + return null + } + let stepper = StepperComponent.getInstance(element) + if (!stepper) { + stepper = new StepperComponent(element, options) + } + return stepper + } + + public static bootstrap(attr: string = '[data-kt-stepper]') { + StepperComponent.createInstances(attr) + } +} + +export {StepperComponent, defaultStepperOptions} diff --git a/src/_metronic/assets/ts/components/_StickyComponent.ts b/src/_metronic/assets/ts/components/_StickyComponent.ts new file mode 100644 index 0000000..0a5bd85 --- /dev/null +++ b/src/_metronic/assets/ts/components/_StickyComponent.ts @@ -0,0 +1,285 @@ +import { + getElementOffset, + getScrollTop, + getAttributeValueByBreakpoint, + getUniqueIdWithPrefix, + getObjectPropertyValueByKey, + stringSnakeToCamel, + getCSS, + DataUtil, + ElementAnimateUtil, + ElementStyleUtil, + EventHandlerUtil, +} from '../_utils/index' + +export interface StickyOptions { + offset: number + reverse: boolean + animation: boolean + animationSpeed: string + animationClass: string +} + +const defaultStickyOptions: StickyOptions = { + offset: 200, + reverse: false, + animation: true, + animationSpeed: '0.3s', + animationClass: 'animation-slide-in-down', +} + +class StickyComponent { + element: HTMLElement + options: StickyOptions + instanceUid: string + instanceName: string | null = '' + attributeName: string + eventTriggerState: boolean + lastScrollTop: number + + constructor(_element: HTMLElement, options: StickyOptions) { + this.element = _element + this.options = Object.assign(defaultStickyOptions, options) + this.instanceUid = getUniqueIdWithPrefix('sticky') + this.instanceName = this.element.getAttribute('data-kt-sticky-name') + this.attributeName = 'data-kt-sticky-' + this.instanceName + this.eventTriggerState = true + this.lastScrollTop = 0 + + // Event Handlers + window.addEventListener('scroll', this.scroll) + + // Initial Launch + this.scroll() + + DataUtil.set(this.element, 'sticky', this) + } + + private scroll = () => { + let offset = this.getOption('offset') + let reverse = this.getOption('reverse') + + // Exit if false + if (offset === false) { + return + } + + let offsetNum = 0 + if (typeof offset === 'string') { + offsetNum = parseInt(offset) + } + + const st = getScrollTop() + + // Reverse scroll mode + if (reverse === true) { + // Release on reverse scroll mode + if (st > offsetNum && this.lastScrollTop < st) { + if (document.body.hasAttribute(this.attributeName) === false) { + this.enable() + document.body.setAttribute(this.attributeName, 'on') + } + + if (this.eventTriggerState === true) { + EventHandlerUtil.trigger(this.element, 'kt.sticky.on') + EventHandlerUtil.trigger(this.element, 'kt.sticky.change') + + this.eventTriggerState = false + } + } else { + // Back scroll mode + if (document.body.hasAttribute(this.attributeName)) { + this.disable() + document.body.removeAttribute(this.attributeName) + } + + if (this.eventTriggerState === false) { + EventHandlerUtil.trigger(this.element, 'kt.sticky.off') + EventHandlerUtil.trigger(this.element, 'kt.sticky.change') + + this.eventTriggerState = true + } + } + + this.lastScrollTop = st + return + } + + // Classic scroll mode + if (st > offsetNum) { + if (document.body.hasAttribute(this.attributeName) === false) { + this.enable() + document.body.setAttribute(this.attributeName, 'on') + } + + if (this.eventTriggerState === true) { + EventHandlerUtil.trigger(this.element, 'kt.sticky.on') + EventHandlerUtil.trigger(this.element, 'kt.sticky.change') + this.eventTriggerState = false + } + } else { + // back scroll mode + if (document.body.hasAttribute(this.attributeName) === true) { + this.disable() + document.body.removeAttribute(this.attributeName) + } + + if (this.eventTriggerState === false) { + EventHandlerUtil.trigger(this.element, 'kt.sticky.off') + EventHandlerUtil.trigger(this.element, 'kt.sticky.change') + this.eventTriggerState = true + } + } + } + + private getOption = (name: string) => { + const dataStickyAttr = 'data-kt-sticky-' + name + if (this.element.hasAttribute(dataStickyAttr) === true) { + const attrValueInStr = this.element.getAttribute(dataStickyAttr) + const attrValue = getAttributeValueByBreakpoint(attrValueInStr || '') + if (attrValue !== null && String(attrValue) === 'true') { + return true + } else if (attrValue !== null && String(attrValue) === 'false') { + return false + } + + return attrValue + } else { + const optionName = stringSnakeToCamel(name) + const option = getObjectPropertyValueByKey(this.options, optionName) + if (option) { + return getAttributeValueByBreakpoint(option) + } + } + } + + private disable = () => { + ElementStyleUtil.remove(this.element, 'top') + ElementStyleUtil.remove(this.element, 'width') + ElementStyleUtil.remove(this.element, 'left') + ElementStyleUtil.remove(this.element, 'right') + ElementStyleUtil.remove(this.element, 'z-index') + ElementStyleUtil.remove(this.element, 'position') + } + + private enable = (update: boolean = false) => { + const top = this.getOption('top') + const left = this.getOption('left') + // const right = this.getOption("right"); + let width = this.getOption('width') + const zindex = this.getOption('zindex') + + if (update !== true && this.getOption('animation') === true) { + ElementStyleUtil.set(this.element, 'animationDuration', this.getOption('animationSpeed')) + ElementAnimateUtil.animateClass(this.element, 'animation ' + this.getOption('animationClass')) + } + + if (zindex !== null) { + ElementStyleUtil.set(this.element, 'z-index', zindex) + ElementStyleUtil.set(this.element, 'position', 'fixed') + } + + if (top !== null) { + ElementStyleUtil.set(this.element, 'top', top) + } + + if (width !== null && width !== undefined) { + const widthTarget = getObjectPropertyValueByKey(width, 'target') + if (widthTarget) { + const targetElement = document.querySelector(widthTarget) + if (targetElement) { + width = getCSS(targetElement, 'width') + } + } + ElementStyleUtil.set(this.element, 'width', width) + } + + if (left !== null) { + if (String(left).toLowerCase() === 'auto') { + var offsetLeft = getElementOffset(this.element).left + + if (offsetLeft > 0) { + ElementStyleUtil.set(this.element, 'left', String(offsetLeft) + 'px') + } + } + } + } + + public update = () => { + if (document.body.hasAttribute(this.attributeName) === true) { + this.disable() + document.body.removeAttribute(this.attributeName) + this.enable(true) + document.body.setAttribute(this.attributeName, 'on') + } + } + + // Event API + public on = (name: string, callBack: Function) => { + return EventHandlerUtil.on(this.element, name, callBack) + } + + public one = (name: string, callback: Function) => { + return EventHandlerUtil.one(this.element, name, callback) + } + + public off = (name: string, handlerId: string) => { + return EventHandlerUtil.off(this.element, name, handlerId) + } + + public trigger = (name: string) => { + return EventHandlerUtil.trigger(this.element, name) + } + + // Static methods + public static hasInstace(element: HTMLElement) { + return DataUtil.has(element, 'sticky') + } + + public static getInstance(element: HTMLElement): StickyComponent | undefined { + if (element !== null && StickyComponent.hasInstace(element)) { + const data = DataUtil.get(element, 'sticky') + if (data) { + return data as StickyComponent + } + } + } + + // Create Instances + public static createInstances(selector: string) { + const elements = document.body.querySelectorAll(selector) + elements.forEach((element) => { + const item = element as HTMLElement + let sticky = StickyComponent.getInstance(item) + if (!sticky) { + sticky = new StickyComponent(item, defaultStickyOptions) + } + }) + } + + public static createInsance = ( + selector: string, + options: StickyOptions = defaultStickyOptions + ): StickyComponent | undefined => { + const element = document.body.querySelector(selector) + if (!element) { + return + } + const item = element as HTMLElement + let sticky = StickyComponent.getInstance(item) + if (!sticky) { + sticky = new StickyComponent(item, options) + } + return sticky + } + + public static bootstrap(attr: string = '[data-kt-sticky="true"]') { + StickyComponent.createInstances(attr) + } + + public static reInitialization(attr: string = '[data-kt-sticky="true"]') { + StickyComponent.createInstances(attr) + } +} + +export {StickyComponent, defaultStickyOptions} diff --git a/src/_metronic/assets/ts/components/_SwapperComponent.ts b/src/_metronic/assets/ts/components/_SwapperComponent.ts new file mode 100644 index 0000000..31e99e8 --- /dev/null +++ b/src/_metronic/assets/ts/components/_SwapperComponent.ts @@ -0,0 +1,210 @@ +import { + getAttributeValueByBreakpoint, + stringSnakeToCamel, + getObjectPropertyValueByKey, + EventHandlerUtil, + throttle, +} from '../_utils/index' + +export class SwapperStore { + static store: Map = new Map() + + public static set(instanceId: string, drawerComponentObj: SwapperComponent): void { + if (SwapperStore.has(instanceId)) { + return + } + + SwapperStore.store.set(instanceId, drawerComponentObj) + } + + public static get(instanceId: string): SwapperComponent | undefined { + if (!SwapperStore.has(instanceId)) { + return + } + return SwapperStore.store.get(instanceId) + } + + public static remove(instanceId: string): void { + if (!SwapperStore.has(instanceId)) { + return + } + + SwapperStore.store.delete(instanceId) + } + + public static has(instanceId: string): boolean { + return SwapperStore.store.has(instanceId) + } + + public static getAllInstances() { + return SwapperStore.store + } +} + +export interface ISwapperOptions { + mode: string +} + +export interface ISwapperQueries { + componentName: string + instanseQuery: string + attrQuery: string +} + +const defaultSwapperOptions: ISwapperOptions = { + mode: 'append', +} + +const defaultSwapperQueires: ISwapperQueries = { + componentName: 'swapper', + instanseQuery: '[data-kt-swapper="true"]', + attrQuery: 'data-kt-swapper-', +} + +class SwapperComponent { + element: HTMLElement + options: ISwapperOptions + queries: ISwapperQueries + + constructor(_element: HTMLElement, _options: ISwapperOptions, _queries: ISwapperQueries) { + this.element = _element + this.options = Object.assign(defaultSwapperOptions, _options) + this.queries = _queries + + // Initial update + this.update() + + SwapperStore.set(this.element.id, this) + } + + private getOption(name: string) { + const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`) + if (attr) { + let value = getAttributeValueByBreakpoint(attr) + if (attr != null && String(value) === 'true') { + return true + } else if (value !== null && String(value) === 'false') { + return false + } + return value + } else { + const optionName = stringSnakeToCamel(name) + const option = getObjectPropertyValueByKey(this.options, optionName) + if (option) { + return getAttributeValueByBreakpoint(option) + } else { + return null + } + } + } + + /////////////////////// + // ** Public API ** // + /////////////////////// + public update = () => { + const parentSelector = this.getOption('parent')?.toString() + const mode = this.getOption('mode') + const parentElement = parentSelector ? document.querySelector(parentSelector) : null + if (parentElement && this.element.parentNode !== parentElement) { + const alreadyPended = document.getElementById('kt_header_menu') !== null + if (!alreadyPended) { + if (mode === 'prepend') { + parentElement.prepend(this.element) + } else if (mode === 'append') { + parentElement.append(this.element) + } + } + } + } + + // Event API + public on = (name: string, handler: Function) => { + return EventHandlerUtil.on(this.element, name, handler) + } + + public one = (name: string, handler: Function) => { + return EventHandlerUtil.one(this.element, name, handler) + } + + public off = (name: string, handlerId: string) => { + return EventHandlerUtil.off(this.element, name, handlerId) + } + + public trigger = (name: string, event: Event) => { + return EventHandlerUtil.trigger(this.element, name, event) + } + + // Static methods + public static getInstance = ( + el: HTMLElement, + componentName: string = defaultSwapperQueires.componentName + ): SwapperComponent | null => { + const place = SwapperStore.get(el.id) + if (place) { + return place as SwapperComponent + } + + return null + } + + public static createInstances = ( + selector: string = defaultSwapperQueires.instanseQuery, + options: ISwapperOptions = defaultSwapperOptions, + queries: ISwapperQueries = defaultSwapperQueires + ) => { + const elements = document.body.querySelectorAll(selector) + elements.forEach((el) => { + const item = el as HTMLElement + let place = SwapperComponent.getInstance(item) + if (!place) { + place = new SwapperComponent(item, options, queries) + } + }) + } + + public static createInsance = ( + selector: string = defaultSwapperQueires.instanseQuery, + options: ISwapperOptions = defaultSwapperOptions, + queries: ISwapperQueries = defaultSwapperQueires + ): SwapperComponent | undefined => { + const element = document.body.querySelector(selector) + if (!element) { + return + } + const item = element as HTMLElement + let place = SwapperComponent.getInstance(item) + if (!place) { + place = new SwapperComponent(item, options, queries) + } + return place + } + + public static bootstrap = (selector: string = defaultSwapperQueires.instanseQuery) => { + SwapperComponent.createInstances(selector) + } + + public static reinitialization = (selector: string = defaultSwapperQueires.instanseQuery) => { + SwapperComponent.createInstances(selector) + } +} + +// Window resize handler +window.addEventListener('resize', function () { + let timer + throttle( + timer, + () => { + // Locate and update Offcanvas instances on window resize + const elements = document.querySelectorAll(defaultSwapperQueires.instanseQuery) + elements.forEach((el) => { + const place = SwapperComponent.getInstance(el as HTMLElement) + if (place) { + place.update() + } + }) + }, + 200 + ) +}) + +export {SwapperComponent, defaultSwapperOptions, defaultSwapperQueires} diff --git a/src/_metronic/assets/ts/components/_ToggleComponent.ts b/src/_metronic/assets/ts/components/_ToggleComponent.ts new file mode 100644 index 0000000..9119b94 --- /dev/null +++ b/src/_metronic/assets/ts/components/_ToggleComponent.ts @@ -0,0 +1,200 @@ +import {DataUtil, getUniqueIdWithPrefix, EventHandlerUtil} from '../_utils/index' +// Helpers +import {CookieComponent} from './_CookieComponent' + +export interface ToggleOptions { + saveState: boolean + targetState?: string + toggleState?: string + targetToggleMode?: string +} + +const defaultToggleOptions: ToggleOptions = { + saveState: false, +} + +class ToggleComponent { + element: HTMLElement + instanceUid: string + options: ToggleOptions + state: string = '' + mode: string = '' + target: HTMLElement | null = null + attribute: string = '' + + constructor(_element: HTMLElement, options: ToggleOptions) { + this.options = Object.assign(defaultToggleOptions, options) + this.instanceUid = getUniqueIdWithPrefix('toggle') + this.element = _element + + const elementTargetAttr = this.element.getAttribute('data-kt-toggle-target') + if (elementTargetAttr) { + this.target = document.querySelector(elementTargetAttr) + } + const elementToggleAttr = this.element.getAttribute('data-kt-toggle-state') + this.state = elementToggleAttr || '' + const elementModeAttr = this.element.getAttribute('data-kt-toggle-mode') + this.mode = elementModeAttr || '' + this.attribute = 'data-kt-' + this.element.getAttribute('data-kt-toggle-name') + + // Event Handlers + this._handlers() + + // Update Instance + // Bind Instance + DataUtil.set(this.element, 'toggle', this) + } + + private _handlers = () => { + this.element.addEventListener('click', (e: Event) => { + e.preventDefault() + + if (this.mode === '') { + this._toggle() + return + } + + if (this.mode === 'off' && !this._isEnabled()) { + this._toggle() + } else if (this.mode === 'on' && this._isEnabled()) { + this._toggle() + } + }) + } + + // Event handlers + private _toggle = () => { + // Trigger "after.toggle" event + EventHandlerUtil.trigger(this.element, 'kt.toggle.change') + + if (this._isEnabled()) { + this._disable() + } else { + this._enable() + } + + // Trigger "before.toggle" event + EventHandlerUtil.trigger(this.element, 'kt.toggle.changed') + return this + } + + private _enable = () => { + if (this._isEnabled()) { + return + } + + EventHandlerUtil.trigger(this.element, 'kt.toggle.enable') + this.target?.setAttribute(this.attribute, 'on') + if (this.state.length > 0) { + this.element.classList.add(this.state) + } + + if (this.options.saveState) { + CookieComponent.set(this.attribute, 'on', {}) + } + + EventHandlerUtil.trigger(this.element, 'kt.toggle.enabled') + return this + } + + private _disable = () => { + if (!this._isEnabled()) { + return false + } + + EventHandlerUtil.trigger(this.element, 'kt.toggle.disable') + this.target?.removeAttribute(this.attribute) + + if (this.state.length > 0) { + this.element.classList.remove(this.state) + } + + if (this.options.saveState) { + CookieComponent.delete(this.attribute) + } + + EventHandlerUtil.trigger(this.element, 'kt.toggle.disabled') + return this + } + + private _isEnabled = () => { + if (!this.target) { + return false + } + + return String(this.target.getAttribute(this.attribute)).toLowerCase() === 'on' + } + + /////////////////////// + // ** Public API ** // + /////////////////////// + + // Plugin API + // Plugin API + public toggle = () => { + return this._toggle() + } + + public enable = () => { + return this._enable() + } + + public disable = () => { + return this._disable() + } + + public isEnabled = () => { + return this._isEnabled() + } + + public goElement = () => { + return this.element + } + + // Event API + public on = (name: string, handler: Function) => { + return EventHandlerUtil.on(this.element, name, handler) + } + + public one = (name: string, handler: Function) => { + return EventHandlerUtil.one(this.element, name, handler) + } + + public off = (name: string, handlerId: string) => { + return EventHandlerUtil.off(this.element, name, handlerId) + } + + public trigger = (name: string, event?: Event) => { + return EventHandlerUtil.trigger(this.element, name, event) + } + + // Static methods + public static getInstance = (el: HTMLElement) => { + const toggleElement = DataUtil.get(el, 'toggle') + if (toggleElement) { + return toggleElement + } + + return null + } + + public static createInstances = (selector: string) => { + const elements = document.body.querySelectorAll(selector) + elements.forEach((el) => { + let toggle = ToggleComponent.getInstance(el) + if (!toggle) { + toggle = new ToggleComponent(el, defaultToggleOptions) + } + }) + } + + public static reinitialization = () => { + ToggleComponent.createInstances('[data-kt-toggle]') + } + + public static bootstrap = () => { + ToggleComponent.createInstances('[data-kt-toggle]') + } +} + +export {ToggleComponent, defaultToggleOptions} diff --git a/src/_metronic/assets/ts/components/index.ts b/src/_metronic/assets/ts/components/index.ts new file mode 100644 index 0000000..bf59774 --- /dev/null +++ b/src/_metronic/assets/ts/components/index.ts @@ -0,0 +1,14 @@ +export * from './_CookieComponent' +export * from './_DrawerComponent' +export * from './_FeedbackComponent' +export * from './_ImageInputComponent' +export * from './_ScrollComponent' +export * from './_ScrollTopComponent' +export * from './_StepperComponent' +export * from './_StickyComponent' +export * from './_ToggleComponent' +// export * from './_DialerComponent'; +export * from './_PasswordMeterComponent' +export * from './_SwapperComponent' +export * from './MenuComponent' +export * from './SearchComponent' diff --git a/src/_metronic/assets/ts/index.ts b/src/_metronic/assets/ts/index.ts new file mode 100644 index 0000000..eb9a9f9 --- /dev/null +++ b/src/_metronic/assets/ts/index.ts @@ -0,0 +1,43 @@ +export * as KTUtil from './_utils/index' +export * as components from './components/index' +// declare global { +// interface Window { +// keenthemes: any; +// } +// } + +// window.keenthemes = { +// components: { +// ScrollTop: components.ScrollTopComponent, +// Coockie: components.CookieComponent, +// Drawer: components.DrawerComponent, +// Feedback: components.FeedbackComponent, +// ImageInput: components.ImageInputComponent, +// Scroll: components.ScrollComponent, +// Stepper: components.StepperComponent, +// Sticky: components.StickyComponent, +// Toggle: components.ToggleComponent, +// Menu: components.MenuComponent, +// Search: components.SearchComponent, +// Dialder: components.DialerComponent, +// PasswordMeter: components.PasswordMeterComponent, +// Place: components.PlaceComponent, +// defaultDialerOptions: components.defaultDialerOptions, +// defaultDialderQueries: components.defaultDialerQueires, +// defaultPasswordMeterOptions: components.defaultPasswordMeterOptions, +// defaultPasswordMeterQueries: components.defaultPasswordMeterQueires, +// defaultPlaceOptions: components.defaultPlaceOptions, +// defaultPlaceQueries: components.defaultPlaceQueires, +// defaultDrawerOptions: components.defaultDrawerOptions, +// defaultFeedbackOptions: components.defaultFeedbackOptions, +// defaultImageInputOptions: components.defaultImageInputOptions, +// defaultScrollOptions: components.defaultScrollOptions, +// defaultScrollTopOptions: components.defaultScrollTopOptions, +// defaultStepperOptions: components.defaultStepperOptions, +// defaultStickyOptions: components.defaultStickyOptions, +// defaultToggleOptions: components.defaultToggleOptions, +// defaultMenuOptions: components.defaultMenuOptions, +// defaultSearchOptions: components.defaultSearchOptions, +// }, +// utils: KTUtil, +// }; diff --git a/src/_metronic/assets/ts/layout/ThemeMode.ts b/src/_metronic/assets/ts/layout/ThemeMode.ts new file mode 100644 index 0000000..d96c629 --- /dev/null +++ b/src/_metronic/assets/ts/layout/ThemeMode.ts @@ -0,0 +1,195 @@ +import {themeMenuModeLSKey, themeModelSKey} from '../../../partials' +import {EventHandlerUtil} from '../_utils' + +type Mode = 'light' | 'dark' | 'system' + +class ThemeMode { + menu: HTMLElement | null = null + element: HTMLElement | null = null + + public getMode = (): Mode => { + const menuMode: Mode | '' = this.getMenuMode() + const defaultMode = 'light' + if (!localStorage) { + return defaultMode + } + + const ls = localStorage.getItem(themeModelSKey) + if (ls) { + return ls as Mode + } + + const dataTheme = this.element?.getAttribute('data-theme') + if (dataTheme) { + return dataTheme as Mode + } + + if (!menuMode) { + return defaultMode + } + + if (menuMode === 'system') { + return this.getSystemMode() + } + + return menuMode + } + + public setMode = (mode: Mode, menuMode: Mode | ''): void => { + // Check input values + if (mode !== 'light' && mode !== 'dark') { + return + } + + // Reset mode if system mode was changed + if (menuMode === 'system') { + if (this.getSystemMode() !== mode) { + mode = this.getSystemMode() + } + } + + // Check menu mode + if (!menuMode) { + menuMode = mode + } + + // Read active menu mode value + const activeMenuItem: HTMLElement | null = + this.menu?.querySelector('[data-kt-element="mode"][data-kt-value="' + menuMode + '"]') || null + + // Enable switching state + this.element?.setAttribute('data-kt-theme-mode-switching', 'true') + + // Set mode to the target element + this.element?.setAttribute('data-theme', mode) + + // Disable switching state + const self = this + setTimeout(function () { + self.element?.removeAttribute('data-kt-theme-mode-switching') + }, 300) + + // Store mode value in storage + if (localStorage) { + localStorage.setItem(themeModelSKey, mode) + } + + // Set active menu item + if (activeMenuItem && localStorage) { + localStorage.setItem(themeMenuModeLSKey, menuMode) + this.setActiveMenuItem(activeMenuItem) + } + + // Flip images + this.flipImages() + } + + public getMenuMode = (): Mode | '' => { + const menuItem = this.menu?.querySelector('.active[data-kt-element="mode"]') + const dataKTValue = menuItem?.getAttribute('data-kt-value') + if (dataKTValue) { + return dataKTValue as Mode + } + + const ls = localStorage ? localStorage.getItem(themeMenuModeLSKey) : null + return (ls as Mode) || '' + } + + public getSystemMode = (): Mode => { + return window.matchMedia('(prefers-color-scheme: dark)') ? 'dark' : 'light' + } + + private initMode = (): void => { + this.setMode(this.getMode(), this.getMenuMode()) + if (this.element) { + EventHandlerUtil.trigger(this.element, 'kt.thememode.init') + } + } + + private getActiveMenuItem = (): HTMLElement | null => { + return ( + this.menu?.querySelector( + '[data-kt-element="mode"][data-kt-value="' + this.getMenuMode() + '"]' + ) || null + ) + } + + private setActiveMenuItem = (item: HTMLElement): void => { + const menuMode = item.getAttribute('data-kt-value') + const activeItem = this.menu?.querySelector('.active[data-kt-element="mode"]') + if (activeItem) { + activeItem.classList.remove('active') + } + + item.classList.add('active') + if (localStorage && menuMode) { + localStorage.setItem(themeMenuModeLSKey, menuMode) + } + } + + private handleMenu = (): void => { + this.menu + ?.querySelectorAll('[data-kt-element="mode"]') + ?.forEach((item: HTMLElement) => { + item.addEventListener('click', (e) => { + e.preventDefault() + + const menuMode: string | null = item.getAttribute('data-kt-value') + const mode = menuMode === 'system' ? this.getSystemMode() : menuMode + + if (mode) { + this.setMode(mode as Mode, menuMode as Mode | '') + } + }) + }) + } + + public flipImages = () => { + document.querySelectorAll('[data-kt-img-dark]')?.forEach((item: HTMLElement) => { + if (item.tagName === 'IMG') { + if (this.getMode() === 'dark' && item.hasAttribute('data-kt-img-dark')) { + item.setAttribute('data-kt-img-light', item.getAttribute('src') || '') + item.setAttribute('src', item.getAttribute('data-kt-img-dark') || '') + } else if (this.getMode() === 'light' && item.hasAttribute('data-kt-img-light')) { + item.setAttribute('data-kt-img-dark', item.getAttribute('src') || '') + item.setAttribute('src', item.getAttribute('data-kt-img-light') || '') + } + } else { + if (this.getMode() === 'dark' && item.hasAttribute('data-kt-img-dark')) { + item.setAttribute('data-kt-img-light', item.getAttribute('src') || '') + item.style.backgroundImage = "url('" + item.getAttribute('data-kt-img-dark') + "')" + } else if (this.getMode() === 'light' && item.hasAttribute('data-kt-img-light')) { + item.setAttribute('data-kt-img-dark', item.getAttribute('src') || '') + item.style.backgroundImage = "url('" + item.getAttribute('data-kt-img-light') + "')" + } + } + }) + } + + public on = (name: string, hander: Function) => { + if (this.element) { + return EventHandlerUtil.on(this.element, name, hander) + } + } + + public off = (name: string, handlerId: string) => { + if (this.element) { + return EventHandlerUtil.off(this.element, name, handlerId) + } + } + + public init = () => { + this.menu = document.querySelector('[data-kt-element="theme-mode-menu"]') + this.element = document.documentElement + + this.initMode() + + if (this.menu) { + this.handleMenu() + } + } +} + +const ThemeModeComponent = new ThemeMode() +// Initialize app on document ready => ThemeModeComponent.init() +export {ThemeModeComponent} diff --git a/src/_metronic/assets/ts/layout/index.ts b/src/_metronic/assets/ts/layout/index.ts new file mode 100644 index 0000000..8b157b2 --- /dev/null +++ b/src/_metronic/assets/ts/layout/index.ts @@ -0,0 +1 @@ +export * from './ThemeMode' diff --git a/src/_metronic/helpers/AssetHelpers.ts b/src/_metronic/helpers/AssetHelpers.ts new file mode 100644 index 0000000..821a9d8 --- /dev/null +++ b/src/_metronic/helpers/AssetHelpers.ts @@ -0,0 +1 @@ +export const toAbsoluteUrl = (pathname: string) => process.env.PUBLIC_URL + pathname diff --git a/src/_metronic/helpers/RouterHelpers.ts b/src/_metronic/helpers/RouterHelpers.ts new file mode 100644 index 0000000..7cc10dc --- /dev/null +++ b/src/_metronic/helpers/RouterHelpers.ts @@ -0,0 +1,20 @@ +export function getCurrentUrl(pathname: string) { + return pathname.split(/[?#]/)[0] +} + +export function checkIsActive(pathname: string, url: string) { + const current = getCurrentUrl(pathname) + if (!current || !url) { + return false + } + + if (current === url) { + return true + } + + if (current.indexOf(url) > -1) { + return true + } + + return false +} diff --git a/src/_metronic/helpers/components/KTCard.tsx b/src/_metronic/helpers/components/KTCard.tsx new file mode 100644 index 0000000..dace09c --- /dev/null +++ b/src/_metronic/helpers/components/KTCard.tsx @@ -0,0 +1,62 @@ +import {FC} from 'react' +import clsx from 'clsx' +import {WithChildren} from '../react18MigrationHelpers' + +// Wrapper on html card: +// https://preview.keenthemes.com/metronic8/demo1/documentation/base/cards.html + +type Props = { + className?: string + shadow?: boolean + flush?: boolean // https://preview.keenthemes.com/metronic8/demo1/documentation/base/cards.html#flush + resetSidePaddings?: boolean // https://preview.keenthemes.com/metronic8/demo1/documentation/base/cards.html#reset-side-paddings + border?: boolean // https://preview.keenthemes.com/metronic8/demo1/documentation/base/cards.html#bordered + dashed?: boolean // https://preview.keenthemes.com/metronic8/demo1/documentation/base/cards.html#dashed + stretch?: 'stretch' | 'stretch-75' | 'stretch-50' | 'stretch-33' | 'stretch-25' // https://preview.keenthemes.com/metronic8/demo1/documentation/base/cards.html#stretch + rounded?: 'rounded' | 'rounded-top' | 'rounded-bottom' + // https://preview.keenthemes.com/metronic8/demo1/documentation/base/cards.html#utilities + utilityP?: number + utilityPY?: number + utilityPX?: number +} + +const KTCard: FC = (props) => { + const { + className, + shadow, + flush, + resetSidePaddings, + border, + dashed, + stretch, + rounded, + utilityP, + utilityPY, + utilityPX, + children, + } = props + return ( +
+ {children} +
+ ) +} + +export {KTCard} diff --git a/src/_metronic/helpers/components/KTCardBody.tsx b/src/_metronic/helpers/components/KTCardBody.tsx new file mode 100644 index 0000000..3611852 --- /dev/null +++ b/src/_metronic/helpers/components/KTCardBody.tsx @@ -0,0 +1,29 @@ +import clsx from 'clsx' +import {FC} from 'react' +import {WithChildren} from '../react18MigrationHelpers' + +type Props = { + className?: string + scroll?: boolean + height?: number +} + +const KTCardBody: FC = (props) => { + const {className, scroll, height, children} = props + return ( +
+ {children} +
+ ) +} + +export {KTCardBody} diff --git a/src/_metronic/helpers/components/KTSVG.tsx b/src/_metronic/helpers/components/KTSVG.tsx new file mode 100644 index 0000000..112d069 --- /dev/null +++ b/src/_metronic/helpers/components/KTSVG.tsx @@ -0,0 +1,18 @@ +import React from 'react' +import SVG from 'react-inlinesvg' +import {toAbsoluteUrl} from '../AssetHelpers' +type Props = { + className?: string + path: string + svgClassName?: string +} + +const KTSVG: React.FC = ({className = '', path, svgClassName = 'mh-50px'}) => { + return ( + + + + ) +} + +export {KTSVG} diff --git a/src/_metronic/helpers/crud-helper/consts.ts b/src/_metronic/helpers/crud-helper/consts.ts new file mode 100644 index 0000000..8c09903 --- /dev/null +++ b/src/_metronic/helpers/crud-helper/consts.ts @@ -0,0 +1,5 @@ +const QUERIES = { + USERS_LIST: 'users-list', +} + +export {QUERIES} diff --git a/src/_metronic/helpers/crud-helper/helpers.tsx b/src/_metronic/helpers/crud-helper/helpers.tsx new file mode 100644 index 0000000..9208603 --- /dev/null +++ b/src/_metronic/helpers/crud-helper/helpers.tsx @@ -0,0 +1,124 @@ +import {createContext, Dispatch, SetStateAction, useEffect, useState} from 'react' +import qs from 'qs' +import {ID, QueryResponseContextProps, QueryState} from './models' + +function createResponseContext(initialState: QueryResponseContextProps) { + return createContext(initialState) +} + +function isNotEmpty(obj: unknown) { + return obj !== undefined && obj !== null && obj !== '' +} + +// Example: page=1&items_per_page=10&sort=id&order=desc&search=a&filter_name=a&filter_online=false +function stringifyRequestQuery(state: QueryState): string { + const pagination = qs.stringify(state, {filter: ['page', 'items_per_page'], skipNulls: true}) + const sort = qs.stringify(state, {filter: ['sort', 'order'], skipNulls: true}) + const search = isNotEmpty(state.search) + ? qs.stringify(state, {filter: ['search'], skipNulls: true}) + : '' + + const filter = state.filter + ? Object.entries(state.filter as Object) + .filter((obj) => isNotEmpty(obj[1])) + .map((obj) => { + return `filter_${obj[0]}=${obj[1]}` + }) + .join('&') + : '' + + return [pagination, sort, search, filter] + .filter((f) => f) + .join('&') + .toLowerCase() +} + +function parseRequestQuery(query: string): QueryState { + const cache: unknown = qs.parse(query) + return cache as QueryState +} + +function calculatedGroupingIsDisabled(isLoading: boolean, data: Array | undefined): boolean { + if (isLoading) { + return true + } + + return !data || !data.length +} + +function calculateIsAllDataSelected(data: Array | undefined, selected: Array): boolean { + if (!data) { + return false + } + + return data.length > 0 && data.length === selected.length +} + +function groupingOnSelect( + id: ID, + selected: Array, + setSelected: Dispatch>> +) { + if (!id) { + return + } + + if (selected.includes(id)) { + setSelected(selected.filter((itemId) => itemId !== id)) + } else { + const updatedSelected = [...selected] + updatedSelected.push(id) + setSelected(updatedSelected) + } +} + +function groupingOnSelectAll( + isAllSelected: boolean, + setSelected: Dispatch>>, + data?: Array +) { + if (isAllSelected) { + setSelected([]) + return + } + + if (!data || !data.length) { + return + } + + setSelected(data.filter((item) => item.id).map((item) => item.id)) +} + +// Hook +function useDebounce(value: string | undefined, delay: number) { + // State and setters for debounced value + const [debouncedValue, setDebouncedValue] = useState(value) + useEffect( + () => { + // Update debounced value after delay + const handler = setTimeout(() => { + setDebouncedValue(value) + }, delay) + // Cancel the timeout if value changes (also on delay change or unmount) + // This is how we prevent debounced value from updating if value is changed ... + // .. within the delay period. Timeout gets cleared and restarted. + return () => { + clearTimeout(handler) + } + }, + [value, delay] // Only re-call effect if value or delay changes + ) + return debouncedValue +} + +export { + createResponseContext, + stringifyRequestQuery, + parseRequestQuery, + calculatedGroupingIsDisabled, + calculateIsAllDataSelected, + groupingOnSelect, + groupingOnSelectAll, + useDebounce, + isNotEmpty, +} diff --git a/src/_metronic/helpers/crud-helper/models.ts b/src/_metronic/helpers/crud-helper/models.ts new file mode 100644 index 0000000..3f36d9f --- /dev/null +++ b/src/_metronic/helpers/crud-helper/models.ts @@ -0,0 +1,83 @@ +import {Dispatch, SetStateAction} from 'react' + +export type ID = undefined | null | number + +export type PaginationState = { + page: number + items_per_page: 10 | 30 | 50 | 100 + links?: Array<{label: string; active: boolean; url: string | null; page: number | null}> +} + +export type SortState = { + sort?: string + order?: 'asc' | 'desc' +} + +export type FilterState = { + filter?: unknown +} + +export type SearchState = { + search?: string +} + +export type Response = { + data?: T + payload?: { + message?: string + errors?: { + [key: string]: Array + } + pagination?: PaginationState + } +} + +export type QueryState = PaginationState & SortState & FilterState & SearchState + +export type QueryRequestContextProps = { + state: QueryState + updateState: (updates: Partial) => void +} + +export const initialQueryState: QueryState = { + page: 1, + items_per_page: 10, +} + +export const initialQueryRequest: QueryRequestContextProps = { + state: initialQueryState, + updateState: () => {}, +} + +export type QueryResponseContextProps = { + response?: Response> | undefined + refetch: () => void + isLoading: boolean + query: string +} + +export const initialQueryResponse = {refetch: () => {}, isLoading: false, query: ''} + +export type ListViewContextProps = { + selected: Array + onSelect: (selectedId: ID) => void + onSelectAll: () => void + clearSelected: () => void + // NULL => (CREATION MODE) | MODAL IS OPENED + // NUMBER => (EDIT MODE) | MODAL IS OPENED + // UNDEFINED => MODAL IS CLOSED + itemIdForUpdate?: ID + setItemIdForUpdate: Dispatch> + isAllSelected: boolean + disabled: boolean +} + +export const initialListView: ListViewContextProps = { + selected: [], + onSelect: () => {}, + onSelectAll: () => {}, + clearSelected: () => {}, + setItemIdForUpdate: () => {}, + isAllSelected: false, + disabled: false, +} diff --git a/src/_metronic/helpers/dataExamples.ts b/src/_metronic/helpers/dataExamples.ts new file mode 100644 index 0000000..1aa0a31 --- /dev/null +++ b/src/_metronic/helpers/dataExamples.ts @@ -0,0 +1,281 @@ +export interface MessageModel { + user: number + type: 'in' | 'out' + text: string + time: string + template?: boolean +} + +const defaultMessages: Array = [ + { + user: 4, + type: 'in', + text: 'How likely are you to recommend our company to your friends and family ?', + time: '2 mins', + }, + { + user: 2, + type: 'out', + text: 'Hey there, we’re just writing to let you know that you’ve been subscribed to a repository on GitHub.', + time: '5 mins', + }, + { + user: 4, + type: 'in', + text: 'Ok, Understood!', + time: '1 Hour', + }, + { + user: 2, + type: 'out', + text: 'You’ll receive notifications for all issues, pull requests!', + time: '2 Hours', + }, + { + user: 4, + type: 'in', + text: 'You can unwatch this repository immediately by clicking here: Keenthemes.com', + time: '3 Hours', + }, + { + user: 2, + type: 'out', + text: 'Most purchased Business courses during this sale!', + time: '4 Hours', + }, + { + user: 4, + type: 'in', + text: 'Company BBQ to celebrate the last quater achievements and goals. Food and drinks provided', + time: '5 Hours', + }, + { + template: true, + user: 2, + type: 'out', + text: '', + time: 'Just now', + }, + { + template: true, + user: 4, + type: 'in', + text: 'Right before vacation season we have the next Big Deal for you.', + time: 'Just now', + }, +] + +export interface UserInfoModel { + initials?: {label: string; state: 'warning' | 'danger' | 'primary' | 'success' | 'info'} + name: string + avatar?: string + email: string + position: string + online: boolean +} + +const defaultUserInfos: Array = [ + { + name: 'Emma Smith', + avatar: 'avatars/300-6.jpg', + email: 'e.smith@kpmg.com.au', + position: 'Art Director', + online: false, + }, + { + name: 'Melody Macy', + initials: {label: 'M', state: 'danger'}, + email: 'melody@altbox.com', + position: 'Marketing Analytic', + online: true, + }, + { + name: 'Max Smith', + avatar: 'avatars/300-1.jpg', + email: 'max@kt.com', + position: 'Software Enginer', + online: false, + }, + { + name: 'Sean Bean', + avatar: 'avatars/300-5.jpg', + email: 'sean@dellito.com', + position: 'Web Developer', + online: false, + }, + { + name: 'Brian Cox', + avatar: 'avatars/300-25.jpg', + email: 'brian@exchange.com', + position: 'UI/UX Designer', + online: false, + }, + { + name: 'Mikaela Collins', + initials: {label: 'M', state: 'warning'}, + email: 'mikaela@pexcom.com', + position: 'Head Of Marketing', + online: true, + }, + { + name: 'Francis Mitcham', + avatar: 'avatars/300-9.jpg', + email: 'f.mitcham@kpmg.com.au', + position: 'Software Arcitect', + online: false, + }, + + { + name: 'Olivia Wild', + initials: {label: 'O', state: 'danger'}, + email: 'olivia@corpmail.com', + position: 'System Admin', + online: true, + }, + { + name: 'Neil Owen', + initials: {label: 'N', state: 'primary'}, + email: 'owen.neil@gmail.com', + position: 'Account Manager', + online: true, + }, + { + name: 'Dan Wilson', + avatar: 'avatars/300-23.jpg', + email: 'dam@consilting.com', + position: 'Web Desinger', + online: false, + }, + { + name: 'Emma Bold', + initials: {label: 'E', state: 'danger'}, + email: 'emma@intenso.com', + position: 'Corporate Finance', + online: true, + }, + { + name: 'Ana Crown', + avatar: 'avatars/300-12.jpg', + email: 'ana.cf@limtel.com', + position: 'Customer Relationship', + online: false, + }, + { + name: 'Robert Doe', + initials: {label: 'A', state: 'info'}, + email: 'robert@benko.com', + position: 'Marketing Executive', + online: true, + }, + { + name: 'John Miller', + avatar: 'avatars/300-13.jpg', + email: 'miller@mapple.com', + position: 'Project Manager', + online: false, + }, + { + name: 'Lucy Kunic', + initials: {label: 'L', state: 'success'}, + email: 'lucy.m@fentech.com', + position: 'SEO Master', + online: true, + }, + { + name: 'Ethan Wilder', + avatar: 'avatars/300-21.jpg', + email: 'ethan@loop.com.au', + position: 'Accountant', + online: true, + }, +] + +const messageFromClient: MessageModel = { + user: 4, + type: 'in', + text: 'Thank you for your awesome support!', + time: 'Just now', +} + +export interface AlertModel { + title: string + description: string + time: string + icon: string + state: 'primary' | 'danger' | 'warning' | 'success' | 'info' +} + +const defaultAlerts: Array = [ + { + title: 'Project Alice', + description: 'Phase 1 development', + time: '1 hr', + icon: 'icons/duotune/technology/teh008.svg', + state: 'primary', + }, + { + title: 'HR Confidential', + description: 'Confidential staff documents', + time: '2 hrs', + icon: 'icons/duotune/general/gen044.svg', + state: 'danger', + }, + { + title: 'Company HR', + description: 'Corporeate staff profiles', + time: '5 hrs', + icon: 'icons/duotune/finance/fin006.svg', + state: 'warning', + }, + { + title: 'Project Red', + description: 'New frontend admin theme', + time: '2 days', + icon: 'icons/duotune/files/fil023.svg', + state: 'success', + }, + { + title: 'Project Breafing', + description: 'Product launch status update', + time: '21 Jan', + icon: 'icons/duotune/maps/map001.svg', + state: 'primary', + }, + { + title: 'Banner Assets', + description: 'Collection of banner images', + time: '21 Jan', + icon: 'icons/duotune/general/gen006.svg', + state: 'info', + }, + { + title: 'Icon Assets', + description: 'Collection of SVG icons', + time: '20 March', + icon: 'icons/duotune/art/art002.svg', + state: 'warning', + }, +] +export interface LogModel { + code: string + state: 'success' | 'danger' | 'warning' + message: string + time: string +} + +const defaultLogs: Array = [ + {code: '200 OK', state: 'success', message: 'New order', time: 'Just now'}, + {code: '500 ERR', state: 'danger', message: 'New customer', time: '2 hrs'}, + {code: '200 OK', state: 'success', message: 'Payment process', time: '5 hrs'}, + {code: '300 WRN', state: 'warning', message: 'Search query', time: '2 days'}, + {code: '200 OK', state: 'success', message: 'API connection', time: '1 week'}, + {code: '200 OK', state: 'success', message: 'Database restore', time: 'Mar 5'}, + {code: '300 WRN', state: 'warning', message: 'System update', time: 'May 15'}, + {code: '300 WRN', state: 'warning', message: 'Server OS update', time: 'Apr 3'}, + {code: '300 WRN', state: 'warning', message: 'API rollback', time: 'Jun 30'}, + {code: '500 ERR', state: 'danger', message: 'Refund process', time: 'Jul 10'}, + {code: '500 ERR', state: 'danger', message: 'Withdrawal process', time: 'Sep 10'}, + {code: '500 ERR', state: 'danger', message: 'Mail tasks', time: 'Dec 10'}, +] + +export {defaultMessages, defaultUserInfos, defaultAlerts, defaultLogs, messageFromClient} diff --git a/src/_metronic/helpers/index.ts b/src/_metronic/helpers/index.ts new file mode 100644 index 0000000..095f84d --- /dev/null +++ b/src/_metronic/helpers/index.ts @@ -0,0 +1,10 @@ +export * from './AssetHelpers' +export * from './RouterHelpers' +export * from './components/KTSVG' +export * from './components/KTCard' +export * from './components/KTCardBody' +export * from './dataExamples' +export * from './crud-helper/helpers' +export * from './crud-helper/models' +export * from './crud-helper/consts' +export * from './react18MigrationHelpers' \ No newline at end of file diff --git a/src/_metronic/helpers/react18MigrationHelpers.ts b/src/_metronic/helpers/react18MigrationHelpers.ts new file mode 100644 index 0000000..256f0a2 --- /dev/null +++ b/src/_metronic/helpers/react18MigrationHelpers.ts @@ -0,0 +1,14 @@ +import {ReactNode} from 'react' +import {MenuComponent} from '../assets/ts/components' + +type WithChildren = { + children?: ReactNode +} + +const reInitMenu = () => { + setTimeout(() => { + MenuComponent.reinitialization() + }, 500) +} + +export {type WithChildren, reInitMenu} diff --git a/src/_metronic/i18n/Metronici18n.tsx b/src/_metronic/i18n/Metronici18n.tsx new file mode 100644 index 0000000..2ba569c --- /dev/null +++ b/src/_metronic/i18n/Metronici18n.tsx @@ -0,0 +1,42 @@ +import React, {FC, createContext, useContext} from 'react' +import {WithChildren} from '../helpers' + +const I18N_CONFIG_KEY = process.env.REACT_APP_I18N_CONFIG_KEY || 'i18nConfig' + +type Props = { + selectedLang: 'de' | 'en' | 'es' | 'fr' | 'ja' | 'zh' +} +const initialState: Props = { + selectedLang: 'en', +} + +function getConfig(): Props { + const ls = localStorage.getItem(I18N_CONFIG_KEY) + if (ls) { + try { + return JSON.parse(ls) as Props + } catch (er) { + console.error(er) + } + } + return initialState +} + +// Side effect +export function setLanguage(lang: string) { + localStorage.setItem(I18N_CONFIG_KEY, JSON.stringify({selectedLang: lang})) + window.location.reload() +} + +const I18nContext = createContext(initialState) + +const useLang = () => { + return useContext(I18nContext).selectedLang +} + +const MetronicI18nProvider: FC = ({children}) => { + const lang = getConfig() + return {children} +} + +export {MetronicI18nProvider, useLang} diff --git a/src/_metronic/i18n/i18nProvider.tsx b/src/_metronic/i18n/i18nProvider.tsx new file mode 100644 index 0000000..2ed481f --- /dev/null +++ b/src/_metronic/i18n/i18nProvider.tsx @@ -0,0 +1,40 @@ +import {FC} from 'react' +import {useLang} from './Metronici18n' +import {IntlProvider} from 'react-intl' +import '@formatjs/intl-relativetimeformat/polyfill' +import '@formatjs/intl-relativetimeformat/locale-data/en' +import '@formatjs/intl-relativetimeformat/locale-data/de' +import '@formatjs/intl-relativetimeformat/locale-data/es' +import '@formatjs/intl-relativetimeformat/locale-data/fr' +import '@formatjs/intl-relativetimeformat/locale-data/ja' +import '@formatjs/intl-relativetimeformat/locale-data/zh' + +import deMessages from './messages/de.json' +import enMessages from './messages/en.json' +import esMessages from './messages/es.json' +import frMessages from './messages/fr.json' +import jaMessages from './messages/ja.json' +import zhMessages from './messages/zh.json' +import { WithChildren } from '../helpers' + +const allMessages = { + de: deMessages, + en: enMessages, + es: esMessages, + fr: frMessages, + ja: jaMessages, + zh: zhMessages, +} + +const I18nProvider: FC = ({children}) => { + const locale = useLang() + const messages = allMessages[locale] + + return ( + + {children} + + ) +} + +export {I18nProvider} diff --git a/src/_metronic/i18n/messages/de.json b/src/_metronic/i18n/messages/de.json new file mode 100644 index 0000000..37ba3ce --- /dev/null +++ b/src/_metronic/i18n/messages/de.json @@ -0,0 +1,69 @@ +{ + "TRANSLATOR.SELECT": "Wähle deine Sprache", + "MENU.NEW": "Neu", + "MENU.ACTIONS": "Aktionen", + "MENU.CREATE_POST": "Erstellen Sie einen neuen Beitrag", + "MENU.PAGES": "Pages", + "MENU.FEATURES": "Eigenschaften", + "MENU.APPS": "Apps", + "MENU.DASHBOARD": "Instrumententafel", + "AUTH.GENERAL.OR": "Oder", + "AUTH.GENERAL.SUBMIT_BUTTON": "einreichen", + "AUTH.GENERAL.NO_ACCOUNT": "Hast du kein Konto?", + "AUTH.GENERAL.SIGNUP_BUTTON": "Anmelden", + "AUTH.GENERAL.FORGOT_BUTTON": "Passwort vergessen", + "AUTH.GENERAL.BACK_BUTTON": "Zurück", + "AUTH.GENERAL.PRIVACY": "Privatsphäre", + "AUTH.GENERAL.LEGAL": "Legal", + "AUTH.GENERAL.CONTACT": "Kontakt", + "AUTH.LOGIN.TITLE": "Create Account", + "AUTH.LOGIN.BUTTON": "Sign In", + "AUTH.FORGOT.TITLE": "Forgotten Password?", + "AUTH.FORGOT.DESC": "Enter your email to reset your password", + "AUTH.FORGOT.SUCCESS": "Your account has been successfully reset.", + "AUTH.REGISTER.TITLE": "Sign Up", + "AUTH.REGISTER.DESC": "Enter your details to create your account", + "AUTH.REGISTER.SUCCESS": "Your account has been successfuly registered.", + "AUTH.INPUT.EMAIL": "Email", + "AUTH.INPUT.FULLNAME": "Fullname", + "AUTH.INPUT.PASSWORD": "Password", + "AUTH.INPUT.CONFIRM_PASSWORD": "Confirm Password", + "AUTH.INPUT.USERNAME": "Nutzername", + "AUTH.VALIDATION.INVALID": "{name} is not valid", + "AUTH.VALIDATION.REQUIRED": "{name} is required", + "AUTH.VALIDATION.MIN_LENGTH": "{name}} minimum length is {{min}", + "AUTH.VALIDATION.AGREEMENT_REQUIRED": "Accepting terms & conditions are required", + "AUTH.VALIDATION.NOT_FOUND": "The requested {name} is not found", + "AUTH.VALIDATION.INVALID_LOGIN": "The login detail is incorrect", + "AUTH.VALIDATION.REQUIRED_FIELD": "Required field", + "AUTH.VALIDATION.MIN_LENGTH_FIELD": "Minimum field length:", + "AUTH.VALIDATION.MAX_LENGTH_FIELD": "Maximum field length:", + "AUTH.VALIDATION.INVALID_FIELD": "Field is not valid", + "ECOMMERCE.COMMON.SELECTED_RECORDS_COUNT": "Selected records count: ", + "ECOMMERCE.COMMON.ALL": "All", + "ECOMMERCE.COMMON.SUSPENDED": "Suspended", + "ECOMMERCE.COMMON.ACTIVE": "Active", + "ECOMMERCE.COMMON.FILTER": "Filter", + "ECOMMERCE.COMMON.BY_STATUS": "by Status", + "ECOMMERCE.COMMON.BY_TYPE": "by Type", + "ECOMMERCE.COMMON.BUSINESS": "Business", + "ECOMMERCE.COMMON.INDIVIDUAL": "Individual", + "ECOMMERCE.COMMON.SEARCH": "Search", + "ECOMMERCE.COMMON.IN_ALL_FIELDS": "in all fields", + "ECOMMERCE.ECOMMERCE": "eCommerce", + "ECOMMERCE.CUSTOMERS.CUSTOMERS": "Customers", + "ECOMMERCE.CUSTOMERS.CUSTOMERS_LIST": "Customers list", + "ECOMMERCE.CUSTOMERS.NEW_CUSTOMER": "New Customer", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.TITLE": "Customer Delete", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.DESCRIPTION": "Are you sure to permanently delete this customer?", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.WAIT_DESCRIPTION": "Customer is deleting...", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.MESSAGE": "Customer has been deleted", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.TITLE": "Customers Delete", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.DESCRIPTION": "Are you sure to permanently delete selected customers?", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.WAIT_DESCRIPTION": "Customers are deleting...", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.MESSAGE": "Selected customers have been deleted", + "ECOMMERCE.CUSTOMERS.UPDATE_STATUS.TITLE": "Status has been updated for selected customers", + "ECOMMERCE.CUSTOMERS.UPDATE_STATUS.MESSAGE": "Selected customers status have successfully been updated", + "ECOMMERCE.CUSTOMERS.EDIT.UPDATE_MESSAGE": "Customer has been updated", + "ECOMMERCE.CUSTOMERS.EDIT.ADD_MESSAGE": "Customer has been created" +} diff --git a/src/_metronic/i18n/messages/en.json b/src/_metronic/i18n/messages/en.json new file mode 100644 index 0000000..1835e12 --- /dev/null +++ b/src/_metronic/i18n/messages/en.json @@ -0,0 +1,69 @@ +{ + "TRANSLATOR.SELECT": "Select your language", + "MENU.NEW": "new", + "MENU.ACTIONS": "Actions", + "MENU.CREATE_POST": "Create New Post", + "MENU.PAGES": "Pages", + "MENU.FEATURES": "Features", + "MENU.APPS": "Apps", + "MENU.DASHBOARD": "Dashboard", + "AUTH.GENERAL.OR": "Or", + "AUTH.GENERAL.SUBMIT_BUTTON": "Submit", + "AUTH.GENERAL.NO_ACCOUNT": "Don't have an account?", + "AUTH.GENERAL.SIGNUP_BUTTON": "Sign Up", + "AUTH.GENERAL.FORGOT_BUTTON": "Forgot Password", + "AUTH.GENERAL.BACK_BUTTON": "Back", + "AUTH.GENERAL.PRIVACY": "Privacy", + "AUTH.GENERAL.LEGAL": "Legal", + "AUTH.GENERAL.CONTACT": "Contact", + "AUTH.LOGIN.TITLE": "Login Account", + "AUTH.LOGIN.BUTTON": "Sign In", + "AUTH.FORGOT.TITLE": "Forgotten Password?", + "AUTH.FORGOT.DESC": "Enter your email to reset your password", + "AUTH.FORGOT.SUCCESS": "Your account has been successfully reset.", + "AUTH.REGISTER.TITLE": "Sign Up", + "AUTH.REGISTER.DESC": "Enter your details to create your account", + "AUTH.REGISTER.SUCCESS": "Your account has been successfuly registered.", + "AUTH.INPUT.EMAIL": "Email", + "AUTH.INPUT.FULLNAME": "Fullname", + "AUTH.INPUT.PASSWORD": "Password", + "AUTH.INPUT.CONFIRM_PASSWORD": "Confirm Password", + "AUTH.INPUT.USERNAME": "Username", + "AUTH.VALIDATION.INVALID": "{name} is not valid", + "AUTH.VALIDATION.REQUIRED": "{name} is required", + "AUTH.VALIDATION.MIN_LENGTH": "{name}} minimum length is {{min}", + "AUTH.VALIDATION.AGREEMENT_REQUIRED": "Accepting terms & conditions are required", + "AUTH.VALIDATION.NOT_FOUND": "The requested {name} is not found", + "AUTH.VALIDATION.INVALID_LOGIN": "The login detail is incorrect", + "AUTH.VALIDATION.REQUIRED_FIELD": "Required field", + "AUTH.VALIDATION.MIN_LENGTH_FIELD": "Minimum field length:", + "AUTH.VALIDATION.MAX_LENGTH_FIELD": "Maximum field length:", + "AUTH.VALIDATION.INVALID_FIELD": "Field is not valid", + "ECOMMERCE.COMMON.SELECTED_RECORDS_COUNT": "Selected records count: ", + "ECOMMERCE.COMMON.ALL": "All", + "ECOMMERCE.COMMON.SUSPENDED": "Suspended", + "ECOMMERCE.COMMON.ACTIVE": "Active", + "ECOMMERCE.COMMON.FILTER": "Filter", + "ECOMMERCE.COMMON.BY_STATUS": "by Status", + "ECOMMERCE.COMMON.BY_TYPE": "by Type", + "ECOMMERCE.COMMON.BUSINESS": "Business", + "ECOMMERCE.COMMON.INDIVIDUAL": "Individual", + "ECOMMERCE.COMMON.SEARCH": "Search", + "ECOMMERCE.COMMON.IN_ALL_FIELDS": "in all fields", + "ECOMMERCE.ECOMMERCE": "eCommerce", + "ECOMMERCE.CUSTOMERS.CUSTOMERS": "Customers", + "ECOMMERCE.CUSTOMERS.CUSTOMERS_LIST": "Customers list", + "ECOMMERCE.CUSTOMERS.NEW_CUSTOMER": "New Customer", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.TITLE": "Customer Delete", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.DESCRIPTION": "Are you sure to permanently delete this customer?", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.WAIT_DESCRIPTION": "Customer is deleting...", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.MESSAGE": "Customer has been deleted", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.TITLE": "Customers Delete", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.DESCRIPTION": "Are you sure to permanently delete selected customers?", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.WAIT_DESCRIPTION": "Customers are deleting...", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.MESSAGE": "Selected customers have been deleted", + "ECOMMERCE.CUSTOMERS.UPDATE_STATUS.TITLE": "Status has been updated for selected customers", + "ECOMMERCE.CUSTOMERS.UPDATE_STATUS.MESSAGE": "Selected customers status have successfully been updated", + "ECOMMERCE.CUSTOMERS.EDIT.UPDATE_MESSAGE": "Customer has been updated", + "ECOMMERCE.CUSTOMERS.EDIT.ADD_MESSAGE": "Customer has been created" +} diff --git a/src/_metronic/i18n/messages/es.json b/src/_metronic/i18n/messages/es.json new file mode 100644 index 0000000..b2d3693 --- /dev/null +++ b/src/_metronic/i18n/messages/es.json @@ -0,0 +1,69 @@ +{ + "TRANSLATOR.SELECT": "Elige tu idioma", + "MENU.NEW": "nuevo", + "MENU.ACTIONS": "Comportamiento", + "MENU.CREATE_POST": "Crear nueva publicación", + "MENU.PAGES": "Pages", + "MENU.FEATURES": "Caracteristicas", + "MENU.APPS": "Aplicaciones", + "MENU.DASHBOARD": "Tablero", + "AUTH.GENERAL.OR": "O", + "AUTH.GENERAL.SUBMIT_BUTTON": "Enviar", + "AUTH.GENERAL.NO_ACCOUNT": "No tienes una cuenta?", + "AUTH.GENERAL.SIGNUP_BUTTON": "Regístrate", + "AUTH.GENERAL.FORGOT_BUTTON": "Se te olvidó tu contraseña", + "AUTH.GENERAL.BACK_BUTTON": "Espalda", + "AUTH.GENERAL.PRIVACY": "Intimidad", + "AUTH.GENERAL.LEGAL": "Legal", + "AUTH.GENERAL.CONTACT": "Contacto", + "AUTH.LOGIN.TITLE": "Crear una cuenta", + "AUTH.LOGIN.BUTTON": "Registrarse", + "AUTH.FORGOT.TITLE": "Contraseña olvidada?", + "AUTH.FORGOT.DESC": "Ingrese su correo electrónico para restablecer su contraseña", + "AUTH.FORGOT.SUCCESS": "Your account has been successfully reset.", + "AUTH.REGISTER.TITLE": "Sign Up", + "AUTH.REGISTER.DESC": "Enter your details to create your account", + "AUTH.REGISTER.SUCCESS": "Your account has been successfuly registered.", + "AUTH.INPUT.EMAIL": "Email", + "AUTH.INPUT.FULLNAME": "Fullname", + "AUTH.INPUT.PASSWORD": "Password", + "AUTH.INPUT.CONFIRM_PASSWORD": "Confirm Password", + "AUTH.INPUT.USERNAME": "Usuario", + "AUTH.VALIDATION.INVALID": "{name} is not valid", + "AUTH.VALIDATION.REQUIRED": "{name} is required", + "AUTH.VALIDATION.MIN_LENGTH": "{name}} minimum length is {{min}", + "AUTH.VALIDATION.AGREEMENT_REQUIRED": "Accepting terms & conditions are required", + "AUTH.VALIDATION.NOT_FOUND": "The requested {name} is not found", + "AUTH.VALIDATION.INVALID_LOGIN": "The login detail is incorrect", + "AUTH.VALIDATION.REQUIRED_FIELD": "Required field", + "AUTH.VALIDATION.MIN_LENGTH_FIELD": "Minimum field length:", + "AUTH.VALIDATION.MAX_LENGTH_FIELD": "Maximum field length:", + "AUTH.VALIDATION.INVALID_FIELD": "Field is not valid", + "ECOMMERCE.COMMON.SELECTED_RECORDS_COUNT": "Selected records count: ", + "ECOMMERCE.COMMON.ALL": "All", + "ECOMMERCE.COMMON.SUSPENDED": "Suspended", + "ECOMMERCE.COMMON.ACTIVE": "Active", + "ECOMMERCE.COMMON.FILTER": "Filter", + "ECOMMERCE.COMMON.BY_STATUS": "by Status", + "ECOMMERCE.COMMON.BY_TYPE": "by Type", + "ECOMMERCE.COMMON.BUSINESS": "Business", + "ECOMMERCE.COMMON.INDIVIDUAL": "Individual", + "ECOMMERCE.COMMON.SEARCH": "Search", + "ECOMMERCE.COMMON.IN_ALL_FIELDS": "in all fields", + "ECOMMERCE.ECOMMERCE": "eCommerce", + "ECOMMERCE.CUSTOMERS.CUSTOMERS": "Customers", + "ECOMMERCE.CUSTOMERS.CUSTOMERS_LIST": "Customers list", + "ECOMMERCE.CUSTOMERS.NEW_CUSTOMER": "New Customer", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.TITLE": "Customer Delete", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.DESCRIPTION": "Are you sure to permanently delete this customer?", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.WAIT_DESCRIPTION": "Customer is deleting...", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.MESSAGE": "Customer has been deleted", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.TITLE": "Customers Delete", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.DESCRIPTION": "Are you sure to permanently delete selected customers?", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.WAIT_DESCRIPTION": "Customers are deleting...", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.MESSAGE": "Selected customers have been deleted", + "ECOMMERCE.CUSTOMERS.UPDATE_STATUS.TITLE": "Status has been updated for selected customers", + "ECOMMERCE.CUSTOMERS.UPDATE_STATUS.MESSAGE": "Selected customers status have successfully been updated", + "ECOMMERCE.CUSTOMERS.EDIT.UPDATE_MESSAGE": "Customer has been updated", + "ECOMMERCE.CUSTOMERS.EDIT.ADD_MESSAGE": "Customer has been created" +} diff --git a/src/_metronic/i18n/messages/fr.json b/src/_metronic/i18n/messages/fr.json new file mode 100644 index 0000000..accb3f3 --- /dev/null +++ b/src/_metronic/i18n/messages/fr.json @@ -0,0 +1,69 @@ +{ + "TRANSLATOR.SELECT": "choisissez votre langue", + "MENU.NEW": "Nouveau", + "MENU.ACTIONS": "Actes", + "MENU.CREATE_POST": "Créer un nouveau Post", + "MENU.PAGES": "Pages", + "MENU.FEATURES": "Fonctionnalités", + "MENU.APPS": "Applications", + "MENU.DASHBOARD": "Tableau de Bord", + "AUTH.GENERAL.OR": "Ou", + "AUTH.GENERAL.SUBMIT_BUTTON": "Soumettre", + "AUTH.GENERAL.NO_ACCOUNT": "Ne pas avoir de compte?", + "AUTH.GENERAL.SIGNUP_BUTTON": "Registre", + "AUTH.GENERAL.FORGOT_BUTTON": "Mot de passe oublié", + "AUTH.GENERAL.BACK_BUTTON": "Back", + "AUTH.GENERAL.PRIVACY": "Privacy", + "AUTH.GENERAL.LEGAL": "Legal", + "AUTH.GENERAL.CONTACT": "Contact", + "AUTH.LOGIN.TITLE": "Créer un compte", + "AUTH.LOGIN.BUTTON": "Sign In", + "AUTH.FORGOT.TITLE": "Forgotten Password?", + "AUTH.FORGOT.DESC": "Enter your email to reset your password", + "AUTH.FORGOT.SUCCESS": "Your account has been successfully reset.", + "AUTH.REGISTER.TITLE": "Sign Up", + "AUTH.REGISTER.DESC": "Enter your details to create your account", + "AUTH.REGISTER.SUCCESS": "Your account has been successfuly registered.", + "AUTH.INPUT.EMAIL": "Email", + "AUTH.INPUT.FULLNAME": "Fullname", + "AUTH.INPUT.PASSWORD": "Mot de passe", + "AUTH.INPUT.CONFIRM_PASSWORD": "Confirm Password", + "AUTH.INPUT.USERNAME": "Nom d'utilisateur", + "AUTH.VALIDATION.INVALID": "{name} n'est pas valide", + "AUTH.VALIDATION.REQUIRED": "{name} est requis", + "AUTH.VALIDATION.MIN_LENGTH": "{name}} minimum length is {{min}", + "AUTH.VALIDATION.AGREEMENT_REQUIRED": "Accepting terms & conditions are required", + "AUTH.VALIDATION.NOT_FOUND": "The requested {name} is not found", + "AUTH.VALIDATION.INVALID_LOGIN": "The login detail is incorrect", + "AUTH.VALIDATION.REQUIRED_FIELD": "Required field", + "AUTH.VALIDATION.MIN_LENGTH_FIELD": "Minimum field length:", + "AUTH.VALIDATION.MAX_LENGTH_FIELD": "Maximum field length:", + "AUTH.VALIDATION.INVALID_FIELD": "Field is not valid", + "ECOMMERCE.COMMON.SELECTED_RECORDS_COUNT": "Nombre d'enregistrements sélectionnés: ", + "ECOMMERCE.COMMON.ALL": "All", + "ECOMMERCE.COMMON.SUSPENDED": "Suspended", + "ECOMMERCE.COMMON.ACTIVE": "Active", + "ECOMMERCE.COMMON.FILTER": "Filter", + "ECOMMERCE.COMMON.BY_STATUS": "by Status", + "ECOMMERCE.COMMON.BY_TYPE": "by Type", + "ECOMMERCE.COMMON.BUSINESS": "Business", + "ECOMMERCE.COMMON.INDIVIDUAL": "Individual", + "ECOMMERCE.COMMON.SEARCH": "Search", + "ECOMMERCE.COMMON.IN_ALL_FIELDS": "in all fields", + "ECOMMERCE.ECOMMERCE": "éCommerce", + "ECOMMERCE.CUSTOMERS.CUSTOMERS": "Les clients", + "ECOMMERCE.CUSTOMERS.CUSTOMERS_LIST": "Liste des clients", + "ECOMMERCE.CUSTOMERS.NEW_CUSTOMER": "Nouveau client", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.TITLE": "Suppression du client", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.DESCRIPTION": "Êtes-vous sûr de supprimer définitivement ce client?", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.WAIT_DESCRIPTION": "Le client est en train de supprimer ...", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.MESSAGE": "Le client a été supprimé", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.TITLE": "Supprimer les clients", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.DESCRIPTION": "Êtes-vous sûr de supprimer définitivement les clients sélectionnés?", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.WAIT_DESCRIPTION": "Les clients suppriment ...", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.MESSAGE": "Les clients sélectionnés ont été supprimés", + "ECOMMERCE.CUSTOMERS.UPDATE_STATUS.TITLE": "Le statut a été mis à jour pour les clients sélectionnés", + "ECOMMERCE.CUSTOMERS.UPDATE_STATUS.MESSAGE": "Le statut des clients sélectionnés a été mis à jour avec succès", + "ECOMMERCE.CUSTOMERS.EDIT.UPDATE_MESSAGE": "Le client a été mis à jour", + "ECOMMERCE.CUSTOMERS.EDIT.ADD_MESSAGE": "Le client a été créé" +} diff --git a/src/_metronic/i18n/messages/ja.json b/src/_metronic/i18n/messages/ja.json new file mode 100644 index 0000000..0f3c395 --- /dev/null +++ b/src/_metronic/i18n/messages/ja.json @@ -0,0 +1,69 @@ +{ + "TRANSLATOR.SELECT": "あなたが使う言語を選んでください", + "MENU.NEW": "新しい", + "MENU.ACTIONS": "行動", + "MENU.CREATE_POST": "新しい投稿を作成", + "MENU.PAGES": "Pages", + "MENU.FEATURES": "特徴", + "MENU.APPS": "アプリ", + "MENU.DASHBOARD": "ダッシュボード", + "AUTH.GENERAL.OR": "または", + "AUTH.GENERAL.SUBMIT_BUTTON": "提出する", + "AUTH.GENERAL.NO_ACCOUNT": "アカウントを持っていない?", + "AUTH.GENERAL.SIGNUP_BUTTON": "サインアップ", + "AUTH.GENERAL.FORGOT_BUTTON": "パスワードをお忘れですか", + "AUTH.GENERAL.BACK_BUTTON": "バック", + "AUTH.GENERAL.PRIVACY": "プライバシー", + "AUTH.GENERAL.LEGAL": "法的", + "AUTH.GENERAL.CONTACT": "接触", + "AUTH.LOGIN.TITLE": "Create Account", + "AUTH.LOGIN.BUTTON": "Sign In", + "AUTH.FORGOT.TITLE": "Forgotten Password?", + "AUTH.FORGOT.DESC": "Enter your email to reset your password", + "AUTH.FORGOT.SUCCESS": "Your account has been successfully reset.", + "AUTH.REGISTER.TITLE": "Sign Up", + "AUTH.REGISTER.DESC": "Enter your details to create your account", + "AUTH.REGISTER.SUCCESS": "Your account has been successfuly registered.", + "AUTH.INPUT.EMAIL": "Email", + "AUTH.INPUT.FULLNAME": "Fullname", + "AUTH.INPUT.PASSWORD": "Password", + "AUTH.INPUT.CONFIRM_PASSWORD": "Confirm Password", + "AUTH.INPUT.USERNAME": "ユーザー名", + "AUTH.VALIDATION.INVALID": "{name} is not valid", + "AUTH.VALIDATION.REQUIRED": "{name} is required", + "AUTH.VALIDATION.MIN_LENGTH": "{name}} minimum length is {{min}", + "AUTH.VALIDATION.AGREEMENT_REQUIRED": "Accepting terms & conditions are required", + "AUTH.VALIDATION.NOT_FOUND": "The requested {name} is not found", + "AUTH.VALIDATION.INVALID_LOGIN": "The login detail is incorrect", + "AUTH.VALIDATION.REQUIRED_FIELD": "Required field", + "AUTH.VALIDATION.MIN_LENGTH_FIELD": "Minimum field length:", + "AUTH.VALIDATION.MAX_LENGTH_FIELD": "Maximum field length:", + "AUTH.VALIDATION.INVALID_FIELD": "Field is not valid", + "ECOMMERCE.COMMON.SELECTED_RECORDS_COUNT": "Selected records count: ", + "ECOMMERCE.COMMON.ALL": "All", + "ECOMMERCE.COMMON.SUSPENDED": "Suspended", + "ECOMMERCE.COMMON.ACTIVE": "Active", + "ECOMMERCE.COMMON.FILTER": "Filter", + "ECOMMERCE.COMMON.BY_STATUS": "by Status", + "ECOMMERCE.COMMON.BY_TYPE": "by Type", + "ECOMMERCE.COMMON.BUSINESS": "Business", + "ECOMMERCE.COMMON.INDIVIDUAL": "Individual", + "ECOMMERCE.COMMON.SEARCH": "Search", + "ECOMMERCE.COMMON.IN_ALL_FIELDS": "in all fields", + "ECOMMERCE.ECOMMERCE": "eCommerce", + "ECOMMERCE.CUSTOMERS.CUSTOMERS": "Customers", + "ECOMMERCE.CUSTOMERS.CUSTOMERS_LIST": "Customers list", + "ECOMMERCE.CUSTOMERS.NEW_CUSTOMER": "New Customer", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.TITLE": "Customer Delete", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.DESCRIPTION": "Are you sure to permanently delete this customer?", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.WAIT_DESCRIPTION": "Customer is deleting...", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.MESSAGE": "Customer has been deleted", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.TITLE": "Customers Delete", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.DESCRIPTION": "Are you sure to permanently delete selected customers?", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.WAIT_DESCRIPTION": "Customers are deleting...", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.MESSAGE": "Selected customers have been deleted", + "ECOMMERCE.CUSTOMERS.UPDATE_STATUS.TITLE": "Status has been updated for selected customers", + "ECOMMERCE.CUSTOMERS.UPDATE_STATUS.MESSAGE": "Selected customers status have successfully been updated", + "ECOMMERCE.CUSTOMERS.EDIT.UPDATE_MESSAGE": "Customer has been updated", + "ECOMMERCE.CUSTOMERS.EDIT.ADD_MESSAGE": "Customer has been created" +} diff --git a/src/_metronic/i18n/messages/zh.json b/src/_metronic/i18n/messages/zh.json new file mode 100644 index 0000000..1389d5c --- /dev/null +++ b/src/_metronic/i18n/messages/zh.json @@ -0,0 +1,69 @@ +{ + "TRANSLATOR.SELECT": "选择你的语言", + "MENU.NEW": "新", + "MENU.ACTIONS": "行动", + "MENU.CREATE_POST": "创建新帖子", + "MENU.PAGES": "Pages", + "MENU.FEATURES": "特征", + "MENU.APPS": "应用", + "MENU.DASHBOARD": "仪表板", + "AUTH.GENERAL.OR": "要么", + "AUTH.GENERAL.SUBMIT_BUTTON": "提交", + "AUTH.GENERAL.NO_ACCOUNT": "没有账号?", + "AUTH.GENERAL.SIGNUP_BUTTON": "注册", + "AUTH.GENERAL.FORGOT_BUTTON": "忘记密码", + "AUTH.GENERAL.BACK_BUTTON": "背部", + "AUTH.GENERAL.PRIVACY": "隐私", + "AUTH.GENERAL.LEGAL": "法律", + "AUTH.GENERAL.CONTACT": "联系", + "AUTH.LOGIN.TITLE": "创建帐号", + "AUTH.LOGIN.BUTTON": "签到", + "AUTH.FORGOT.TITLE": "Forgotten Password?", + "AUTH.FORGOT.DESC": "Enter your email to reset your password", + "AUTH.FORGOT.SUCCESS": "Your account has been successfully reset.", + "AUTH.REGISTER.TITLE": "Sign Up", + "AUTH.REGISTER.DESC": "Enter your details to create your account", + "AUTH.REGISTER.SUCCESS": "Your account has been successfuly registered.", + "AUTH.INPUT.EMAIL": "Email", + "AUTH.INPUT.FULLNAME": "Fullname", + "AUTH.INPUT.PASSWORD": "Password", + "AUTH.INPUT.CONFIRM_PASSWORD": "Confirm Password", + "AUTH.INPUT.USERNAME": "用戶名", + "AUTH.VALIDATION.INVALID": "{name} is not valid", + "AUTH.VALIDATION.REQUIRED": "{name} is required", + "AUTH.VALIDATION.MIN_LENGTH": "{name}} minimum length is {{min}", + "AUTH.VALIDATION.AGREEMENT_REQUIRED": "Accepting terms & conditions are required", + "AUTH.VALIDATION.NOT_FOUND": "The requested {name} is not found", + "AUTH.VALIDATION.INVALID_LOGIN": "The login detail is incorrect", + "AUTH.VALIDATION.REQUIRED_FIELD": "Required field", + "AUTH.VALIDATION.MIN_LENGTH_FIELD": "Minimum field length:", + "AUTH.VALIDATION.MAX_LENGTH_FIELD": "Maximum field length:", + "AUTH.VALIDATION.INVALID_FIELD": "Field is not valid", + "ECOMMERCE.COMMON.SELECTED_RECORDS_COUNT": "Selected records count: ", + "ECOMMERCE.COMMON.ALL": "All", + "ECOMMERCE.COMMON.SUSPENDED": "Suspended", + "ECOMMERCE.COMMON.ACTIVE": "Active", + "ECOMMERCE.COMMON.FILTER": "Filter", + "ECOMMERCE.COMMON.BY_STATUS": "by Status", + "ECOMMERCE.COMMON.BY_TYPE": "by Type", + "ECOMMERCE.COMMON.BUSINESS": "Business", + "ECOMMERCE.COMMON.INDIVIDUAL": "Individual", + "ECOMMERCE.COMMON.SEARCH": "Search", + "ECOMMERCE.COMMON.IN_ALL_FIELDS": "in all fields", + "ECOMMERCE.ECOMMERCE": "eCommerce", + "ECOMMERCE.CUSTOMERS.CUSTOMERS": "顾客", + "ECOMMERCE.CUSTOMERS.CUSTOMERS_LIST": "客户名单", + "ECOMMERCE.CUSTOMERS.NEW_CUSTOMER": "New Customer", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.TITLE": "Customer Delete", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.DESCRIPTION": "Are you sure to permanently delete this customer?", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.WAIT_DESCRIPTION": "Customer is deleting...", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_SIMPLE.MESSAGE": "Customer has been deleted", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.TITLE": "Customers Delete", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.DESCRIPTION": "Are you sure to permanently delete selected customers?", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.WAIT_DESCRIPTION": "Customers are deleting...", + "ECOMMERCE.CUSTOMERS.DELETE_CUSTOMER_MULTY.MESSAGE": "Selected customers have been deleted", + "ECOMMERCE.CUSTOMERS.UPDATE_STATUS.TITLE": "Status has been updated for selected customers", + "ECOMMERCE.CUSTOMERS.UPDATE_STATUS.MESSAGE": "Selected customers status have successfully been updated", + "ECOMMERCE.CUSTOMERS.EDIT.UPDATE_MESSAGE": "Customer has been updated", + "ECOMMERCE.CUSTOMERS.EDIT.ADD_MESSAGE": "Customer has been created" +} diff --git a/src/_metronic/layout/MasterInit.tsx b/src/_metronic/layout/MasterInit.tsx new file mode 100644 index 0000000..203e449 --- /dev/null +++ b/src/_metronic/layout/MasterInit.tsx @@ -0,0 +1,44 @@ +import {useEffect, useRef} from 'react' +import {Tab} from 'bootstrap' +import { + MenuComponent, + DrawerComponent, + ScrollComponent, + ScrollTopComponent, + StickyComponent, + ToggleComponent, + SwapperComponent, +} from '../assets/ts/components' +import {ThemeModeComponent} from '../assets/ts/layout' + +import {useLayout} from './core' + +export function MasterInit() { + const {config} = useLayout() + const isFirstRun = useRef(true) + const pluginsInitialization = () => { + isFirstRun.current = false + ThemeModeComponent.init() + setTimeout(() => { + ToggleComponent.bootstrap() + ScrollTopComponent.bootstrap() + DrawerComponent.bootstrap() + StickyComponent.bootstrap() + MenuComponent.bootstrap() + ScrollComponent.bootstrap() + SwapperComponent.bootstrap() + document.querySelectorAll('[data-bs-toggle="tab"]').forEach((tab) => { + Tab.getOrCreateInstance(tab) + }) + }, 500) + } + + useEffect(() => { + if (isFirstRun.current) { + isFirstRun.current = false + pluginsInitialization() + } + }, [config]) + + return <> +} diff --git a/src/_metronic/layout/MasterLayout.tsx b/src/_metronic/layout/MasterLayout.tsx new file mode 100644 index 0000000..1095a49 --- /dev/null +++ b/src/_metronic/layout/MasterLayout.tsx @@ -0,0 +1,63 @@ +import {useEffect} from 'react' +import {Outlet, useLocation} from 'react-router-dom' +import {HeaderWrapper} from './components/header' +import {RightToolbar} from '../partials/layout/RightToolbar' +import {ScrollTop} from './components/scroll-top' +import {Content} from './components/content' +import {FooterWrapper} from './components/footer' +import {Sidebar} from './components/sidebar' +import { + DrawerMessenger, + ActivityDrawer, + InviteUsers, + UpgradePlan, + ThemeModeProvider, +} from '../partials' +import {PageDataProvider} from './core' +import {reInitMenu} from '../helpers' +import {ToolbarWrapper} from './components/toolbar' + +const MasterLayout = () => { + const location = useLocation() + useEffect(() => { + reInitMenu() + }, [location.key]) + + return ( + + +
+
+ +
+ +
+
+ + + + +
+ +
+
+
+
+ + {/* begin:: Drawers */} + + + + {/* end:: Drawers */} + + {/* begin:: Modals */} + + + {/* end:: Modals */} + +
+
+ ) +} + +export {MasterLayout} diff --git a/src/_metronic/layout/components/content/Content.tsx b/src/_metronic/layout/components/content/Content.tsx new file mode 100644 index 0000000..16b8ca3 --- /dev/null +++ b/src/_metronic/layout/components/content/Content.tsx @@ -0,0 +1,39 @@ +import {useEffect} from 'react' +import {useLocation} from 'react-router' +import clsx from 'clsx' +import {useLayout} from '../../core' +import {DrawerComponent} from '../../../assets/ts/components' +import {WithChildren} from '../../../helpers' + +const Content = ({children}: WithChildren) => { + const {config, classes} = useLayout() + const location = useLocation() + useEffect(() => { + DrawerComponent.hideAll() + }, [location]) + + const appContentContainer = config.app?.content?.container + return ( +
+ {appContentContainer ? ( +
+ {children} +
+ ) : ( + <>{children} + )} +
+ ) +} + +export {Content} diff --git a/src/_metronic/layout/components/content/index.ts b/src/_metronic/layout/components/content/index.ts new file mode 100644 index 0000000..aa90efe --- /dev/null +++ b/src/_metronic/layout/components/content/index.ts @@ -0,0 +1 @@ +export * from './Content' diff --git a/src/_metronic/layout/components/footer/Footer.tsx b/src/_metronic/layout/components/footer/Footer.tsx new file mode 100644 index 0000000..2d8748a --- /dev/null +++ b/src/_metronic/layout/components/footer/Footer.tsx @@ -0,0 +1,62 @@ +/* eslint-disable react/jsx-no-target-blank */ +import {useEffect} from 'react' +import {ILayout, useLayout} from '../../core' + +const Footer = () => { + const {config} = useLayout() + useEffect(() => { + updateDOM(config) + }, [config]) + return ( + <> +
+ + {new Date().getFullYear().toString()}© + + + Keenthemes + +
+ + + + ) +} + +const updateDOM = (config: ILayout) => { + if (config.app?.footer?.fixed?.desktop) { + document.body.classList.add('data-kt-app-footer-fixed', 'true') + } + + if (config.app?.footer?.fixed?.mobile) { + document.body.classList.add('data-kt-app-footer-fixed-mobile', 'true') + } +} + +export {Footer} diff --git a/src/_metronic/layout/components/footer/FooterWrapper.tsx b/src/_metronic/layout/components/footer/FooterWrapper.tsx new file mode 100644 index 0000000..0a1ca6f --- /dev/null +++ b/src/_metronic/layout/components/footer/FooterWrapper.tsx @@ -0,0 +1,24 @@ +import clsx from 'clsx' +import {useLayout} from '../../core' +import {Footer} from './Footer' + +const FooterWrapper = () => { + const {config} = useLayout() + if (!config.app?.footer?.display) { + return null + } + + return ( + + ) +} + +export {FooterWrapper} diff --git a/src/_metronic/layout/components/footer/index.ts b/src/_metronic/layout/components/footer/index.ts new file mode 100644 index 0000000..eeeabf7 --- /dev/null +++ b/src/_metronic/layout/components/footer/index.ts @@ -0,0 +1 @@ +export * from './FooterWrapper' diff --git a/src/_metronic/layout/components/header/Header.tsx b/src/_metronic/layout/components/header/Header.tsx new file mode 100644 index 0000000..9ae256d --- /dev/null +++ b/src/_metronic/layout/components/header/Header.tsx @@ -0,0 +1,89 @@ +import {FC, useEffect} from 'react' +import {ILayout, useLayout} from '../../core' +import {MenuInner} from './header-menus' + +const Header: FC = () => { + const {config} = useLayout() + useEffect(() => { + updateDOM(config) + }, [config]) + + return ( +
+ +
+ ) +} + +const updateDOM = (config: ILayout) => { + if (config.app?.header?.default?.fixed?.desktop) { + document.body.setAttribute('data-kt-app-header-fixed', 'true') + } + + if (config.app?.header?.default?.fixed?.mobile) { + document.body.setAttribute('data-kt-app-header-fixed-mobile', 'true') + } + + if (config.app?.header?.default?.stacked) { + document.body.setAttribute('data-kt-app-header-stacked', 'true') + } + + const appHeaderDefaultStickyEnabled = config.app?.header?.default?.sticky?.enabled + let appHeaderDefaultStickyAttributes: {[attrName: string]: string} = {} + if (appHeaderDefaultStickyEnabled) { + appHeaderDefaultStickyAttributes = config.app?.header?.default?.sticky?.attributes as { + [attrName: string]: string + } + } + + const appHeaderDefaultMinimizeEnabled = config.app?.header?.default?.minimize?.enabled + let appHeaderDefaultMinimizeAttributes: {[attrName: string]: string} = {} + if (appHeaderDefaultMinimizeEnabled) { + appHeaderDefaultMinimizeAttributes = config.app?.header?.default?.minimize?.attributes as { + [attrName: string]: string + } + } + + setTimeout(() => { + const headerElement = document.getElementById('kt_app_header') + // header + if (headerElement) { + const headerAttributes = headerElement + .getAttributeNames() + .filter((t) => t.indexOf('data-') > -1) + headerAttributes.forEach((attr) => headerElement.removeAttribute(attr)) + + if (appHeaderDefaultStickyEnabled) { + for (const key in appHeaderDefaultStickyAttributes) { + if (appHeaderDefaultStickyAttributes.hasOwnProperty(key)) { + headerElement.setAttribute(key, appHeaderDefaultStickyAttributes[key]) + } + } + } + + if (appHeaderDefaultMinimizeEnabled) { + for (const key in appHeaderDefaultMinimizeAttributes) { + if (appHeaderDefaultMinimizeAttributes.hasOwnProperty(key)) { + headerElement.setAttribute(key, appHeaderDefaultMinimizeAttributes[key]) + } + } + } + } + }, 0) +} + +export {Header} diff --git a/src/_metronic/layout/components/header/HeaderWrapper.tsx b/src/_metronic/layout/components/header/HeaderWrapper.tsx new file mode 100644 index 0000000..a7d0097 --- /dev/null +++ b/src/_metronic/layout/components/header/HeaderWrapper.tsx @@ -0,0 +1,100 @@ +/* eslint-disable react-hooks/exhaustive-deps */ +import clsx from 'clsx' +import {Link} from 'react-router-dom' +import {KTSVG, toAbsoluteUrl} from '../../../helpers' +import {useLayout} from '../../core' +import {Header} from './Header' +import {Navbar} from './Navbar' + +export function HeaderWrapper() { + const {config, classes} = useLayout() + if (!config.app?.header?.display) { + return null + } + + return ( +
+
+ {config.app.sidebar?.display && ( + <> +
+
+ +
+
+ + Logo + +
+
+ + )} + + {!config.app.sidebar?.display && ( +
+ + {config.layoutType !== 'dark-header' ? ( + Logo + ) : ( + <> + Logo + Logo + + )} + +
+ )} + +
+ {config.app.header.default?.content === 'menu' && + config.app.header.default.menu?.display && ( +
+
+
+ )} + +
+
+
+ ) +} diff --git a/src/_metronic/layout/components/header/Navbar.tsx b/src/_metronic/layout/components/header/Navbar.tsx new file mode 100644 index 0000000..3006bbe --- /dev/null +++ b/src/_metronic/layout/components/header/Navbar.tsx @@ -0,0 +1,75 @@ +import clsx from 'clsx' +import {KTSVG, toAbsoluteUrl} from '../../../helpers' +import {HeaderNotificationsMenu, HeaderUserMenu, Search, ThemeModeSwitcher} from '../../../partials' +import {useLayout} from '../../core' + +const itemClass = 'ms-1 ms-lg-3' +const btnClass = + 'btn btn-icon btn-custom btn-icon-muted btn-active-light btn-active-color-primary w-35px h-35px w-md-40px h-md-40px' +const userAvatarClass = 'symbol-35px symbol-md-40px' +const btnIconClass = 'svg-icon-1' + +const Navbar = () => { + const {config} = useLayout() + return ( +
+
+ +
+ +
+
+ +
+
+ +
+
+ +
+ +
+ +
+
+ + +
+
+ +
+ +
+ +
+
+ +
+ +
+ + {config.app?.header?.default?.menu?.display && ( +
+
+ +
+
+ )} +
+ ) +} + +export {Navbar} diff --git a/src/_metronic/layout/components/header/header-menus/MegaMenu.tsx b/src/_metronic/layout/components/header/header-menus/MegaMenu.tsx new file mode 100644 index 0000000..0291c55 --- /dev/null +++ b/src/_metronic/layout/components/header/header-menus/MegaMenu.tsx @@ -0,0 +1,162 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {Link} from 'react-router-dom' +import {toAbsoluteUrl} from '../../../../helpers' +import {useLayout} from '../../../core' + +const MegaMenu: FC = () => { + const {setLayoutType, setToolbarType} = useLayout() + return ( +
+ {/* begin:Col */} +
+ {/* begin:Row */} +
+ {/* begin:Col */} +
+ {/* begin:Heading */} +

Layouts

+ {/* end:Heading */} + {/* begin:Menu item */} +
+ {/* begin:Menu link */} + setLayoutType('light-sidebar')} className='menu-link'> + + + + Light Sidebar + + {/* end:Menu link */} +
+ {/* end:Menu item */} + {/* begin:Menu item */} +
+ {/* begin:Menu link */} + setLayoutType('dark-sidebar')} className='menu-link'> + + + + Dark Sidebar + + {/* end:Menu link */} +
+ {/* end:Menu item */} + {/* begin:Menu item */} +
+ {/* begin:Menu link */} + setLayoutType('light-header')} className='menu-link'> + + + + Light Header + + {/* end:Menu link */} +
+ {/* end:Menu item */} + {/* begin:Menu item */} +
+ {/* begin:Menu link */} + setLayoutType('dark-header')} className='menu-link'> + + + + Dark Header + + {/* end:Menu link */} +
+ {/* end:Menu item */} +
+ {/* end:Col */} + {/* begin:Col */} +
+ {/* begin:Heading */} +

Toolbars

+ {/* end:Heading */} + {/* begin:Menu item */} +
+ {/* begin:Menu link */} + setToolbarType('classic')} className='menu-link'> + + + + Classic + + {/* end:Menu link */} +
+ {/* end:Menu item */} + {/* begin:Menu item */} +
+ {/* begin:Menu link */} + setToolbarType('saas')} className='menu-link'> + + + + SaaS + + {/* end:Menu link */} +
+ {/* end:Menu item */} + {/* begin:Menu item */} +
+ {/* begin:Menu link */} + setToolbarType('accounting')} className='menu-link'> + + + + Accounting + + {/* end:Menu link */} +
+ {/* end:Menu item */} + {/* begin:Menu item */} +
+ {/* begin:Menu link */} + setToolbarType('extended')} className='menu-link'> + + + + Extended + + {/* end:Menu link */} +
+ {/* end:Menu item */} + {/* begin:Menu item */} +
+ {/* begin:Menu link */} + setToolbarType('reports')} className='menu-link'> + + + + Reports + + {/* end:Menu link */} +
+ {/* end:Menu item */} +
+ {/* end:Col */} +
+ {/* end:Row */} +
+ {/* begin:Layout Builder */} +
+
+
Layout Builder
+
Customize view
+
+ + Try Builder + +
+ {/* end:Layout Builder */} +
+ {/* end:Col */} + {/* begin:Col */} +
+ +
+ {/* end:Col */} +
+ ) +} + +export {MegaMenu} diff --git a/src/_metronic/layout/components/header/header-menus/MenuInner.tsx b/src/_metronic/layout/components/header/header-menus/MenuInner.tsx new file mode 100644 index 0000000..68b2243 --- /dev/null +++ b/src/_metronic/layout/components/header/header-menus/MenuInner.tsx @@ -0,0 +1,134 @@ +import {useIntl} from 'react-intl' +import {MenuItem} from './MenuItem' +import {MenuInnerWithSub} from './MenuInnerWithSub' +import {MegaMenu} from './MegaMenu' + +export function MenuInner() { + const intl = useIntl() + return ( + <> + + + + {/* PAGES */} + + + + + + + + + + + + + + + {/* ACCOUNT */} + + + + + + {/* ERRORS */} + + + + + + {/* Widgets */} + + + + + + + + + + + + {/* PAGES */} + + + + + + + + + + + + + ) +} diff --git a/src/_metronic/layout/components/header/header-menus/MenuInnerWithSub.tsx b/src/_metronic/layout/components/header/header-menus/MenuInnerWithSub.tsx new file mode 100644 index 0000000..a3ce71e --- /dev/null +++ b/src/_metronic/layout/components/header/header-menus/MenuInnerWithSub.tsx @@ -0,0 +1,82 @@ +import {FC, useRef, useEffect} from 'react' +import {useLocation} from 'react-router' +import clsx from 'clsx' +import {checkIsActive, KTSVG, WithChildren} from '../../../../helpers' + +type Props = { + to: string + title: string + icon?: string + fontIcon?: string + menuTrigger?: 'click' | `{default:'click', lg: 'hover'}` + menuPlacement?: 'right-start' | 'bottom-start' | 'left-start' + hasArrow?: boolean + hasBullet?: boolean + isMega?: boolean +} + +const MenuInnerWithSub: FC = ({ + children, + to, + title, + icon, + fontIcon, + menuTrigger, + menuPlacement, + hasArrow = false, + hasBullet = false, + isMega = false, +}) => { + const menuItemRef = useRef(null) + const {pathname} = useLocation() + + useEffect(() => { + if (menuItemRef.current && menuTrigger && menuPlacement) { + menuItemRef.current.setAttribute('data-kt-menu-trigger', menuTrigger) + menuItemRef.current.setAttribute('data-kt-menu-placement', menuPlacement) + } + }, [menuTrigger, menuPlacement]) + + return ( +
+ + {hasBullet && ( + + + + )} + + {icon && ( + + + + )} + + {fontIcon && ( + + + + )} + + {title} + + {hasArrow && } + +
+ {children} +
+
+ ) +} + +export {MenuInnerWithSub} diff --git a/src/_metronic/layout/components/header/header-menus/MenuItem.tsx b/src/_metronic/layout/components/header/header-menus/MenuItem.tsx new file mode 100644 index 0000000..84616b1 --- /dev/null +++ b/src/_metronic/layout/components/header/header-menus/MenuItem.tsx @@ -0,0 +1,53 @@ +import {FC} from 'react' +import {useLocation} from 'react-router' +import {Link} from 'react-router-dom' +import clsx from 'clsx' +import {checkIsActive, KTSVG} from '../../../../helpers' + +type Props = { + to: string + title: string + icon?: string + fontIcon?: string + hasArrow?: boolean + hasBullet?: boolean +} + +const MenuItem: FC = ({to, title, icon, fontIcon, hasArrow = false, hasBullet = false}) => { + const {pathname} = useLocation() + + return ( +
+ + {hasBullet && ( + + + + )} + + {icon && ( + + + + )} + + {fontIcon && ( + + + + )} + + {title} + + {hasArrow && } + +
+ ) +} + +export {MenuItem} diff --git a/src/_metronic/layout/components/header/header-menus/index.ts b/src/_metronic/layout/components/header/header-menus/index.ts new file mode 100644 index 0000000..fecbc56 --- /dev/null +++ b/src/_metronic/layout/components/header/header-menus/index.ts @@ -0,0 +1 @@ +export * from './MenuInner' diff --git a/src/_metronic/layout/components/header/index.ts b/src/_metronic/layout/components/header/index.ts new file mode 100644 index 0000000..1019be4 --- /dev/null +++ b/src/_metronic/layout/components/header/index.ts @@ -0,0 +1 @@ +export * from './HeaderWrapper' diff --git a/src/_metronic/layout/components/scroll-top/ScrollTop.tsx b/src/_metronic/layout/components/scroll-top/ScrollTop.tsx new file mode 100644 index 0000000..23f86aa --- /dev/null +++ b/src/_metronic/layout/components/scroll-top/ScrollTop.tsx @@ -0,0 +1,57 @@ +import {useEffect, useRef} from 'react' +import {useLocation} from 'react-router-dom' +import { + ScrollTopComponent, + DrawerComponent, + ToggleComponent, + StickyComponent, +} from '../../../assets/ts/components' +import {KTSVG} from '../../../helpers' + +export function ScrollTop() { + const {pathname} = useLocation() + const isFirstRun = useRef(true) + + const pluginsReinitialization = () => { + setTimeout(() => { + StickyComponent.reInitialization() + setTimeout(() => { + ToggleComponent.reinitialization() + DrawerComponent.reinitialization() + }, 70) + }, 140) + } + + const scrollTop = () => { + ScrollTopComponent.goTop() + } + + const updateHeaderSticky = () => { + const stickyHeader = document.body.querySelectorAll(`[data-kt-sticky-name="header"]`) + if (stickyHeader && stickyHeader.length > 0) { + const sticky = StickyComponent.getInstance(stickyHeader[0] as HTMLElement) + if (sticky) { + sticky.update() + } + } + } + + useEffect(() => { + if (isFirstRun.current) { + isFirstRun.current = false + } else { + pluginsReinitialization() + } + + updateHeaderSticky() + setTimeout(() => { + scrollTop() + }, 0) + }, [pathname]) + + return ( +
+ +
+ ) +} diff --git a/src/_metronic/layout/components/scroll-top/index.ts b/src/_metronic/layout/components/scroll-top/index.ts new file mode 100644 index 0000000..44b0415 --- /dev/null +++ b/src/_metronic/layout/components/scroll-top/index.ts @@ -0,0 +1 @@ +export * from './ScrollTop' diff --git a/src/_metronic/layout/components/sidebar/Sidebar.tsx b/src/_metronic/layout/components/sidebar/Sidebar.tsx new file mode 100644 index 0000000..c1621c5 --- /dev/null +++ b/src/_metronic/layout/components/sidebar/Sidebar.tsx @@ -0,0 +1,129 @@ +import clsx from 'clsx' +import {useEffect} from 'react' +import {ILayout, useLayout} from '../../core' +import {SidebarMenu} from './sidebar-menu/SidebarMenu' +import {SidebarFooter} from './SidebarFooter' +import {SidebarLogo} from './SidebarLogo' + +const Sidebar = () => { + const {config} = useLayout() + + useEffect(() => { + updateDOM(config) + }, [config]) + + if (!config.app?.sidebar?.display) { + return null + } + + return ( +
+ + + +
+ ) +} + +const updateDOM = (config: ILayout) => { + if (config.app?.sidebar?.default?.minimize?.desktop?.enabled) { + if (config.app?.sidebar?.default?.minimize?.desktop?.default) { + document.body.setAttribute('data-kt-app-sidebar-minimize', 'on') + } + + if (config.app?.sidebar?.default?.minimize?.desktop?.hoverable) { + document.body.setAttribute('data-kt-app-sidebar-hoverable', 'true') + } + } + + if (config.app?.sidebar?.default?.minimize?.mobile?.enabled) { + if (config.app?.sidebar?.default?.minimize?.mobile?.default) { + document.body.setAttribute('data-kt-app-sidebar-minimize-mobile', 'on') + } + + if (config.app?.sidebar?.default?.minimize?.mobile?.hoverable) { + document.body.setAttribute('data-kt-app-sidebar-hoverable-mobile', 'true') + } + } + + if (config.app?.sidebar?.default?.collapse?.desktop?.enabled) { + if (config.app?.sidebar?.default?.collapse?.desktop?.default) { + document.body.setAttribute('data-kt-app-sidebar-collapse', 'on') + } + } + + if (config.app?.sidebar?.default?.collapse?.mobile?.enabled) { + if (config.app?.sidebar?.default?.collapse?.mobile?.default) { + document.body.setAttribute('data-kt-app-sidebar-collapse-mobile', 'on') + } + } + + if (config.app?.sidebar?.default?.push) { + if (config.app?.sidebar?.default?.push?.header) { + document.body.setAttribute('data-kt-app-sidebar-push-header', 'true') + } + + if (config.app?.sidebar?.default?.push?.toolbar) { + document.body.setAttribute('data-kt-app-sidebar-push-toolbar', 'true') + } + + if (config.app?.sidebar?.default?.push?.footer) { + document.body.setAttribute('data-kt-app-sidebar-push-footer', 'true') + } + } + + if (config.app?.sidebar?.default?.stacked) { + document.body.setAttribute('app-sidebar-stacked', 'true') + } + + document.body.setAttribute('data-kt-app-sidebar-enabled', 'true') + document.body.setAttribute( + 'data-kt-app-sidebar-fixed', + config.app?.sidebar?.default?.fixed?.desktop?.toString() || '' + ) + + const appSidebarDefaultDrawerEnabled = config.app?.sidebar?.default?.drawer?.enabled + let appSidebarDefaultDrawerAttributes: {[attrName: string]: string} = {} + if (appSidebarDefaultDrawerEnabled) { + appSidebarDefaultDrawerAttributes = config.app?.sidebar?.default?.drawer?.attributes as { + [attrName: string]: string + } + } + + const appSidebarDefaultStickyEnabled = config.app?.sidebar?.default?.sticky?.enabled + let appSidebarDefaultStickyAttributes: {[attrName: string]: string} = {} + if (appSidebarDefaultStickyEnabled) { + appSidebarDefaultStickyAttributes = config.app?.sidebar?.default?.sticky?.attributes as { + [attrName: string]: string + } + } + + setTimeout(() => { + const sidebarElement = document.getElementById('kt_app_sidebar') + // sidebar + if (sidebarElement) { + const sidebarAttributes = sidebarElement + .getAttributeNames() + .filter((t) => t.indexOf('data-') > -1) + sidebarAttributes.forEach((attr) => sidebarElement.removeAttribute(attr)) + + if (appSidebarDefaultDrawerEnabled) { + for (const key in appSidebarDefaultDrawerAttributes) { + if (appSidebarDefaultDrawerAttributes.hasOwnProperty(key)) { + sidebarElement.setAttribute(key, appSidebarDefaultDrawerAttributes[key]) + } + } + } + + if (appSidebarDefaultStickyEnabled) { + for (const key in appSidebarDefaultStickyAttributes) { + if (appSidebarDefaultStickyAttributes.hasOwnProperty(key)) { + sidebarElement.setAttribute(key, appSidebarDefaultStickyAttributes[key]) + } + } + } + } + }, 0) +} + +export {Sidebar} diff --git a/src/_metronic/layout/components/sidebar/SidebarFooter.tsx b/src/_metronic/layout/components/sidebar/SidebarFooter.tsx new file mode 100644 index 0000000..3b5ee97 --- /dev/null +++ b/src/_metronic/layout/components/sidebar/SidebarFooter.tsx @@ -0,0 +1,23 @@ +/* eslint-disable react/jsx-no-target-blank */ +import {KTSVG} from '../../../helpers' + +const SidebarFooter = () => { + return ( + + ) +} + +export {SidebarFooter} diff --git a/src/_metronic/layout/components/sidebar/SidebarLogo.tsx b/src/_metronic/layout/components/sidebar/SidebarLogo.tsx new file mode 100644 index 0000000..c4194fe --- /dev/null +++ b/src/_metronic/layout/components/sidebar/SidebarLogo.tsx @@ -0,0 +1,69 @@ +import {Link} from 'react-router-dom' +import clsx from 'clsx' +import {KTSVG, toAbsoluteUrl} from '../../../helpers' +import {useLayout} from '../../core' + +const SidebarLogo = () => { + const {config} = useLayout() + const appSidebarDefaultMinimizeDesktopEnabled = + config?.app?.sidebar?.default?.minimize?.desktop?.enabled + const appSidebarDefaultCollapseDesktopEnabled = + config?.app?.sidebar?.default?.collapse?.desktop?.enabled + const toggleType = appSidebarDefaultCollapseDesktopEnabled + ? 'collapse' + : appSidebarDefaultMinimizeDesktopEnabled + ? 'minimize' + : '' + const toggleState = appSidebarDefaultMinimizeDesktopEnabled ? 'active' : '' + const appSidebarDefaultMinimizeDefault = config.app?.sidebar?.default?.minimize?.desktop?.default + return ( + + ) +} + +export {SidebarLogo} diff --git a/src/_metronic/layout/components/sidebar/index.ts b/src/_metronic/layout/components/sidebar/index.ts new file mode 100644 index 0000000..9130e63 --- /dev/null +++ b/src/_metronic/layout/components/sidebar/index.ts @@ -0,0 +1 @@ +export * from './Sidebar' diff --git a/src/_metronic/layout/components/sidebar/sidebar-menu/SidebarMenu.tsx b/src/_metronic/layout/components/sidebar/sidebar-menu/SidebarMenu.tsx new file mode 100644 index 0000000..187d09e --- /dev/null +++ b/src/_metronic/layout/components/sidebar/sidebar-menu/SidebarMenu.tsx @@ -0,0 +1,30 @@ +import {SidebarMenuMain} from './SidebarMenuMain' + +const SidebarMenu = () => { + return ( +
+
+
+ +
+
+
+ ) +} + +export {SidebarMenu} diff --git a/src/_metronic/layout/components/sidebar/sidebar-menu/SidebarMenuItem.tsx b/src/_metronic/layout/components/sidebar/sidebar-menu/SidebarMenuItem.tsx new file mode 100644 index 0000000..149a8c1 --- /dev/null +++ b/src/_metronic/layout/components/sidebar/sidebar-menu/SidebarMenuItem.tsx @@ -0,0 +1,53 @@ +import {FC} from 'react' +import clsx from 'clsx' +import {Link} from 'react-router-dom' +import {useLocation} from 'react-router' +import {checkIsActive, KTSVG, WithChildren} from '../../../../helpers' +import {useLayout} from '../../../core' + +type Props = { + to: string + title: string + icon?: string + fontIcon?: string + hasBullet?: boolean +} + +const SidebarMenuItem: FC = ({ + children, + to, + title, + icon, + fontIcon, + hasBullet = false, +}) => { + const {pathname} = useLocation() + const isActive = checkIsActive(pathname, to) + const {config} = useLayout() + const {app} = config + + return ( +
+ + {hasBullet && ( + + + + )} + {icon && app?.sidebar?.default?.menu?.iconType === 'svg' && ( + + {' '} + + + )} + {fontIcon && app?.sidebar?.default?.menu?.iconType === 'font' && ( + + )} + {title} + + {children} +
+ ) +} + +export {SidebarMenuItem} diff --git a/src/_metronic/layout/components/sidebar/sidebar-menu/SidebarMenuItemWithSub.tsx b/src/_metronic/layout/components/sidebar/sidebar-menu/SidebarMenuItemWithSub.tsx new file mode 100644 index 0000000..a40e558 --- /dev/null +++ b/src/_metronic/layout/components/sidebar/sidebar-menu/SidebarMenuItemWithSub.tsx @@ -0,0 +1,57 @@ +import React from 'react' +import clsx from 'clsx' +import {useLocation} from 'react-router' +import {checkIsActive, KTSVG, WithChildren} from '../../../../helpers' +import {useLayout} from '../../../core' + +type Props = { + to: string + title: string + icon?: string + fontIcon?: string + hasBullet?: boolean +} + +const SidebarMenuItemWithSub: React.FC = ({ + children, + to, + title, + icon, + fontIcon, + hasBullet, +}) => { + const {pathname} = useLocation() + const isActive = checkIsActive(pathname, to) + const {config} = useLayout() + const {app} = config + + return ( +
+ + {hasBullet && ( + + + + )} + {icon && app?.sidebar?.default?.menu?.iconType === 'svg' && ( + + + + )} + {fontIcon && app?.sidebar?.default?.menu?.iconType === 'font' && ( + + )} + {title} + + +
+ {children} +
+
+ ) +} + +export {SidebarMenuItemWithSub} diff --git a/src/_metronic/layout/components/sidebar/sidebar-menu/SidebarMenuMain.tsx b/src/_metronic/layout/components/sidebar/sidebar-menu/SidebarMenuMain.tsx new file mode 100644 index 0000000..e49dbfa --- /dev/null +++ b/src/_metronic/layout/components/sidebar/sidebar-menu/SidebarMenuMain.tsx @@ -0,0 +1,133 @@ +/* eslint-disable react/jsx-no-target-blank */ +import React from 'react' +import {useIntl} from 'react-intl' +import {KTSVG} from '../../../../helpers' +import {SidebarMenuItemWithSub} from './SidebarMenuItemWithSub' +import {SidebarMenuItem} from './SidebarMenuItem' + +const SidebarMenuMain = () => { + const intl = useIntl() + + return ( + <> + + +
+
+ Crafted +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ Apps +
+
+ + + + + + + + + ) +} + +export {SidebarMenuMain} diff --git a/src/_metronic/layout/components/toolbar/Toolbar.tsx b/src/_metronic/layout/components/toolbar/Toolbar.tsx new file mode 100644 index 0000000..4f70327 --- /dev/null +++ b/src/_metronic/layout/components/toolbar/Toolbar.tsx @@ -0,0 +1,101 @@ +import {useEffect} from 'react' +import {ILayout, useLayout} from '../../core' +import { + ToolbarAccounting, + ToolbarClassic, + ToolbarExtended, + ToolbarReports, + ToolbarSaas, +} from './toolbars' + +const Toolbar = () => { + const {config} = useLayout() + useEffect(() => { + updateDOM(config) + document.body.setAttribute('data-kt-app-toolbar-enabled', 'true') + }, [config]) + + switch (config.app?.toolbar?.layout) { + case 'classic': + return + case 'accounting': + return + case 'extended': + return + case 'reports': + return + case 'saas': + return + default: + return + } +} + +const updateDOM = (config: ILayout) => { + let appToolbarSwapAttributes: {[attrName: string]: string} = {} + const appToolbarSwapEnabled = config.app?.toolbar?.swap?.enabled + if (appToolbarSwapEnabled) { + appToolbarSwapAttributes = config.app?.toolbar?.swap?.attributes as {[attrName: string]: string} + } + + let appToolbarStickyAttributes: {[attrName: string]: string} = {} + const appToolbarStickyEnabled = config.app?.toolbar?.sticky?.enabled + if (appToolbarStickyEnabled) { + appToolbarStickyAttributes = config.app?.toolbar?.sticky?.attributes as { + [attrName: string]: string + } + + let appToolbarMinimizeAttributes: {[attrName: string]: string} = {} + const appToolbarMinimizeEnabled = config.app?.toolbar?.minimize?.enabled + if (appToolbarMinimizeEnabled) { + appToolbarMinimizeAttributes = config.app?.toolbar?.minimize?.attributes as { + [attrName: string]: string + } + } + + if (config.app?.toolbar?.fixed?.desktop) { + document.body.setAttribute('data-kt-app-toolbar-fixed', 'true') + } + + if (config.app?.toolbar?.fixed?.mobile) { + document.body.setAttribute('data-kt-app-toolbar-fixed-mobile', 'true') + } + + setTimeout(() => { + const toolbarElement = document.getElementById('kt_app_toolbar') + // toolbar + if (toolbarElement) { + const toolbarAttributes = toolbarElement + .getAttributeNames() + .filter((t) => t.indexOf('data-') > -1) + toolbarAttributes.forEach((attr) => toolbarElement.removeAttribute(attr)) + + if (appToolbarSwapEnabled) { + for (const key in appToolbarSwapAttributes) { + if (appToolbarSwapAttributes.hasOwnProperty(key)) { + toolbarElement.setAttribute(key, appToolbarSwapAttributes[key]) + } + } + } + + if (appToolbarStickyEnabled) { + for (const key in appToolbarStickyAttributes) { + if (appToolbarStickyAttributes.hasOwnProperty(key)) { + toolbarElement.setAttribute(key, appToolbarStickyAttributes[key]) + } + } + } + + if (appToolbarMinimizeEnabled) { + for (const key in appToolbarMinimizeAttributes) { + if (appToolbarMinimizeAttributes.hasOwnProperty(key)) { + toolbarElement.setAttribute(key, appToolbarMinimizeAttributes[key]) + } + } + } + } + }, 0) + } +} + +export {Toolbar} diff --git a/src/_metronic/layout/components/toolbar/ToolbarWrapper.tsx b/src/_metronic/layout/components/toolbar/ToolbarWrapper.tsx new file mode 100644 index 0000000..e95d0fe --- /dev/null +++ b/src/_metronic/layout/components/toolbar/ToolbarWrapper.tsx @@ -0,0 +1,51 @@ +import clsx from 'clsx' +import {ToolbarType, useLayout} from '../../core' +import {Toolbar} from './Toolbar' +import {PageTitleWrapper} from './page-title' + +const ToolbarWrapper = () => { + const {config, classes} = useLayout() + if (!config.app?.toolbar?.display) { + return null + } + + const isPageTitleVisible = showPageTitle( + config.app?.toolbar?.layout, + config.app?.pageTitle?.display + ) + + return ( +
+
+ {isPageTitleVisible && } + +
+
+ ) +} + +const showPageTitle = (appToolbarLayout?: ToolbarType, appPageTitleDisplay?: boolean): boolean => { + const viewsWithPageTitles = ['classic', 'reports', 'saas'] + if (!appToolbarLayout || !appPageTitleDisplay) { + return false + } + + return appPageTitleDisplay && viewsWithPageTitles.some((t) => t === appToolbarLayout) +} + +export {ToolbarWrapper} diff --git a/src/_metronic/layout/components/toolbar/index.ts b/src/_metronic/layout/components/toolbar/index.ts new file mode 100644 index 0000000..f89cb26 --- /dev/null +++ b/src/_metronic/layout/components/toolbar/index.ts @@ -0,0 +1 @@ +export * from './ToolbarWrapper' diff --git a/src/_metronic/layout/components/toolbar/page-title/PageTitle.tsx b/src/_metronic/layout/components/toolbar/page-title/PageTitle.tsx new file mode 100644 index 0000000..b0c47c5 --- /dev/null +++ b/src/_metronic/layout/components/toolbar/page-title/PageTitle.tsx @@ -0,0 +1,86 @@ +import clsx from 'clsx' +import {Link} from 'react-router-dom' +import {useLayout} from '../../../core' +import {usePageData} from '../../../core/PageData' + +const PageTitle = () => { + const {pageTitle, pageDescription, pageBreadcrumbs} = usePageData() + const {config, classes} = useLayout() + const appPageTitleDirection = config.app?.pageTitle?.direction + + return ( +
+ {/* begin::Title */} + {config.app?.pageTitle?.display && pageTitle && ( +

+ {pageTitle} + {pageDescription && config.app?.pageTitle && config.app?.pageTitle?.description && ( + + {config.app?.pageTitle?.direction === 'row' && ( + + )} + {pageDescription}{' '} + + )} +

+ )} + {/* end::Title */} + + {pageBreadcrumbs && + pageBreadcrumbs.length > 0 && + config.app?.pageTitle && + config.app?.pageTitle?.breadCrumb && ( + <> + {config.app?.pageTitle?.direction === 'row' && ( + + )} +
    + {Array.from(pageBreadcrumbs).map((item, index) => ( +
  • + {!item.isSeparator ? ( + + {item.title} + + ) : ( + + )} +
  • + ))} +
  • {pageTitle}
  • +
+ + )} +
+ ) +} + +export {PageTitle} diff --git a/src/_metronic/layout/components/toolbar/page-title/PageTitleWrapper.tsx b/src/_metronic/layout/components/toolbar/page-title/PageTitleWrapper.tsx new file mode 100644 index 0000000..87360e5 --- /dev/null +++ b/src/_metronic/layout/components/toolbar/page-title/PageTitleWrapper.tsx @@ -0,0 +1,13 @@ +import {useLayout} from '../../../core' +import {PageTitle} from './PageTitle' + +const PageTitleWrapper = () => { + const {config} = useLayout() + if (!config.app?.pageTitle?.display) { + return null + } + + return +} + +export {PageTitleWrapper} diff --git a/src/_metronic/layout/components/toolbar/page-title/index.ts b/src/_metronic/layout/components/toolbar/page-title/index.ts new file mode 100644 index 0000000..9c82991 --- /dev/null +++ b/src/_metronic/layout/components/toolbar/page-title/index.ts @@ -0,0 +1 @@ +export * from './PageTitleWrapper' diff --git a/src/_metronic/layout/components/toolbar/toolbars/ToolbarAccounting.tsx b/src/_metronic/layout/components/toolbar/toolbars/ToolbarAccounting.tsx new file mode 100644 index 0000000..74d293b --- /dev/null +++ b/src/_metronic/layout/components/toolbar/toolbars/ToolbarAccounting.tsx @@ -0,0 +1,139 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC, useEffect, useState} from 'react' +import {KTSVG} from '../../../../helpers' + +const ToolbarAccounting: FC = () => { + const [progress, setProgress] = useState('1') + const [filter, setFilter] = useState('1') + + useEffect(() => { + document.body.setAttribute('data-kt-app-toolbar-fixed', 'true') + }, []) + + return ( + <> +
+ {/* begin::Input group */} +
+ {/* begin::Label */} + Actions: + {/* end::Label */} + + {/* begin::Actions */} +
+ {/* begin::Button */} +
+ + + +
+ {/* end::Button */} + + {/* begin::Button */} +
+ + + +
+ {/* end::Button */} + + {/* begin::Button */} +
+ + + +
+ {/* end::Button */} +
+ {/* end::Actions */} +
+ {/* end::Input group */} + + {/* begin::Input group */} +
+ {/* begin::Desktop separartor */} +
+ {/* end::Desktop separartor */} + + {/* begin::Label */} + Progress: + {/* end::Label */} + +
+
+ 72% +
+
+
+ {/* end::Input group */} + {/* end::Toolbar start */} +
+ {/* begin::Toolbar end */} +
+ {/* begin::Input group */} +
+ {/* begin::Select */} + + {/* end::Select */} +
+ {/* end::Input group- */} + + {/* begin::Input group- */} +
+ {/* begin::Select */} + + {/* end::Content */} +
+ {/* end::Input group- */} +
+ + ) +} + +export {ToolbarAccounting} diff --git a/src/_metronic/layout/components/toolbar/toolbars/ToolbarClassic.tsx b/src/_metronic/layout/components/toolbar/toolbars/ToolbarClassic.tsx new file mode 100644 index 0000000..01a40d2 --- /dev/null +++ b/src/_metronic/layout/components/toolbar/toolbars/ToolbarClassic.tsx @@ -0,0 +1,71 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import clsx from 'clsx' +import {useState} from 'react' +import {KTSVG} from '../../../../helpers' +import {CreateAppModal, Dropdown1} from '../../../../partials' +import {useLayout} from '../../../core' + +const ToolbarClassic = () => { + const {config} = useLayout() + const [showCreateAppModal, setShowCreateAppModal] = useState(false) + const daterangepickerButtonClass = config.app?.toolbar?.fixed?.desktop + ? 'btn-light' + : 'bg-body btn-color-gray-700 btn-active-color-primary' + + return ( +
+ {config.app?.toolbar?.filterButton && ( + + )} + + {config.app?.toolbar?.daterangepickerButton && ( +
+
Loading date range...
+ +
+ )} + + {config.app?.toolbar?.secondaryButton && ( + + Filter + + )} + + {config.app?.toolbar?.primaryButton && ( + setShowCreateAppModal(true)} + className='btn btn-sm fw-bold btn-primary' + data-bs-toggle='modal' + data-bs-target='#kt_modal_create_app' + > + Create + + )} + setShowCreateAppModal(false)} /> +
+ ) +} + +export {ToolbarClassic} diff --git a/src/_metronic/layout/components/toolbar/toolbars/ToolbarExtended.tsx b/src/_metronic/layout/components/toolbar/toolbars/ToolbarExtended.tsx new file mode 100644 index 0000000..358712f --- /dev/null +++ b/src/_metronic/layout/components/toolbar/toolbars/ToolbarExtended.tsx @@ -0,0 +1,163 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC, useEffect, useState} from 'react' +import {KTSVG, toAbsoluteUrl} from '../../../../helpers' + +const ToolbarExtended: FC = () => { + const [progress, setProgress] = useState('1') + const [search, setSearch] = useState('') + + useEffect(() => { + document.body.setAttribute('data-kt-app-toolbar-fixed', 'true') + }, []) + + return ( + <> +
+ {/* begin::Label */} + Team: + {/* end::Label */} + + {/* begin::Users */} +
+ {/* begin::User */} +
+
A
+
+ {/* end::User */} + + {/* begin::User */} +
+ +
+ {/* end::User */} + + {/* begin::User */} +
+ +
+ {/* end::User */} + + {/* begin::User */} +
+
S
+
+ {/* end::User */} + + {/* begin::User */} +
+ +
+ {/* end::User */} + + {/* begin::User */} +
+
P
+
+ {/* end::User */} + + {/* begin::User */} +
+ +
+ {/* end::User */} +
+ {/* end::Users */} + + {/* begin::Button */} +
+ + + +
+
+ {/* end::Button */} + {/* end::Toolbar start */} + + {/* begin::Toolbar end */} +
+ {/* begin::Search */} +
+ + setSearch(e.target.value)} + placeholder='Search Team' + /> +
+ {/* end::Search */} + + {/* begin::Separartor */} +
+ {/* end::Separartor */} + + {/* begin::Label */} + + Sort By: + + {/* end::Label */} + + {/* begin::Select */} + + {/* end::Select */} + + {/* begin::Actions */} +
+ + + +
+ {/* end::Actions */} +
+ + ) +} + +export {ToolbarExtended} diff --git a/src/_metronic/layout/components/toolbar/toolbars/ToolbarReports.tsx b/src/_metronic/layout/components/toolbar/toolbars/ToolbarReports.tsx new file mode 100644 index 0000000..08b0b78 --- /dev/null +++ b/src/_metronic/layout/components/toolbar/toolbars/ToolbarReports.tsx @@ -0,0 +1,121 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {useEffect, useState} from 'react' +import {KTSVG} from '../../../../helpers' + +const ToolbarReports = () => { + const [progress, setProgress] = useState('1') + + useEffect(() => { + document.body.setAttribute('data-kt-app-toolbar-fixed', 'true') + }, []) + + return ( +
+ {/* begin::Wrapper */} +
+ {/* begin::Label */} + + Filter By: + + {/* end::Label */} + +
+ +
+
+ {/* end::Wrapper */} + + {/* begin::Separartor */} +
+ {/* end::Separartor */} + + {/* begin::Wrapper */} +
+ {/* begin::Label */} + + Sort By: + + {/* end::Label */} + + {/* begin::Select */} + + {/* end::Select */} + + {/* begin::Actions */} +
+ + + +
+ {/* end::Actions */} +
+ {/* end::Wrapper */} +
+ ) +} + +export {ToolbarReports} diff --git a/src/_metronic/layout/components/toolbar/toolbars/ToolbarSaas.tsx b/src/_metronic/layout/components/toolbar/toolbars/ToolbarSaas.tsx new file mode 100644 index 0000000..b349fcf --- /dev/null +++ b/src/_metronic/layout/components/toolbar/toolbars/ToolbarSaas.tsx @@ -0,0 +1,126 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC, useEffect, useState} from 'react' +import {KTSVG} from '../../../../helpers' + +const ToolbarSaas: FC = () => { + const [progress, setProgress] = useState('1') + useEffect(() => { + document.body.setAttribute('data-kt-app-toolbar-fixed', 'true') + }, []) + + return ( +
+ {/* begin::Action wrapper */} +
+ {/* begin::Label */} + + Sort By: + + {/* end::Label */} + + {/* begin::Select */} + + {/* end::Select */} +
+ {/* end::Action wrapper */} + + {/* begin::Action wrapper */} +
+ {/* begin::Separartor */} +
+ {/* end::Separartor */} + + {/* begin::Label */} + Impact Level: + {/* end::Label */} + + {/* begin::NoUiSlider */} +
+
+ + +
+ {/* end::NoUiSlider */} + + {/* begin::Separartor */} +
+ {/* end::Separartor */} +
+ {/* end::Action wrapper */} + + {/* begin::Action wrapper */} +
+ {/* begin::Label */} + Quick Tools: + {/* end::Label */} + + {/* begin::Actions */} +
+ {/* begin::Action */} + + + + {/* end::Action */} + + {/* begin::Action */} + + + + {/* end::Action */} + + {/* begin::Action */} + + + + {/* end::Action */} +
+ {/* end::Actions */} +
+ {/* end::Action wrapper */} +
+ ) +} + +export {ToolbarSaas} diff --git a/src/_metronic/layout/components/toolbar/toolbars/index.ts b/src/_metronic/layout/components/toolbar/toolbars/index.ts new file mode 100644 index 0000000..c3a7436 --- /dev/null +++ b/src/_metronic/layout/components/toolbar/toolbars/index.ts @@ -0,0 +1,5 @@ +export * from './ToolbarAccounting' +export * from './ToolbarClassic' +export * from './ToolbarExtended' +export * from './ToolbarReports' +export * from './ToolbarSaas' diff --git a/src/_metronic/layout/core/MetronicSplashScreen.tsx b/src/_metronic/layout/core/MetronicSplashScreen.tsx new file mode 100644 index 0000000..a66b9f8 --- /dev/null +++ b/src/_metronic/layout/core/MetronicSplashScreen.tsx @@ -0,0 +1,79 @@ +import React, { + FC, + createContext, + useContext, + useState, + useEffect, + SetStateAction, + Dispatch, +} from 'react' +import {WithChildren} from '../../helpers' + +const MetronicSplashScreenContext = createContext> | undefined>( + undefined +) + +const MetronicSplashScreenProvider: FC = ({children}) => { + const [count, setCount] = useState(0) + let visible = count > 0 + + useEffect(() => { + const splashScreen = document.getElementById('splash-screen') + + // Show SplashScreen + if (splashScreen && visible) { + splashScreen.classList.remove('hidden') + + return () => { + splashScreen.classList.add('hidden') + } + } + + // Hide SplashScreen + let timeout: number + if (splashScreen && !visible) { + timeout = window.setTimeout(() => { + splashScreen.classList.add('hidden') + }, 3000) + } + + return () => { + clearTimeout(timeout) + } + }, [visible]) + + return ( + + {children} + + ) +} + +const LayoutSplashScreen: FC<{visible?: boolean}> = ({visible = true}) => { + // Everything are ready - remove splashscreen + const setCount = useContext(MetronicSplashScreenContext) + + useEffect(() => { + if (!visible) { + return + } + + if (setCount) { + setCount((prev) => { + return prev + 1 + }) + } + + return () => { + if (setCount) { + setCount((prev) => { + return prev - 1 + }) + } + } + }, [setCount, visible]) + + return null +} + +export {MetronicSplashScreenProvider, LayoutSplashScreen} diff --git a/src/_metronic/layout/core/PageData.tsx b/src/_metronic/layout/core/PageData.tsx new file mode 100644 index 0000000..99195ee --- /dev/null +++ b/src/_metronic/layout/core/PageData.tsx @@ -0,0 +1,96 @@ +/* eslint-disable react-hooks/exhaustive-deps */ +import React, {FC, createContext, useContext, useEffect, useState} from 'react' +import {WithChildren} from '../../helpers' + +export interface PageLink { + title: string + path: string + isActive: boolean + isSeparator?: boolean +} + +export interface PageDataContextModel { + pageTitle?: string + setPageTitle: (_title: string) => void + pageDescription?: string + setPageDescription: (_description: string) => void + pageBreadcrumbs?: Array + setPageBreadcrumbs: (_breadcrumbs: Array) => void +} + +const PageDataContext = createContext({ + setPageTitle: (_title: string) => {}, + setPageBreadcrumbs: (_breadcrumbs: Array) => {}, + setPageDescription: (_description: string) => {}, +}) + +const PageDataProvider: FC = ({children}) => { + const [pageTitle, setPageTitle] = useState('') + const [pageDescription, setPageDescription] = useState('') + const [pageBreadcrumbs, setPageBreadcrumbs] = useState>([]) + const value: PageDataContextModel = { + pageTitle, + setPageTitle, + pageDescription, + setPageDescription, + pageBreadcrumbs, + setPageBreadcrumbs, + } + return {children} +} + +function usePageData() { + return useContext(PageDataContext) +} + +type Props = { + description?: string + breadcrumbs?: Array +} + +const PageTitle: FC = ({children, description, breadcrumbs}) => { + const {setPageTitle, setPageDescription, setPageBreadcrumbs} = usePageData() + useEffect(() => { + if (children) { + setPageTitle(children.toString()) + } + return () => { + setPageTitle('') + } + }, [children]) + + useEffect(() => { + if (description) { + setPageDescription(description) + } + return () => { + setPageDescription('') + } + }, [description]) + + useEffect(() => { + if (breadcrumbs) { + setPageBreadcrumbs(breadcrumbs) + } + return () => { + setPageBreadcrumbs([]) + } + }, [breadcrumbs]) + + return <> +} + +const PageDescription: FC = ({children}) => { + const {setPageDescription} = usePageData() + useEffect(() => { + if (children) { + setPageDescription(children.toString()) + } + return () => { + setPageDescription('') + } + }, [children]) + return <> +} + +export {PageDescription, PageTitle, PageDataProvider, usePageData} diff --git a/src/_metronic/layout/core/_LayoutConfig.ts b/src/_metronic/layout/core/_LayoutConfig.ts new file mode 100644 index 0000000..e63dcfa --- /dev/null +++ b/src/_metronic/layout/core/_LayoutConfig.ts @@ -0,0 +1,138 @@ +import {ILayout} from './_Models' + +export const DefaultConfig: ILayout = { + layoutType: 'dark-sidebar', + main: { + componentName: 'main', + type: 'default', + pageBgWhite: false, + }, + app: { + general: { + componentName: 'general', + evolution: true, + layoutType: 'default', + mode: 'light', + rtl: false, + primaryColor: '#50CD89', + pageBgWhite: false, + pageWidth: 'default', + }, + header: { + componentName: 'header', + display: true, + default: { + container: 'fluid', + containerClass: 'd-flex align-items-stretch justify-content-between', + fixed: { + desktop: true, + mobile: false, + }, + content: 'menu', + menu: { + display: true, + iconType: 'svg', + }, + }, + }, + sidebar: { + componentName: 'sidebar', + display: true, + default: { + class: 'flex-column', + push: { + header: true, + toolbar: true, + footer: true, + }, + drawer: { + enabled: true, + attributes: { + 'data-kt-drawer': 'true', + 'data-kt-drawer-name': 'app-sidebar', + 'data-kt-drawer-activate': '{default: true, lg: false}', + 'data-kt-drawer-overlay': 'true', + 'data-kt-drawer-width': '225px', + 'data-kt-drawer-direction': 'start', + 'data-kt-drawer-toggle': '#kt_app_sidebar_mobile_toggle', + }, + }, + fixed: { + desktop: true, + }, + minimize: { + desktop: { + enabled: true, + default: false, + hoverable: true, + }, + }, + menu: { + iconType: 'svg', + }, + }, + }, + toolbar: { + componentName: 'toolbar', + display: true, + layout: 'classic', + class: 'py-3 py-lg-6', + container: 'fluid', + containerClass: 'd-flex flex-stack', + fixed: { + desktop: false, + mobile: false, + }, + // custom settings, + filterButton: true, + daterangepickerButton: false, + primaryButton: true, + primaryButtonLabel: 'Create', + primaryButtonModal: 'create-app', + }, + pageTitle: { + componentName: 'page-title', + display: true, + breadCrumb: true, + description: false, + direction: 'column', + }, + content: { + componentName: 'content', + container: 'fluid', + }, + footer: { + componentName: 'footer', + display: true, + container: 'fluid', + containerClass: 'd-flex flex-column flex-md-row flex-center flex-md-stack py-3', + fixed: { + desktop: false, + mobile: false, + }, + }, + pageLoader: { + componentName: 'page-loader', + type: 'none', + logoImage: 'default.svg', + logoClass: 'mh-75px', + }, + }, + illustrations: { + componentName: 'illustrations', + set: 'sketchy-1', + }, + scrolltop: { + componentName: 'scrolltop', + display: true, + }, + engage: { + componentName: 'engage', + demos: { + enabled: true, + }, + purchase: { + enabled: false, + }, + }, +} diff --git a/src/_metronic/layout/core/_LayoutProvider.tsx b/src/_metronic/layout/core/_LayoutProvider.tsx new file mode 100644 index 0000000..82908e9 --- /dev/null +++ b/src/_metronic/layout/core/_LayoutProvider.tsx @@ -0,0 +1,111 @@ +import {FC, createContext, useContext, useState, useEffect} from 'react' +import {DefaultConfig} from './_LayoutConfig' +import { + setLayoutIntoLocalStorage, + getEmptyCssClasses, + getEmptyCSSVariables, + getEmptyHTMLAttributes, + LayoutSetup, +} from './_LayoutSetup' +import { + ILayout, + ILayoutCSSVariables, + ILayoutCSSClasses, + ILayoutHTMLAttributes, + LayoutType, + ToolbarType, +} from './_Models' +import {WithChildren} from '../../helpers' + +export interface LayoutContextModel { + config: ILayout + classes: ILayoutCSSClasses + attributes: ILayoutHTMLAttributes + cssVariables: ILayoutCSSVariables + setLayout: (config: LayoutSetup) => void + setLayoutType: (layoutType: LayoutType) => void + setToolbarType: (toolbarType: ToolbarType) => void +} + +const LayoutContext = createContext({ + config: DefaultConfig, + classes: getEmptyCssClasses(), + attributes: getEmptyHTMLAttributes(), + cssVariables: getEmptyCSSVariables(), + setLayout: (config: LayoutSetup) => {}, + setLayoutType: (layoutType: LayoutType) => {}, + setToolbarType: (toolbarType: ToolbarType) => {}, +}) + +const enableSplashScreen = () => { + const splashScreen = document.getElementById('splash-screen') + if (splashScreen) { + splashScreen.style.setProperty('display', 'flex') + } +} + +const disableSplashScreen = () => { + const splashScreen = document.getElementById('splash-screen') + if (splashScreen) { + splashScreen.style.setProperty('display', 'none') + } +} + +const LayoutProvider: FC = ({children}) => { + const [config, setConfig] = useState(LayoutSetup.config) + const [classes, setClasses] = useState(LayoutSetup.classes) + const [attributes, setAttributes] = useState(LayoutSetup.attributes) + const [cssVariables, setCSSVariables] = useState(LayoutSetup.cssVariables) + + const setLayout = (_themeConfig: Partial) => { + enableSplashScreen() + const bodyClasses = Array.from(document.body.classList) + bodyClasses.forEach((cl) => document.body.classList.remove(cl)) + const updatedConfig = LayoutSetup.updatePartialConfig(_themeConfig) + setConfig(Object.assign({}, updatedConfig)) + setClasses(LayoutSetup.classes) + setAttributes(LayoutSetup.attributes) + setCSSVariables(LayoutSetup.cssVariables) + setTimeout(() => { + disableSplashScreen() + }, 500) + } + + const setToolbarType = (toolbarType: ToolbarType) => { + const updatedConfig = {...config} + if (updatedConfig.app?.toolbar) { + updatedConfig.app.toolbar.layout = toolbarType + } + + setLayoutIntoLocalStorage(updatedConfig) + window.location.reload() + } + + const setLayoutType = (layoutType: LayoutType) => { + const updatedLayout = {...config, layoutType} + setLayoutIntoLocalStorage(updatedLayout) + window.location.reload() + } + + const value: LayoutContextModel = { + config, + classes, + attributes, + cssVariables, + setLayout, + setLayoutType, + setToolbarType, + } + + useEffect(() => { + disableSplashScreen() + }, []) + + return {children} +} + +export {LayoutContext, LayoutProvider} + +export function useLayout() { + return useContext(LayoutContext) +} diff --git a/src/_metronic/layout/core/_LayoutSetup.ts b/src/_metronic/layout/core/_LayoutSetup.ts new file mode 100644 index 0000000..1a865fc --- /dev/null +++ b/src/_metronic/layout/core/_LayoutSetup.ts @@ -0,0 +1,222 @@ +import {ILayout, ILayoutCSSClasses, ILayoutHTMLAttributes, ILayoutCSSVariables} from './_Models' +import {DefaultConfig} from './_LayoutConfig' + +const LAYOUT_CONFIG_KEY = process.env.REACT_APP_BASE_LAYOUT_CONFIG_KEY || 'LayoutConfig' + +const getLayoutFromLocalStorage = (): ILayout => { + const ls = localStorage.getItem(LAYOUT_CONFIG_KEY) + if (ls) { + try { + return JSON.parse(ls) as ILayout + } catch (er) { + console.error(er) + } + } + return DefaultConfig +} + +const setLayoutIntoLocalStorage = (config: ILayout) => { + try { + localStorage.setItem(LAYOUT_CONFIG_KEY, JSON.stringify(config)) + } catch (er) { + console.error(er) + } +} + +const getEmptyCssClasses = (): ILayoutCSSClasses => { + return { + header: [], + headerContainer: [], + headerMobile: [], + headerMenu: [], + aside: [], + asideMenu: [], + asideToggle: [], + toolbar: [], + toolbarContainer: [], + content: [], + contentContainer: [], + footerContainer: [], + sidebar: [], + pageTitle: [], + pageContainer: [], + } +} + +const getEmptyHTMLAttributes = () => { + return { + asideMenu: new Map(), + headerMobile: new Map(), + headerMenu: new Map(), + headerContainer: new Map(), + pageTitle: new Map(), + } +} + +const getEmptyCSSVariables = () => { + return { + body: new Map(), + } +} + +class LayoutSetup { + public static isLoaded: boolean = false + public static config: ILayout = getLayoutFromLocalStorage() + public static classes: ILayoutCSSClasses = getEmptyCssClasses() + public static attributes: ILayoutHTMLAttributes = getEmptyHTMLAttributes() + public static cssVariables: ILayoutCSSVariables = getEmptyCSSVariables() + + private static initCSSClasses(): void { + LayoutSetup.classes = getEmptyCssClasses() + } + + private static initHTMLAttributes(): void { + LayoutSetup.attributes = Object.assign({}, getEmptyHTMLAttributes()) + } + + private static initCSSVariables(): void { + LayoutSetup.cssVariables = getEmptyCSSVariables() + } + + private static initConfig(config: ILayout): ILayout { + let updatedConfig = LayoutSetup.initLayoutSettings(config) + updatedConfig = LayoutSetup.initToolbarSetting(updatedConfig) + return LayoutSetup.initWidthSettings(updatedConfig) + } + + private static initLayoutSettings(config: ILayout): ILayout { + const updatedConfig = {...config} + // clear body classes + const bodyClasses = document.body.classList.value.split(' ') + bodyClasses.forEach((cssClass) => document.body.classList.remove(cssClass)) + // clear body attributes + const bodyAttributes = document.body.getAttributeNames().filter((t) => t.indexOf('data-') > -1) + bodyAttributes.forEach((attr) => document.body.removeAttribute(attr)) + document.body.setAttribute('style', '') + document.body.setAttribute('id', 'kt_app_body') + document.body.setAttribute('data-kt-app-layout', updatedConfig.layoutType) + document.body.setAttribute('data-kt-name', 'metronic') + document.body.classList.add('app-default') + + const pageWidth = updatedConfig.app?.general?.pageWidth + if (updatedConfig.layoutType === 'light-header' || updatedConfig.layoutType === 'dark-header') { + if (pageWidth === 'default') { + const header = updatedConfig.app?.header + if (header && header.default && header.default.container) { + header.default.container = 'fixed' + } + + const toolbar = updatedConfig.app?.toolbar + if (toolbar) { + toolbar.container = 'fixed' + } + + const content = updatedConfig.app?.content + if (content) { + content.container = 'fixed' + } + + const footer = updatedConfig.app?.footer + if (footer) { + footer.container = 'fixed' + } + + const updatedApp = { + ...updatedConfig.app, + ...header, + ...toolbar, + ...content, + ...footer, + } + return {...updatedConfig, app: updatedApp} + } + } + return updatedConfig + } + + private static initToolbarSetting(config: ILayout): ILayout { + const updatedConfig = {...config} + const appHeaderDefaultContent = updatedConfig.app?.header?.default?.content + if (appHeaderDefaultContent === 'page-title') { + const toolbar = updatedConfig.app?.toolbar + if (toolbar) { + toolbar.display = false + const updatedApp = {...updatedConfig.app, ...toolbar} + return {...updatedConfig, app: updatedApp} + } + return updatedConfig + } + + const pageTitle = updatedConfig.app?.pageTitle + if (pageTitle) { + pageTitle.description = false + pageTitle.breadCrumb = true + const updatedApp = {...updatedConfig.app, ...pageTitle} + return {...updatedConfig, app: updatedApp} + } + + return updatedConfig + } + + private static initWidthSettings(config: ILayout): ILayout { + const updatedConfig = {...config} + const pageWidth = updatedConfig.app?.general?.pageWidth + if (!pageWidth || pageWidth === 'default') { + return config + } + + const header = updatedConfig.app?.header + if (header && header.default) { + header.default.container = pageWidth + } + const toolbar = updatedConfig.app?.toolbar + if (toolbar) { + toolbar.container = pageWidth + } + const content = updatedConfig.app?.content + if (content) { + content.container = pageWidth + } + const footer = updatedConfig.app?.footer + if (footer) { + footer.container = pageWidth + } + const updatedApp = { + ...updatedConfig.app, + ...header, + ...toolbar, + ...content, + ...footer, + } + return {...updatedConfig, app: updatedApp} + } + + public static updatePartialConfig(fieldsToUpdate: Partial): ILayout { + const config = LayoutSetup.config + const updatedConfig = {...config, ...fieldsToUpdate} + LayoutSetup.initCSSClasses() + LayoutSetup.initCSSVariables() + LayoutSetup.initHTMLAttributes() + LayoutSetup.isLoaded = false + LayoutSetup.config = LayoutSetup.initConfig(Object.assign({}, updatedConfig)) + LayoutSetup.isLoaded = true // remove loading there + return updatedConfig + } + + public static setConfig(config: ILayout): void { + setLayoutIntoLocalStorage(config) + } + + public static bootstrap = (() => { + LayoutSetup.updatePartialConfig(LayoutSetup.config) + })() +} + +export { + LayoutSetup, + getLayoutFromLocalStorage, + setLayoutIntoLocalStorage, + getEmptyCssClasses, + getEmptyCSSVariables, + getEmptyHTMLAttributes, +} diff --git a/src/_metronic/layout/core/_Models.ts b/src/_metronic/layout/core/_Models.ts new file mode 100644 index 0000000..89df93c --- /dev/null +++ b/src/_metronic/layout/core/_Models.ts @@ -0,0 +1,257 @@ +export type LayoutType = 'dark-sidebar' | 'light-sidebar' | 'dark-header' | 'light-header' + +export type CSSClassesType = { + [key: string]: string[] +} + +export type HTMLAttributesType = { + [key: string]: { + [attrName: string]: string | boolean + } +} + +export interface ILayoutComponent { + componentName?: string +} + +export interface IPageLoader extends ILayoutComponent { + componentName?: 'page-loader' + type?: 'none' | 'default' | 'spinner-message' | 'spinner-logo' + logoImage?: string + logoClass?: string +} + +export interface IScrollTop extends ILayoutComponent { + display?: boolean +} + +export interface IHeader extends ILayoutComponent { + componentName?: 'header' + display?: boolean + default?: { + container?: 'fluid' | 'fixed' + containerClass?: string + fixed?: { + desktop?: boolean + mobile?: boolean + } + content?: string + menu?: { + display?: boolean + iconType?: 'svg' | 'font' + } + stacked?: boolean + sticky?: { + enabled?: boolean + attributes?: {[attrName: string]: string} + } + minimize?: { + enabled?: boolean + attributes?: {[attrName: string]: string} + } + } +} + +export interface ISidebar extends ILayoutComponent { + componentName?: 'sidebar' + display?: boolean + default?: { + class?: string + push?: { + header?: boolean + toolbar?: boolean + footer?: boolean + } + drawer?: { + enabled?: boolean + attributes?: {[attrName: string]: string} + } + sticky?: { + enabled?: boolean + attributes?: {[attrName: string]: string} + } + fixed?: { + desktop?: boolean + } + minimize?: { + desktop?: { + enabled?: boolean + default?: boolean + hoverable?: boolean + } + mobile?: { + enabled?: boolean + default?: boolean + hoverable?: boolean + } + } + menu?: { + iconType?: 'svg' | 'font' + } + collapse?: { + desktop?: { + enabled?: boolean + default?: boolean + } + mobile?: { + enabled?: boolean + default?: boolean + } + } + stacked?: boolean + } + toggle?: boolean +} + +export type ToolbarType = 'classic' | 'accounting' | 'extended' | 'reports' | 'saas' + +export interface IToolbar extends ILayoutComponent { + componentName?: 'toolbar' + display?: boolean + layout?: ToolbarType + class?: string + container?: 'fixed' | 'fluid' + containerClass?: string + fixed?: { + desktop?: boolean + mobile?: boolean + } + swap?: { + enabled?: boolean + attributes?: {[attrName: string]: string} + } + sticky?: { + enabled?: boolean + attributes?: {[attrName: string]: string} + } + minimize?: { + enabled?: boolean + attributes?: {[attrName: string]: string} + } + + // Custom settings + filterButton?: boolean + daterangepickerButton?: boolean + primaryButton?: boolean + primaryButtonLabel?: string + primaryButtonModal?: string + secondaryButton?: boolean +} + +export interface IMain extends ILayoutComponent { + type?: 'blank' | 'default' | 'none' // Set layout type: default|blank|none + pageBgWhite?: boolean // Set true if page background color is white +} + +export interface IIllustrations extends ILayoutComponent { + componentName?: 'illustrations' + set?: 'sketchy-1' +} + +export interface IGeneral extends ILayoutComponent { + componentName?: 'general' + evolution?: boolean + layoutType?: 'default' | 'blank' + mode?: 'light' | 'dark' | 'system' + rtl?: boolean + primaryColor?: string // Used in email templates + pageBgWhite?: boolean // Set true if page background color is white + pageWidth?: 'default' | 'fluid' | 'fixed' +} + +export interface IMegaMenu extends ILayoutComponent { + display: boolean +} + +export interface ISidebarPanel extends ILayoutComponent { + componentName?: 'sidebar-panel' + display: boolean +} + +export interface IContent extends ILayoutComponent { + componentName?: 'content' + container?: 'fixed' | 'fluid' + class?: string +} + +export interface IFooter extends ILayoutComponent { + componentName?: 'footer' + display?: boolean + container?: 'fluid' | 'fixed' + containerClass?: string + placement?: string + fixed?: { + desktop?: boolean + mobile?: boolean + } +} + +export interface IPageTitle extends ILayoutComponent { + componentName?: 'page-title' + display?: boolean + breadCrumb?: boolean + description?: boolean + direction?: 'row' | 'column' + class?: string +} + +export interface IEngage extends ILayoutComponent { + componentName?: 'engage' + demos?: { + enabled?: boolean + } + purchase?: { + enabled?: boolean + } +} + +export interface IApp { + general?: IGeneral + header?: IHeader + sidebar?: ISidebar + sidebarPanel?: ISidebarPanel + toolbar?: IToolbar + pageTitle?: IPageTitle + content?: IContent + footer?: IFooter + pageLoader?: IPageLoader +} + +export interface ILayout { + layoutType: LayoutType + main?: IMain + app?: IApp + illustrations?: IIllustrations + scrolltop?: IScrollTop + engage?: IEngage +} + +export interface ILayoutCSSClasses { + header: Array + headerContainer: Array + headerMobile: Array + headerMenu: Array + aside: Array + asideMenu: Array + asideToggle: Array + sidebar: Array + toolbar: Array + toolbarContainer: Array + content: Array + contentContainer: Array + footerContainer: Array + pageTitle: Array + pageContainer: Array +} + +export interface ILayoutHTMLAttributes { + asideMenu: Map + headerMobile: Map + headerMenu: Map + headerContainer: Map + pageTitle: Map +} + +export interface ILayoutCSSVariables { + body: Map +} diff --git a/src/_metronic/layout/core/index.ts b/src/_metronic/layout/core/index.ts new file mode 100644 index 0000000..90d0d9b --- /dev/null +++ b/src/_metronic/layout/core/index.ts @@ -0,0 +1,6 @@ +export * from './_LayoutConfig' +export * from './_LayoutProvider' +export * from './_Models' +export * from './_LayoutSetup' +export * from './PageData' +export * from './MetronicSplashScreen' diff --git a/src/_metronic/partials/chat/ChatInner.tsx b/src/_metronic/partials/chat/ChatInner.tsx new file mode 100644 index 0000000..e53422b --- /dev/null +++ b/src/_metronic/partials/chat/ChatInner.tsx @@ -0,0 +1,193 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC, useState} from 'react' +import clsx from 'clsx' +import { + toAbsoluteUrl, + defaultMessages, + defaultUserInfos, + MessageModel, + UserInfoModel, + messageFromClient, +} from '../../helpers' + +type Props = { + isDrawer?: boolean +} + +const bufferMessages = defaultMessages + +const ChatInner: FC = ({isDrawer = false}) => { + const [chatUpdateFlag, toggleChatUpdateFlat] = useState(false) + const [message, setMessage] = useState('') + const [messages, setMessages] = useState(bufferMessages) + const [userInfos] = useState(defaultUserInfos) + + const sendMessage = () => { + const newMessage: MessageModel = { + user: 2, + type: 'out', + text: message, + time: 'Just now', + } + + bufferMessages.push(newMessage) + setMessages(bufferMessages) + toggleChatUpdateFlat(!chatUpdateFlag) + setMessage('') + setTimeout(() => { + bufferMessages.push(messageFromClient) + setMessages(() => bufferMessages) + toggleChatUpdateFlat((flag) => !flag) + }, 1000) + } + + const onEnterPress = (e: React.KeyboardEvent) => { + if (e.keyCode === 13 && e.shiftKey === false) { + e.preventDefault() + sendMessage() + } + } + + return ( +
+
+ {messages.map((message, index) => { + const userInfo = userInfos[message.user] + const state = message.type === 'in' ? 'info' : 'primary' + const templateAttr = {} + if (message.template) { + Object.defineProperty(templateAttr, 'data-kt-element', { + value: `template-${message.type}`, + }) + } + const contentClass = `${isDrawer ? '' : 'd-flex'} justify-content-${ + message.type === 'in' ? 'start' : 'end' + } mb-10` + return ( +
+
+
+ {message.type === 'in' ? ( + <> +
+ Pic +
+
+ + {userInfo.name} + + {message.time} +
+ + ) : ( + <> +
+ {message.time} + + You + +
+
+ Pic +
+ + )} +
+ +
+
+
+ ) + })} +
+ +
+ + +
+
+ + +
+ +
+
+
+ ) +} + +export {ChatInner} diff --git a/src/_metronic/partials/content/activity/Item1.tsx b/src/_metronic/partials/content/activity/Item1.tsx new file mode 100644 index 0000000..22a4b12 --- /dev/null +++ b/src/_metronic/partials/content/activity/Item1.tsx @@ -0,0 +1,106 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {KTSVG, toAbsoluteUrl} from '../../../helpers' + +const Item1: FC = () => { + return ( +
+
+ +
+
+ +
+
+ +
+
+
+ There are 2 new tasks for you in “AirPlus Mobile APp” project: +
+ +
+
Added at 4:23 PM by
+ +
+ img +
+
+
+ +
+
+ + Meeting with customer + + +
+ Application Design +
+ +
+
+ img +
+ +
+ img +
+ +
+
A
+
+
+ +
+ In Progress +
+ + + View + +
+ +
+ + Project Delivery Preparation + + +
+ CRM System Development +
+ +
+
+ img +
+ +
+
B
+
+
+ +
+ Completed +
+ + + View + +
+
+
+
+ ) +} + +export {Item1} diff --git a/src/_metronic/partials/content/activity/Item2.tsx b/src/_metronic/partials/content/activity/Item2.tsx new file mode 100644 index 0000000..c0cf134 --- /dev/null +++ b/src/_metronic/partials/content/activity/Item2.tsx @@ -0,0 +1,43 @@ +import {FC} from 'react' +import {KTSVG, toAbsoluteUrl} from '../../../helpers' + +const Item2: FC = () => { + return ( +
+
+ +
+
+ +
+
+ +
+
+
+ Invitation for crafting engaging designs that speak human workshop +
+ +
+
Sent at 4:23 PM by
+ +
+ img +
+
+
+
+
+ ) +} + +export {Item2} diff --git a/src/_metronic/partials/content/activity/Item3.tsx b/src/_metronic/partials/content/activity/Item3.tsx new file mode 100644 index 0000000..052038c --- /dev/null +++ b/src/_metronic/partials/content/activity/Item3.tsx @@ -0,0 +1,84 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {KTSVG, toAbsoluteUrl} from '../../../helpers' + +const Item3: FC = () => { + return ( +
+
+ +
+
+ +
+
+ +
+
+ + 3 New Incoming Project Files: + + +
+
Sent at 10:30 PM by
+ +
+ img +
+
+
+ +
+
+
+ + + +
+ + + +
+ + + +
+
+
+
+
+ ) +} + +export {Item3} diff --git a/src/_metronic/partials/content/activity/Item4.tsx b/src/_metronic/partials/content/activity/Item4.tsx new file mode 100644 index 0000000..3007711 --- /dev/null +++ b/src/_metronic/partials/content/activity/Item4.tsx @@ -0,0 +1,52 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {KTSVG, toAbsoluteUrl} from '../../../helpers' + +const Item4: FC = () => { + return ( +
+
+ +
+
+ +
+
+ +
+
+
+ Task{' '} + + #45890 + + merged with{' '} + + #45890 + {' '} + in “Ads Pro Admin Dashboard project: +
+ +
+
Initiated at 4:23 PM by
+ +
+ img +
+
+
+
+
+ ) +} + +export {Item4} diff --git a/src/_metronic/partials/content/activity/Item5.tsx b/src/_metronic/partials/content/activity/Item5.tsx new file mode 100644 index 0000000..a2e40a4 --- /dev/null +++ b/src/_metronic/partials/content/activity/Item5.tsx @@ -0,0 +1,94 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {KTSVG, toAbsoluteUrl} from '../../../helpers' + +const Item5: FC = () => { + return ( +
+
+ +
+
+ +
+
+ +
+
+
3 new application design concepts added:
+ +
+
Created at 4:23 PM by
+ +
+ img +
+
+
+ +
+
+
+
+ img +
+ + +
+ +
+
+ img +
+ + +
+ +
+
+ img +
+ + +
+
+
+
+
+ ) +} + +export {Item5} diff --git a/src/_metronic/partials/content/activity/Item6.tsx b/src/_metronic/partials/content/activity/Item6.tsx new file mode 100644 index 0000000..b650ea1 --- /dev/null +++ b/src/_metronic/partials/content/activity/Item6.tsx @@ -0,0 +1,44 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {KTSVG} from '../../../helpers' + +const Item6: FC = () => { + return ( +
+
+ +
+
+ +
+
+ +
+
+
+ New case{' '} + + #67890 + + is assigned to you in Multi-platform Database Design project +
+ +
+
+
Added at 4:23 PM by
+ + + Alice Tan + +
+
+
+
+
+ ) +} + +export {Item6} diff --git a/src/_metronic/partials/content/activity/Item7.tsx b/src/_metronic/partials/content/activity/Item7.tsx new file mode 100644 index 0000000..5260ca0 --- /dev/null +++ b/src/_metronic/partials/content/activity/Item7.tsx @@ -0,0 +1,62 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {KTSVG, toAbsoluteUrl} from '../../../helpers' + +const Item7: FC = () => { + return ( +
+
+ +
+
+ +
+
+ +
+
+
You have received a new order:
+ +
+
Placed at 5:05 AM by
+ +
+ img +
+
+
+ +
+
+ +
+
+

Database Backup Process Completed!

+
+ Login into Metronic Admin Dashboard to make sure the data integrity is OK +
+
+ + Proceed + +
+
+
+
+
+ ) +} + +export {Item7} diff --git a/src/_metronic/partials/content/activity/Item8.tsx b/src/_metronic/partials/content/activity/Item8.tsx new file mode 100644 index 0000000..a9ba755 --- /dev/null +++ b/src/_metronic/partials/content/activity/Item8.tsx @@ -0,0 +1,42 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {KTSVG} from '../../../helpers' + +const Item8: FC = () => { + return ( +
+
+ +
+
+ +
+
+ +
+
+
+ New order{' '} + + #67890 + + is placed for Workshow Planning & Budget Estimation +
+ +
+
Placed at 4:23 PM by
+ + + Jimmy Bold + +
+
+
+
+ ) +} + +export {Item8} diff --git a/src/_metronic/partials/content/cards/Card1.tsx b/src/_metronic/partials/content/cards/Card1.tsx new file mode 100644 index 0000000..8df8f83 --- /dev/null +++ b/src/_metronic/partials/content/cards/Card1.tsx @@ -0,0 +1,68 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {toAbsoluteUrl} from '../../../helpers' + +type Props = { + color?: string + avatar?: string + online?: boolean + name: string + job: string + avgEarnings: string + totalEarnings: string +} + +const Card1: FC = ({ + color = '', + avatar = '', + online = false, + name, + job, + avgEarnings, + totalEarnings, +}) => { + return ( +
+
+
+
+ {color ? ( + + {name.charAt(0)} + + ) : ( + Pic + )} + {online && ( +
+ )} +
+
+ + + {name} + + +
{job}
+ +
+
+
{avgEarnings}
+
Avg. Earnings
+
+ +
+
{totalEarnings}
+
Total Sales
+
+
+ + +
+
+ ) +} + +export {Card1} diff --git a/src/_metronic/partials/content/cards/Card2.tsx b/src/_metronic/partials/content/cards/Card2.tsx new file mode 100644 index 0000000..3170ae8 --- /dev/null +++ b/src/_metronic/partials/content/cards/Card2.tsx @@ -0,0 +1,87 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {Link} from 'react-router-dom' +import {IconUserModel} from '../../../../app/modules/profile/ProfileModels' +import {UsersList} from '../../../../app/modules/profile/components/UsersList' +import {toAbsoluteUrl} from '../../../helpers' + +type Props = { + icon: string + badgeColor: string + status: string + statusColor: string + title: string + description: string + date: string + budget: string + progress: number + users?: Array +} + +const Card2: FC = ({ + icon, + badgeColor, + status, + statusColor, + title, + description, + date, + budget, + progress, + users = undefined, +}) => { + return ( + +
+
+
+ card2 +
+
+ +
+ + {status} + +
+
+ +
+
{title}
+ +

{description}

+ +
+
+
{date}
+
Due Date
+
+ +
+
{budget}
+
Budget
+
+
+ +
+
+
+ + +
+ + ) +} + +export {Card2} diff --git a/src/_metronic/partials/content/cards/Card3.tsx b/src/_metronic/partials/content/cards/Card3.tsx new file mode 100644 index 0000000..c127a19 --- /dev/null +++ b/src/_metronic/partials/content/cards/Card3.tsx @@ -0,0 +1,69 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {toAbsoluteUrl, KTSVG} from '../../../helpers' + +type Props = { + color?: string + avatar?: string + online?: boolean + name: string + job: string + avgEarnings: string + totalEarnings: string +} + +const Card3: FC = ({ + color = '', + avatar = '', + online = false, + name, + job, + avgEarnings, + totalEarnings, +}) => { + return ( +
+
+
+
+ {color ? ( + + {name.charAt(0)} + + ) : ( + Pic + )} + {online && ( +
+ )} +
+
+ + + {name} + + +
{job}
+ +
+
+
{avgEarnings}
+
Avg. Earnings
+
+ +
+
{totalEarnings}
+
Total Sales
+
+
+ + + + Connect + +
+
+ ) +} + +export {Card3} diff --git a/src/_metronic/partials/content/cards/Card4.tsx b/src/_metronic/partials/content/cards/Card4.tsx new file mode 100644 index 0000000..9dd1ad2 --- /dev/null +++ b/src/_metronic/partials/content/cards/Card4.tsx @@ -0,0 +1,27 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {toAbsoluteUrl} from '../../../helpers' + +type Props = { + icon: string + title: string + description: string +} + +const Card4: FC = ({icon, title, description}) => { + return ( +
+
+ +
+ +
+
{title}
+
+
{description}
+
+
+ ) +} + +export {Card4} diff --git a/src/_metronic/partials/content/cards/Card5.tsx b/src/_metronic/partials/content/cards/Card5.tsx new file mode 100644 index 0000000..c81eb5e --- /dev/null +++ b/src/_metronic/partials/content/cards/Card5.tsx @@ -0,0 +1,93 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' +import {toAbsoluteUrl, KTSVG} from '../../../helpers' +import {Dropdown1} from '../dropdown/Dropdown1' + +type Props = { + image: string + title: string + description: string + status: 'up' | 'down' + statusValue: number + statusDesc: string + progress: number + progressType: string +} + +const Card5: FC = ({ + image, + title, + description, + status, + statusValue, + statusDesc, + progress, + progressType, +}) => { + return ( +
+
+
+
+ Metronic +
+ + + {title} + +
+ +
+ + + +
+
+ +
+
{description}
+ +
+ {status === 'up' && ( + + )} + + {status === 'down' && ( + + )} + +
+ {status === 'up' ? '+' : '-'} + {statusValue}% +
+ +
{statusDesc}
+
+ +
+ {progress}% + {progressType} +
+
+
+ ) +} + +export {Card5} diff --git a/src/_metronic/partials/content/code-highlight/CodeBlock.tsx b/src/_metronic/partials/content/code-highlight/CodeBlock.tsx new file mode 100644 index 0000000..e69e425 --- /dev/null +++ b/src/_metronic/partials/content/code-highlight/CodeBlock.tsx @@ -0,0 +1,74 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +// @ts-nocheck +import React, {useState, useEffect, useRef} from 'react' +import {CopyToClipboard} from 'react-copy-to-clipboard' +import Highlight, {defaultProps, Language} from 'prism-react-renderer' +import theme from 'prism-react-renderer/themes/shadesOfPurple' +import {OverlayTrigger, Tooltip} from 'react-bootstrap' + +type Props = { + code: string + language: Language +} + +const CodeBlock: React.FC = ({code, language}) => { + const codeRef = useRef(null) + const [copied, setCopied] = useState(false) + useEffect(() => { + if (!copied) { + return + } + + setTimeout(() => { + setCopied(false) + }, 1500) + }, [copied]) + + useEffect(() => { + if (!codeRef.current) { + return + } + + const prismCodeElement = codeRef.current.querySelector('.prism-code ') as HTMLDivElement + if (prismCodeElement) { + prismCodeElement.style.background = 'none' + prismCodeElement.style.fontSize = '13px' + } + }, []) + + return ( +
+
+ Copy Code} + > + setCopied(true)}> + {copied ? 'copied' : 'copy'} + + + +
+ + {({className, style, tokens, getLineProps, getTokenProps}) => { + return ( +
+                  {tokens.map((line, i) => (
+                    
+ {line.map((token, key) => ( + + ))} +
+ ))} +
+ ) + }} +
+
+
+
+ ) +} + +export {CodeBlock} diff --git a/src/_metronic/partials/content/dropdown/Dropdown1.tsx b/src/_metronic/partials/content/dropdown/Dropdown1.tsx new file mode 100644 index 0000000..34e16b9 --- /dev/null +++ b/src/_metronic/partials/content/dropdown/Dropdown1.tsx @@ -0,0 +1,79 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +export function Dropdown1() { + return ( +
+
+
Filter Options
+
+ +
+ +
+
+ + +
+ +
+
+ +
+ + +
+ + + +
+
+ +
+ + +
+ + +
+
+ +
+ + + +
+
+
+ ) +} diff --git a/src/_metronic/partials/content/dropdown/Dropdown2.tsx b/src/_metronic/partials/content/dropdown/Dropdown2.tsx new file mode 100644 index 0000000..3871d12 --- /dev/null +++ b/src/_metronic/partials/content/dropdown/Dropdown2.tsx @@ -0,0 +1,79 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' + +const Dropdown2: FC = () => { + return ( +
+
+
Quick Actions
+
+ +
+ + + + + + + + + +
+ + +
+ ) +} + +export {Dropdown2} diff --git a/src/_metronic/partials/content/dropdown/Dropdown3.tsx b/src/_metronic/partials/content/dropdown/Dropdown3.tsx new file mode 100644 index 0000000..b8c4894 --- /dev/null +++ b/src/_metronic/partials/content/dropdown/Dropdown3.tsx @@ -0,0 +1,96 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import {FC} from 'react' + +const Dropdown3: FC = () => { + return ( +
+
+
Payments
+
+ + + + + + + +
+ + Subscription + + + +
+ + + + + + +
+ +
+
+ +
+
+
+
+ + +
+ ) +} + +export {Dropdown3} diff --git a/src/_metronic/partials/content/editor/EditorToolbar.ts b/src/_metronic/partials/content/editor/EditorToolbar.ts new file mode 100644 index 0000000..f656c1a --- /dev/null +++ b/src/_metronic/partials/content/editor/EditorToolbar.ts @@ -0,0 +1,52 @@ +export const editorToolbarSettings = { + options: ['inline', 'fontSize', 'fontFamily', 'link', 'image'], + inline: { + inDropdown: false, + className: undefined, + component: undefined, + dropdownClassName: undefined, + options: ['bold', 'italic', 'underline', 'strikethrough'], + }, + fontSize: { + options: [8, 9, 10, 11, 12, 14, 16, 18, 24, 30, 36, 48, 60, 72, 96], + className: undefined, + component: undefined, + dropdownClassName: undefined, + }, + fontFamily: { + options: ['Arial', 'Georgia', 'Impact', 'Tahoma', 'Times New Roman', 'Verdana'], + className: undefined, + component: undefined, + dropdownClassName: undefined, + }, + + link: { + inDropdown: false, + className: undefined, + component: undefined, + popupClassName: undefined, + dropdownClassName: undefined, + showOpenOptionOnHover: true, + defaultTargetOption: '_self', + options: ['link', 'unlink'], + link: {className: undefined}, + unlink: {className: undefined}, + linkCallback: undefined, + }, + image: { + className: undefined, + component: undefined, + popupClassName: undefined, + urlEnabled: true, + uploadEnabled: true, + alignmentEnabled: true, + uploadCallback: undefined, + previewImage: false, + inputAccept: 'image/gif,image/jpeg,image/jpg,image/png,image/svg', + alt: {present: false, mandatory: false}, + defaultSize: { + height: 'auto', + width: 'auto', + }, + }, +} diff --git a/src/_metronic/partials/content/portal/Portal.tsx b/src/_metronic/partials/content/portal/Portal.tsx new file mode 100644 index 0000000..1117a49 --- /dev/null +++ b/src/_metronic/partials/content/portal/Portal.tsx @@ -0,0 +1,27 @@ +/* eslint-disable react-hooks/exhaustive-deps */ +import {FC, useState, useEffect} from 'react' +import {createPortal} from 'react-dom' +import {WithChildren} from '../../../helpers' + +/** + * React portal based on https://stackoverflow.com/a/59154364 + * @param children Child elements + * @param className CSS classname + * @param el HTML element to create. default: div + */ +const Portal: FC<{className?: string} & WithChildren> = ({children, className = ''}) => { + const [container] = useState(document.createElement('div')) + + if (className) container.classList.add(className) + + useEffect(() => { + document.body.appendChild(container) + return () => { + document.body.removeChild(container) + } + }, []) + + return createPortal(children, container) +} + +export {Portal} diff --git a/src/_metronic/partials/index.ts b/src/_metronic/partials/index.ts new file mode 100644 index 0000000..2c9e535 --- /dev/null +++ b/src/_metronic/partials/index.ts @@ -0,0 +1,33 @@ +export * from './layout/quick-links/QuicLinks' +export * from './layout/search/Search' +export * from './layout/search/SearchInner' +export * from './layout/SearchModal' +export * from './layout/InboxCompose' +export * from './layout/header-menus/HeaderUserMenu' +export * from './layout/header-menus/HeaderNotificationsMenu' +export * from './layout/demos-drawer/DemosDrawer' +export * from './layout/drawer-messenger/DrawerMessenger' +export * from './layout/activity-drawer/ActivityDrawer' +export * from './layout/create-app/CreateApp' +export * from './layout/theme-mode/ThemeModeProvider' +export * from './layout/theme-mode/ThemeModeSwitcher' + +// dropdpwns +export * from './content/dropdown/Dropdown1' +export * from './content/dropdown/Dropdown2' + +// editors +export * from './content/editor/EditorToolbar' + +export * from './content/code-highlight/CodeBlock' + +export * from './content/portal/Portal' + +// modals +export * from './modals/create-app-stepper/CreateAppModal' +export * from './modals/select-location/SelectLocationModal' +export * from './modals/invite-users/InviteUsers' +export * from './modals/upgrade-plan/UpgradePlan' + +// chat +export * from './chat/ChatInner' diff --git a/src/_metronic/partials/layout/InboxCompose.tsx b/src/_metronic/partials/layout/InboxCompose.tsx new file mode 100644 index 0000000..b172b8e --- /dev/null +++ b/src/_metronic/partials/layout/InboxCompose.tsx @@ -0,0 +1,221 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import React, {useState, useRef} from 'react' +import {Modal} from 'react-bootstrap' +import {KTSVG} from '../../helpers' + +export type Props = { + show: boolean + handleClose: () => void +} + +const InboxCompose: React.FC = ({show, handleClose}) => { + const composeToRef = useRef(null) + const formRef = useRef(null) + const [composeCC, setComposeCC] = useState('') + const [composeBCC, setComposeBCC] = useState('') + const [subject, setSubject] = useState('') + + return ( + + ) +} + +export {InboxCompose} diff --git a/src/_metronic/partials/layout/RightToolbar.tsx b/src/_metronic/partials/layout/RightToolbar.tsx new file mode 100644 index 0000000..086438b --- /dev/null +++ b/src/_metronic/partials/layout/RightToolbar.tsx @@ -0,0 +1,23 @@ +import {FC} from 'react' +import {DemosToggleDrawer} from './demos-drawer/DemosToggleDrawer' +import {ToggleHelpDrawer} from './help-drawer/ToggleHelpDrawer' +import {DemosDrawer} from './demos-drawer/DemosDrawer' +import {HelpDrawer} from './help-drawer/HelpDrawer' +import {PurchaseButton} from './purchase/PurchaseButton' + +const RightToolbar: FC = () => { + return ( + <> +
+ + + +
+ + + + + ) +} + +export {RightToolbar} diff --git a/src/_metronic/partials/layout/SearchModal.tsx b/src/_metronic/partials/layout/SearchModal.tsx new file mode 100644 index 0000000..df5aff4 --- /dev/null +++ b/src/_metronic/partials/layout/SearchModal.tsx @@ -0,0 +1,152 @@ +/* eslint-disable jsx-a11y/anchor-is-valid */ +import React from 'react' +import {Modal} from 'react-bootstrap' +import {KTSVG, toAbsoluteUrl} from '../../helpers' +// import {ListsWidget4, ListsWidget5} from '../widgets' + +type Props = { + show: boolean + handleClose: () => void +} + +const SearchModal: React.FC = ({show, handleClose}) => { + return ( +