diff --git a/Modules/HospitalPortal/Config/.gitkeep b/Modules/HospitalPortal/Config/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Config/config.php b/Modules/HospitalPortal/Config/config.php
new file mode 100644
index 00000000..82200d31
--- /dev/null
+++ b/Modules/HospitalPortal/Config/config.php
@@ -0,0 +1,5 @@
+ 'HospitalPortal'
+];
diff --git a/Modules/HospitalPortal/Console/.gitkeep b/Modules/HospitalPortal/Console/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Database/Migrations/.gitkeep b/Modules/HospitalPortal/Database/Migrations/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Database/Seeders/.gitkeep b/Modules/HospitalPortal/Database/Seeders/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Database/Seeders/HospitalPortalDatabaseSeeder.php b/Modules/HospitalPortal/Database/Seeders/HospitalPortalDatabaseSeeder.php
new file mode 100644
index 00000000..625c3ab8
--- /dev/null
+++ b/Modules/HospitalPortal/Database/Seeders/HospitalPortalDatabaseSeeder.php
@@ -0,0 +1,21 @@
+call("OthersTableSeeder");
+ }
+}
diff --git a/Modules/HospitalPortal/Database/factories/.gitkeep b/Modules/HospitalPortal/Database/factories/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Entities/.gitkeep b/Modules/HospitalPortal/Entities/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Http/Controllers/.gitkeep b/Modules/HospitalPortal/Http/Controllers/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Http/Controllers/Api/AuthController.php b/Modules/HospitalPortal/Http/Controllers/Api/AuthController.php
new file mode 100755
index 00000000..a9a54aaf
--- /dev/null
+++ b/Modules/HospitalPortal/Http/Controllers/Api/AuthController.php
@@ -0,0 +1,128 @@
+validate([
+ 'email' => 'required|email',
+ 'password' => 'required'
+ ]);
+
+ $user = User::query()
+ ->where('email', $request->email)
+ ->first();
+
+ if (!$user) {
+ return response(['message' => 'User Tidak Ditemukan'], 404);
+ }
+
+ if (!Hash::check($request->password, $user->password)) {
+ return response(['message' => 'Password Salah'], 403);
+ }
+
+ return response([
+ 'message' => 'Selamat Datang',
+ 'user' => $user,
+ 'token' => $user->createToken('app')->plainTextToken
+ ]);
+ }
+
+ public function logout(Request $request)
+ {
+ $token = $request->bearerToken();
+ Auth::user()->tokens()->where('id', $token)->delete();
+
+ return response(['message' => 'Berhasil Logout.']);
+ }
+
+ public function resetPassword(Request $request)
+ {
+ $user = Auth::user();
+
+ $request->validate([
+ 'old_password' => 'required',
+ 'new_password' => 'required',
+ 'confirm_new_password' => 'required'
+ ]);
+
+ if (!Hash::check($request['old_password'], $user->password)) {
+ return response(['message' => 'Password Salah'], 403);
+ }
+
+ if ($request["new_password"] != $request["confirm_new_password"]) {
+ return response([
+ 'message' => "Password Tidak Sama"
+ ]);
+ }
+
+ $user->update([
+ 'password' => Hash::make($request->confirm_new_password),
+ ]);
+ return response()->json($user);
+ }
+
+ public function verifyEmail(Request $request)
+ {
+ $request->validate([
+ 'email' => 'required|email',
+ ]);
+
+ $user = User::query()
+ ->where('email', $request->email)
+ ->first();
+
+ if (!$user) {
+ return response(['message' => 'User Tidak Ditemukan'], 404);
+ }
+
+ Event(new ForgetPassword($user));
+
+ // Mail::to($user->email)->send(new SendVerifyEmail($user));
+
+ return response()->json($user);
+ }
+
+ public function forgetPassword(Request $request)
+ {
+ $request->validate([
+ 'new_password' => 'required',
+ 'confirm_new_password' => 'required'
+ ]);
+
+ $token = Crypt::decryptString($request->token);
+ $email = explode('|', $token)[0];
+
+ $user = User::query()
+ ->where('email', $email)
+ ->first();
+
+ if (!$user) {
+ return response(['message' => 'User Tidak Ditemukan'], 404);
+ }
+
+ if ($request["new_password"] != $request["confirm_new_password"]) {
+ return response([
+ 'message' => "Password Tidak Sama"
+ ], 404);
+ }
+
+ $user->update([
+ 'password' => Hash::make($request->confirm_new_password),
+ ]);
+ return response()->json($user);
+ }
+}
diff --git a/Modules/HospitalPortal/Http/Controllers/HospitalPortalController.php b/Modules/HospitalPortal/Http/Controllers/HospitalPortalController.php
new file mode 100644
index 00000000..c69235e1
--- /dev/null
+++ b/Modules/HospitalPortal/Http/Controllers/HospitalPortalController.php
@@ -0,0 +1,79 @@
+registerTranslations();
+ $this->registerConfig();
+ $this->registerViews();
+ $this->loadMigrationsFrom(module_path($this->moduleName, 'Database/Migrations'));
+ }
+
+ /**
+ * Register the service provider.
+ *
+ * @return void
+ */
+ public function register()
+ {
+ $this->app->register(RouteServiceProvider::class);
+ }
+
+ /**
+ * Register config.
+ *
+ * @return void
+ */
+ protected function registerConfig()
+ {
+ $this->publishes([
+ module_path($this->moduleName, 'Config/config.php') => config_path($this->moduleNameLower . '.php'),
+ ], 'config');
+ $this->mergeConfigFrom(
+ module_path($this->moduleName, 'Config/config.php'), $this->moduleNameLower
+ );
+ }
+
+ /**
+ * Register views.
+ *
+ * @return void
+ */
+ public function registerViews()
+ {
+ $viewPath = resource_path('views/modules/' . $this->moduleNameLower);
+
+ $sourcePath = module_path($this->moduleName, 'Resources/views');
+
+ $this->publishes([
+ $sourcePath => $viewPath
+ ], ['views', $this->moduleNameLower . '-module-views']);
+
+ $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower);
+ }
+
+ /**
+ * Register translations.
+ *
+ * @return void
+ */
+ public function registerTranslations()
+ {
+ $langPath = resource_path('lang/modules/' . $this->moduleNameLower);
+
+ if (is_dir($langPath)) {
+ $this->loadTranslationsFrom($langPath, $this->moduleNameLower);
+ } else {
+ $this->loadTranslationsFrom(module_path($this->moduleName, 'Resources/lang'), $this->moduleNameLower);
+ }
+ }
+
+ /**
+ * Get the services provided by the provider.
+ *
+ * @return array
+ */
+ public function provides()
+ {
+ return [];
+ }
+
+ private function getPublishableViewPaths(): array
+ {
+ $paths = [];
+ foreach (\Config::get('view.paths') as $path) {
+ if (is_dir($path . '/modules/' . $this->moduleNameLower)) {
+ $paths[] = $path . '/modules/' . $this->moduleNameLower;
+ }
+ }
+ return $paths;
+ }
+}
diff --git a/Modules/HospitalPortal/Providers/RouteServiceProvider.php b/Modules/HospitalPortal/Providers/RouteServiceProvider.php
new file mode 100644
index 00000000..9b02f6ad
--- /dev/null
+++ b/Modules/HospitalPortal/Providers/RouteServiceProvider.php
@@ -0,0 +1,69 @@
+mapApiRoutes();
+
+ $this->mapWebRoutes();
+ }
+
+ /**
+ * Define the "web" routes for the application.
+ *
+ * These routes all receive session state, CSRF protection, etc.
+ *
+ * @return void
+ */
+ protected function mapWebRoutes()
+ {
+ Route::middleware('web')
+ ->namespace($this->moduleNamespace)
+ ->group(module_path('HospitalPortal', '/Routes/web.php'));
+ }
+
+ /**
+ * Define the "api" routes for the application.
+ *
+ * These routes are typically stateless.
+ *
+ * @return void
+ */
+ protected function mapApiRoutes()
+ {
+ Route::prefix('api')
+ ->middleware('api')
+ ->namespace($this->moduleNamespace)
+ ->group(module_path('HospitalPortal', '/Routes/api.php'));
+ }
+}
diff --git a/Modules/HospitalPortal/Resources/assets/.gitkeep b/Modules/HospitalPortal/Resources/assets/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Resources/assets/js/app.js b/Modules/HospitalPortal/Resources/assets/js/app.js
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Resources/assets/sass/app.scss b/Modules/HospitalPortal/Resources/assets/sass/app.scss
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Resources/lang/.gitkeep b/Modules/HospitalPortal/Resources/lang/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Resources/views/.gitkeep b/Modules/HospitalPortal/Resources/views/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Resources/views/index.blade.php b/Modules/HospitalPortal/Resources/views/index.blade.php
new file mode 100644
index 00000000..ffb7ca73
--- /dev/null
+++ b/Modules/HospitalPortal/Resources/views/index.blade.php
@@ -0,0 +1,9 @@
+@extends('hospitalportal::layouts.master')
+
+@section('content')
+
Hello World
+
+
+ This view is loaded from module: {!! config('hospitalportal.name') !!}
+
+@endsection
diff --git a/Modules/HospitalPortal/Resources/views/layouts/master.blade.php b/Modules/HospitalPortal/Resources/views/layouts/master.blade.php
new file mode 100644
index 00000000..ce511140
--- /dev/null
+++ b/Modules/HospitalPortal/Resources/views/layouts/master.blade.php
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+ Module HospitalPortal
+
+ {{-- Laravel Mix - CSS File --}}
+ {{-- --}}
+
+
+
+ @yield('content')
+
+ {{-- Laravel Mix - JS File --}}
+ {{-- --}}
+
+
diff --git a/Modules/HospitalPortal/Routes/.gitkeep b/Modules/HospitalPortal/Routes/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Routes/api.php b/Modules/HospitalPortal/Routes/api.php
new file mode 100644
index 00000000..733b50cb
--- /dev/null
+++ b/Modules/HospitalPortal/Routes/api.php
@@ -0,0 +1,32 @@
+group(function () {
+
+ Route::post('login', [AuthController::class, 'login'])->name('login');
+ Route::post('forget-password', [AuthController::class, 'forgetPassword'])->name('forget-password');
+ Route::post('verify-email', [AuthController::class, 'verifyEmail'])->name('verify-email');
+
+
+ Route::middleware('auth:sanctum')->group(function () {
+
+ Route::post('logout', [AuthController::class, 'logout'])->name('logout');
+ Route::get('/user', function (Request $request) {
+ return $request->user();
+ });
+ Route::put('reset-password', [AuthController::class, 'resetPassword'])->name('resetPassword');
+ });
+});
diff --git a/Modules/HospitalPortal/Routes/web.php b/Modules/HospitalPortal/Routes/web.php
new file mode 100644
index 00000000..f7912f59
--- /dev/null
+++ b/Modules/HospitalPortal/Routes/web.php
@@ -0,0 +1,16 @@
+group(function() {
+ Route::get('/', 'HospitalPortalController@index');
+});
diff --git a/Modules/HospitalPortal/Tests/Feature/.gitkeep b/Modules/HospitalPortal/Tests/Feature/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/Tests/Unit/.gitkeep b/Modules/HospitalPortal/Tests/Unit/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/Modules/HospitalPortal/composer.json b/Modules/HospitalPortal/composer.json
new file mode 100644
index 00000000..debecb61
--- /dev/null
+++ b/Modules/HospitalPortal/composer.json
@@ -0,0 +1,23 @@
+{
+ "name": "nwidart/hospitalportal",
+ "description": "",
+ "authors": [
+ {
+ "name": "Nicolas Widart",
+ "email": "n.widart@gmail.com"
+ }
+ ],
+ "extra": {
+ "laravel": {
+ "providers": [],
+ "aliases": {
+
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Modules\\HospitalPortal\\": ""
+ }
+ }
+}
diff --git a/Modules/HospitalPortal/module.json b/Modules/HospitalPortal/module.json
new file mode 100644
index 00000000..ab586635
--- /dev/null
+++ b/Modules/HospitalPortal/module.json
@@ -0,0 +1,13 @@
+{
+ "name": "HospitalPortal",
+ "alias": "hospitalportal",
+ "description": "",
+ "keywords": [],
+ "priority": 0,
+ "providers": [
+ "Modules\\HospitalPortal\\Providers\\HospitalPortalServiceProvider"
+ ],
+ "aliases": {},
+ "files": [],
+ "requires": []
+}
diff --git a/Modules/HospitalPortal/package.json b/Modules/HospitalPortal/package.json
new file mode 100644
index 00000000..73031461
--- /dev/null
+++ b/Modules/HospitalPortal/package.json
@@ -0,0 +1,21 @@
+{
+ "private": true,
+ "scripts": {
+ "dev": "npm run development",
+ "development": "mix",
+ "watch": "mix watch",
+ "watch-poll": "mix watch -- --watch-options-poll=1000",
+ "hot": "mix watch --hot",
+ "prod": "npm run production",
+ "production": "mix --production"
+ },
+ "devDependencies": {
+ "axios": "^0.21.4",
+ "dotenv": "^10.0.0",
+ "dotenv-expand": "^5.1.0",
+ "laravel-mix": "^6.0.31",
+ "laravel-mix-merge-manifest": "^2.0.0",
+ "lodash": "^4.17.21",
+ "postcss": "^8.3.7"
+ }
+}
diff --git a/Modules/HospitalPortal/webpack.mix.js b/Modules/HospitalPortal/webpack.mix.js
new file mode 100644
index 00000000..45a45323
--- /dev/null
+++ b/Modules/HospitalPortal/webpack.mix.js
@@ -0,0 +1,14 @@
+const dotenvExpand = require('dotenv-expand');
+dotenvExpand(require('dotenv').config({ path: '../../.env'/*, debug: true*/}));
+
+const mix = require('laravel-mix');
+require('laravel-mix-merge-manifest');
+
+mix.setPublicPath('../../public').mergeManifest();
+
+mix.js(__dirname + '/Resources/assets/js/app.js', 'js/hospitalportal.js')
+ .sass( __dirname + '/Resources/assets/sass/app.scss', 'css/hospitalportal.css');
+
+if (mix.inProduction()) {
+ mix.version();
+}
diff --git a/frontend/hospital-portal/.env.development b/frontend/hospital-portal/.env.development
new file mode 100644
index 00000000..1256ddfc
--- /dev/null
+++ b/frontend/hospital-portal/.env.development
@@ -0,0 +1,4 @@
+
+REACT_APP_HOST_API_URL="http://localhost:8000"
+
+VITE_API_URL="http://localhost:8000/api/hospitalportal"
diff --git a/frontend/hospital-portal/.eslintignore b/frontend/hospital-portal/.eslintignore
new file mode 100755
index 00000000..7ce41edf
--- /dev/null
+++ b/frontend/hospital-portal/.eslintignore
@@ -0,0 +1,8 @@
+// .eslintignore
+build/*
+public/*
+src/react-app-env.d.ts
+src/reportWebVitals.ts
+src/service-worker.ts
+src/serviceWorkerRegistration.ts
+src/setupTests.ts
diff --git a/frontend/hospital-portal/.eslintrc b/frontend/hospital-portal/.eslintrc
new file mode 100755
index 00000000..e101f76b
--- /dev/null
+++ b/frontend/hospital-portal/.eslintrc
@@ -0,0 +1,54 @@
+{
+ "plugins": [
+ "prettier",
+ "@typescript-eslint"
+ ],
+ "extends": [
+ "airbnb-typescript",
+ "react-app",
+ "prettier"
+ ],
+ "parser": "@typescript-eslint/parser",
+ "parserOptions": {
+ "project": [
+ "**/tsconfig.json"
+ ]
+ },
+ "settings": {
+ "import/resolver": {
+ "typescript": {
+ "alwaysTryTypes": true,
+ "exceptAfterSingleLine": true
+ }
+ }
+ },
+ "rules": {
+ "react/jsx-key": 2,
+ "arrow-body-style": 1,
+ "import/no-duplicates": 1,
+ "react/self-closing-comp": 1,
+ "@typescript-eslint/no-shadow": 0,
+ "import/no-useless-path-segments": 1,
+ "import/no-extraneous-dependencies": 0,
+ "@typescript-eslint/naming-convention": 0,
+ "import/extensions": "never",
+ "object-curly-spacing": [
+ 1,
+ "always"
+ ],
+ "@typescript-eslint/no-unused-vars": [
+ 1,
+ {
+ "vars": "all",
+ "args": "none"
+ }
+ ],
+ "prefer-destructuring": [
+ 1,
+ {
+ "object": true,
+ "array": false
+ }
+ ]
+ }
+}
diff --git a/frontend/hospital-portal/.gitignore b/frontend/hospital-portal/.gitignore
new file mode 100755
index 00000000..8b171822
--- /dev/null
+++ b/frontend/hospital-portal/.gitignore
@@ -0,0 +1,26 @@
+# 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
+/.env.local
+/.env.development.local
+/.env.test.local
+/.env.production.local
+
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+.eslintcache
diff --git a/frontend/hospital-portal/.htaccess b/frontend/hospital-portal/.htaccess
new file mode 100755
index 00000000..5dd2006d
--- /dev/null
+++ b/frontend/hospital-portal/.htaccess
@@ -0,0 +1,12 @@
+
+
+ RewriteEngine On
+ RewriteBase /
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteRule (.*) /index.html [QSA,L]
+
+
+
+ ModPagespeed off
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/.pnpm-debug.log b/frontend/hospital-portal/.pnpm-debug.log
new file mode 100755
index 00000000..29f1d4af
--- /dev/null
+++ b/frontend/hospital-portal/.pnpm-debug.log
@@ -0,0 +1,22 @@
+{
+ "0 debug pnpm:scope": {
+ "selected": 1
+ },
+ "1 error pnpm": {
+ "code": "ELIFECYCLE",
+ "errno": "ENOENT",
+ "syscall": "spawn",
+ "file": "sh",
+ "pkgid": "@minimal/material-kit-react@3.2.0",
+ "stage": "start",
+ "script": "vite",
+ "pkgname": "@minimal/material-kit-react",
+ "err": {
+ "name": "pnpm",
+ "message": "@minimal/material-kit-react@3.2.0 start: `vite`\nspawn ENOENT",
+ "code": "ELIFECYCLE",
+ "stack": "pnpm: @minimal/material-kit-react@3.2.0 start: `vite`\nspawn ENOENT\n at ChildProcess. (/home/dell/.nvm/versions/node/v16.13.0/pnpm-global/5/node_modules/.pnpm/pnpm@7.0.0/node_modules/pnpm/dist/pnpm.cjs:93294:22)\n at ChildProcess.emit (node:events:390:28)\n at maybeClose (node:internal/child_process:1064:16)\n at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)"
+ }
+ },
+ "2 warn pnpm:global": " Local package.json exists, but node_modules missing, did you mean to install?"
+}
\ No newline at end of file
diff --git a/frontend/hospital-portal/.prettierrc b/frontend/hospital-portal/.prettierrc
new file mode 100755
index 00000000..9ddd2fda
--- /dev/null
+++ b/frontend/hospital-portal/.prettierrc
@@ -0,0 +1,6 @@
+{
+ "printWidth": 100,
+ "singleQuote": true,
+ "trailingComma": "es5",
+ "tabWidth": 2
+}
diff --git a/frontend/hospital-portal/index.html b/frontend/hospital-portal/index.html
new file mode 100755
index 00000000..3be7fb7d
--- /dev/null
+++ b/frontend/hospital-portal/index.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dashboard
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/hospital-portal/package-lock.json b/frontend/hospital-portal/package-lock.json
new file mode 100755
index 00000000..32082eb3
--- /dev/null
+++ b/frontend/hospital-portal/package-lock.json
@@ -0,0 +1,15880 @@
+{
+ "name": "@minimal/material-kit-react",
+ "version": "3.2.0",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "@minimal/material-kit-react",
+ "version": "3.2.0",
+ "dependencies": {
+ "@date-io/date-fns": "^2.14.0",
+ "@emotion/cache": "^11.9.3",
+ "@emotion/react": "^11.9.3",
+ "@emotion/styled": "^11.9.3",
+ "@hookform/resolvers": "^2.9.6",
+ "@iconify/react": "^3.2.2",
+ "@mui/icons-material": "^5.8.4",
+ "@mui/lab": "5.0.0-alpha.80",
+ "@mui/material": "^5.9.1",
+ "@mui/system": "^5.9.1",
+ "@mui/x-data-grid": "^5.14.0",
+ "@mui/x-date-pickers": "5.0.0-beta.2",
+ "@vitejs/plugin-react": "^1.3.2",
+ "apexcharts": "^3.35.5",
+ "axios": "^0.27.2",
+ "change-case": "^4.1.2",
+ "csstype": "^3.1.0",
+ "date-fns": "^2.29.1",
+ "framer-motion": "^6.5.1",
+ "highlight.js": "^11.6.0",
+ "history": "^5.3.0",
+ "jsx-runtime": "^1.2.0",
+ "lodash": "^4.17.21",
+ "notistack": "^3.0.0-alpha.7",
+ "nprogress": "^0.2.0",
+ "numeral": "^2.0.6",
+ "react": "^17.0.2",
+ "react-apexcharts": "^1.4.0",
+ "react-dom": "^17.0.2",
+ "react-dropzone": "^14.2.2",
+ "react-helmet-async": "^1.3.0",
+ "react-hook-form": "^7.33.1",
+ "react-intersection-observer": "^8.34.0",
+ "react-lazy-load-image-component": "^1.5.5",
+ "react-quill": "2.0.0-beta.4",
+ "react-router": "^6.3.0",
+ "react-router-dom": "^6.3.0",
+ "simplebar": "^5.3.8",
+ "simplebar-react": "^2.4.1",
+ "stylis": "^4.1.1",
+ "stylis-plugin-rtl": "^2.1.1",
+ "vite": "^3.0.4",
+ "vite-plugin-svgr": "^2.2.1",
+ "yup": "^0.32.11"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.18.9",
+ "@babel/eslint-parser": "^7.18.9",
+ "@babel/plugin-syntax-flow": "^7.18.6",
+ "@babel/plugin-transform-react-jsx": "^7.18.6",
+ "@types/lodash": "^4.14.182",
+ "@types/nprogress": "^0.2.0",
+ "@types/react": "^17.0.47",
+ "@types/react-dom": "^17.0.17",
+ "@types/react-lazy-load-image-component": "^1.5.2",
+ "@types/stylis": "^4.0.2",
+ "@typescript-eslint/eslint-plugin": "^5.30.7",
+ "@typescript-eslint/parser": "^5.30.7",
+ "eslint": "^8.20.0",
+ "eslint-config-airbnb": "19.0.4",
+ "eslint-config-airbnb-typescript": "^16.2.0",
+ "eslint-config-prettier": "^8.5.0",
+ "eslint-config-react-app": "7.0.0",
+ "eslint-import-resolver-typescript": "^2.7.1",
+ "eslint-plugin-flowtype": "^8.0.3",
+ "eslint-plugin-import": "^2.26.0",
+ "eslint-plugin-jsx-a11y": "6.5.1",
+ "eslint-plugin-prettier": "^4.2.1",
+ "eslint-plugin-react": "^7.30.1",
+ "eslint-plugin-react-hooks": "4.3.0",
+ "prettier": "^2.7.1",
+ "typescript": "^4.7.4",
+ "vite-plugin-pwa": "^0.12.3"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "dependencies": {
+ "@babel/highlight": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.20.1",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz",
+ "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz",
+ "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==",
+ "dependencies": {
+ "@ampproject/remapping": "^2.1.0",
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.20.2",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-module-transforms": "^7.20.2",
+ "@babel/helpers": "^7.20.1",
+ "@babel/parser": "^7.20.2",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.1",
+ "@babel/types": "^7.20.2",
+ "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/eslint-parser": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz",
+ "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==",
+ "dev": true,
+ "dependencies": {
+ "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
+ "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/generator": {
+ "version": "7.20.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz",
+ "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==",
+ "dependencies": {
+ "@babel/types": "^7.20.2",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
+ "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "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==",
+ "dev": true,
+ "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.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz",
+ "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==",
+ "dependencies": {
+ "@babel/compat-data": "^7.20.0",
+ "@babel/helper-validator-option": "^7.18.6",
+ "browserslist": "^4.21.3",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.17.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz",
+ "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==",
+ "dev": true,
+ "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-member-expression-to-functions": "^7.16.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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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-environment-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
+ "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
+ "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
+ "dependencies": {
+ "@babel/template": "^7.18.10",
+ "@babel/types": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz",
+ "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz",
+ "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-simple-access": "^7.20.2",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.1",
+ "@babel/types": "^7.20.2"
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
+ "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
+ "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
+ "dependencies": {
+ "@babel/types": "^7.20.2"
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.16.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.19.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
+ "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
+ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
+ "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==",
+ "dev": true,
+ "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.20.1",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz",
+ "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==",
+ "dependencies": {
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.1",
+ "@babel/types": "^7.20.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.20.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz",
+ "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==",
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz",
+ "integrity": "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.17.1",
+ "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-replace-supers": "^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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-flow": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz",
+ "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
+ "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz",
+ "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.16.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz",
+ "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-simple-access": "^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-systemjs": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz",
+ "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-hoist-variables": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.16.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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.19.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz",
+ "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/plugin-syntax-jsx": "^7.18.6",
+ "@babel/types": "^7.19.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-jsx-self": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz",
+ "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.19.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz",
+ "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ },
+ "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==",
+ "dev": true,
+ "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.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz",
+ "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==",
+ "dev": true,
+ "dependencies": {
+ "regenerator-transform": "^0.14.2"
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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-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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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-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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.20.1",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz",
+ "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==",
+ "dependencies": {
+ "regenerator-runtime": "^0.13.10"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/runtime-corejs3": {
+ "version": "7.17.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz",
+ "integrity": "sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==",
+ "dev": true,
+ "dependencies": {
+ "core-js-pure": "^3.20.2",
+ "regenerator-runtime": "^0.13.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
+ "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/parser": "^7.18.10",
+ "@babel/types": "^7.18.10"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.20.1",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz",
+ "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.20.1",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.20.1",
+ "@babel/types": "^7.20.0",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz",
+ "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.19.4",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@date-io/core": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/@date-io/core/-/core-2.16.0.tgz",
+ "integrity": "sha512-DYmSzkr+jToahwWrsiRA2/pzMEtz9Bq1euJwoOuYwuwIYXnZFtHajY2E6a1VNVDc9jP8YUXK1BvnZH9mmT19Zg=="
+ },
+ "node_modules/@date-io/date-fns": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/@date-io/date-fns/-/date-fns-2.16.0.tgz",
+ "integrity": "sha512-bfm5FJjucqlrnQcXDVU5RD+nlGmL3iWgkHTq3uAZWVIuBu6dDmGa3m8a6zo2VQQpu8ambq9H22UyUpn7590joA==",
+ "dependencies": {
+ "@date-io/core": "^2.16.0"
+ },
+ "peerDependencies": {
+ "date-fns": "^2.0.0"
+ },
+ "peerDependenciesMeta": {
+ "date-fns": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@date-io/dayjs": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/@date-io/dayjs/-/dayjs-2.16.0.tgz",
+ "integrity": "sha512-y5qKyX2j/HG3zMvIxTobYZRGnd1FUW2olZLS0vTj7bEkBQkjd2RO7/FEwDY03Z1geVGlXKnzIATEVBVaGzV4Iw==",
+ "dependencies": {
+ "@date-io/core": "^2.16.0"
+ },
+ "peerDependencies": {
+ "dayjs": "^1.8.17"
+ },
+ "peerDependenciesMeta": {
+ "dayjs": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@date-io/luxon": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/@date-io/luxon/-/luxon-2.16.1.tgz",
+ "integrity": "sha512-aeYp5K9PSHV28946pC+9UKUi/xMMYoaGelrpDibZSgHu2VWHXrr7zWLEr+pMPThSs5vt8Ei365PO+84pCm37WQ==",
+ "dependencies": {
+ "@date-io/core": "^2.16.0"
+ },
+ "peerDependencies": {
+ "luxon": "^1.21.3 || ^2.x || ^3.x"
+ },
+ "peerDependenciesMeta": {
+ "luxon": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@date-io/moment": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/@date-io/moment/-/moment-2.16.1.tgz",
+ "integrity": "sha512-JkxldQxUqZBfZtsaCcCMkm/dmytdyq5pS1RxshCQ4fHhsvP5A7gSqPD22QbVXMcJydi3d3v1Y8BQdUKEuGACZQ==",
+ "dependencies": {
+ "@date-io/core": "^2.16.0"
+ },
+ "peerDependencies": {
+ "moment": "^2.24.0"
+ },
+ "peerDependenciesMeta": {
+ "moment": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/babel-plugin": {
+ "version": "11.10.5",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz",
+ "integrity": "sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.16.7",
+ "@babel/plugin-syntax-jsx": "^7.17.12",
+ "@babel/runtime": "^7.18.3",
+ "@emotion/hash": "^0.9.0",
+ "@emotion/memoize": "^0.8.0",
+ "@emotion/serialize": "^1.1.1",
+ "babel-plugin-macros": "^3.1.0",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7",
+ "stylis": "4.1.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@emotion/cache": {
+ "version": "11.10.5",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz",
+ "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==",
+ "dependencies": {
+ "@emotion/memoize": "^0.8.0",
+ "@emotion/sheet": "^1.2.1",
+ "@emotion/utils": "^1.2.0",
+ "@emotion/weak-memoize": "^0.3.0",
+ "stylis": "4.1.3"
+ }
+ },
+ "node_modules/@emotion/hash": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz",
+ "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ=="
+ },
+ "node_modules/@emotion/is-prop-valid": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz",
+ "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==",
+ "dependencies": {
+ "@emotion/memoize": "^0.8.0"
+ }
+ },
+ "node_modules/@emotion/memoize": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz",
+ "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA=="
+ },
+ "node_modules/@emotion/react": {
+ "version": "11.10.5",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.5.tgz",
+ "integrity": "sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.10.5",
+ "@emotion/cache": "^11.10.5",
+ "@emotion/serialize": "^1.1.1",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
+ "@emotion/utils": "^1.2.0",
+ "@emotion/weak-memoize": "^0.3.0",
+ "hoist-non-react-statics": "^3.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0",
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/serialize": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz",
+ "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==",
+ "dependencies": {
+ "@emotion/hash": "^0.9.0",
+ "@emotion/memoize": "^0.8.0",
+ "@emotion/unitless": "^0.8.0",
+ "@emotion/utils": "^1.2.0",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@emotion/sheet": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz",
+ "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA=="
+ },
+ "node_modules/@emotion/styled": {
+ "version": "11.10.5",
+ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.5.tgz",
+ "integrity": "sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.10.5",
+ "@emotion/is-prop-valid": "^1.2.0",
+ "@emotion/serialize": "^1.1.1",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
+ "@emotion/utils": "^1.2.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0",
+ "@emotion/react": "^11.0.0-rc.0",
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/unitless": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz",
+ "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw=="
+ },
+ "node_modules/@emotion/use-insertion-effect-with-fallbacks": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz",
+ "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==",
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
+ "node_modules/@emotion/utils": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz",
+ "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw=="
+ },
+ "node_modules/@emotion/weak-memoize": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz",
+ "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg=="
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz",
+ "integrity": "sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz",
+ "integrity": "sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==",
+ "cpu": [
+ "loong64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
+ "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.4.0",
+ "globals": "^13.15.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.17.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
+ "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@hookform/resolvers": {
+ "version": "2.9.10",
+ "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-2.9.10.tgz",
+ "integrity": "sha512-JIL1DgJIlH9yuxcNGtyhsWX/PgNltz+5Gr6+8SX9fhXc/hPbEIk6wPI82nhgvp3uUb6ZfAM5mqg/x7KR7NAb+A==",
+ "peerDependencies": {
+ "react-hook-form": "^7.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.7",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz",
+ "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/@iconify/react": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@iconify/react/-/react-3.2.2.tgz",
+ "integrity": "sha512-z3+Jno3VcJzgNHsN5mEvYMsgCkOZkydqdIwOxjXh45+i2Vs9RGH68Y52vt39izwFSfuYUXhaW+1u7m7+IhCn/g==",
+ "funding": {
+ "url": "http://github.com/sponsors/cyberalien"
+ },
+ "peerDependencies": {
+ "react": ">=16"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ }
+ },
+ "node_modules/@juggle/resize-observer": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.3.1.tgz",
+ "integrity": "sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw=="
+ },
+ "node_modules/@motionone/animation": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.14.0.tgz",
+ "integrity": "sha512-h+1sdyBP8vbxEBW5gPFDnj+m2DCqdlAuf2g6Iafb1lcMnqjsRXWlPw1AXgvUMXmreyhqmPbJqoNfIKdytampRQ==",
+ "dependencies": {
+ "@motionone/easing": "^10.14.0",
+ "@motionone/types": "^10.14.0",
+ "@motionone/utils": "^10.14.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/dom": {
+ "version": "10.12.0",
+ "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz",
+ "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==",
+ "dependencies": {
+ "@motionone/animation": "^10.12.0",
+ "@motionone/generators": "^10.12.0",
+ "@motionone/types": "^10.12.0",
+ "@motionone/utils": "^10.12.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/easing": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.14.0.tgz",
+ "integrity": "sha512-2vUBdH9uWTlRbuErhcsMmt1jvMTTqvGmn9fHq8FleFDXBlHFs5jZzHJT9iw+4kR1h6a4SZQuCf72b9ji92qNYA==",
+ "dependencies": {
+ "@motionone/utils": "^10.14.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/generators": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.14.0.tgz",
+ "integrity": "sha512-6kRHezoFfIjFN7pPpaxmkdZXD36tQNcyJe3nwVqwJ+ZfC0e3rFmszR8kp9DEVFs9QL/akWjuGPSLBI1tvz+Vjg==",
+ "dependencies": {
+ "@motionone/types": "^10.14.0",
+ "@motionone/utils": "^10.14.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/types": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.14.0.tgz",
+ "integrity": "sha512-3bNWyYBHtVd27KncnJLhksMFQ5o2MSdk1cA/IZqsHtA9DnRM1SYgN01CTcJ8Iw8pCXF5Ocp34tyAjY7WRpOJJQ=="
+ },
+ "node_modules/@motionone/utils": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.14.0.tgz",
+ "integrity": "sha512-sLWBLPzRqkxmOTRzSaD3LFQXCPHvDzyHJ1a3VP9PRzBxyVd2pv51/gMOsdAcxQ9n+MIeGJnxzXBYplUHKj4jkw==",
+ "dependencies": {
+ "@motionone/types": "^10.14.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@mui/base": {
+ "version": "5.0.0-alpha.79",
+ "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.79.tgz",
+ "integrity": "sha512-/lZLF027BkiEjM8MIYoeS/FEhTKf+41ePU9SOijMGrCin1Y0Igucw+IHa1fF8HXD7wDbFKqHuso3J1jMG8wyNw==",
+ "dependencies": {
+ "@babel/runtime": "^7.17.2",
+ "@emotion/is-prop-valid": "^1.1.2",
+ "@mui/types": "^7.1.3",
+ "@mui/utils": "^5.6.1",
+ "@popperjs/core": "^2.11.5",
+ "clsx": "^1.1.1",
+ "prop-types": "^15.7.2",
+ "react-is": "^17.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/core-downloads-tracker": {
+ "version": "5.10.13",
+ "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.13.tgz",
+ "integrity": "sha512-zWkWPV/SaNdsIdxAWiuVGZ+Ue3BkfSIlU/BFIrJmuUcwiIa7gQsbI/DOpj1KzLvqZhdEe2wC1aG4nCHfzgc1Hg==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ }
+ },
+ "node_modules/@mui/icons-material": {
+ "version": "5.10.9",
+ "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.9.tgz",
+ "integrity": "sha512-sqClXdEM39WKQJOQ0ZCPTptaZgqwibhj2EFV9N0v7BU1PO8y4OcX/a2wIQHn4fNuDjIZktJIBrmU23h7aqlGgg==",
+ "dependencies": {
+ "@babel/runtime": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "peerDependencies": {
+ "@mui/material": "^5.0.0",
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/lab": {
+ "version": "5.0.0-alpha.80",
+ "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.80.tgz",
+ "integrity": "sha512-td5Ak0Hx+EzVN9MJqBlZJ6BKFGjTrHyNjXncjSHTvp8Z9p157AlOA/Sf7r+RyqyVzOzBfv4S37i9ShFTzSK61Q==",
+ "dependencies": {
+ "@babel/runtime": "^7.17.2",
+ "@mui/base": "5.0.0-alpha.79",
+ "@mui/system": "^5.6.4",
+ "@mui/utils": "^5.6.1",
+ "@mui/x-date-pickers": "5.0.0-alpha.0",
+ "clsx": "^1.1.1",
+ "prop-types": "^15.7.2",
+ "react-is": "^17.0.2",
+ "react-transition-group": "^4.4.2",
+ "rifm": "^0.12.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "peerDependencies": {
+ "@mui/material": "^5.0.0",
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "date-fns": "^2.25.0",
+ "dayjs": "^1.10.7",
+ "luxon": "^1.28.0 || ^2.0.0",
+ "moment": "^2.29.1",
+ "react": "^17.0.0 || ^18.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "date-fns": {
+ "optional": true
+ },
+ "dayjs": {
+ "optional": true
+ },
+ "luxon": {
+ "optional": true
+ },
+ "moment": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/lab/node_modules/@mui/x-date-pickers": {
+ "version": "5.0.0-alpha.0",
+ "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-5.0.0-alpha.0.tgz",
+ "integrity": "sha512-JTzTaNSWbxNi8KDUJjHCH6im0YlIEv88gPoKhGm7s6xCGT1q6FtMp/oQ40nhfwrJ73nkM5G1JXRIzI/yfsHXQQ==",
+ "dependencies": {
+ "@date-io/date-fns": "^2.11.0",
+ "@date-io/dayjs": "^2.11.0",
+ "@date-io/luxon": "^2.11.1",
+ "@date-io/moment": "^2.11.0",
+ "@mui/utils": "^5.2.3",
+ "clsx": "^1.1.1",
+ "prop-types": "^15.7.2",
+ "react-transition-group": "^4.4.2",
+ "rifm": "^0.12.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "peerDependencies": {
+ "@mui/material": "^5.2.3",
+ "@mui/system": "^5.2.3",
+ "date-fns": "^2.25.0",
+ "dayjs": "^1.10.7",
+ "luxon": "^1.28.0 || ^2.0.0",
+ "moment": "^2.29.1",
+ "react": "^17.0.2"
+ },
+ "peerDependenciesMeta": {
+ "date-fns": {
+ "optional": true
+ },
+ "dayjs": {
+ "optional": true
+ },
+ "luxon": {
+ "optional": true
+ },
+ "moment": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/material": {
+ "version": "5.10.13",
+ "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.13.tgz",
+ "integrity": "sha512-TkkT1rNc0/hhL4/+zv4gYcA6egNWBH/1Tz+azoTnQIUdZ32fgwFI2pFX2KVJNTt30xnLznxDWtTv7ilmJQ52xw==",
+ "dependencies": {
+ "@babel/runtime": "^7.19.0",
+ "@mui/base": "5.0.0-alpha.105",
+ "@mui/core-downloads-tracker": "^5.10.13",
+ "@mui/system": "^5.10.13",
+ "@mui/types": "^7.2.0",
+ "@mui/utils": "^5.10.9",
+ "@types/react-transition-group": "^4.4.5",
+ "clsx": "^1.2.1",
+ "csstype": "^3.1.1",
+ "prop-types": "^15.8.1",
+ "react-is": "^18.2.0",
+ "react-transition-group": "^4.4.5"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.5.0",
+ "@emotion/styled": "^11.3.0",
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/material/node_modules/@mui/base": {
+ "version": "5.0.0-alpha.105",
+ "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.105.tgz",
+ "integrity": "sha512-4IPBcJQIgVVXQvN6DQMoCHed52GBtwSqYs0jD0dDcMR3o76AodQtpEeWFz3p7mJoc6f/IHBl9U6jEfL1r/kM4g==",
+ "dependencies": {
+ "@babel/runtime": "^7.19.0",
+ "@emotion/is-prop-valid": "^1.2.0",
+ "@mui/types": "^7.2.0",
+ "@mui/utils": "^5.10.9",
+ "@popperjs/core": "^2.11.6",
+ "clsx": "^1.2.1",
+ "prop-types": "^15.8.1",
+ "react-is": "^18.2.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/material/node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "node_modules/@mui/private-theming": {
+ "version": "5.10.9",
+ "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.9.tgz",
+ "integrity": "sha512-BN7/CnsVPVyBaQpDTij4uV2xGYHHHhOgpdxeYLlIu+TqnsVM7wUeF+37kXvHovxM6xmL5qoaVUD98gDC0IZnHg==",
+ "dependencies": {
+ "@babel/runtime": "^7.19.0",
+ "@mui/utils": "^5.10.9",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/styled-engine": {
+ "version": "5.10.8",
+ "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.8.tgz",
+ "integrity": "sha512-w+y8WI18EJV6zM/q41ug19cE70JTeO6sWFsQ7tgePQFpy6ToCVPh0YLrtqxUZXSoMStW5FMw0t9fHTFAqPbngw==",
+ "dependencies": {
+ "@babel/runtime": "^7.19.0",
+ "@emotion/cache": "^11.10.3",
+ "csstype": "^3.1.1",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.4.1",
+ "@emotion/styled": "^11.3.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/system": {
+ "version": "5.10.13",
+ "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.13.tgz",
+ "integrity": "sha512-Xzx26Asu5fVlm0ucm+gnJmeX4Y1isrpVDvqxX4yJaOT7Fzmd8Lfq9ih3QMfZajns5LMtUiOuCQlVFRtUG5IY7A==",
+ "dependencies": {
+ "@babel/runtime": "^7.19.0",
+ "@mui/private-theming": "^5.10.9",
+ "@mui/styled-engine": "^5.10.8",
+ "@mui/types": "^7.2.0",
+ "@mui/utils": "^5.10.9",
+ "clsx": "^1.2.1",
+ "csstype": "^3.1.1",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.5.0",
+ "@emotion/styled": "^11.3.0",
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/types": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz",
+ "integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==",
+ "peerDependencies": {
+ "@types/react": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/utils": {
+ "version": "5.10.9",
+ "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.9.tgz",
+ "integrity": "sha512-2tdHWrq3+WCy+G6TIIaFx3cg7PorXZ71P375ExuX61od1NOAJP1mK90VxQ8N4aqnj2vmO3AQDkV4oV2Ktvt4bA==",
+ "dependencies": {
+ "@babel/runtime": "^7.19.0",
+ "@types/prop-types": "^15.7.5",
+ "@types/react-is": "^16.7.1 || ^17.0.0",
+ "prop-types": "^15.8.1",
+ "react-is": "^18.2.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "peerDependencies": {
+ "react": "^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@mui/utils/node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "node_modules/@mui/x-data-grid": {
+ "version": "5.17.10",
+ "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-5.17.10.tgz",
+ "integrity": "sha512-x0987WrcfuMUZpAGOl3a/Qh5ctDHyLDII1zNpm1zfAw1CgqaPTtwebUvGhtl0XguiKJuNW26kayqixjRcyaFJQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@mui/utils": "^5.10.3",
+ "clsx": "^1.2.1",
+ "prop-types": "^15.8.1",
+ "reselect": "^4.1.6"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "peerDependencies": {
+ "@mui/material": "^5.4.1",
+ "@mui/system": "^5.4.1",
+ "react": "^17.0.2 || ^18.0.0",
+ "react-dom": "^17.0.2 || ^18.0.0"
+ }
+ },
+ "node_modules/@mui/x-date-pickers": {
+ "version": "5.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-5.0.0-beta.2.tgz",
+ "integrity": "sha512-UEXQ2tmhosklAQwOUtwQBI2WngSdp5Q8vYqsmvxNJxuXYuM/DawdQBwyfFyK7jx5wf/RTsniG1e12hqii3wPYg==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.6",
+ "@date-io/core": "^2.14.0",
+ "@date-io/date-fns": "^2.14.0",
+ "@date-io/dayjs": "^2.14.0",
+ "@date-io/luxon": "^2.14.0",
+ "@date-io/moment": "^2.14.0",
+ "@mui/utils": "^5.4.1",
+ "@types/react-transition-group": "^4.4.5",
+ "clsx": "^1.2.1",
+ "prop-types": "^15.7.2",
+ "react-transition-group": "^4.4.2",
+ "rifm": "^0.12.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.9.0",
+ "@emotion/styled": "^11.8.1",
+ "@mui/material": "^5.4.1",
+ "@mui/system": "^5.4.1",
+ "date-fns": "^2.25.0",
+ "dayjs": "^1.10.7",
+ "luxon": "^1.28.0 || ^2.0.0 || ^3.0.0",
+ "moment": "^2.29.1",
+ "react": "^17.0.2 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ },
+ "date-fns": {
+ "optional": true
+ },
+ "dayjs": {
+ "optional": true
+ },
+ "luxon": {
+ "optional": true
+ },
+ "moment": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
+ "version": "5.1.1-v1",
+ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
+ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
+ "dev": true,
+ "dependencies": {
+ "eslint-scope": "5.1.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@popperjs/core": {
+ "version": "2.11.6",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz",
+ "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/popperjs"
+ }
+ },
+ "node_modules/@remix-run/router": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.3.tgz",
+ "integrity": "sha512-ceuyTSs7PZ/tQqi19YZNBc5X7kj1f8p+4DIyrcIYFY9h+hd1OKm4RqtiWldR9eGEvIiJfsqwM4BsuCtRIuEw6Q==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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-replace": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz",
+ "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/@rushstack/eslint-patch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz",
+ "integrity": "sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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-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/@types/babel__core": {
+ "version": "7.1.18",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz",
+ "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "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==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "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==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.14.2",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz",
+ "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@babel/types": "^7.3.0"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.9",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
+ "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
+ "dev": true
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true
+ },
+ "node_modules/@types/lodash": {
+ "version": "4.14.188",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.188.tgz",
+ "integrity": "sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w=="
+ },
+ "node_modules/@types/node": {
+ "version": "17.0.21",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz",
+ "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==",
+ "devOptional": true
+ },
+ "node_modules/@types/nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@types/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==",
+ "dev": true
+ },
+ "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/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/quill": {
+ "version": "1.3.10",
+ "resolved": "https://registry.npmjs.org/@types/quill/-/quill-1.3.10.tgz",
+ "integrity": "sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw==",
+ "dependencies": {
+ "parchment": "^1.1.2"
+ }
+ },
+ "node_modules/@types/react": {
+ "version": "17.0.52",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz",
+ "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "17.0.18",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.18.tgz",
+ "integrity": "sha512-rLVtIfbwyur2iFKykP2w0pl/1unw26b5td16d5xMgp7/yjTHomkyxPYChFoCr/FtEX1lN9wY6lFj1qvKdS5kDw==",
+ "dev": true,
+ "dependencies": {
+ "@types/react": "^17"
+ }
+ },
+ "node_modules/@types/react-is": {
+ "version": "17.0.3",
+ "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz",
+ "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/react-lazy-load-image-component": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/@types/react-lazy-load-image-component/-/react-lazy-load-image-component-1.5.2.tgz",
+ "integrity": "sha512-4NLJsMJVrMv18FuMIkUUBVj/PH9A+BvLKrZC75EWiEFn1IsMrZHgL1tVKw5QBfoa0Qjz6SkWIzEvwcyZ8PgnIg==",
+ "dev": true,
+ "dependencies": {
+ "@types/react": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==",
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "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/semver": {
+ "version": "7.3.13",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
+ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
+ "dev": true
+ },
+ "node_modules/@types/stylis": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.0.2.tgz",
+ "integrity": "sha512-wtckGuk1eXUlUz0Qb1eXHG37Z7HWT2GfMdqRf8F/ifddTwadSS9Jwsqi4qtXk7cP7MtoyGVIHPElFCLc6HItbg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.42.1.tgz",
+ "integrity": "sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.42.1",
+ "@typescript-eslint/type-utils": "5.42.1",
+ "@typescript-eslint/utils": "5.42.1",
+ "debug": "^4.3.4",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "regexpp": "^3.2.0",
+ "semver": "^7.3.7",
+ "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/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.1.tgz",
+ "integrity": "sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/visitor-keys": "5.42.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.1.tgz",
+ "integrity": "sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.1.tgz",
+ "integrity": "sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/visitor-keys": "5.42.1",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "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/eslint-plugin/node_modules/@typescript-eslint/utils": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.42.1.tgz",
+ "integrity": "sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.42.1",
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/typescript-estree": "5.42.1",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0",
+ "semver": "^7.3.7"
+ },
+ "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/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.1.tgz",
+ "integrity": "sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.42.1",
+ "eslint-visitor-keys": "^3.3.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/eslint-plugin/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==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/experimental-utils": {
+ "version": "5.12.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.12.1.tgz",
+ "integrity": "sha512-4bEa8WrS5DdzJq43smPH12ys4AOoCxVu2xjYGXQR4DnNyM8pqNzCr28zodf38Jc4bxWdniSEKKC1bQaccXGq5Q==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/utils": "5.12.1"
+ },
+ "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.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.42.1.tgz",
+ "integrity": "sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.42.1",
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/typescript-estree": "5.42.1",
+ "debug": "^4.3.4"
+ },
+ "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/parser/node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.1.tgz",
+ "integrity": "sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/visitor-keys": "5.42.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.1.tgz",
+ "integrity": "sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.1.tgz",
+ "integrity": "sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/visitor-keys": "5.42.1",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "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/parser/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.1.tgz",
+ "integrity": "sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.42.1",
+ "eslint-visitor-keys": "^3.3.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/parser/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==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.12.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz",
+ "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.12.1",
+ "@typescript-eslint/visitor-keys": "5.12.1"
+ },
+ "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.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.42.1.tgz",
+ "integrity": "sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "5.42.1",
+ "@typescript-eslint/utils": "5.42.1",
+ "debug": "^4.3.4",
+ "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/type-utils/node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.1.tgz",
+ "integrity": "sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/visitor-keys": "5.42.1"
+ },
+ "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/node_modules/@typescript-eslint/types": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.1.tgz",
+ "integrity": "sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==",
+ "dev": true,
+ "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/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.1.tgz",
+ "integrity": "sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/visitor-keys": "5.42.1",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "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/type-utils/node_modules/@typescript-eslint/utils": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.42.1.tgz",
+ "integrity": "sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.42.1",
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/typescript-estree": "5.42.1",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0",
+ "semver": "^7.3.7"
+ },
+ "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/type-utils/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.1.tgz",
+ "integrity": "sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.42.1",
+ "eslint-visitor-keys": "^3.3.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/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==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "5.12.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz",
+ "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==",
+ "dev": true,
+ "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.12.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz",
+ "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.12.1",
+ "@typescript-eslint/visitor-keys": "5.12.1",
+ "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/typescript-estree/node_modules/semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "5.12.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz",
+ "integrity": "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "@typescript-eslint/scope-manager": "5.12.1",
+ "@typescript-eslint/types": "5.12.1",
+ "@typescript-eslint/typescript-estree": "5.12.1",
+ "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/visitor-keys": {
+ "version": "5.12.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz",
+ "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.12.1",
+ "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/@typescript-eslint/visitor-keys/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==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@vitejs/plugin-react": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz",
+ "integrity": "sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA==",
+ "dependencies": {
+ "@babel/core": "^7.17.10",
+ "@babel/plugin-transform-react-jsx": "^7.17.3",
+ "@babel/plugin-transform-react-jsx-development": "^7.16.7",
+ "@babel/plugin-transform-react-jsx-self": "^7.16.7",
+ "@babel/plugin-transform-react-jsx-source": "^7.16.7",
+ "@rollup/pluginutils": "^4.2.1",
+ "react-refresh": "^0.13.0",
+ "resolve": "^1.22.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/@vitejs/plugin-react/node_modules/@rollup/pluginutils": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
+ "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
+ "dependencies": {
+ "estree-walker": "^2.0.1",
+ "picomatch": "^2.2.2"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ }
+ },
+ "node_modules/@vitejs/plugin-react/node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "node_modules/@vitejs/plugin-react/node_modules/react-refresh": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz",
+ "integrity": "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.8.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
+ "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
+ "devOptional": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "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/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/apexcharts": {
+ "version": "3.36.3",
+ "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.36.3.tgz",
+ "integrity": "sha512-8/FXEs0ohXMff07Gv28XjhPwEJphIUdq2/wii/pcvi54Tw6z1mjrV8ydN8rlWi/ve8BAPBefJkLmRWv7UOBsLw==",
+ "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/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@babel/runtime": "^7.10.2",
+ "@babel/runtime-corejs3": "^7.10.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
+ "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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=",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/attr-accept": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz",
+ "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/axios": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
+ "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
+ "dependencies": {
+ "follow-redirects": "^1.14.9",
+ "form-data": "^4.0.0"
+ }
+ },
+ "node_modules/axios/node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "object.assign": "^4.1.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-macros/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/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==",
+ "dev": true,
+ "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-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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.21.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+ "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001400",
+ "electron-to-chromium": "^1.4.251",
+ "node-releases": "^2.0.6",
+ "update-browserslist-db": "^1.0.9"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "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==",
+ "devOptional": true
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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/can-use-dom": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz",
+ "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo="
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001431",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz",
+ "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ }
+ ]
+ },
+ "node_modules/capital-case": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz",
+ "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3",
+ "upper-case-first": "^2.0.2"
+ }
+ },
+ "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/chalk/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/change-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz",
+ "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==",
+ "dependencies": {
+ "camel-case": "^4.1.2",
+ "capital-case": "^1.0.4",
+ "constant-case": "^3.0.4",
+ "dot-case": "^3.0.4",
+ "header-case": "^2.0.4",
+ "no-case": "^3.0.4",
+ "param-case": "^3.0.4",
+ "pascal-case": "^3.1.2",
+ "path-case": "^3.0.4",
+ "sentence-case": "^3.0.4",
+ "snake-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
+ "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "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/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "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=",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/constant-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz",
+ "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3",
+ "upper-case": "^2.0.2"
+ }
+ },
+ "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/core-js": {
+ "version": "3.21.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz",
+ "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==",
+ "hasInstallScript": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.21.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz",
+ "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==",
+ "dev": true,
+ "dependencies": {
+ "browserslist": "^4.19.1",
+ "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==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/core-js-pure": {
+ "version": "3.21.1",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz",
+ "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cssjanus": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cssjanus/-/cssjanus-2.1.0.tgz",
+ "integrity": "sha512-kAijbny3GmdOi9k+QT6DGIXqFvL96aksNlGr4Rhk9qXDZYWUojU4bRc3IHWxdaLNOqgEZHuXoe5Wl2l7dxLW5g==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
+ "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/date-fns": {
+ "version": "2.29.3",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz",
+ "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==",
+ "engines": {
+ "node": ">=0.11"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/date-fns"
+ }
+ },
+ "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/deep-equal": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
+ "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
+ "dependencies": {
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/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/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "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/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/ejs": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz",
+ "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==",
+ "dev": true,
+ "dependencies": {
+ "jake": "^10.6.1"
+ },
+ "bin": {
+ "ejs": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.284",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
+ "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA=="
+ },
+ "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==",
+ "dev": true
+ },
+ "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/es-abstract": {
+ "version": "1.20.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
+ "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.1.3",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.7",
+ "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.2",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trimend": "^1.0.5",
+ "string.prototype.trimstart": "^1.0.5",
+ "unbox-primitive": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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/esbuild": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz",
+ "integrity": "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==",
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/android-arm": "0.15.13",
+ "@esbuild/linux-loong64": "0.15.13",
+ "esbuild-android-64": "0.15.13",
+ "esbuild-android-arm64": "0.15.13",
+ "esbuild-darwin-64": "0.15.13",
+ "esbuild-darwin-arm64": "0.15.13",
+ "esbuild-freebsd-64": "0.15.13",
+ "esbuild-freebsd-arm64": "0.15.13",
+ "esbuild-linux-32": "0.15.13",
+ "esbuild-linux-64": "0.15.13",
+ "esbuild-linux-arm": "0.15.13",
+ "esbuild-linux-arm64": "0.15.13",
+ "esbuild-linux-mips64le": "0.15.13",
+ "esbuild-linux-ppc64le": "0.15.13",
+ "esbuild-linux-riscv64": "0.15.13",
+ "esbuild-linux-s390x": "0.15.13",
+ "esbuild-netbsd-64": "0.15.13",
+ "esbuild-openbsd-64": "0.15.13",
+ "esbuild-sunos-64": "0.15.13",
+ "esbuild-windows-32": "0.15.13",
+ "esbuild-windows-64": "0.15.13",
+ "esbuild-windows-arm64": "0.15.13"
+ }
+ },
+ "node_modules/esbuild-android-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz",
+ "integrity": "sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-android-arm64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz",
+ "integrity": "sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz",
+ "integrity": "sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-arm64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz",
+ "integrity": "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz",
+ "integrity": "sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-arm64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz",
+ "integrity": "sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-32": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz",
+ "integrity": "sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz",
+ "integrity": "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz",
+ "integrity": "sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz",
+ "integrity": "sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-mips64le": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz",
+ "integrity": "sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==",
+ "cpu": [
+ "mips64el"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-ppc64le": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz",
+ "integrity": "sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-riscv64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz",
+ "integrity": "sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==",
+ "cpu": [
+ "riscv64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-s390x": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz",
+ "integrity": "sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==",
+ "cpu": [
+ "s390x"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-netbsd-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz",
+ "integrity": "sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-openbsd-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz",
+ "integrity": "sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-sunos-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz",
+ "integrity": "sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-32": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz",
+ "integrity": "sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz",
+ "integrity": "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-arm64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz",
+ "integrity": "sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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-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/eslint": {
+ "version": "8.27.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz",
+ "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint/eslintrc": "^1.3.3",
+ "@humanwhocodes/config-array": "^0.11.6",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "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.4.0",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.15.0",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-sdsl": "^4.1.4",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "regexpp": "^3.2.0",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0"
+ },
+ "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-airbnb": {
+ "version": "19.0.4",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz",
+ "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==",
+ "dev": true,
+ "dependencies": {
+ "eslint-config-airbnb-base": "^15.0.0",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.5"
+ },
+ "engines": {
+ "node": "^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^7.32.0 || ^8.2.0",
+ "eslint-plugin-import": "^2.25.3",
+ "eslint-plugin-jsx-a11y": "^6.5.1",
+ "eslint-plugin-react": "^7.28.0",
+ "eslint-plugin-react-hooks": "^4.3.0"
+ }
+ },
+ "node_modules/eslint-config-airbnb-base": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
+ "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
+ "dev": true,
+ "dependencies": {
+ "confusing-browser-globals": "^1.0.10",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.5",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^7.32.0 || ^8.2.0",
+ "eslint-plugin-import": "^2.25.2"
+ }
+ },
+ "node_modules/eslint-config-airbnb-typescript": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-16.2.0.tgz",
+ "integrity": "sha512-OUaMPZpTOZGKd5tXOjJ9PRU4iYNW/Z5DoHIynjsVK/FpkWdiY5+nxQW6TiJAlLwVI1l53xUOrnlZWtVBVQzuWA==",
+ "dev": true,
+ "dependencies": {
+ "eslint-config-airbnb-base": "^15.0.0"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/eslint-plugin": "^5.0.0",
+ "@typescript-eslint/parser": "^5.0.0",
+ "eslint": "^7.32.0 || ^8.2.0",
+ "eslint-plugin-import": "^2.25.3"
+ }
+ },
+ "node_modules/eslint-config-prettier": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
+ "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-config-react-app": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.0.tgz",
+ "integrity": "sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-import-resolver-typescript": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz",
+ "integrity": "sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4",
+ "glob": "^7.2.0",
+ "is-glob": "^4.0.3",
+ "resolve": "^1.22.0",
+ "tsconfig-paths": "^3.14.1"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "*",
+ "eslint-plugin-import": "*"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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=",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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-prettier": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
+ "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
+ "dev": true,
+ "dependencies": {
+ "prettier-linter-helpers": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.28.0",
+ "prettier": ">=2.0.0"
+ },
+ "peerDependenciesMeta": {
+ "eslint-config-prettier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.31.10",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz",
+ "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.5",
+ "array.prototype.flatmap": "^1.3.0",
+ "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.1",
+ "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.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-react-hooks": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz",
+ "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.2.0",
+ "path-parse": "^1.0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.0.5.tgz",
+ "integrity": "sha512-0j355vJpJCE/2g+aayIgJRUB6jBVqpD5ztMLGcadR1PgrgGPnPxN1HJuOAsAAwiMo27GwRnpJB8KOQzyNuNZrw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/utils": "^5.10.2"
+ },
+ "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": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-scope/node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.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==",
+ "dev": true,
+ "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-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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "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==",
+ "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/eslint/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==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/eslint/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==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.17.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
+ "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
+ "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/espree/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==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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=",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/file-selector": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz",
+ "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==",
+ "dependencies": {
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/filelist": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz",
+ "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==",
+ "dev": true,
+ "dependencies": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="
+ },
+ "node_modules/find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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/framer-motion": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz",
+ "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==",
+ "dependencies": {
+ "@motionone/dom": "10.12.0",
+ "framesync": "6.0.1",
+ "hey-listen": "^1.0.8",
+ "popmotion": "11.0.3",
+ "style-value-types": "5.0.0",
+ "tslib": "^2.1.0"
+ },
+ "optionalDependencies": {
+ "@emotion/is-prop-valid": "^0.8.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.8 || ^17.0.0 || ^18.0.0",
+ "react-dom": ">=16.8 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
+ "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
+ "optional": true,
+ "dependencies": {
+ "@emotion/memoize": "0.7.4"
+ }
+ },
+ "node_modules/framer-motion/node_modules/@emotion/memoize": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
+ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
+ "optional": true
+ },
+ "node_modules/framesync": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz",
+ "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "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/function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-intrinsic": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/goober": {
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.11.tgz",
+ "integrity": "sha512-5SS2lmxbhqH0u9ABEWq7WPU69a4i2pYcHeCxqaNq6Cw3mnrF0ghWNM4tEGid4dKy8XNIAUbuThuozDHHKJVh3A==",
+ "peerDependencies": {
+ "csstype": "^3.0.10"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.9",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
+ "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==",
+ "dev": true
+ },
+ "node_modules/grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/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/header-case": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz",
+ "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==",
+ "dependencies": {
+ "capital-case": "^1.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/hey-listen": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz",
+ "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="
+ },
+ "node_modules/highlight.js": {
+ "version": "11.6.0",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.6.0.tgz",
+ "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "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/hoist-non-react-statics/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/ignore": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
+ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "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/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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/is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "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-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==",
+ "dev": true,
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "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-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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=",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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-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=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "node_modules/jake": {
+ "version": "10.8.2",
+ "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz",
+ "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==",
+ "dev": true,
+ "dependencies": {
+ "async": "0.9.x",
+ "chalk": "^2.4.2",
+ "filelist": "^1.0.1",
+ "minimatch": "^3.0.4"
+ },
+ "bin": {
+ "jake": "bin/cli.js"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/jake/node_modules/async": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+ "dev": true
+ },
+ "node_modules/js-sdsl": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
+ "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
+ "dev": true
+ },
+ "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": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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=",
+ "dev": true
+ },
+ "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/jsonpointer": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz",
+ "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jsx-ast-utils": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz",
+ "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.3",
+ "object.assign": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/jsx-runtime": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/jsx-runtime/-/jsx-runtime-1.2.0.tgz",
+ "integrity": "sha512-iCxmRTlUAWmXwHZxN0JSx/T7eRi0SkKAskE0lp+j4W1mzdNp49ja/9QI2ZmlggPM95RqnDw5ioYjw0EcvpIClw==",
+ "dependencies": {
+ "object-assign": "^3.0.0"
+ }
+ },
+ "node_modules/jsx-runtime/node_modules/object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/language-tags": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
+ "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "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/locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+ "dev": true
+ },
+ "node_modules/lodash.throttle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
+ "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.25.7",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
+ "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
+ "dev": true,
+ "dependencies": {
+ "sourcemap-codec": "^1.4.4"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.51.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
+ "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.34",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz",
+ "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
+ "dependencies": {
+ "mime-db": "1.51.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/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.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "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=",
+ "dev": true
+ },
+ "node_modules/natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "dev": true
+ },
+ "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-releases": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
+ "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
+ },
+ "node_modules/notistack": {
+ "version": "3.0.0-alpha.11",
+ "resolved": "https://registry.npmjs.org/notistack/-/notistack-3.0.0-alpha.11.tgz",
+ "integrity": "sha512-QfiVC1On1Zfs1UADxgRRhcVhAWveD3lBUKhDwx0GdXoSKii0UARz0tfJyIwwOxy5Lr+DOeAHz8Mvl1GwpeVnQQ==",
+ "dependencies": {
+ "clsx": "^1.1.0",
+ "goober": "^2.0.33"
+ },
+ "engines": {
+ "node": ">=12.0.0",
+ "npm": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/notistack"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E="
+ },
+ "node_modules/numeral": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz",
+ "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-is": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.hasown": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
+ "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "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==",
+ "dev": true,
+ "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/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "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": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/parchment": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz",
+ "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg=="
+ },
+ "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/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-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz",
+ "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==",
+ "dependencies": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "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=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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=",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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-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/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/popmotion": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz",
+ "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==",
+ "dependencies": {
+ "framesync": "6.0.1",
+ "hey-listen": "^1.0.8",
+ "style-value-types": "5.0.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz",
+ "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
+ "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "dependencies": {
+ "fast-diff": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "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/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/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/punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/quill": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz",
+ "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==",
+ "dependencies": {
+ "clone": "^2.1.1",
+ "deep-equal": "^1.0.1",
+ "eventemitter3": "^2.0.3",
+ "extend": "^3.0.2",
+ "parchment": "^1.1.4",
+ "quill-delta": "^3.6.2"
+ }
+ },
+ "node_modules/quill-delta": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz",
+ "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==",
+ "dependencies": {
+ "deep-equal": "^1.0.1",
+ "extend": "^3.0.2",
+ "fast-diff": "1.1.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/quill-delta/node_modules/fast-diff": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz",
+ "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig=="
+ },
+ "node_modules/quill/node_modules/eventemitter3": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
+ "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg=="
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/react": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ },
+ "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-dom": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "scheduler": "^0.20.2"
+ },
+ "peerDependencies": {
+ "react": "17.0.2"
+ }
+ },
+ "node_modules/react-dropzone": {
+ "version": "14.2.3",
+ "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz",
+ "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==",
+ "dependencies": {
+ "attr-accept": "^2.2.2",
+ "file-selector": "^0.6.0",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">= 10.13"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8 || 18.0.0"
+ }
+ },
+ "node_modules/react-fast-compare": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz",
+ "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA=="
+ },
+ "node_modules/react-helmet-async": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz",
+ "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.7.2",
+ "react-fast-compare": "^3.2.0",
+ "shallowequal": "^1.1.0"
+ },
+ "peerDependencies": {
+ "react": "^16.6.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-hook-form": {
+ "version": "7.39.1",
+ "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.39.1.tgz",
+ "integrity": "sha512-MiF9PCILN5KulhSGbnjohMiTOrB47GerDTichMNP0y2cPUu1GTRFqbunOxCE9N1499YTLMV/ne4gFzqCp1rxrQ==",
+ "engines": {
+ "node": ">=12.22.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/react-hook-form"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17 || ^18"
+ }
+ },
+ "node_modules/react-intersection-observer": {
+ "version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-8.34.0.tgz",
+ "integrity": "sha512-TYKh52Zc0Uptp5/b4N91XydfSGKubEhgZRtcg1rhTKABXijc4Sdr1uTp5lJ8TN27jwUsdXxjHXtHa0kPj704sw==",
+ "peerDependencies": {
+ "react": "^15.0.0 || ^16.0.0 || ^17.0.0|| ^18.0.0"
+ }
+ },
+ "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/react-lazy-load-image-component": {
+ "version": "1.5.6",
+ "resolved": "https://registry.npmjs.org/react-lazy-load-image-component/-/react-lazy-load-image-component-1.5.6.tgz",
+ "integrity": "sha512-M0jeJtOlTHgThOfgYM9krSqYbR6ShxROy/KVankwbw9/amPKG1t5GSGN1sei6Cyu8+QJVuyAUvQ+LFtCVTTlKw==",
+ "dependencies": {
+ "lodash.debounce": "^4.0.8",
+ "lodash.throttle": "^4.1.1"
+ },
+ "peerDependencies": {
+ "react": "^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x",
+ "react-dom": "^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x"
+ }
+ },
+ "node_modules/react-quill": {
+ "version": "2.0.0-beta.4",
+ "resolved": "https://registry.npmjs.org/react-quill/-/react-quill-2.0.0-beta.4.tgz",
+ "integrity": "sha512-KyAHvAlPjP4xLElKZJefMth91Z6FbbXRvq9OSu6xN3KBaoasLP9p+3dcxg4Ywr4tBlpMGXcPszYSAgd5CpJ45Q==",
+ "dependencies": {
+ "@types/quill": "^1.3.10",
+ "lodash": "^4.17.4",
+ "quill": "^1.3.7"
+ },
+ "peerDependencies": {
+ "react": "^16 || ^17",
+ "react-dom": "^16 || ^17"
+ }
+ },
+ "node_modules/react-router": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.3.tgz",
+ "integrity": "sha512-BT6DoGn6aV1FVP5yfODMOiieakp3z46P1Fk0RNzJMACzE7C339sFuHebfvWtnB4pzBvXXkHP2vscJzWRuUjTtA==",
+ "dependencies": {
+ "@remix-run/router": "1.0.3"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/react-router-dom": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.3.tgz",
+ "integrity": "sha512-MiaYQU8CwVCaOfJdYvt84KQNjT78VF0TJrA17SIQgNHRvLnXDJO6qsFqq8F/zzB1BWZjCFIrQpu4QxcshitziQ==",
+ "dependencies": {
+ "@remix-run/router": "1.0.3",
+ "react-router": "6.4.3"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "react": ">=16.8",
+ "react-dom": ">=16.8"
+ }
+ },
+ "node_modules/react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+ "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/regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.13.10",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz",
+ "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw=="
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
+ "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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=",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/reselect": {
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz",
+ "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A=="
+ },
+ "node_modules/resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "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-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/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rifm": {
+ "version": "0.12.1",
+ "resolved": "https://registry.npmjs.org/rifm/-/rifm-0.12.1.tgz",
+ "integrity": "sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==",
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "2.79.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
+ "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
+ "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==",
+ "dev": true,
+ "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/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/rollup-plugin-terser/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==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/safe-regex-test": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/scheduler": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "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/sentence-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz",
+ "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3",
+ "upper-case-first": "^2.0.2"
+ }
+ },
+ "node_modules/shallowequal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/simplebar": {
+ "version": "5.3.9",
+ "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-5.3.9.tgz",
+ "integrity": "sha512-1vIIpjDvY9sVH14e0LGeiCiTFU3ILqAghzO6OI9axeG+mvU/vMSrvXeAXkBolqFFz3XYaY8n5ahH9MeP3sp2Ag==",
+ "dependencies": {
+ "@juggle/resize-observer": "^3.3.1",
+ "can-use-dom": "^0.1.0",
+ "core-js": "^3.0.1",
+ "lodash.debounce": "^4.0.8",
+ "lodash.memoize": "^4.1.2",
+ "lodash.throttle": "^4.1.1"
+ }
+ },
+ "node_modules/simplebar-react": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-2.4.3.tgz",
+ "integrity": "sha512-Ep8gqAUZAS5IC2lT5RE4t1ZFUIVACqbrSRQvFV9a6NbVUzXzOMnc4P82Hl8Ak77AnPQvmgUwZS7aUKLyBoMAcg==",
+ "dependencies": {
+ "prop-types": "^15.6.1",
+ "simplebar": "^5.3.9"
+ },
+ "peerDependencies": {
+ "react": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0 || ^18.0.0",
+ "react-dom": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0 || ^18.0.0"
+ }
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/snake-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz",
+ "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
+ "dependencies": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "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-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==",
+ "devOptional": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/source-map-support/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==",
+ "devOptional": true,
+ "engines": {
+ "node": ">=0.10.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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/string.prototype.matchall": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
+ "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "regexp.prototype.flags": "^1.4.3",
+ "side-channel": "^1.0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/style-value-types": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz",
+ "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==",
+ "dependencies": {
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/stylis": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz",
+ "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA=="
+ },
+ "node_modules/stylis-plugin-rtl": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/stylis-plugin-rtl/-/stylis-plugin-rtl-2.1.1.tgz",
+ "integrity": "sha512-q6xIkri6fBufIO/sV55md2CbgS5c6gg9EhSVATtHHCdOnbN/jcI0u3lYhNVeuI65c4lQPo67g8xmq5jrREvzlg==",
+ "dependencies": {
+ "cssjanus": "^2.0.1"
+ },
+ "peerDependencies": {
+ "stylis": "4.x"
+ }
+ },
+ "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/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": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==",
+ "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": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==",
+ "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/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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.11.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz",
+ "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==",
+ "devOptional": true,
+ "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/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==",
+ "devOptional": true
+ },
+ "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==",
+ "devOptional": true,
+ "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=",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/toposort": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz",
+ "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg=="
+ },
+ "node_modules/tr46": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
+ },
+ "node_modules/tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "4.8.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
+ "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "crypto-random-string": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4",
+ "yarn": "*"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "browserslist-lint": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/upper-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz",
+ "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==",
+ "dependencies": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/upper-case-first": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz",
+ "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==",
+ "dependencies": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.3.tgz",
+ "integrity": "sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==",
+ "dependencies": {
+ "esbuild": "^0.15.9",
+ "postcss": "^8.4.18",
+ "resolve": "^1.22.1",
+ "rollup": "^2.79.1"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ },
+ "peerDependencies": {
+ "@types/node": ">= 14",
+ "less": "*",
+ "sass": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-pwa": {
+ "version": "0.12.8",
+ "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.12.8.tgz",
+ "integrity": "sha512-pSiFHmnJGMQJJL8aJzQ8SaraZBSBPMGvGUkCNzheIq9UQCEk/eP3UmANNmS9eupuhIpTK8AdxTOHcaMcAqAbCA==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4",
+ "fast-glob": "^3.2.11",
+ "pretty-bytes": "^6.0.0",
+ "rollup": "^2.75.7",
+ "workbox-build": "^6.5.3",
+ "workbox-window": "^6.5.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "vite": "^2.0.0 || ^3.0.0-0",
+ "workbox-build": "^6.4.0",
+ "workbox-window": "^6.4.0"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dev": true,
+ "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/vite-plugin-pwa/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==",
+ "dev": true,
+ "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/vite-plugin-pwa/node_modules/idb": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz",
+ "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==",
+ "dev": true
+ },
+ "node_modules/vite-plugin-pwa/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==",
+ "dev": true
+ },
+ "node_modules/vite-plugin-pwa/node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/pretty-bytes": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.0.0.tgz",
+ "integrity": "sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg==",
+ "dev": true,
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vite-plugin-pwa/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==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-url": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-background-sync": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz",
+ "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==",
+ "dev": true,
+ "dependencies": {
+ "idb": "^7.0.1",
+ "workbox-core": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-broadcast-update": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz",
+ "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-build": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz",
+ "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==",
+ "dev": true,
+ "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.4",
+ "workbox-broadcast-update": "6.5.4",
+ "workbox-cacheable-response": "6.5.4",
+ "workbox-core": "6.5.4",
+ "workbox-expiration": "6.5.4",
+ "workbox-google-analytics": "6.5.4",
+ "workbox-navigation-preload": "6.5.4",
+ "workbox-precaching": "6.5.4",
+ "workbox-range-requests": "6.5.4",
+ "workbox-recipes": "6.5.4",
+ "workbox-routing": "6.5.4",
+ "workbox-strategies": "6.5.4",
+ "workbox-streams": "6.5.4",
+ "workbox-sw": "6.5.4",
+ "workbox-window": "6.5.4"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-build/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-cacheable-response": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz",
+ "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-core": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz",
+ "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==",
+ "dev": true
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-expiration": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz",
+ "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==",
+ "dev": true,
+ "dependencies": {
+ "idb": "^7.0.1",
+ "workbox-core": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-google-analytics": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz",
+ "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==",
+ "dev": true,
+ "dependencies": {
+ "workbox-background-sync": "6.5.4",
+ "workbox-core": "6.5.4",
+ "workbox-routing": "6.5.4",
+ "workbox-strategies": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-navigation-preload": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz",
+ "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-precaching": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz",
+ "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "6.5.4",
+ "workbox-routing": "6.5.4",
+ "workbox-strategies": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-range-requests": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz",
+ "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-recipes": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz",
+ "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==",
+ "dev": true,
+ "dependencies": {
+ "workbox-cacheable-response": "6.5.4",
+ "workbox-core": "6.5.4",
+ "workbox-expiration": "6.5.4",
+ "workbox-precaching": "6.5.4",
+ "workbox-routing": "6.5.4",
+ "workbox-strategies": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-routing": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz",
+ "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-strategies": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz",
+ "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-streams": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz",
+ "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "6.5.4",
+ "workbox-routing": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-sw": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz",
+ "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==",
+ "dev": true
+ },
+ "node_modules/vite-plugin-pwa/node_modules/workbox-window": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz",
+ "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==",
+ "dev": true,
+ "dependencies": {
+ "@types/trusted-types": "^2.0.2",
+ "workbox-core": "6.5.4"
+ }
+ },
+ "node_modules/vite-plugin-svgr": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-2.2.2.tgz",
+ "integrity": "sha512-u8Ac27uZmDHTVGawpAhvLMJMuzbGeZGhe61TGeHoRQLxVhmQfIYCefa0iLbjC0ui1zFo6XZnS8EkzPITCYp85g==",
+ "dependencies": {
+ "@rollup/pluginutils": "^5.0.0",
+ "@svgr/core": "^6.4.0"
+ },
+ "peerDependencies": {
+ "vite": "^2.6.0 || 3"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@rollup/pluginutils": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
+ "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-add-jsx-attribute": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz",
+ "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz",
+ "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-svg-dynamic-title": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz",
+ "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-svg-em-dimensions": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz",
+ "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-transform-react-native-svg": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz",
+ "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-transform-svg-component": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz",
+ "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-preset": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz",
+ "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==",
+ "dependencies": {
+ "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1",
+ "@svgr/babel-plugin-remove-jsx-attribute": "*",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "*",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1",
+ "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1",
+ "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1",
+ "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1",
+ "@svgr/babel-plugin-transform-svg-component": "^6.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/core": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz",
+ "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==",
+ "dependencies": {
+ "@babel/core": "^7.19.6",
+ "@svgr/babel-preset": "^6.5.1",
+ "@svgr/plugin-jsx": "^6.5.1",
+ "camelcase": "^6.2.0",
+ "cosmiconfig": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/hast-util-to-babel-ast": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz",
+ "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==",
+ "dependencies": {
+ "@babel/types": "^7.20.0",
+ "entities": "^4.4.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/plugin-jsx": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz",
+ "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==",
+ "dependencies": {
+ "@babel/core": "^7.19.6",
+ "@svgr/babel-preset": "^6.5.1",
+ "@svgr/hast-util-to-babel-ast": "^6.5.1",
+ "svg-parser": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@svgr/core": "^6.0.0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@types/estree": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz",
+ "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ=="
+ },
+ "node_modules/vite-plugin-svgr/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/vite-plugin-svgr/node_modules/entities": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
+ "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ }
+ },
+ "node_modules/whatwg-url/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==",
+ "dev": true
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "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/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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "json-schema": "^0.4.0",
+ "jsonpointer": "^5.0.0",
+ "leven": "^3.1.0"
+ }
+ },
+ "@babel/code-frame": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "requires": {
+ "@babel/highlight": "^7.18.6"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.20.1",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz",
+ "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ=="
+ },
+ "@babel/core": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz",
+ "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==",
+ "requires": {
+ "@ampproject/remapping": "^2.1.0",
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.20.2",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-module-transforms": "^7.20.2",
+ "@babel/helpers": "^7.20.1",
+ "@babel/parser": "^7.20.2",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.1",
+ "@babel/types": "^7.20.2",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.1",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/eslint-parser": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz",
+ "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==",
+ "dev": true,
+ "requires": {
+ "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
+ "eslint-visitor-keys": "^2.1.0",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.20.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz",
+ "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==",
+ "requires": {
+ "@babel/types": "^7.20.2",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "jsesc": "^2.5.1"
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
+ "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "^7.16.7",
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz",
+ "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==",
+ "requires": {
+ "@babel/compat-data": "^7.20.0",
+ "@babel/helper-validator-option": "^7.18.6",
+ "browserslist": "^4.21.3",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.17.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz",
+ "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==",
+ "dev": true,
+ "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-member-expression-to-functions": "^7.16.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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.13.0",
+ "@babel/helper-module-imports": "^7.12.13",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/traverse": "^7.13.0",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2",
+ "semver": "^6.1.2"
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
+ "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg=="
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
+ "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
+ "requires": {
+ "@babel/template": "^7.18.10",
+ "@babel/types": "^7.19.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz",
+ "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz",
+ "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-simple-access": "^7.20.2",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.1",
+ "@babel/types": "^7.20.2"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.7"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
+ "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ=="
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
+ "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
+ "requires": {
+ "@babel/types": "^7.20.2"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.19.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
+ "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw=="
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
+ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw=="
+ },
+ "@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==",
+ "dev": true,
+ "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.20.1",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz",
+ "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==",
+ "requires": {
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.1",
+ "@babel/types": "^7.20.0"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.20.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz",
+ "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg=="
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz",
+ "integrity": "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.17.1",
+ "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-replace-supers": "^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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ }
+ },
+ "@babel/plugin-syntax-flow": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz",
+ "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
+ "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.16.7"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.17.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz",
+ "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.16.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz",
+ "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-simple-access": "^7.16.7",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz",
+ "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.16.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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.16.7"
+ }
+ },
+ "@babel/plugin-transform-react-jsx": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz",
+ "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/plugin-syntax-jsx": "^7.18.6",
+ "@babel/types": "^7.19.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-jsx-self": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz",
+ "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-source": {
+ "version": "7.19.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz",
+ "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.16.7"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz",
+ "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.14.2"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ }
+ },
+ "@babel/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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.20.1",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz",
+ "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==",
+ "requires": {
+ "regenerator-runtime": "^0.13.10"
+ }
+ },
+ "@babel/runtime-corejs3": {
+ "version": "7.17.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz",
+ "integrity": "sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==",
+ "dev": true,
+ "requires": {
+ "core-js-pure": "^3.20.2",
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@babel/template": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
+ "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "requires": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/parser": "^7.18.10",
+ "@babel/types": "^7.18.10"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.20.1",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz",
+ "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==",
+ "requires": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.20.1",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.20.1",
+ "@babel/types": "^7.20.0",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz",
+ "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.19.4",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@date-io/core": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/@date-io/core/-/core-2.16.0.tgz",
+ "integrity": "sha512-DYmSzkr+jToahwWrsiRA2/pzMEtz9Bq1euJwoOuYwuwIYXnZFtHajY2E6a1VNVDc9jP8YUXK1BvnZH9mmT19Zg=="
+ },
+ "@date-io/date-fns": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/@date-io/date-fns/-/date-fns-2.16.0.tgz",
+ "integrity": "sha512-bfm5FJjucqlrnQcXDVU5RD+nlGmL3iWgkHTq3uAZWVIuBu6dDmGa3m8a6zo2VQQpu8ambq9H22UyUpn7590joA==",
+ "requires": {
+ "@date-io/core": "^2.16.0"
+ }
+ },
+ "@date-io/dayjs": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/@date-io/dayjs/-/dayjs-2.16.0.tgz",
+ "integrity": "sha512-y5qKyX2j/HG3zMvIxTobYZRGnd1FUW2olZLS0vTj7bEkBQkjd2RO7/FEwDY03Z1geVGlXKnzIATEVBVaGzV4Iw==",
+ "requires": {
+ "@date-io/core": "^2.16.0"
+ }
+ },
+ "@date-io/luxon": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/@date-io/luxon/-/luxon-2.16.1.tgz",
+ "integrity": "sha512-aeYp5K9PSHV28946pC+9UKUi/xMMYoaGelrpDibZSgHu2VWHXrr7zWLEr+pMPThSs5vt8Ei365PO+84pCm37WQ==",
+ "requires": {
+ "@date-io/core": "^2.16.0"
+ }
+ },
+ "@date-io/moment": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/@date-io/moment/-/moment-2.16.1.tgz",
+ "integrity": "sha512-JkxldQxUqZBfZtsaCcCMkm/dmytdyq5pS1RxshCQ4fHhsvP5A7gSqPD22QbVXMcJydi3d3v1Y8BQdUKEuGACZQ==",
+ "requires": {
+ "@date-io/core": "^2.16.0"
+ }
+ },
+ "@emotion/babel-plugin": {
+ "version": "11.10.5",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz",
+ "integrity": "sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.16.7",
+ "@babel/plugin-syntax-jsx": "^7.17.12",
+ "@babel/runtime": "^7.18.3",
+ "@emotion/hash": "^0.9.0",
+ "@emotion/memoize": "^0.8.0",
+ "@emotion/serialize": "^1.1.1",
+ "babel-plugin-macros": "^3.1.0",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7",
+ "stylis": "4.1.3"
+ }
+ },
+ "@emotion/cache": {
+ "version": "11.10.5",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz",
+ "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==",
+ "requires": {
+ "@emotion/memoize": "^0.8.0",
+ "@emotion/sheet": "^1.2.1",
+ "@emotion/utils": "^1.2.0",
+ "@emotion/weak-memoize": "^0.3.0",
+ "stylis": "4.1.3"
+ }
+ },
+ "@emotion/hash": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz",
+ "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ=="
+ },
+ "@emotion/is-prop-valid": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz",
+ "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==",
+ "requires": {
+ "@emotion/memoize": "^0.8.0"
+ }
+ },
+ "@emotion/memoize": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz",
+ "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA=="
+ },
+ "@emotion/react": {
+ "version": "11.10.5",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.5.tgz",
+ "integrity": "sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==",
+ "requires": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.10.5",
+ "@emotion/cache": "^11.10.5",
+ "@emotion/serialize": "^1.1.1",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
+ "@emotion/utils": "^1.2.0",
+ "@emotion/weak-memoize": "^0.3.0",
+ "hoist-non-react-statics": "^3.3.1"
+ }
+ },
+ "@emotion/serialize": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz",
+ "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==",
+ "requires": {
+ "@emotion/hash": "^0.9.0",
+ "@emotion/memoize": "^0.8.0",
+ "@emotion/unitless": "^0.8.0",
+ "@emotion/utils": "^1.2.0",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@emotion/sheet": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz",
+ "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA=="
+ },
+ "@emotion/styled": {
+ "version": "11.10.5",
+ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.5.tgz",
+ "integrity": "sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==",
+ "requires": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.10.5",
+ "@emotion/is-prop-valid": "^1.2.0",
+ "@emotion/serialize": "^1.1.1",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
+ "@emotion/utils": "^1.2.0"
+ }
+ },
+ "@emotion/unitless": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz",
+ "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw=="
+ },
+ "@emotion/use-insertion-effect-with-fallbacks": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz",
+ "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==",
+ "requires": {}
+ },
+ "@emotion/utils": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz",
+ "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw=="
+ },
+ "@emotion/weak-memoize": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz",
+ "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg=="
+ },
+ "@esbuild/android-arm": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz",
+ "integrity": "sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==",
+ "optional": true
+ },
+ "@esbuild/linux-loong64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz",
+ "integrity": "sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==",
+ "optional": true
+ },
+ "@eslint/eslintrc": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
+ "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.4.0",
+ "globals": "^13.15.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "13.17.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
+ "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "@hookform/resolvers": {
+ "version": "2.9.10",
+ "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-2.9.10.tgz",
+ "integrity": "sha512-JIL1DgJIlH9yuxcNGtyhsWX/PgNltz+5Gr6+8SX9fhXc/hPbEIk6wPI82nhgvp3uUb6ZfAM5mqg/x7KR7NAb+A==",
+ "requires": {}
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.11.7",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz",
+ "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==",
+ "dev": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ }
+ },
+ "@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true
+ },
+ "@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==",
+ "dev": true
+ },
+ "@iconify/react": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@iconify/react/-/react-3.2.2.tgz",
+ "integrity": "sha512-z3+Jno3VcJzgNHsN5mEvYMsgCkOZkydqdIwOxjXh45+i2Vs9RGH68Y52vt39izwFSfuYUXhaW+1u7m7+IhCn/g==",
+ "requires": {}
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "requires": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ }
+ },
+ "@juggle/resize-observer": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.3.1.tgz",
+ "integrity": "sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw=="
+ },
+ "@motionone/animation": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.14.0.tgz",
+ "integrity": "sha512-h+1sdyBP8vbxEBW5gPFDnj+m2DCqdlAuf2g6Iafb1lcMnqjsRXWlPw1AXgvUMXmreyhqmPbJqoNfIKdytampRQ==",
+ "requires": {
+ "@motionone/easing": "^10.14.0",
+ "@motionone/types": "^10.14.0",
+ "@motionone/utils": "^10.14.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/dom": {
+ "version": "10.12.0",
+ "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz",
+ "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==",
+ "requires": {
+ "@motionone/animation": "^10.12.0",
+ "@motionone/generators": "^10.12.0",
+ "@motionone/types": "^10.12.0",
+ "@motionone/utils": "^10.12.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/easing": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.14.0.tgz",
+ "integrity": "sha512-2vUBdH9uWTlRbuErhcsMmt1jvMTTqvGmn9fHq8FleFDXBlHFs5jZzHJT9iw+4kR1h6a4SZQuCf72b9ji92qNYA==",
+ "requires": {
+ "@motionone/utils": "^10.14.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/generators": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.14.0.tgz",
+ "integrity": "sha512-6kRHezoFfIjFN7pPpaxmkdZXD36tQNcyJe3nwVqwJ+ZfC0e3rFmszR8kp9DEVFs9QL/akWjuGPSLBI1tvz+Vjg==",
+ "requires": {
+ "@motionone/types": "^10.14.0",
+ "@motionone/utils": "^10.14.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/types": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.14.0.tgz",
+ "integrity": "sha512-3bNWyYBHtVd27KncnJLhksMFQ5o2MSdk1cA/IZqsHtA9DnRM1SYgN01CTcJ8Iw8pCXF5Ocp34tyAjY7WRpOJJQ=="
+ },
+ "@motionone/utils": {
+ "version": "10.14.0",
+ "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.14.0.tgz",
+ "integrity": "sha512-sLWBLPzRqkxmOTRzSaD3LFQXCPHvDzyHJ1a3VP9PRzBxyVd2pv51/gMOsdAcxQ9n+MIeGJnxzXBYplUHKj4jkw==",
+ "requires": {
+ "@motionone/types": "^10.14.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@mui/base": {
+ "version": "5.0.0-alpha.79",
+ "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.79.tgz",
+ "integrity": "sha512-/lZLF027BkiEjM8MIYoeS/FEhTKf+41ePU9SOijMGrCin1Y0Igucw+IHa1fF8HXD7wDbFKqHuso3J1jMG8wyNw==",
+ "requires": {
+ "@babel/runtime": "^7.17.2",
+ "@emotion/is-prop-valid": "^1.1.2",
+ "@mui/types": "^7.1.3",
+ "@mui/utils": "^5.6.1",
+ "@popperjs/core": "^2.11.5",
+ "clsx": "^1.1.1",
+ "prop-types": "^15.7.2",
+ "react-is": "^17.0.2"
+ }
+ },
+ "@mui/core-downloads-tracker": {
+ "version": "5.10.13",
+ "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.13.tgz",
+ "integrity": "sha512-zWkWPV/SaNdsIdxAWiuVGZ+Ue3BkfSIlU/BFIrJmuUcwiIa7gQsbI/DOpj1KzLvqZhdEe2wC1aG4nCHfzgc1Hg=="
+ },
+ "@mui/icons-material": {
+ "version": "5.10.9",
+ "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.9.tgz",
+ "integrity": "sha512-sqClXdEM39WKQJOQ0ZCPTptaZgqwibhj2EFV9N0v7BU1PO8y4OcX/a2wIQHn4fNuDjIZktJIBrmU23h7aqlGgg==",
+ "requires": {
+ "@babel/runtime": "^7.19.0"
+ }
+ },
+ "@mui/lab": {
+ "version": "5.0.0-alpha.80",
+ "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.80.tgz",
+ "integrity": "sha512-td5Ak0Hx+EzVN9MJqBlZJ6BKFGjTrHyNjXncjSHTvp8Z9p157AlOA/Sf7r+RyqyVzOzBfv4S37i9ShFTzSK61Q==",
+ "requires": {
+ "@babel/runtime": "^7.17.2",
+ "@mui/base": "5.0.0-alpha.79",
+ "@mui/system": "^5.6.4",
+ "@mui/utils": "^5.6.1",
+ "@mui/x-date-pickers": "5.0.0-alpha.0",
+ "clsx": "^1.1.1",
+ "prop-types": "^15.7.2",
+ "react-is": "^17.0.2",
+ "react-transition-group": "^4.4.2",
+ "rifm": "^0.12.1"
+ },
+ "dependencies": {
+ "@mui/x-date-pickers": {
+ "version": "5.0.0-alpha.0",
+ "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-5.0.0-alpha.0.tgz",
+ "integrity": "sha512-JTzTaNSWbxNi8KDUJjHCH6im0YlIEv88gPoKhGm7s6xCGT1q6FtMp/oQ40nhfwrJ73nkM5G1JXRIzI/yfsHXQQ==",
+ "requires": {
+ "@date-io/date-fns": "^2.11.0",
+ "@date-io/dayjs": "^2.11.0",
+ "@date-io/luxon": "^2.11.1",
+ "@date-io/moment": "^2.11.0",
+ "@mui/utils": "^5.2.3",
+ "clsx": "^1.1.1",
+ "prop-types": "^15.7.2",
+ "react-transition-group": "^4.4.2",
+ "rifm": "^0.12.1"
+ }
+ }
+ }
+ },
+ "@mui/material": {
+ "version": "5.10.13",
+ "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.13.tgz",
+ "integrity": "sha512-TkkT1rNc0/hhL4/+zv4gYcA6egNWBH/1Tz+azoTnQIUdZ32fgwFI2pFX2KVJNTt30xnLznxDWtTv7ilmJQ52xw==",
+ "requires": {
+ "@babel/runtime": "^7.19.0",
+ "@mui/base": "5.0.0-alpha.105",
+ "@mui/core-downloads-tracker": "^5.10.13",
+ "@mui/system": "^5.10.13",
+ "@mui/types": "^7.2.0",
+ "@mui/utils": "^5.10.9",
+ "@types/react-transition-group": "^4.4.5",
+ "clsx": "^1.2.1",
+ "csstype": "^3.1.1",
+ "prop-types": "^15.8.1",
+ "react-is": "^18.2.0",
+ "react-transition-group": "^4.4.5"
+ },
+ "dependencies": {
+ "@mui/base": {
+ "version": "5.0.0-alpha.105",
+ "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.105.tgz",
+ "integrity": "sha512-4IPBcJQIgVVXQvN6DQMoCHed52GBtwSqYs0jD0dDcMR3o76AodQtpEeWFz3p7mJoc6f/IHBl9U6jEfL1r/kM4g==",
+ "requires": {
+ "@babel/runtime": "^7.19.0",
+ "@emotion/is-prop-valid": "^1.2.0",
+ "@mui/types": "^7.2.0",
+ "@mui/utils": "^5.10.9",
+ "@popperjs/core": "^2.11.6",
+ "clsx": "^1.2.1",
+ "prop-types": "^15.8.1",
+ "react-is": "^18.2.0"
+ }
+ },
+ "react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ }
+ }
+ },
+ "@mui/private-theming": {
+ "version": "5.10.9",
+ "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.9.tgz",
+ "integrity": "sha512-BN7/CnsVPVyBaQpDTij4uV2xGYHHHhOgpdxeYLlIu+TqnsVM7wUeF+37kXvHovxM6xmL5qoaVUD98gDC0IZnHg==",
+ "requires": {
+ "@babel/runtime": "^7.19.0",
+ "@mui/utils": "^5.10.9",
+ "prop-types": "^15.8.1"
+ }
+ },
+ "@mui/styled-engine": {
+ "version": "5.10.8",
+ "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.8.tgz",
+ "integrity": "sha512-w+y8WI18EJV6zM/q41ug19cE70JTeO6sWFsQ7tgePQFpy6ToCVPh0YLrtqxUZXSoMStW5FMw0t9fHTFAqPbngw==",
+ "requires": {
+ "@babel/runtime": "^7.19.0",
+ "@emotion/cache": "^11.10.3",
+ "csstype": "^3.1.1",
+ "prop-types": "^15.8.1"
+ }
+ },
+ "@mui/system": {
+ "version": "5.10.13",
+ "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.13.tgz",
+ "integrity": "sha512-Xzx26Asu5fVlm0ucm+gnJmeX4Y1isrpVDvqxX4yJaOT7Fzmd8Lfq9ih3QMfZajns5LMtUiOuCQlVFRtUG5IY7A==",
+ "requires": {
+ "@babel/runtime": "^7.19.0",
+ "@mui/private-theming": "^5.10.9",
+ "@mui/styled-engine": "^5.10.8",
+ "@mui/types": "^7.2.0",
+ "@mui/utils": "^5.10.9",
+ "clsx": "^1.2.1",
+ "csstype": "^3.1.1",
+ "prop-types": "^15.8.1"
+ }
+ },
+ "@mui/types": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz",
+ "integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==",
+ "requires": {}
+ },
+ "@mui/utils": {
+ "version": "5.10.9",
+ "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.9.tgz",
+ "integrity": "sha512-2tdHWrq3+WCy+G6TIIaFx3cg7PorXZ71P375ExuX61od1NOAJP1mK90VxQ8N4aqnj2vmO3AQDkV4oV2Ktvt4bA==",
+ "requires": {
+ "@babel/runtime": "^7.19.0",
+ "@types/prop-types": "^15.7.5",
+ "@types/react-is": "^16.7.1 || ^17.0.0",
+ "prop-types": "^15.8.1",
+ "react-is": "^18.2.0"
+ },
+ "dependencies": {
+ "react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ }
+ }
+ },
+ "@mui/x-data-grid": {
+ "version": "5.17.10",
+ "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-5.17.10.tgz",
+ "integrity": "sha512-x0987WrcfuMUZpAGOl3a/Qh5ctDHyLDII1zNpm1zfAw1CgqaPTtwebUvGhtl0XguiKJuNW26kayqixjRcyaFJQ==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@mui/utils": "^5.10.3",
+ "clsx": "^1.2.1",
+ "prop-types": "^15.8.1",
+ "reselect": "^4.1.6"
+ }
+ },
+ "@mui/x-date-pickers": {
+ "version": "5.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-5.0.0-beta.2.tgz",
+ "integrity": "sha512-UEXQ2tmhosklAQwOUtwQBI2WngSdp5Q8vYqsmvxNJxuXYuM/DawdQBwyfFyK7jx5wf/RTsniG1e12hqii3wPYg==",
+ "requires": {
+ "@babel/runtime": "^7.18.6",
+ "@date-io/core": "^2.14.0",
+ "@date-io/date-fns": "^2.14.0",
+ "@date-io/dayjs": "^2.14.0",
+ "@date-io/luxon": "^2.14.0",
+ "@date-io/moment": "^2.14.0",
+ "@mui/utils": "^5.4.1",
+ "@types/react-transition-group": "^4.4.5",
+ "clsx": "^1.2.1",
+ "prop-types": "^15.7.2",
+ "react-transition-group": "^4.4.2",
+ "rifm": "^0.12.1"
+ }
+ },
+ "@nicolo-ribaudo/eslint-scope-5-internals": {
+ "version": "5.1.1-v1",
+ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
+ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
+ "dev": true,
+ "requires": {
+ "eslint-scope": "5.1.1"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@popperjs/core": {
+ "version": "2.11.6",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz",
+ "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw=="
+ },
+ "@remix-run/router": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.3.tgz",
+ "integrity": "sha512-ceuyTSs7PZ/tQqi19YZNBc5X7kj1f8p+4DIyrcIYFY9h+hd1OKm4RqtiWldR9eGEvIiJfsqwM4BsuCtRIuEw6Q=="
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "@rushstack/eslint-patch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz",
+ "integrity": "sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==",
+ "dev": true
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "ejs": "^3.1.6",
+ "json5": "^2.2.0",
+ "magic-string": "^0.25.0",
+ "string.prototype.matchall": "^4.0.6"
+ }
+ },
+ "@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=="
+ },
+ "@types/babel__core": {
+ "version": "7.1.18",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz",
+ "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "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==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "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==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__traverse": {
+ "version": "7.14.2",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz",
+ "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "@babel/types": "^7.3.0"
+ }
+ },
+ "@types/json-schema": {
+ "version": "7.0.9",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
+ "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
+ "dev": true
+ },
+ "@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true
+ },
+ "@types/lodash": {
+ "version": "4.14.188",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.188.tgz",
+ "integrity": "sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w=="
+ },
+ "@types/node": {
+ "version": "17.0.21",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz",
+ "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==",
+ "devOptional": true
+ },
+ "@types/nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@types/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==",
+ "dev": true
+ },
+ "@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/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/quill": {
+ "version": "1.3.10",
+ "resolved": "https://registry.npmjs.org/@types/quill/-/quill-1.3.10.tgz",
+ "integrity": "sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw==",
+ "requires": {
+ "parchment": "^1.1.2"
+ }
+ },
+ "@types/react": {
+ "version": "17.0.52",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz",
+ "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==",
+ "requires": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@types/react-dom": {
+ "version": "17.0.18",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.18.tgz",
+ "integrity": "sha512-rLVtIfbwyur2iFKykP2w0pl/1unw26b5td16d5xMgp7/yjTHomkyxPYChFoCr/FtEX1lN9wY6lFj1qvKdS5kDw==",
+ "dev": true,
+ "requires": {
+ "@types/react": "^17"
+ }
+ },
+ "@types/react-is": {
+ "version": "17.0.3",
+ "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz",
+ "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==",
+ "requires": {
+ "@types/react": "*"
+ }
+ },
+ "@types/react-lazy-load-image-component": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/@types/react-lazy-load-image-component/-/react-lazy-load-image-component-1.5.2.tgz",
+ "integrity": "sha512-4NLJsMJVrMv18FuMIkUUBVj/PH9A+BvLKrZC75EWiEFn1IsMrZHgL1tVKw5QBfoa0Qjz6SkWIzEvwcyZ8PgnIg==",
+ "dev": true,
+ "requires": {
+ "@types/react": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@types/react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==",
+ "requires": {
+ "@types/react": "*"
+ }
+ },
+ "@types/resolve": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
+ "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/scheduler": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
+ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
+ },
+ "@types/semver": {
+ "version": "7.3.13",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
+ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
+ "dev": true
+ },
+ "@types/stylis": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.0.2.tgz",
+ "integrity": "sha512-wtckGuk1eXUlUz0Qb1eXHG37Z7HWT2GfMdqRf8F/ifddTwadSS9Jwsqi4qtXk7cP7MtoyGVIHPElFCLc6HItbg==",
+ "dev": true
+ },
+ "@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==",
+ "dev": true
+ },
+ "@typescript-eslint/eslint-plugin": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.42.1.tgz",
+ "integrity": "sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/scope-manager": "5.42.1",
+ "@typescript-eslint/type-utils": "5.42.1",
+ "@typescript-eslint/utils": "5.42.1",
+ "debug": "^4.3.4",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "regexpp": "^3.2.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "dependencies": {
+ "@typescript-eslint/scope-manager": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.1.tgz",
+ "integrity": "sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/visitor-keys": "5.42.1"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.1.tgz",
+ "integrity": "sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.1.tgz",
+ "integrity": "sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/visitor-keys": "5.42.1",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/utils": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.42.1.tgz",
+ "integrity": "sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.42.1",
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/typescript-estree": "5.42.1",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0",
+ "semver": "^7.3.7"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.1.tgz",
+ "integrity": "sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.42.1",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/experimental-utils": {
+ "version": "5.12.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.12.1.tgz",
+ "integrity": "sha512-4bEa8WrS5DdzJq43smPH12ys4AOoCxVu2xjYGXQR4DnNyM8pqNzCr28zodf38Jc4bxWdniSEKKC1bQaccXGq5Q==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/utils": "5.12.1"
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.42.1.tgz",
+ "integrity": "sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/scope-manager": "5.42.1",
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/typescript-estree": "5.42.1",
+ "debug": "^4.3.4"
+ },
+ "dependencies": {
+ "@typescript-eslint/scope-manager": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.1.tgz",
+ "integrity": "sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/visitor-keys": "5.42.1"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.1.tgz",
+ "integrity": "sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.1.tgz",
+ "integrity": "sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/visitor-keys": "5.42.1",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.1.tgz",
+ "integrity": "sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.42.1",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "5.12.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz",
+ "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.12.1",
+ "@typescript-eslint/visitor-keys": "5.12.1"
+ }
+ },
+ "@typescript-eslint/type-utils": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.42.1.tgz",
+ "integrity": "sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/typescript-estree": "5.42.1",
+ "@typescript-eslint/utils": "5.42.1",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ },
+ "dependencies": {
+ "@typescript-eslint/scope-manager": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.1.tgz",
+ "integrity": "sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/visitor-keys": "5.42.1"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.1.tgz",
+ "integrity": "sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.1.tgz",
+ "integrity": "sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/visitor-keys": "5.42.1",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/utils": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.42.1.tgz",
+ "integrity": "sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.42.1",
+ "@typescript-eslint/types": "5.42.1",
+ "@typescript-eslint/typescript-estree": "5.42.1",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0",
+ "semver": "^7.3.7"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.42.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.1.tgz",
+ "integrity": "sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.42.1",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.12.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz",
+ "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.12.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz",
+ "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.12.1",
+ "@typescript-eslint/visitor-keys": "5.12.1",
+ "debug": "^4.3.2",
+ "globby": "^11.0.4",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.5",
+ "tsutils": "^3.21.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/utils": {
+ "version": "5.12.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz",
+ "integrity": "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "@typescript-eslint/scope-manager": "5.12.1",
+ "@typescript-eslint/types": "5.12.1",
+ "@typescript-eslint/typescript-estree": "5.12.1",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.12.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz",
+ "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.12.1",
+ "eslint-visitor-keys": "^3.0.0"
+ },
+ "dependencies": {
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "@vitejs/plugin-react": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz",
+ "integrity": "sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA==",
+ "requires": {
+ "@babel/core": "^7.17.10",
+ "@babel/plugin-transform-react-jsx": "^7.17.3",
+ "@babel/plugin-transform-react-jsx-development": "^7.16.7",
+ "@babel/plugin-transform-react-jsx-self": "^7.16.7",
+ "@babel/plugin-transform-react-jsx-source": "^7.16.7",
+ "@rollup/pluginutils": "^4.2.1",
+ "react-refresh": "^0.13.0",
+ "resolve": "^1.22.0"
+ },
+ "dependencies": {
+ "@rollup/pluginutils": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
+ "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
+ "requires": {
+ "estree-walker": "^2.0.1",
+ "picomatch": "^2.2.2"
+ }
+ },
+ "estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "react-refresh": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz",
+ "integrity": "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg=="
+ }
+ }
+ },
+ "acorn": {
+ "version": "8.8.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
+ "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
+ "devOptional": true
+ },
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "apexcharts": {
+ "version": "3.36.3",
+ "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.36.3.tgz",
+ "integrity": "sha512-8/FXEs0ohXMff07Gv28XjhPwEJphIUdq2/wii/pcvi54Tw6z1mjrV8ydN8rlWi/ve8BAPBefJkLmRWv7UOBsLw==",
+ "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"
+ }
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.10.2",
+ "@babel/runtime-corejs3": "^7.10.2"
+ }
+ },
+ "array-includes": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "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==",
+ "dev": true
+ },
+ "array.prototype.flat": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
+ "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0"
+ }
+ },
+ "array.prototype.flatmap": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "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=",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "attr-accept": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz",
+ "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg=="
+ },
+ "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==",
+ "dev": true
+ },
+ "axios": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
+ "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
+ "requires": {
+ "follow-redirects": "^1.14.9",
+ "form-data": "^4.0.0"
+ },
+ "dependencies": {
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ }
+ }
+ },
+ "axobject-query": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
+ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ },
+ "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"
+ },
+ "dependencies": {
+ "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"
+ }
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.13.11",
+ "@babel/helper-define-polyfill-provider": "^0.3.1",
+ "semver": "^6.1.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "browserslist": {
+ "version": "4.21.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+ "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "requires": {
+ "caniuse-lite": "^1.0.30001400",
+ "electron-to-chromium": "^1.4.251",
+ "node-releases": "^2.0.6",
+ "update-browserslist-db": "^1.0.9"
+ }
+ },
+ "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==",
+ "devOptional": true
+ },
+ "builtin-modules": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz",
+ "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==",
+ "dev": true
+ },
+ "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=="
+ },
+ "can-use-dom": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz",
+ "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo="
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001431",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz",
+ "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ=="
+ },
+ "capital-case": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz",
+ "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==",
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3",
+ "upper-case-first": "^2.0.2"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "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="
+ }
+ }
+ },
+ "change-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz",
+ "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==",
+ "requires": {
+ "camel-case": "^4.1.2",
+ "capital-case": "^1.0.4",
+ "constant-case": "^3.0.4",
+ "dot-case": "^3.0.4",
+ "header-case": "^2.0.4",
+ "no-case": "^3.0.4",
+ "param-case": "^3.0.4",
+ "pascal-case": "^3.1.2",
+ "path-case": "^3.0.4",
+ "sentence-case": "^3.0.4",
+ "snake-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "charcodes": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz",
+ "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==",
+ "dev": true
+ },
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="
+ },
+ "clsx": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
+ "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg=="
+ },
+ "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="
+ },
+ "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"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "constant-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz",
+ "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==",
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3",
+ "upper-case": "^2.0.2"
+ }
+ },
+ "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"
+ }
+ },
+ "core-js": {
+ "version": "3.21.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz",
+ "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig=="
+ },
+ "core-js-compat": {
+ "version": "3.21.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz",
+ "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.19.1",
+ "semver": "7.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+ "dev": true
+ }
+ }
+ },
+ "core-js-pure": {
+ "version": "3.21.1",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz",
+ "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "cssjanus": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cssjanus/-/cssjanus-2.1.0.tgz",
+ "integrity": "sha512-kAijbny3GmdOi9k+QT6DGIXqFvL96aksNlGr4Rhk9qXDZYWUojU4bRc3IHWxdaLNOqgEZHuXoe5Wl2l7dxLW5g=="
+ },
+ "csstype": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
+ "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
+ },
+ "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==",
+ "dev": true
+ },
+ "date-fns": {
+ "version": "2.29.3",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz",
+ "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA=="
+ },
+ "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"
+ }
+ },
+ "deep-equal": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
+ "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
+ "requires": {
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0"
+ }
+ },
+ "deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "ejs": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz",
+ "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==",
+ "dev": true,
+ "requires": {
+ "jake": "^10.6.1"
+ }
+ },
+ "electron-to-chromium": {
+ "version": "1.4.284",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
+ "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA=="
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "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"
+ }
+ },
+ "es-abstract": {
+ "version": "1.20.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
+ "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.1.3",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.7",
+ "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.2",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trimend": "^1.0.5",
+ "string.prototype.trimstart": "^1.0.5",
+ "unbox-primitive": "^1.0.2"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "esbuild": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz",
+ "integrity": "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==",
+ "requires": {
+ "@esbuild/android-arm": "0.15.13",
+ "@esbuild/linux-loong64": "0.15.13",
+ "esbuild-android-64": "0.15.13",
+ "esbuild-android-arm64": "0.15.13",
+ "esbuild-darwin-64": "0.15.13",
+ "esbuild-darwin-arm64": "0.15.13",
+ "esbuild-freebsd-64": "0.15.13",
+ "esbuild-freebsd-arm64": "0.15.13",
+ "esbuild-linux-32": "0.15.13",
+ "esbuild-linux-64": "0.15.13",
+ "esbuild-linux-arm": "0.15.13",
+ "esbuild-linux-arm64": "0.15.13",
+ "esbuild-linux-mips64le": "0.15.13",
+ "esbuild-linux-ppc64le": "0.15.13",
+ "esbuild-linux-riscv64": "0.15.13",
+ "esbuild-linux-s390x": "0.15.13",
+ "esbuild-netbsd-64": "0.15.13",
+ "esbuild-openbsd-64": "0.15.13",
+ "esbuild-sunos-64": "0.15.13",
+ "esbuild-windows-32": "0.15.13",
+ "esbuild-windows-64": "0.15.13",
+ "esbuild-windows-arm64": "0.15.13"
+ }
+ },
+ "esbuild-android-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz",
+ "integrity": "sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==",
+ "optional": true
+ },
+ "esbuild-android-arm64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz",
+ "integrity": "sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==",
+ "optional": true
+ },
+ "esbuild-darwin-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz",
+ "integrity": "sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==",
+ "optional": true
+ },
+ "esbuild-darwin-arm64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz",
+ "integrity": "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==",
+ "optional": true
+ },
+ "esbuild-freebsd-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz",
+ "integrity": "sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==",
+ "optional": true
+ },
+ "esbuild-freebsd-arm64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz",
+ "integrity": "sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==",
+ "optional": true
+ },
+ "esbuild-linux-32": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz",
+ "integrity": "sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==",
+ "optional": true
+ },
+ "esbuild-linux-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz",
+ "integrity": "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==",
+ "optional": true
+ },
+ "esbuild-linux-arm": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz",
+ "integrity": "sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==",
+ "optional": true
+ },
+ "esbuild-linux-arm64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz",
+ "integrity": "sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==",
+ "optional": true
+ },
+ "esbuild-linux-mips64le": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz",
+ "integrity": "sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==",
+ "optional": true
+ },
+ "esbuild-linux-ppc64le": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz",
+ "integrity": "sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==",
+ "optional": true
+ },
+ "esbuild-linux-riscv64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz",
+ "integrity": "sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==",
+ "optional": true
+ },
+ "esbuild-linux-s390x": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz",
+ "integrity": "sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==",
+ "optional": true
+ },
+ "esbuild-netbsd-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz",
+ "integrity": "sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==",
+ "optional": true
+ },
+ "esbuild-openbsd-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz",
+ "integrity": "sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==",
+ "optional": true
+ },
+ "esbuild-sunos-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz",
+ "integrity": "sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==",
+ "optional": true
+ },
+ "esbuild-windows-32": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz",
+ "integrity": "sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==",
+ "optional": true
+ },
+ "esbuild-windows-64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz",
+ "integrity": "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==",
+ "optional": true
+ },
+ "esbuild-windows-arm64": {
+ "version": "0.15.13",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz",
+ "integrity": "sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==",
+ "optional": true
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
+ },
+ "eslint": {
+ "version": "8.27.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz",
+ "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==",
+ "dev": true,
+ "requires": {
+ "@eslint/eslintrc": "^1.3.3",
+ "@humanwhocodes/config-array": "^0.11.6",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "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.4.0",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.15.0",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-sdsl": "^4.1.4",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "regexpp": "^3.2.0",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "globals": {
+ "version": "13.17.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
+ "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-config-airbnb": {
+ "version": "19.0.4",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz",
+ "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==",
+ "dev": true,
+ "requires": {
+ "eslint-config-airbnb-base": "^15.0.0",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.5"
+ }
+ },
+ "eslint-config-airbnb-base": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
+ "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
+ "dev": true,
+ "requires": {
+ "confusing-browser-globals": "^1.0.10",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.5",
+ "semver": "^6.3.0"
+ }
+ },
+ "eslint-config-airbnb-typescript": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-16.2.0.tgz",
+ "integrity": "sha512-OUaMPZpTOZGKd5tXOjJ9PRU4iYNW/Z5DoHIynjsVK/FpkWdiY5+nxQW6TiJAlLwVI1l53xUOrnlZWtVBVQzuWA==",
+ "dev": true,
+ "requires": {
+ "eslint-config-airbnb-base": "^15.0.0"
+ }
+ },
+ "eslint-config-prettier": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
+ "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "dev": true,
+ "requires": {}
+ },
+ "eslint-config-react-app": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.0.tgz",
+ "integrity": "sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-import-resolver-typescript": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz",
+ "integrity": "sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.4",
+ "glob": "^7.2.0",
+ "is-glob": "^4.0.3",
+ "resolve": "^1.22.0",
+ "tsconfig-paths": "^3.14.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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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"
+ }
+ },
+ "eslint-plugin-prettier": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
+ "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
+ "dev": true,
+ "requires": {
+ "prettier-linter-helpers": "^1.0.0"
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "7.31.10",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz",
+ "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.5",
+ "array.prototype.flatmap": "^1.3.0",
+ "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.1",
+ "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.7"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.2.0",
+ "path-parse": "^1.0.6"
+ }
+ }
+ }
+ },
+ "eslint-plugin-react-hooks": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz",
+ "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==",
+ "dev": true,
+ "requires": {}
+ },
+ "eslint-plugin-testing-library": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.0.5.tgz",
+ "integrity": "sha512-0j355vJpJCE/2g+aayIgJRUB6jBVqpD5ztMLGcadR1PgrgGPnPxN1HJuOAsAAwiMo27GwRnpJB8KOQzyNuNZrw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/utils": "^5.10.2"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^2.0.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true
+ },
+ "espree": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
+ "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "dependencies": {
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "estree-walker": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
+ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "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==",
+ "dev": true
+ },
+ "fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "dev": true
+ },
+ "fast-glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
+ "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "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==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "file-selector": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz",
+ "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==",
+ "requires": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "filelist": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz",
+ "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==",
+ "dev": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "follow-redirects": {
+ "version": "1.14.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
+ "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
+ },
+ "framer-motion": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz",
+ "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==",
+ "requires": {
+ "@emotion/is-prop-valid": "^0.8.2",
+ "@motionone/dom": "10.12.0",
+ "framesync": "6.0.1",
+ "hey-listen": "^1.0.8",
+ "popmotion": "11.0.3",
+ "style-value-types": "5.0.0",
+ "tslib": "^2.1.0"
+ },
+ "dependencies": {
+ "@emotion/is-prop-valid": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
+ "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
+ "optional": true,
+ "requires": {
+ "@emotion/memoize": "0.7.4"
+ }
+ },
+ "@emotion/memoize": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
+ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
+ "optional": true
+ }
+ }
+ },
+ "framesync": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz",
+ "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "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=="
+ },
+ "function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ }
+ },
+ "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-intrinsic": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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"
+ }
+ },
+ "goober": {
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.11.tgz",
+ "integrity": "sha512-5SS2lmxbhqH0u9ABEWq7WPU69a4i2pYcHeCxqaNq6Cw3mnrF0ghWNM4tEGid4dKy8XNIAUbuThuozDHHKJVh3A==",
+ "requires": {}
+ },
+ "graceful-fs": {
+ "version": "4.2.9",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
+ "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==",
+ "dev": true
+ },
+ "grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "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"
+ }
+ },
+ "header-case": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz",
+ "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==",
+ "requires": {
+ "capital-case": "^1.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "hey-listen": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz",
+ "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="
+ },
+ "highlight.js": {
+ "version": "11.6.0",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.6.0.tgz",
+ "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw=="
+ },
+ "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"
+ },
+ "dependencies": {
+ "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=="
+ }
+ }
+ },
+ "ignore": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
+ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "internal-slot": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
+ "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "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"
+ }
+ },
+ "is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "requires": {
+ "has-bigints": "^1.0.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true
+ },
+ "is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "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-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "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=",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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=",
+ "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-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=",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "jake": {
+ "version": "10.8.2",
+ "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz",
+ "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==",
+ "dev": true,
+ "requires": {
+ "async": "0.9.x",
+ "chalk": "^2.4.2",
+ "filelist": "^1.0.1",
+ "minimatch": "^3.0.4"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+ "dev": true
+ }
+ }
+ },
+ "js-sdsl": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
+ "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
+ "dev": true
+ },
+ "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": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "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=",
+ "dev": true
+ },
+ "json5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
+ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA=="
+ },
+ "jsonpointer": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz",
+ "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==",
+ "dev": true
+ },
+ "jsx-ast-utils": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz",
+ "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.3",
+ "object.assign": "^4.1.2"
+ }
+ },
+ "jsx-runtime": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/jsx-runtime/-/jsx-runtime-1.2.0.tgz",
+ "integrity": "sha512-iCxmRTlUAWmXwHZxN0JSx/T7eRi0SkKAskE0lp+j4W1mzdNp49ja/9QI2ZmlggPM95RqnDw5ioYjw0EcvpIClw==",
+ "requires": {
+ "object-assign": "^3.0.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ=="
+ }
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "language-tags": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
+ "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "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=="
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.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==",
+ "dev": true
+ },
+ "lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+ "dev": true
+ },
+ "lodash.throttle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
+ "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "magic-string": {
+ "version": "0.25.7",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
+ "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
+ "dev": true,
+ "requires": {
+ "sourcemap-codec": "^1.4.4"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "mime-db": {
+ "version": "1.51.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
+ "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g=="
+ },
+ "mime-types": {
+ "version": "2.1.34",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz",
+ "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
+ "requires": {
+ "mime-db": "1.51.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
+ "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=="
+ },
+ "nanoclone": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz",
+ "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA=="
+ },
+ "nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "dev": true
+ },
+ "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-releases": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
+ "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
+ },
+ "notistack": {
+ "version": "3.0.0-alpha.11",
+ "resolved": "https://registry.npmjs.org/notistack/-/notistack-3.0.0-alpha.11.tgz",
+ "integrity": "sha512-QfiVC1On1Zfs1UADxgRRhcVhAWveD3lBUKhDwx0GdXoSKii0UARz0tfJyIwwOxy5Lr+DOeAHz8Mvl1GwpeVnQQ==",
+ "requires": {
+ "clsx": "^1.1.0",
+ "goober": "^2.0.33"
+ }
+ },
+ "nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E="
+ },
+ "numeral": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz",
+ "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA=="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "dev": true
+ },
+ "object-is": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object.assign": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1"
+ }
+ },
+ "object.hasown": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
+ "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "object.values": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
+ "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "requires": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ }
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "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=",
+ "dev": true,
+ "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=",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "parchment": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz",
+ "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg=="
+ },
+ "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"
+ }
+ },
+ "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-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz",
+ "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==",
+ "requires": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "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=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "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-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+ },
+ "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=="
+ },
+ "popmotion": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz",
+ "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==",
+ "requires": {
+ "framesync": "6.0.1",
+ "hey-listen": "^1.0.8",
+ "style-value-types": "5.0.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "postcss": {
+ "version": "8.4.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz",
+ "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==",
+ "requires": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true
+ },
+ "prettier": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
+ "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
+ "dev": true
+ },
+ "prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "requires": {
+ "fast-diff": "^1.1.2"
+ }
+ },
+ "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"
+ },
+ "dependencies": {
+ "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=="
+ }
+ }
+ },
+ "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=="
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
+ },
+ "quill": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz",
+ "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==",
+ "requires": {
+ "clone": "^2.1.1",
+ "deep-equal": "^1.0.1",
+ "eventemitter3": "^2.0.3",
+ "extend": "^3.0.2",
+ "parchment": "^1.1.4",
+ "quill-delta": "^3.6.2"
+ },
+ "dependencies": {
+ "eventemitter3": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
+ "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg=="
+ }
+ }
+ },
+ "quill-delta": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz",
+ "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==",
+ "requires": {
+ "deep-equal": "^1.0.1",
+ "extend": "^3.0.2",
+ "fast-diff": "1.1.2"
+ },
+ "dependencies": {
+ "fast-diff": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz",
+ "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig=="
+ }
+ }
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "react": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "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-dom": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "scheduler": "^0.20.2"
+ }
+ },
+ "react-dropzone": {
+ "version": "14.2.3",
+ "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz",
+ "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==",
+ "requires": {
+ "attr-accept": "^2.2.2",
+ "file-selector": "^0.6.0",
+ "prop-types": "^15.8.1"
+ }
+ },
+ "react-fast-compare": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz",
+ "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA=="
+ },
+ "react-helmet-async": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz",
+ "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==",
+ "requires": {
+ "@babel/runtime": "^7.12.5",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.7.2",
+ "react-fast-compare": "^3.2.0",
+ "shallowequal": "^1.1.0"
+ }
+ },
+ "react-hook-form": {
+ "version": "7.39.1",
+ "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.39.1.tgz",
+ "integrity": "sha512-MiF9PCILN5KulhSGbnjohMiTOrB47GerDTichMNP0y2cPUu1GTRFqbunOxCE9N1499YTLMV/ne4gFzqCp1rxrQ==",
+ "requires": {}
+ },
+ "react-intersection-observer": {
+ "version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-8.34.0.tgz",
+ "integrity": "sha512-TYKh52Zc0Uptp5/b4N91XydfSGKubEhgZRtcg1rhTKABXijc4Sdr1uTp5lJ8TN27jwUsdXxjHXtHa0kPj704sw==",
+ "requires": {}
+ },
+ "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=="
+ },
+ "react-lazy-load-image-component": {
+ "version": "1.5.6",
+ "resolved": "https://registry.npmjs.org/react-lazy-load-image-component/-/react-lazy-load-image-component-1.5.6.tgz",
+ "integrity": "sha512-M0jeJtOlTHgThOfgYM9krSqYbR6ShxROy/KVankwbw9/amPKG1t5GSGN1sei6Cyu8+QJVuyAUvQ+LFtCVTTlKw==",
+ "requires": {
+ "lodash.debounce": "^4.0.8",
+ "lodash.throttle": "^4.1.1"
+ }
+ },
+ "react-quill": {
+ "version": "2.0.0-beta.4",
+ "resolved": "https://registry.npmjs.org/react-quill/-/react-quill-2.0.0-beta.4.tgz",
+ "integrity": "sha512-KyAHvAlPjP4xLElKZJefMth91Z6FbbXRvq9OSu6xN3KBaoasLP9p+3dcxg4Ywr4tBlpMGXcPszYSAgd5CpJ45Q==",
+ "requires": {
+ "@types/quill": "^1.3.10",
+ "lodash": "^4.17.4",
+ "quill": "^1.3.7"
+ }
+ },
+ "react-router": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.3.tgz",
+ "integrity": "sha512-BT6DoGn6aV1FVP5yfODMOiieakp3z46P1Fk0RNzJMACzE7C339sFuHebfvWtnB4pzBvXXkHP2vscJzWRuUjTtA==",
+ "requires": {
+ "@remix-run/router": "1.0.3"
+ }
+ },
+ "react-router-dom": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.3.tgz",
+ "integrity": "sha512-MiaYQU8CwVCaOfJdYvt84KQNjT78VF0TJrA17SIQgNHRvLnXDJO6qsFqq8F/zzB1BWZjCFIrQpu4QxcshitziQ==",
+ "requires": {
+ "@remix-run/router": "1.0.3",
+ "react-router": "6.4.3"
+ }
+ },
+ "react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+ "requires": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ }
+ },
+ "regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.2"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.10",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz",
+ "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw=="
+ },
+ "regenerator-transform": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
+ "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz",
+ "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz",
+ "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==",
+ "dev": true,
+ "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=",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "reselect": {
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz",
+ "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A=="
+ },
+ "resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "requires": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "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=="
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
+ "rifm": {
+ "version": "0.12.1",
+ "resolved": "https://registry.npmjs.org/rifm/-/rifm-0.12.1.tgz",
+ "integrity": "sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==",
+ "requires": {}
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "rollup": {
+ "version": "2.79.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
+ "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
+ "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==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "jest-worker": "^26.2.1",
+ "serialize-javascript": "^4.0.0",
+ "terser": "^5.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "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=="
+ },
+ "safe-regex-test": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ }
+ },
+ "scheduler": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "sentence-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz",
+ "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==",
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3",
+ "upper-case-first": "^2.0.2"
+ }
+ },
+ "shallowequal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "simplebar": {
+ "version": "5.3.9",
+ "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-5.3.9.tgz",
+ "integrity": "sha512-1vIIpjDvY9sVH14e0LGeiCiTFU3ILqAghzO6OI9axeG+mvU/vMSrvXeAXkBolqFFz3XYaY8n5ahH9MeP3sp2Ag==",
+ "requires": {
+ "@juggle/resize-observer": "^3.3.1",
+ "can-use-dom": "^0.1.0",
+ "core-js": "^3.0.1",
+ "lodash.debounce": "^4.0.8",
+ "lodash.memoize": "^4.1.2",
+ "lodash.throttle": "^4.1.1"
+ }
+ },
+ "simplebar-react": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-2.4.3.tgz",
+ "integrity": "sha512-Ep8gqAUZAS5IC2lT5RE4t1ZFUIVACqbrSRQvFV9a6NbVUzXzOMnc4P82Hl8Ak77AnPQvmgUwZS7aUKLyBoMAcg==",
+ "requires": {
+ "prop-types": "^15.6.1",
+ "simplebar": "^5.3.9"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "snake-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz",
+ "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
+ "requires": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
+ },
+ "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-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==",
+ "devOptional": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "devOptional": true
+ }
+ }
+ },
+ "sourcemap-codec": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "string.prototype.matchall": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
+ "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "regexp.prototype.flags": "^1.4.3",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "stringify-object": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
+ "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
+ "dev": true,
+ "requires": {
+ "get-own-enumerable-property-symbols": "^3.0.0",
+ "is-obj": "^1.0.1",
+ "is-regexp": "^1.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "style-value-types": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz",
+ "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==",
+ "requires": {
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.1.0"
+ }
+ },
+ "stylis": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz",
+ "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA=="
+ },
+ "stylis-plugin-rtl": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/stylis-plugin-rtl/-/stylis-plugin-rtl-2.1.1.tgz",
+ "integrity": "sha512-q6xIkri6fBufIO/sV55md2CbgS5c6gg9EhSVATtHHCdOnbN/jcI0u3lYhNVeuI65c4lQPo67g8xmq5jrREvzlg==",
+ "requires": {
+ "cssjanus": "^2.0.1"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "supports-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": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==",
+ "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": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==",
+ "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"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "tempy": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz",
+ "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==",
+ "dev": true,
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "terser": {
+ "version": "5.11.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz",
+ "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==",
+ "devOptional": true,
+ "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==",
+ "devOptional": true
+ },
+ "source-map": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+ "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+ "devOptional": true
+ }
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "toposort": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz",
+ "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg=="
+ },
+ "tr46": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "tsconfig-paths": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
+ "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true
+ }
+ }
+ },
+ "tslib": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
+ },
+ "tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "typescript": {
+ "version": "4.8.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
+ "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
+ "dev": true
+ },
+ "unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+ "unicode-property-aliases-ecmascript": "^2.0.0"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "unique-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
+ "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "dev": true,
+ "requires": {
+ "crypto-random-string": "^2.0.0"
+ }
+ },
+ "upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "dev": true
+ },
+ "update-browserslist-db": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "requires": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ }
+ },
+ "upper-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz",
+ "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==",
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "upper-case-first": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz",
+ "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==",
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "vite": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.3.tgz",
+ "integrity": "sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==",
+ "requires": {
+ "esbuild": "^0.15.9",
+ "fsevents": "~2.3.2",
+ "postcss": "^8.4.18",
+ "resolve": "^1.22.1",
+ "rollup": "^2.79.1"
+ }
+ },
+ "vite-plugin-pwa": {
+ "version": "0.12.8",
+ "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.12.8.tgz",
+ "integrity": "sha512-pSiFHmnJGMQJJL8aJzQ8SaraZBSBPMGvGUkCNzheIq9UQCEk/eP3UmANNmS9eupuhIpTK8AdxTOHcaMcAqAbCA==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.4",
+ "fast-glob": "^3.2.11",
+ "pretty-bytes": "^6.0.0",
+ "rollup": "^2.75.7",
+ "workbox-build": "^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==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "idb": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz",
+ "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "pretty-bytes": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.0.0.tgz",
+ "integrity": "sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "whatwg-url": "^7.0.0"
+ }
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "dev": true
+ },
+ "workbox-background-sync": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz",
+ "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==",
+ "dev": true,
+ "requires": {
+ "idb": "^7.0.1",
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-broadcast-update": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz",
+ "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-build": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz",
+ "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==",
+ "dev": true,
+ "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.4",
+ "workbox-broadcast-update": "6.5.4",
+ "workbox-cacheable-response": "6.5.4",
+ "workbox-core": "6.5.4",
+ "workbox-expiration": "6.5.4",
+ "workbox-google-analytics": "6.5.4",
+ "workbox-navigation-preload": "6.5.4",
+ "workbox-precaching": "6.5.4",
+ "workbox-range-requests": "6.5.4",
+ "workbox-recipes": "6.5.4",
+ "workbox-routing": "6.5.4",
+ "workbox-strategies": "6.5.4",
+ "workbox-streams": "6.5.4",
+ "workbox-sw": "6.5.4",
+ "workbox-window": "6.5.4"
+ },
+ "dependencies": {
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "workbox-cacheable-response": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz",
+ "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-core": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz",
+ "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==",
+ "dev": true
+ },
+ "workbox-expiration": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz",
+ "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==",
+ "dev": true,
+ "requires": {
+ "idb": "^7.0.1",
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-google-analytics": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz",
+ "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==",
+ "dev": true,
+ "requires": {
+ "workbox-background-sync": "6.5.4",
+ "workbox-core": "6.5.4",
+ "workbox-routing": "6.5.4",
+ "workbox-strategies": "6.5.4"
+ }
+ },
+ "workbox-navigation-preload": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz",
+ "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-precaching": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz",
+ "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "6.5.4",
+ "workbox-routing": "6.5.4",
+ "workbox-strategies": "6.5.4"
+ }
+ },
+ "workbox-range-requests": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz",
+ "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-recipes": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz",
+ "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==",
+ "dev": true,
+ "requires": {
+ "workbox-cacheable-response": "6.5.4",
+ "workbox-core": "6.5.4",
+ "workbox-expiration": "6.5.4",
+ "workbox-precaching": "6.5.4",
+ "workbox-routing": "6.5.4",
+ "workbox-strategies": "6.5.4"
+ }
+ },
+ "workbox-routing": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz",
+ "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-strategies": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz",
+ "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-streams": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz",
+ "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "6.5.4",
+ "workbox-routing": "6.5.4"
+ }
+ },
+ "workbox-sw": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz",
+ "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==",
+ "dev": true
+ },
+ "workbox-window": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz",
+ "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==",
+ "dev": true,
+ "requires": {
+ "@types/trusted-types": "^2.0.2",
+ "workbox-core": "6.5.4"
+ }
+ }
+ }
+ },
+ "vite-plugin-svgr": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-2.2.2.tgz",
+ "integrity": "sha512-u8Ac27uZmDHTVGawpAhvLMJMuzbGeZGhe61TGeHoRQLxVhmQfIYCefa0iLbjC0ui1zFo6XZnS8EkzPITCYp85g==",
+ "requires": {
+ "@rollup/pluginutils": "^5.0.0",
+ "@svgr/core": "^6.4.0"
+ },
+ "dependencies": {
+ "@rollup/pluginutils": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
+ "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
+ "requires": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "@svgr/babel-plugin-add-jsx-attribute": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz",
+ "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==",
+ "requires": {}
+ },
+ "@svgr/babel-plugin-replace-jsx-attribute-value": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz",
+ "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==",
+ "requires": {}
+ },
+ "@svgr/babel-plugin-svg-dynamic-title": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz",
+ "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==",
+ "requires": {}
+ },
+ "@svgr/babel-plugin-svg-em-dimensions": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz",
+ "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==",
+ "requires": {}
+ },
+ "@svgr/babel-plugin-transform-react-native-svg": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz",
+ "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==",
+ "requires": {}
+ },
+ "@svgr/babel-plugin-transform-svg-component": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz",
+ "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==",
+ "requires": {}
+ },
+ "@svgr/babel-preset": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz",
+ "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==",
+ "requires": {
+ "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1",
+ "@svgr/babel-plugin-remove-jsx-attribute": "*",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "*",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1",
+ "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1",
+ "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1",
+ "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1",
+ "@svgr/babel-plugin-transform-svg-component": "^6.5.1"
+ }
+ },
+ "@svgr/core": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz",
+ "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==",
+ "requires": {
+ "@babel/core": "^7.19.6",
+ "@svgr/babel-preset": "^6.5.1",
+ "@svgr/plugin-jsx": "^6.5.1",
+ "camelcase": "^6.2.0",
+ "cosmiconfig": "^7.0.1"
+ }
+ },
+ "@svgr/hast-util-to-babel-ast": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz",
+ "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==",
+ "requires": {
+ "@babel/types": "^7.20.0",
+ "entities": "^4.4.0"
+ }
+ },
+ "@svgr/plugin-jsx": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz",
+ "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==",
+ "requires": {
+ "@babel/core": "^7.19.6",
+ "@svgr/babel-preset": "^6.5.1",
+ "@svgr/hast-util-to-babel-ast": "^6.5.1",
+ "svg-parser": "^2.0.4"
+ }
+ },
+ "@types/estree": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz",
+ "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ=="
+ },
+ "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"
+ }
+ },
+ "entities": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
+ "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA=="
+ },
+ "estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ }
+ }
+ },
+ "whatwg-url": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
+ "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ "dev": true,
+ "requires": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ },
+ "dependencies": {
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
+ },
+ "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==",
+ "dev": true
+ },
+ "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/frontend/hospital-portal/package.json b/frontend/hospital-portal/package.json
new file mode 100755
index 00000000..7562d770
--- /dev/null
+++ b/frontend/hospital-portal/package.json
@@ -0,0 +1,115 @@
+{
+ "name": "@minimal/material-kit-react",
+ "author": "minimals.cc",
+ "version": "3.2.0",
+ "description": "Simple React Scripts & Typescript",
+ "private": true,
+ "scripts": {
+ "lint": "eslint --ext .ts,.tsx ./src",
+ "lint:fix": "eslint --fix --ext .ts,.tsx ./src",
+ "start": "vite --port=3000",
+ "build": "vite build --mode production && cp .htaccess build/.htaccess && rm -f -r ../../public/dashboard && cp -r build ../../public/dashboard",
+ "build-staging": "vite build --mode staging && cp .htaccess build/.htaccess && rm -f -r ../../public/dashboard-staging && cp -r build ../../public/dashboard-staging",
+ "serve": "vite preview",
+ "clear-all": "rm -rf build node_modules",
+ "re-start": "rm -rf build node_modules && yarn install && yarn start",
+ "re-build": "rm -rf build node_modules && yarn install && yarn build"
+ },
+ "eslintConfig": {
+ "extends": [
+ "react-app"
+ ]
+ },
+ "babel": {
+ "presets": [
+ "@babel/preset-react"
+ ]
+ },
+ "browserslist": {
+ "production": [
+ ">0.2%",
+ "not dead",
+ "not op_mini all"
+ ],
+ "development": [
+ "last 1 chrome version",
+ "last 1 firefox version",
+ "last 1 safari version"
+ ]
+ },
+ "dependencies": {
+ "@date-io/date-fns": "^2.16.0",
+ "@emotion/cache": "^11.10.5",
+ "@emotion/react": "^11.10.5",
+ "@emotion/styled": "^11.10.5",
+ "@hookform/resolvers": "^2.9.10",
+ "@iconify/react": "^3.2.2",
+ "@mui/icons-material": "^5.11.0",
+ "@mui/lab": "5.0.0-alpha.80",
+ "@mui/material": "^5.11.7",
+ "@mui/system": "^5.11.7",
+ "@mui/x-data-grid": "^5.17.21",
+ "@mui/x-date-pickers": "5.0.0-beta.2",
+ "@vitejs/plugin-react": "^1.3.2",
+ "apexcharts": "^3.36.3",
+ "axios": "^0.27.2",
+ "change-case": "^4.1.2",
+ "csstype": "^3.1.1",
+ "date-fns": "^2.29.3",
+ "framer-motion": "^6.5.1",
+ "highlight.js": "^11.7.0",
+ "history": "^5.3.0",
+ "jsx-runtime": "^1.2.0",
+ "lodash": "^4.17.21",
+ "notistack": "3.0.0-alpha.11",
+ "nprogress": "^0.2.0",
+ "numeral": "^2.0.6",
+ "react": "^17.0.2",
+ "react-apexcharts": "^1.4.0",
+ "react-dom": "^17.0.2",
+ "react-dropzone": "^14.2.3",
+ "react-helmet-async": "^1.3.0",
+ "react-hook-form": "^7.43.0",
+ "react-intersection-observer": "^8.34.0",
+ "react-lazy-load-image-component": "^1.5.6",
+ "react-quill": "2.0.0-beta.4",
+ "react-router": "^6.8.0",
+ "react-router-dom": "^6.8.0",
+ "simplebar": "^5.3.9",
+ "simplebar-react": "^2.4.3",
+ "stylis": "^4.1.3",
+ "stylis-plugin-rtl": "^2.1.1",
+ "vite": "^3.2.5",
+ "vite-plugin-svgr": "^2.4.0",
+ "yup": "^0.32.11"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.20.12",
+ "@babel/eslint-parser": "^7.19.1",
+ "@babel/plugin-syntax-flow": "^7.18.6",
+ "@babel/plugin-transform-react-jsx": "^7.20.13",
+ "@types/lodash": "^4.14.191",
+ "@types/nprogress": "^0.2.0",
+ "@types/react": "^17.0.53",
+ "@types/react-dom": "^17.0.18",
+ "@types/react-lazy-load-image-component": "^1.5.2",
+ "@types/stylis": "^4.0.2",
+ "@typescript-eslint/eslint-plugin": "^5.50.0",
+ "@typescript-eslint/parser": "^5.50.0",
+ "eslint": "^8.33.0",
+ "eslint-config-airbnb": "19.0.4",
+ "eslint-config-airbnb-typescript": "^16.2.0",
+ "eslint-config-prettier": "^8.6.0",
+ "eslint-config-react-app": "7.0.0",
+ "eslint-import-resolver-typescript": "^2.7.1",
+ "eslint-plugin-flowtype": "^8.0.3",
+ "eslint-plugin-import": "^2.27.5",
+ "eslint-plugin-jsx-a11y": "6.5.1",
+ "eslint-plugin-prettier": "^4.2.1",
+ "eslint-plugin-react": "^7.32.2",
+ "eslint-plugin-react-hooks": "4.3.0",
+ "prettier": "^2.8.3",
+ "typescript": "^4.9.5",
+ "vite-plugin-pwa": "^0.12.8"
+ }
+}
diff --git a/frontend/hospital-portal/pnpm-lock.yaml b/frontend/hospital-portal/pnpm-lock.yaml
new file mode 100755
index 00000000..6e712988
--- /dev/null
+++ b/frontend/hospital-portal/pnpm-lock.yaml
@@ -0,0 +1,6167 @@
+lockfileVersion: 5.4
+
+specifiers:
+ '@babel/core': ^7.20.12
+ '@babel/eslint-parser': ^7.19.1
+ '@babel/plugin-syntax-flow': ^7.18.6
+ '@babel/plugin-transform-react-jsx': ^7.20.13
+ '@date-io/date-fns': ^2.16.0
+ '@emotion/cache': ^11.10.5
+ '@emotion/react': ^11.10.5
+ '@emotion/styled': ^11.10.5
+ '@hookform/resolvers': ^2.9.10
+ '@iconify/react': ^3.2.2
+ '@mui/icons-material': ^5.11.0
+ '@mui/lab': 5.0.0-alpha.80
+ '@mui/material': ^5.11.7
+ '@mui/system': ^5.11.7
+ '@mui/x-data-grid': ^5.17.21
+ '@mui/x-date-pickers': 5.0.0-beta.2
+ '@types/lodash': ^4.14.191
+ '@types/nprogress': ^0.2.0
+ '@types/react': ^17.0.53
+ '@types/react-dom': ^17.0.18
+ '@types/react-lazy-load-image-component': ^1.5.2
+ '@types/stylis': ^4.0.2
+ '@typescript-eslint/eslint-plugin': ^5.50.0
+ '@typescript-eslint/parser': ^5.50.0
+ '@vitejs/plugin-react': ^1.3.2
+ apexcharts: ^3.36.3
+ axios: ^0.27.2
+ change-case: ^4.1.2
+ csstype: ^3.1.1
+ date-fns: ^2.29.3
+ eslint: ^8.33.0
+ eslint-config-airbnb: 19.0.4
+ eslint-config-airbnb-typescript: ^16.2.0
+ eslint-config-prettier: ^8.6.0
+ eslint-config-react-app: 7.0.0
+ eslint-import-resolver-typescript: ^2.7.1
+ eslint-plugin-flowtype: ^8.0.3
+ eslint-plugin-import: ^2.27.5
+ eslint-plugin-jsx-a11y: 6.5.1
+ eslint-plugin-prettier: ^4.2.1
+ eslint-plugin-react: ^7.32.2
+ eslint-plugin-react-hooks: 4.3.0
+ framer-motion: ^6.5.1
+ highlight.js: ^11.7.0
+ history: ^5.3.0
+ jsx-runtime: ^1.2.0
+ lodash: ^4.17.21
+ notistack: 3.0.0-alpha.11
+ nprogress: ^0.2.0
+ numeral: ^2.0.6
+ prettier: ^2.8.3
+ react: ^17.0.2
+ react-apexcharts: ^1.4.0
+ react-dom: ^17.0.2
+ react-dropzone: ^14.2.3
+ react-helmet-async: ^1.3.0
+ react-hook-form: ^7.43.0
+ react-intersection-observer: ^8.34.0
+ react-lazy-load-image-component: ^1.5.6
+ react-quill: 2.0.0-beta.4
+ react-router: ^6.8.0
+ react-router-dom: ^6.8.0
+ simplebar: ^5.3.9
+ simplebar-react: ^2.4.3
+ stylis: ^4.1.3
+ stylis-plugin-rtl: ^2.1.1
+ typescript: ^4.9.5
+ vite: ^3.2.5
+ vite-plugin-pwa: ^0.12.8
+ vite-plugin-svgr: ^2.4.0
+ yup: ^0.32.11
+
+dependencies:
+ '@date-io/date-fns': 2.16.0_date-fns@2.29.3
+ '@emotion/cache': 11.10.5
+ '@emotion/react': 11.10.5_mk6db2egckiugg7v365a42dwcm
+ '@emotion/styled': 11.10.5_6pyqqf3gsgk64dc57nzribe7em
+ '@hookform/resolvers': 2.9.10_react-hook-form@7.43.0
+ '@iconify/react': 3.2.2_react@17.0.2
+ '@mui/icons-material': 5.11.0_pnh4wc2hdngxwkyhxmg7jr2d2q
+ '@mui/lab': 5.0.0-alpha.80_6zefprodjalhdlen346zn6g76u
+ '@mui/material': 5.11.7_qqwwam5mzvatfv4nmfntqfljzy
+ '@mui/system': 5.11.7_tt6tbcqzrys2qrveq7llkyxu6e
+ '@mui/x-data-grid': 5.17.21_loz24cijmwpd2sifcgc2x4dfwu
+ '@mui/x-date-pickers': 5.0.0-beta.2_ztsqxjliezrjrjnhj5k7l7yxha
+ '@vitejs/plugin-react': 1.3.2
+ apexcharts: 3.36.3
+ axios: 0.27.2
+ change-case: 4.1.2
+ csstype: 3.1.1
+ date-fns: 2.29.3
+ framer-motion: 6.5.1_sfoxds7t5ydpegc3knd667wn6m
+ highlight.js: 11.7.0
+ history: 5.3.0
+ jsx-runtime: 1.2.0
+ lodash: 4.17.21
+ notistack: 3.0.0-alpha.11_pwge5r66yg44rq5pj4ruhckhdm
+ nprogress: 0.2.0
+ numeral: 2.0.6
+ react: 17.0.2
+ react-apexcharts: 1.4.0_rurziszfowucu2gmkqclv6xeru
+ react-dom: 17.0.2_react@17.0.2
+ react-dropzone: 14.2.3_react@17.0.2
+ react-helmet-async: 1.3.0_sfoxds7t5ydpegc3knd667wn6m
+ react-hook-form: 7.43.0_react@17.0.2
+ react-intersection-observer: 8.34.0_react@17.0.2
+ react-lazy-load-image-component: 1.5.6_sfoxds7t5ydpegc3knd667wn6m
+ react-quill: 2.0.0-beta.4_sfoxds7t5ydpegc3knd667wn6m
+ react-router: 6.8.0_react@17.0.2
+ react-router-dom: 6.8.0_sfoxds7t5ydpegc3knd667wn6m
+ simplebar: 5.3.9
+ simplebar-react: 2.4.3_sfoxds7t5ydpegc3knd667wn6m
+ stylis: 4.1.3
+ stylis-plugin-rtl: 2.1.1_stylis@4.1.3
+ vite: 3.2.5
+ vite-plugin-svgr: 2.4.0_vite@3.2.5
+ yup: 0.32.11
+
+devDependencies:
+ '@babel/core': 7.20.12
+ '@babel/eslint-parser': 7.19.1_b3mcivpi6zqbotlvqqcfprcnry
+ '@babel/plugin-syntax-flow': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-react-jsx': 7.20.13_@babel+core@7.20.12
+ '@types/lodash': 4.14.191
+ '@types/nprogress': 0.2.0
+ '@types/react': 17.0.53
+ '@types/react-dom': 17.0.18
+ '@types/react-lazy-load-image-component': 1.5.2
+ '@types/stylis': 4.0.2
+ '@typescript-eslint/eslint-plugin': 5.50.0_go4drrxstycfikanvu45pi4vgq
+ '@typescript-eslint/parser': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64
+ eslint: 8.33.0
+ eslint-config-airbnb: 19.0.4_2aqs4ooozum2jqoyu546hxblca
+ eslint-config-airbnb-typescript: 16.2.0_kh22gsft6r4fkunxdzqyqzlvzy
+ eslint-config-prettier: 8.6.0_eslint@8.33.0
+ eslint-config-react-app: 7.0.0_ycrng7fijpsjsynw5fqx5sdt2a
+ eslint-import-resolver-typescript: 2.7.1_ohdts44xlqyeyrlje4qnefqeay
+ eslint-plugin-flowtype: 8.0.3_dbm4zd4qfhols3fjlijwxohvlm
+ eslint-plugin-import: 2.27.5_4tvin5zjco7u46hg5f7ihcjrli
+ eslint-plugin-jsx-a11y: 6.5.1_eslint@8.33.0
+ eslint-plugin-prettier: 4.2.1_jqplj6qf3uqpxpu4gdyhwwasnq
+ eslint-plugin-react: 7.32.2_eslint@8.33.0
+ eslint-plugin-react-hooks: 4.3.0_eslint@8.33.0
+ prettier: 2.8.3
+ typescript: 4.9.5
+ vite-plugin-pwa: 0.12.8_vite@3.2.5
+
+packages:
+
+ /@ampproject/remapping/2.2.0:
+ resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.1.1
+ '@jridgewell/trace-mapping': 0.3.17
+
+ /@apideck/better-ajv-errors/0.3.6_ajv@8.12.0:
+ resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ ajv: '>=8'
+ dependencies:
+ ajv: 8.12.0
+ json-schema: 0.4.0
+ jsonpointer: 5.0.1
+ leven: 3.1.0
+ dev: true
+
+ /@babel/code-frame/7.18.6:
+ resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.18.6
+
+ /@babel/compat-data/7.20.14:
+ resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/core/7.20.12:
+ resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@ampproject/remapping': 2.2.0
+ '@babel/code-frame': 7.18.6
+ '@babel/generator': 7.20.14
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
+ '@babel/helper-module-transforms': 7.20.11
+ '@babel/helpers': 7.20.13
+ '@babel/parser': 7.20.13
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.20.13
+ '@babel/types': 7.20.7
+ convert-source-map: 1.9.0
+ debug: 4.3.4
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/eslint-parser/7.19.1_b3mcivpi6zqbotlvqqcfprcnry:
+ resolution: {integrity: sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
+ peerDependencies:
+ '@babel/core': '>=7.11.0'
+ eslint: ^7.5.0 || ^8.0.0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
+ eslint: 8.33.0
+ eslint-visitor-keys: 2.1.0
+ semver: 6.3.0
+ dev: true
+
+ /@babel/generator/7.20.14:
+ resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.20.7
+ '@jridgewell/gen-mapping': 0.3.2
+ jsesc: 2.5.2
+
+ /@babel/helper-annotate-as-pure/7.18.6:
+ resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.20.7
+
+ /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9:
+ resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-explode-assignable-expression': 7.18.6
+ '@babel/types': 7.20.7
+ dev: true
+
+ /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/compat-data': 7.20.14
+ '@babel/core': 7.20.12
+ '@babel/helper-validator-option': 7.18.6
+ browserslist: 4.21.5
+ lru-cache: 5.1.1
+ semver: 6.3.0
+
+ /@babel/helper-create-class-features-plugin/7.20.12_@babel+core@7.20.12:
+ resolution: {integrity: sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-annotate-as-pure': 7.18.6
+ '@babel/helper-environment-visitor': 7.18.9
+ '@babel/helper-function-name': 7.19.0
+ '@babel/helper-member-expression-to-functions': 7.20.7
+ '@babel/helper-optimise-call-expression': 7.18.6
+ '@babel/helper-replace-supers': 7.20.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.20.0
+ '@babel/helper-split-export-declaration': 7.18.6
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-create-regexp-features-plugin/7.20.5_@babel+core@7.20.12:
+ resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-annotate-as-pure': 7.18.6
+ regexpu-core: 5.2.2
+ dev: true
+
+ /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.20.12:
+ resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==}
+ peerDependencies:
+ '@babel/core': ^7.4.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ debug: 4.3.4
+ lodash.debounce: 4.0.8
+ resolve: 1.22.1
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-environment-visitor/7.18.9:
+ resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-explode-assignable-expression/7.18.6:
+ resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.20.7
+ dev: true
+
+ /@babel/helper-function-name/7.19.0:
+ resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.20.7
+ '@babel/types': 7.20.7
+
+ /@babel/helper-hoist-variables/7.18.6:
+ resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.20.7
+
+ /@babel/helper-member-expression-to-functions/7.20.7:
+ resolution: {integrity: sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.20.7
+ dev: true
+
+ /@babel/helper-module-imports/7.18.6:
+ resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.20.7
+
+ /@babel/helper-module-transforms/7.20.11:
+ resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.18.9
+ '@babel/helper-module-imports': 7.18.6
+ '@babel/helper-simple-access': 7.20.2
+ '@babel/helper-split-export-declaration': 7.18.6
+ '@babel/helper-validator-identifier': 7.19.1
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.20.13
+ '@babel/types': 7.20.7
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/helper-optimise-call-expression/7.18.6:
+ resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.20.7
+ dev: true
+
+ /@babel/helper-plugin-utils/7.20.2:
+ resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.20.12:
+ resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-annotate-as-pure': 7.18.6
+ '@babel/helper-environment-visitor': 7.18.9
+ '@babel/helper-wrap-function': 7.20.5
+ '@babel/types': 7.20.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-replace-supers/7.20.7:
+ resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.18.9
+ '@babel/helper-member-expression-to-functions': 7.20.7
+ '@babel/helper-optimise-call-expression': 7.18.6
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.20.13
+ '@babel/types': 7.20.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-simple-access/7.20.2:
+ resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.20.7
+
+ /@babel/helper-skip-transparent-expression-wrappers/7.20.0:
+ resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.20.7
+ dev: true
+
+ /@babel/helper-split-export-declaration/7.18.6:
+ resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.20.7
+
+ /@babel/helper-string-parser/7.19.4:
+ resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-validator-identifier/7.19.1:
+ resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-validator-option/7.18.6:
+ resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-wrap-function/7.20.5:
+ resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-function-name': 7.19.0
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.20.13
+ '@babel/types': 7.20.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helpers/7.20.13:
+ resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.20.13
+ '@babel/types': 7.20.7
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/highlight/7.18.6:
+ resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.19.1
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+
+ /@babel/parser/7.20.13:
+ resolution: {integrity: sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.20.7
+
+ /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.13.0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-skip-transparent-expression-wrappers': 7.20.0
+ '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12
+ dev: true
+
+ /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-environment-visitor': 7.18.9
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.12
+ '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-proposal-class-static-block/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.12.0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-proposal-decorators/7.20.13_@babel+core@7.20.12:
+ resolution: {integrity: sha512-7T6BKHa9Cpd7lCueHBBzP0nkXNina+h5giOZw+a8ZpMfPFY19VjJAjIxyFHuWkhCWgL6QMqRiY/wB1fLXzm6Mw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-replace-supers': 7.20.7
+ '@babel/helper-split-export-declaration': 7.18.6
+ '@babel/plugin-syntax-decorators': 7.19.0_@babel+core@7.20.12
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12
+ dev: true
+
+ /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.12:
+ resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12
+ dev: true
+
+ /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12
+ dev: true
+
+ /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12
+ dev: true
+
+ /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12
+ dev: true
+
+ /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12
+ dev: true
+
+ /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/compat-data': 7.20.14
+ '@babel/core': 7.20.12
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12
+ dev: true
+
+ /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12
+ dev: true
+
+ /@babel/plugin-proposal-optional-chaining/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-skip-transparent-expression-wrappers': 7.20.0
+ '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12
+ dev: true
+
+ /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-proposal-private-property-in-object/7.20.5_@babel+core@7.20.12:
+ resolution: {integrity: sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-annotate-as-pure': 7.18.6
+ '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.12:
+ resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.12:
+ resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.12:
+ resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-decorators/7.19.0_@babel+core@7.20.12:
+ resolution: {integrity: sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.20.12:
+ resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.12:
+ resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-flow/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.20.12:
+ resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.12:
+ resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+
+ /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.12:
+ resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.12:
+ resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.12:
+ resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.12:
+ resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.12:
+ resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.12:
+ resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.12:
+ resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.12:
+ resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.12:
+ resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-arrow-functions/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-module-imports': 7.18.6
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.12
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-block-scoping/7.20.14_@babel+core@7.20.12:
+ resolution: {integrity: sha512-sMPepQtsOs5fM1bwNvuJJHvaCfOEQfmc01FGw0ELlTpTJj5Ql/zuNRRldYhAPys4ghXdBIQJbRVYi44/7QflQQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-classes/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-annotate-as-pure': 7.18.6
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
+ '@babel/helper-environment-visitor': 7.18.9
+ '@babel/helper-function-name': 7.19.0
+ '@babel/helper-optimise-call-expression': 7.18.6
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-replace-supers': 7.20.7
+ '@babel/helper-split-export-declaration': 7.18.6
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-computed-properties/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/template': 7.20.7
+ dev: true
+
+ /@babel/plugin-transform-destructuring/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.20.12:
+ resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-flow-strip-types/7.19.0_@babel+core@7.20.12:
+ resolution: {integrity: sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-flow': 7.18.6_@babel+core@7.20.12
+ dev: true
+
+ /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.20.12:
+ resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.20.12:
+ resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
+ '@babel/helper-function-name': 7.19.0
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-literals/7.18.9_@babel+core@7.20.12:
+ resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.20.12:
+ resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-module-transforms': 7.20.11
+ '@babel/helper-plugin-utils': 7.20.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-modules-commonjs/7.20.11_@babel+core@7.20.12:
+ resolution: {integrity: sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-module-transforms': 7.20.11
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-simple-access': 7.20.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.20.12:
+ resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-hoist-variables': 7.18.6
+ '@babel/helper-module-transforms': 7.20.11
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-validator-identifier': 7.19.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-module-transforms': 7.20.11
+ '@babel/helper-plugin-utils': 7.20.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.20.12:
+ resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-replace-supers': 7.20.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-parameters/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/plugin-transform-react-jsx': 7.20.13_@babel+core@7.20.12
+
+ /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: false
+
+ /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: false
+
+ /@babel/plugin-transform-react-jsx/7.20.13_@babel+core@7.20.12:
+ resolution: {integrity: sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-annotate-as-pure': 7.18.6
+ '@babel/helper-module-imports': 7.18.6
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.12
+ '@babel/types': 7.20.7
+
+ /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-annotate-as-pure': 7.18.6
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-regenerator/7.20.5_@babel+core@7.20.12:
+ resolution: {integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ regenerator-transform: 0.15.1
+ dev: true
+
+ /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-runtime/7.19.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-module-imports': 7.18.6
+ '@babel/helper-plugin-utils': 7.20.2
+ babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.12
+ babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.12
+ babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.12
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-spread/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-skip-transparent-expression-wrappers': 7.20.0
+ dev: true
+
+ /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.20.12:
+ resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.20.12:
+ resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-typescript/7.20.13_@babel+core@7.20.12:
+ resolution: {integrity: sha512-O7I/THxarGcDZxkgWKMUrk7NK1/WbHAg3Xx86gqS6x9MTrNL6AwIluuZ96ms4xeDe6AVx6rjHbWHP7x26EPQBA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.20.12:
+ resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ dev: true
+
+ /@babel/preset-env/7.20.2_@babel+core@7.20.12:
+ resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/compat-data': 7.20.14
+ '@babel/core': 7.20.12
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-validator-option': 7.18.6
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-proposal-class-static-block': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.20.12
+ '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-proposal-logical-assignment-operators': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-proposal-private-property-in-object': 7.20.5_@babel+core@7.20.12
+ '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12
+ '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.12
+ '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12
+ '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.20.12
+ '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12
+ '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12
+ '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-transform-async-to-generator': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-block-scoping': 7.20.14_@babel+core@7.20.12
+ '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-transform-computed-properties': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.20.12
+ '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.20.12
+ '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.20.12
+ '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.20.12
+ '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-modules-amd': 7.20.11_@babel+core@7.20.12
+ '@babel/plugin-transform-modules-commonjs': 7.20.11_@babel+core@7.20.12
+ '@babel/plugin-transform-modules-systemjs': 7.20.11_@babel+core@7.20.12
+ '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.20.12
+ '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-regenerator': 7.20.5_@babel+core@7.20.12
+ '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.12
+ '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.20.12
+ '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.20.12
+ '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.12
+ '@babel/preset-modules': 0.1.5_@babel+core@7.20.12
+ '@babel/types': 7.20.7
+ babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.12
+ babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.12
+ babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.12
+ core-js-compat: 3.27.2
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/preset-modules/0.1.5_@babel+core@7.20.12:
+ resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12
+ '@babel/types': 7.20.7
+ esutils: 2.0.3
+ dev: true
+
+ /@babel/preset-react/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-validator-option': 7.18.6
+ '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-react-jsx': 7.20.13_@babel+core@7.20.12
+ '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.20.12
+ dev: true
+
+ /@babel/preset-typescript/7.18.6_@babel+core@7.20.12:
+ resolution: {integrity: sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-validator-option': 7.18.6
+ '@babel/plugin-transform-typescript': 7.20.13_@babel+core@7.20.12
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/runtime-corejs3/7.20.13:
+ resolution: {integrity: sha512-p39/6rmY9uvlzRiLZBIB3G9/EBr66LBMcYm7fIDeSBNdRjF2AGD3rFZucUyAgGHC2N+7DdLvVi33uTjSE44FIw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ core-js-pure: 3.27.2
+ regenerator-runtime: 0.13.11
+ dev: true
+
+ /@babel/runtime/7.20.13:
+ resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ regenerator-runtime: 0.13.11
+
+ /@babel/template/7.20.7:
+ resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.18.6
+ '@babel/parser': 7.20.13
+ '@babel/types': 7.20.7
+
+ /@babel/traverse/7.20.13:
+ resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.18.6
+ '@babel/generator': 7.20.14
+ '@babel/helper-environment-visitor': 7.18.9
+ '@babel/helper-function-name': 7.19.0
+ '@babel/helper-hoist-variables': 7.18.6
+ '@babel/helper-split-export-declaration': 7.18.6
+ '@babel/parser': 7.20.13
+ '@babel/types': 7.20.7
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/types/7.20.7:
+ resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.19.4
+ '@babel/helper-validator-identifier': 7.19.1
+ to-fast-properties: 2.0.0
+
+ /@date-io/core/2.16.0:
+ resolution: {integrity: sha512-DYmSzkr+jToahwWrsiRA2/pzMEtz9Bq1euJwoOuYwuwIYXnZFtHajY2E6a1VNVDc9jP8YUXK1BvnZH9mmT19Zg==}
+ dev: false
+
+ /@date-io/date-fns/2.16.0_date-fns@2.29.3:
+ resolution: {integrity: sha512-bfm5FJjucqlrnQcXDVU5RD+nlGmL3iWgkHTq3uAZWVIuBu6dDmGa3m8a6zo2VQQpu8ambq9H22UyUpn7590joA==}
+ peerDependencies:
+ date-fns: ^2.0.0
+ peerDependenciesMeta:
+ date-fns:
+ optional: true
+ dependencies:
+ '@date-io/core': 2.16.0
+ date-fns: 2.29.3
+ dev: false
+
+ /@date-io/dayjs/2.16.0:
+ resolution: {integrity: sha512-y5qKyX2j/HG3zMvIxTobYZRGnd1FUW2olZLS0vTj7bEkBQkjd2RO7/FEwDY03Z1geVGlXKnzIATEVBVaGzV4Iw==}
+ peerDependencies:
+ dayjs: ^1.8.17
+ peerDependenciesMeta:
+ dayjs:
+ optional: true
+ dependencies:
+ '@date-io/core': 2.16.0
+ dev: false
+
+ /@date-io/luxon/2.16.1:
+ resolution: {integrity: sha512-aeYp5K9PSHV28946pC+9UKUi/xMMYoaGelrpDibZSgHu2VWHXrr7zWLEr+pMPThSs5vt8Ei365PO+84pCm37WQ==}
+ peerDependencies:
+ luxon: ^1.21.3 || ^2.x || ^3.x
+ peerDependenciesMeta:
+ luxon:
+ optional: true
+ dependencies:
+ '@date-io/core': 2.16.0
+ dev: false
+
+ /@date-io/moment/2.16.1:
+ resolution: {integrity: sha512-JkxldQxUqZBfZtsaCcCMkm/dmytdyq5pS1RxshCQ4fHhsvP5A7gSqPD22QbVXMcJydi3d3v1Y8BQdUKEuGACZQ==}
+ peerDependencies:
+ moment: ^2.24.0
+ peerDependenciesMeta:
+ moment:
+ optional: true
+ dependencies:
+ '@date-io/core': 2.16.0
+ dev: false
+
+ /@emotion/babel-plugin/11.10.5_@babel+core@7.20.12:
+ resolution: {integrity: sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-module-imports': 7.18.6
+ '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.12
+ '@babel/runtime': 7.20.13
+ '@emotion/hash': 0.9.0
+ '@emotion/memoize': 0.8.0
+ '@emotion/serialize': 1.1.1
+ babel-plugin-macros: 3.1.0
+ convert-source-map: 1.9.0
+ escape-string-regexp: 4.0.0
+ find-root: 1.1.0
+ source-map: 0.5.7
+ stylis: 4.1.3
+ dev: false
+
+ /@emotion/cache/11.10.5:
+ resolution: {integrity: sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==}
+ dependencies:
+ '@emotion/memoize': 0.8.0
+ '@emotion/sheet': 1.2.1
+ '@emotion/utils': 1.2.0
+ '@emotion/weak-memoize': 0.3.0
+ stylis: 4.1.3
+ dev: false
+
+ /@emotion/hash/0.9.0:
+ resolution: {integrity: sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==}
+ dev: false
+
+ /@emotion/is-prop-valid/0.8.8:
+ resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==}
+ requiresBuild: true
+ dependencies:
+ '@emotion/memoize': 0.7.4
+ dev: false
+ optional: true
+
+ /@emotion/is-prop-valid/1.2.0:
+ resolution: {integrity: sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==}
+ dependencies:
+ '@emotion/memoize': 0.8.0
+ dev: false
+
+ /@emotion/memoize/0.7.4:
+ resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==}
+ dev: false
+ optional: true
+
+ /@emotion/memoize/0.8.0:
+ resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==}
+ dev: false
+
+ /@emotion/react/11.10.5_mk6db2egckiugg7v365a42dwcm:
+ resolution: {integrity: sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ '@types/react': '*'
+ react: '>=16.8.0'
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/runtime': 7.20.13
+ '@emotion/babel-plugin': 11.10.5_@babel+core@7.20.12
+ '@emotion/cache': 11.10.5
+ '@emotion/serialize': 1.1.1
+ '@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@17.0.2
+ '@emotion/utils': 1.2.0
+ '@emotion/weak-memoize': 0.3.0
+ '@types/react': 17.0.53
+ hoist-non-react-statics: 3.3.2
+ react: 17.0.2
+ dev: false
+
+ /@emotion/serialize/1.1.1:
+ resolution: {integrity: sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==}
+ dependencies:
+ '@emotion/hash': 0.9.0
+ '@emotion/memoize': 0.8.0
+ '@emotion/unitless': 0.8.0
+ '@emotion/utils': 1.2.0
+ csstype: 3.1.1
+ dev: false
+
+ /@emotion/sheet/1.2.1:
+ resolution: {integrity: sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==}
+ dev: false
+
+ /@emotion/styled/11.10.5_6pyqqf3gsgk64dc57nzribe7em:
+ resolution: {integrity: sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ '@emotion/react': ^11.0.0-rc.0
+ '@types/react': '*'
+ react: '>=16.8.0'
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/runtime': 7.20.13
+ '@emotion/babel-plugin': 11.10.5_@babel+core@7.20.12
+ '@emotion/is-prop-valid': 1.2.0
+ '@emotion/react': 11.10.5_mk6db2egckiugg7v365a42dwcm
+ '@emotion/serialize': 1.1.1
+ '@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@17.0.2
+ '@emotion/utils': 1.2.0
+ '@types/react': 17.0.53
+ react: 17.0.2
+ dev: false
+
+ /@emotion/unitless/0.8.0:
+ resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==}
+ dev: false
+
+ /@emotion/use-insertion-effect-with-fallbacks/1.0.0_react@17.0.2:
+ resolution: {integrity: sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==}
+ peerDependencies:
+ react: '>=16.8.0'
+ dependencies:
+ react: 17.0.2
+ dev: false
+
+ /@emotion/utils/1.2.0:
+ resolution: {integrity: sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==}
+ dev: false
+
+ /@emotion/weak-memoize/0.3.0:
+ resolution: {integrity: sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==}
+ dev: false
+
+ /@esbuild/android-arm/0.15.18:
+ resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/linux-loong64/0.15.18:
+ resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@eslint/eslintrc/1.4.1:
+ resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.4
+ espree: 9.4.1
+ globals: 13.20.0
+ ignore: 5.2.4
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@hookform/resolvers/2.9.10_react-hook-form@7.43.0:
+ resolution: {integrity: sha512-JIL1DgJIlH9yuxcNGtyhsWX/PgNltz+5Gr6+8SX9fhXc/hPbEIk6wPI82nhgvp3uUb6ZfAM5mqg/x7KR7NAb+A==}
+ peerDependencies:
+ react-hook-form: ^7.0.0
+ dependencies:
+ react-hook-form: 7.43.0_react@17.0.2
+ dev: false
+
+ /@humanwhocodes/config-array/0.11.8:
+ resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
+ engines: {node: '>=10.10.0'}
+ dependencies:
+ '@humanwhocodes/object-schema': 1.2.1
+ debug: 4.3.4
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@humanwhocodes/module-importer/1.0.1:
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+ dev: true
+
+ /@humanwhocodes/object-schema/1.2.1:
+ resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
+ dev: true
+
+ /@iconify/react/3.2.2_react@17.0.2:
+ resolution: {integrity: sha512-z3+Jno3VcJzgNHsN5mEvYMsgCkOZkydqdIwOxjXh45+i2Vs9RGH68Y52vt39izwFSfuYUXhaW+1u7m7+IhCn/g==}
+ peerDependencies:
+ react: '>=16'
+ dependencies:
+ react: 17.0.2
+ dev: false
+
+ /@jridgewell/gen-mapping/0.1.1:
+ resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/set-array': 1.1.2
+ '@jridgewell/sourcemap-codec': 1.4.14
+
+ /@jridgewell/gen-mapping/0.3.2:
+ resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/set-array': 1.1.2
+ '@jridgewell/sourcemap-codec': 1.4.14
+ '@jridgewell/trace-mapping': 0.3.17
+
+ /@jridgewell/resolve-uri/3.1.0:
+ resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
+ engines: {node: '>=6.0.0'}
+
+ /@jridgewell/set-array/1.1.2:
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
+ engines: {node: '>=6.0.0'}
+
+ /@jridgewell/source-map/0.3.2:
+ resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.2
+ '@jridgewell/trace-mapping': 0.3.17
+ dev: true
+
+ /@jridgewell/sourcemap-codec/1.4.14:
+ resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
+
+ /@jridgewell/trace-mapping/0.3.17:
+ resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.0
+ '@jridgewell/sourcemap-codec': 1.4.14
+
+ /@juggle/resize-observer/3.4.0:
+ resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
+ dev: false
+
+ /@motionone/animation/10.15.1:
+ resolution: {integrity: sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==}
+ dependencies:
+ '@motionone/easing': 10.15.1
+ '@motionone/types': 10.15.1
+ '@motionone/utils': 10.15.1
+ tslib: 2.5.0
+ dev: false
+
+ /@motionone/dom/10.12.0:
+ resolution: {integrity: sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==}
+ dependencies:
+ '@motionone/animation': 10.15.1
+ '@motionone/generators': 10.15.1
+ '@motionone/types': 10.15.1
+ '@motionone/utils': 10.15.1
+ hey-listen: 1.0.8
+ tslib: 2.5.0
+ dev: false
+
+ /@motionone/easing/10.15.1:
+ resolution: {integrity: sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==}
+ dependencies:
+ '@motionone/utils': 10.15.1
+ tslib: 2.5.0
+ dev: false
+
+ /@motionone/generators/10.15.1:
+ resolution: {integrity: sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==}
+ dependencies:
+ '@motionone/types': 10.15.1
+ '@motionone/utils': 10.15.1
+ tslib: 2.5.0
+ dev: false
+
+ /@motionone/types/10.15.1:
+ resolution: {integrity: sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA==}
+ dev: false
+
+ /@motionone/utils/10.15.1:
+ resolution: {integrity: sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==}
+ dependencies:
+ '@motionone/types': 10.15.1
+ hey-listen: 1.0.8
+ tslib: 2.5.0
+ dev: false
+
+ /@mui/base/5.0.0-alpha.116_zsjcj4gvi24ks76nprapl4hsmq:
+ resolution: {integrity: sha512-VwhifWdrfHc4/ZdqRZ4Gf+7P39sovNN24By1YVZdvJ9fvp0Sr8sNftGUCjYXXz+xCXVBQDXvhfxMwZrj2MvJvA==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@types/react': ^17.0.0 || ^18.0.0
+ react: ^17.0.0 || ^18.0.0
+ react-dom: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@emotion/is-prop-valid': 1.2.0
+ '@mui/types': 7.2.3_@types+react@17.0.53
+ '@mui/utils': 5.11.7_react@17.0.2
+ '@popperjs/core': 2.11.6
+ '@types/react': 17.0.53
+ clsx: 1.2.1
+ prop-types: 15.8.1
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ react-is: 18.2.0
+ dev: false
+
+ /@mui/base/5.0.0-alpha.79_zsjcj4gvi24ks76nprapl4hsmq:
+ resolution: {integrity: sha512-/lZLF027BkiEjM8MIYoeS/FEhTKf+41ePU9SOijMGrCin1Y0Igucw+IHa1fF8HXD7wDbFKqHuso3J1jMG8wyNw==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@types/react': ^17.0.0 || ^18.0.0
+ react: ^17.0.0 || ^18.0.0
+ react-dom: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@emotion/is-prop-valid': 1.2.0
+ '@mui/types': 7.2.3_@types+react@17.0.53
+ '@mui/utils': 5.11.7_react@17.0.2
+ '@popperjs/core': 2.11.6
+ '@types/react': 17.0.53
+ clsx: 1.2.1
+ prop-types: 15.8.1
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ react-is: 17.0.2
+ dev: false
+
+ /@mui/core-downloads-tracker/5.11.7:
+ resolution: {integrity: sha512-lZgX7XQTk0zVcpwEa80r+T4y09dosnUxWvFPSikU/2Hh5wnyNOek8WfJwGCNsaRiXJHMi5eHY+z8oku4u5lgNw==}
+ dev: false
+
+ /@mui/icons-material/5.11.0_pnh4wc2hdngxwkyhxmg7jr2d2q:
+ resolution: {integrity: sha512-I2LaOKqO8a0xcLGtIozC9xoXjZAto5G5gh0FYUMAlbsIHNHIjn4Xrw9rvjY20vZonyiGrZNMAlAXYkY6JvhF6A==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@mui/material': ^5.0.0
+ '@types/react': ^17.0.0 || ^18.0.0
+ react: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@mui/material': 5.11.7_qqwwam5mzvatfv4nmfntqfljzy
+ '@types/react': 17.0.53
+ react: 17.0.2
+ dev: false
+
+ /@mui/lab/5.0.0-alpha.80_6zefprodjalhdlen346zn6g76u:
+ resolution: {integrity: sha512-td5Ak0Hx+EzVN9MJqBlZJ6BKFGjTrHyNjXncjSHTvp8Z9p157AlOA/Sf7r+RyqyVzOzBfv4S37i9ShFTzSK61Q==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@mui/material': ^5.0.0
+ '@types/react': ^17.0.0 || ^18.0.0
+ date-fns: ^2.25.0
+ dayjs: ^1.10.7
+ luxon: ^1.28.0 || ^2.0.0
+ moment: ^2.29.1
+ react: ^17.0.0 || ^18.0.0
+ react-dom: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ date-fns:
+ optional: true
+ dayjs:
+ optional: true
+ luxon:
+ optional: true
+ moment:
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@mui/base': 5.0.0-alpha.79_zsjcj4gvi24ks76nprapl4hsmq
+ '@mui/material': 5.11.7_qqwwam5mzvatfv4nmfntqfljzy
+ '@mui/system': 5.11.7_tt6tbcqzrys2qrveq7llkyxu6e
+ '@mui/utils': 5.11.7_react@17.0.2
+ '@mui/x-date-pickers': 5.0.0-alpha.0_q26eepl56z56win5z4oguogidy
+ '@types/react': 17.0.53
+ clsx: 1.2.1
+ date-fns: 2.29.3
+ prop-types: 15.8.1
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ react-is: 17.0.2
+ react-transition-group: 4.4.5_sfoxds7t5ydpegc3knd667wn6m
+ rifm: 0.12.1_react@17.0.2
+ transitivePeerDependencies:
+ - '@emotion/react'
+ - '@emotion/styled'
+ dev: false
+
+ /@mui/material/5.11.7_qqwwam5mzvatfv4nmfntqfljzy:
+ resolution: {integrity: sha512-wDv7Pc6kMe9jeWkmCLt4JChd1lPc2u23JQHpB35L2VwQowpNFoDfIwqi0sYCnZTMKlRc7lza8LqwSwHl2G52Rw==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@emotion/react': ^11.5.0
+ '@emotion/styled': ^11.3.0
+ '@types/react': ^17.0.0 || ^18.0.0
+ react: ^17.0.0 || ^18.0.0
+ react-dom: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@emotion/react':
+ optional: true
+ '@emotion/styled':
+ optional: true
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@emotion/react': 11.10.5_mk6db2egckiugg7v365a42dwcm
+ '@emotion/styled': 11.10.5_6pyqqf3gsgk64dc57nzribe7em
+ '@mui/base': 5.0.0-alpha.116_zsjcj4gvi24ks76nprapl4hsmq
+ '@mui/core-downloads-tracker': 5.11.7
+ '@mui/system': 5.11.7_tt6tbcqzrys2qrveq7llkyxu6e
+ '@mui/types': 7.2.3_@types+react@17.0.53
+ '@mui/utils': 5.11.7_react@17.0.2
+ '@types/react': 17.0.53
+ '@types/react-transition-group': 4.4.5
+ clsx: 1.2.1
+ csstype: 3.1.1
+ prop-types: 15.8.1
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ react-is: 18.2.0
+ react-transition-group: 4.4.5_sfoxds7t5ydpegc3knd667wn6m
+ dev: false
+
+ /@mui/private-theming/5.11.7_h7fc2el62uaa77gho3xhys6ola:
+ resolution: {integrity: sha512-XzRTSZdc8bhuUdjablTNv3kFkZ/XIMlKkOqqJCU0G8W3tWGXpau2DXkafPd1ddjPhF9zF3qLKNGgKCChYItjgA==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@types/react': ^17.0.0 || ^18.0.0
+ react: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@mui/utils': 5.11.7_react@17.0.2
+ '@types/react': 17.0.53
+ prop-types: 15.8.1
+ react: 17.0.2
+ dev: false
+
+ /@mui/styled-engine/5.11.0_3lsrph6se4xquylogkb5yq6ogu:
+ resolution: {integrity: sha512-AF06K60Zc58qf0f7X+Y/QjaHaZq16znliLnGc9iVrV/+s8Ln/FCoeNuFvhlCbZZQ5WQcJvcy59zp0nXrklGGPQ==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@emotion/react': ^11.4.1
+ '@emotion/styled': ^11.3.0
+ react: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@emotion/react':
+ optional: true
+ '@emotion/styled':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@emotion/cache': 11.10.5
+ '@emotion/react': 11.10.5_mk6db2egckiugg7v365a42dwcm
+ '@emotion/styled': 11.10.5_6pyqqf3gsgk64dc57nzribe7em
+ csstype: 3.1.1
+ prop-types: 15.8.1
+ react: 17.0.2
+ dev: false
+
+ /@mui/system/5.11.7_tt6tbcqzrys2qrveq7llkyxu6e:
+ resolution: {integrity: sha512-uGB6hBxGlAdlmbLdTtUZYNPXkgQGGnKxHdkRATqsu7UlCxNsc/yS5NCEWy/3c4pnelD1LDLD39WrntP9mwhfkQ==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@emotion/react': ^11.5.0
+ '@emotion/styled': ^11.3.0
+ '@types/react': ^17.0.0 || ^18.0.0
+ react: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@emotion/react':
+ optional: true
+ '@emotion/styled':
+ optional: true
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@emotion/react': 11.10.5_mk6db2egckiugg7v365a42dwcm
+ '@emotion/styled': 11.10.5_6pyqqf3gsgk64dc57nzribe7em
+ '@mui/private-theming': 5.11.7_h7fc2el62uaa77gho3xhys6ola
+ '@mui/styled-engine': 5.11.0_3lsrph6se4xquylogkb5yq6ogu
+ '@mui/types': 7.2.3_@types+react@17.0.53
+ '@mui/utils': 5.11.7_react@17.0.2
+ '@types/react': 17.0.53
+ clsx: 1.2.1
+ csstype: 3.1.1
+ prop-types: 15.8.1
+ react: 17.0.2
+ dev: false
+
+ /@mui/types/7.2.3_@types+react@17.0.53:
+ resolution: {integrity: sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw==}
+ peerDependencies:
+ '@types/react': '*'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 17.0.53
+ dev: false
+
+ /@mui/utils/5.11.7_react@17.0.2:
+ resolution: {integrity: sha512-8uyNDeVHZA804Ego20Erv8TpxlbqTe/EbhTI2H1UYr4/RiIbBprat8W4Qqr2UQIsC/b3DLz+0RQ6R/E5BxEcLA==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ react: ^17.0.0 || ^18.0.0
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@types/prop-types': 15.7.5
+ '@types/react-is': 17.0.3
+ prop-types: 15.8.1
+ react: 17.0.2
+ react-is: 18.2.0
+ dev: false
+
+ /@mui/x-data-grid/5.17.21_loz24cijmwpd2sifcgc2x4dfwu:
+ resolution: {integrity: sha512-dgYYk1H3BEyGg7/RDet+ZBiTZQ9ZEIHE5QhVZ1glopVDRgWJmtcqPUQakkHQzxerEsKVwZ5QEEfueKuoX8oebg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@mui/material': ^5.4.1
+ '@mui/system': ^5.4.1
+ react: ^17.0.2 || ^18.0.0
+ react-dom: ^17.0.2 || ^18.0.0
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@mui/material': 5.11.7_qqwwam5mzvatfv4nmfntqfljzy
+ '@mui/system': 5.11.7_tt6tbcqzrys2qrveq7llkyxu6e
+ '@mui/utils': 5.11.7_react@17.0.2
+ clsx: 1.2.1
+ prop-types: 15.8.1
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ reselect: 4.1.7
+ dev: false
+
+ /@mui/x-date-pickers/5.0.0-alpha.0_q26eepl56z56win5z4oguogidy:
+ resolution: {integrity: sha512-JTzTaNSWbxNi8KDUJjHCH6im0YlIEv88gPoKhGm7s6xCGT1q6FtMp/oQ40nhfwrJ73nkM5G1JXRIzI/yfsHXQQ==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@mui/material': ^5.2.3
+ '@mui/system': ^5.2.3
+ date-fns: ^2.25.0
+ dayjs: ^1.10.7
+ luxon: ^1.28.0 || ^2.0.0
+ moment: ^2.29.1
+ react: ^17.0.2
+ peerDependenciesMeta:
+ date-fns:
+ optional: true
+ dayjs:
+ optional: true
+ luxon:
+ optional: true
+ moment:
+ optional: true
+ dependencies:
+ '@date-io/date-fns': 2.16.0_date-fns@2.29.3
+ '@date-io/dayjs': 2.16.0
+ '@date-io/luxon': 2.16.1
+ '@date-io/moment': 2.16.1
+ '@mui/material': 5.11.7_qqwwam5mzvatfv4nmfntqfljzy
+ '@mui/system': 5.11.7_tt6tbcqzrys2qrveq7llkyxu6e
+ '@mui/utils': 5.11.7_react@17.0.2
+ clsx: 1.2.1
+ date-fns: 2.29.3
+ prop-types: 15.8.1
+ react: 17.0.2
+ react-transition-group: 4.4.5_sfoxds7t5ydpegc3knd667wn6m
+ rifm: 0.12.1_react@17.0.2
+ transitivePeerDependencies:
+ - react-dom
+ dev: false
+
+ /@mui/x-date-pickers/5.0.0-beta.2_ztsqxjliezrjrjnhj5k7l7yxha:
+ resolution: {integrity: sha512-UEXQ2tmhosklAQwOUtwQBI2WngSdp5Q8vYqsmvxNJxuXYuM/DawdQBwyfFyK7jx5wf/RTsniG1e12hqii3wPYg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@emotion/react': ^11.9.0
+ '@emotion/styled': ^11.8.1
+ '@mui/material': ^5.4.1
+ '@mui/system': ^5.4.1
+ date-fns: ^2.25.0
+ dayjs: ^1.10.7
+ luxon: ^1.28.0 || ^2.0.0 || ^3.0.0
+ moment: ^2.29.1
+ react: ^17.0.2 || ^18.0.0
+ peerDependenciesMeta:
+ '@emotion/react':
+ optional: true
+ '@emotion/styled':
+ optional: true
+ date-fns:
+ optional: true
+ dayjs:
+ optional: true
+ luxon:
+ optional: true
+ moment:
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@date-io/core': 2.16.0
+ '@date-io/date-fns': 2.16.0_date-fns@2.29.3
+ '@date-io/dayjs': 2.16.0
+ '@date-io/luxon': 2.16.1
+ '@date-io/moment': 2.16.1
+ '@emotion/react': 11.10.5_mk6db2egckiugg7v365a42dwcm
+ '@emotion/styled': 11.10.5_6pyqqf3gsgk64dc57nzribe7em
+ '@mui/material': 5.11.7_qqwwam5mzvatfv4nmfntqfljzy
+ '@mui/system': 5.11.7_tt6tbcqzrys2qrveq7llkyxu6e
+ '@mui/utils': 5.11.7_react@17.0.2
+ '@types/react-transition-group': 4.4.5
+ clsx: 1.2.1
+ date-fns: 2.29.3
+ prop-types: 15.8.1
+ react: 17.0.2
+ react-transition-group: 4.4.5_sfoxds7t5ydpegc3knd667wn6m
+ rifm: 0.12.1_react@17.0.2
+ transitivePeerDependencies:
+ - react-dom
+ dev: false
+
+ /@nicolo-ribaudo/eslint-scope-5-internals/5.1.1-v1:
+ resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
+ dependencies:
+ eslint-scope: 5.1.1
+ dev: true
+
+ /@nodelib/fs.scandir/2.1.5:
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+ dev: true
+
+ /@nodelib/fs.stat/2.0.5:
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /@nodelib/fs.walk/1.2.8:
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.15.0
+ dev: true
+
+ /@popperjs/core/2.11.6:
+ resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==}
+ dev: false
+
+ /@remix-run/router/1.3.1:
+ resolution: {integrity: sha512-+eun1Wtf72RNRSqgU7qM2AMX/oHp+dnx7BHk1qhK5ZHzdHTUU4LA1mGG1vT+jMc8sbhG3orvsfOmryjzx2PzQw==}
+ engines: {node: '>=14'}
+ dev: false
+
+ /@rollup/plugin-babel/5.3.1_3dsfpkpoyvuuxyfgdbpn4j4uzm:
+ resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==}
+ 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
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-module-imports': 7.18.6
+ '@rollup/pluginutils': 3.1.0_rollup@2.79.1
+ rollup: 2.79.1
+ dev: true
+
+ /@rollup/plugin-node-resolve/11.2.1_rollup@2.79.1:
+ resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==}
+ engines: {node: '>= 10.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0
+ dependencies:
+ '@rollup/pluginutils': 3.1.0_rollup@2.79.1
+ '@types/resolve': 1.17.1
+ builtin-modules: 3.3.0
+ deepmerge: 4.3.0
+ is-module: 1.0.0
+ resolve: 1.22.1
+ rollup: 2.79.1
+ dev: true
+
+ /@rollup/plugin-replace/2.4.2_rollup@2.79.1:
+ resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==}
+ peerDependencies:
+ rollup: ^1.20.0 || ^2.0.0
+ dependencies:
+ '@rollup/pluginutils': 3.1.0_rollup@2.79.1
+ magic-string: 0.25.9
+ rollup: 2.79.1
+ dev: true
+
+ /@rollup/pluginutils/3.1.0_rollup@2.79.1:
+ resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==}
+ engines: {node: '>= 8.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0
+ dependencies:
+ '@types/estree': 0.0.39
+ estree-walker: 1.0.1
+ picomatch: 2.3.1
+ rollup: 2.79.1
+ dev: true
+
+ /@rollup/pluginutils/4.2.1:
+ resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
+ engines: {node: '>= 8.0.0'}
+ dependencies:
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ dev: false
+
+ /@rollup/pluginutils/5.0.2:
+ resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@types/estree': 1.0.0
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ dev: false
+
+ /@rushstack/eslint-patch/1.2.0:
+ resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==}
+ dev: true
+
+ /@surma/rollup-plugin-off-main-thread/2.2.3:
+ resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==}
+ dependencies:
+ ejs: 3.1.8
+ json5: 2.2.3
+ magic-string: 0.25.9
+ string.prototype.matchall: 4.0.8
+ dev: true
+
+ /@svgr/babel-plugin-add-jsx-attribute/6.5.1_@babel+core@7.20.12:
+ resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ dev: false
+
+ /@svgr/babel-plugin-remove-jsx-attribute/6.5.0_@babel+core@7.20.12:
+ resolution: {integrity: sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ dev: false
+
+ /@svgr/babel-plugin-remove-jsx-empty-expression/6.5.0_@babel+core@7.20.12:
+ resolution: {integrity: sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ dev: false
+
+ /@svgr/babel-plugin-replace-jsx-attribute-value/6.5.1_@babel+core@7.20.12:
+ resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ dev: false
+
+ /@svgr/babel-plugin-svg-dynamic-title/6.5.1_@babel+core@7.20.12:
+ resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ dev: false
+
+ /@svgr/babel-plugin-svg-em-dimensions/6.5.1_@babel+core@7.20.12:
+ resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ dev: false
+
+ /@svgr/babel-plugin-transform-react-native-svg/6.5.1_@babel+core@7.20.12:
+ resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ dev: false
+
+ /@svgr/babel-plugin-transform-svg-component/6.5.1_@babel+core@7.20.12:
+ resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ dev: false
+
+ /@svgr/babel-preset/6.5.1_@babel+core@7.20.12:
+ resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@svgr/babel-plugin-add-jsx-attribute': 6.5.1_@babel+core@7.20.12
+ '@svgr/babel-plugin-remove-jsx-attribute': 6.5.0_@babel+core@7.20.12
+ '@svgr/babel-plugin-remove-jsx-empty-expression': 6.5.0_@babel+core@7.20.12
+ '@svgr/babel-plugin-replace-jsx-attribute-value': 6.5.1_@babel+core@7.20.12
+ '@svgr/babel-plugin-svg-dynamic-title': 6.5.1_@babel+core@7.20.12
+ '@svgr/babel-plugin-svg-em-dimensions': 6.5.1_@babel+core@7.20.12
+ '@svgr/babel-plugin-transform-react-native-svg': 6.5.1_@babel+core@7.20.12
+ '@svgr/babel-plugin-transform-svg-component': 6.5.1_@babel+core@7.20.12
+ dev: false
+
+ /@svgr/core/6.5.1:
+ resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==}
+ engines: {node: '>=10'}
+ dependencies:
+ '@babel/core': 7.20.12
+ '@svgr/babel-preset': 6.5.1_@babel+core@7.20.12
+ '@svgr/plugin-jsx': 6.5.1_@svgr+core@6.5.1
+ camelcase: 6.3.0
+ cosmiconfig: 7.1.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /@svgr/hast-util-to-babel-ast/6.5.1:
+ resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==}
+ engines: {node: '>=10'}
+ dependencies:
+ '@babel/types': 7.20.7
+ entities: 4.4.0
+ dev: false
+
+ /@svgr/plugin-jsx/6.5.1_@svgr+core@6.5.1:
+ resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@svgr/core': ^6.0.0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@svgr/babel-preset': 6.5.1_@babel+core@7.20.12
+ '@svgr/core': 6.5.1
+ '@svgr/hast-util-to-babel-ast': 6.5.1
+ svg-parser: 2.0.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /@types/estree/0.0.39:
+ resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==}
+ dev: true
+
+ /@types/estree/1.0.0:
+ resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
+ dev: false
+
+ /@types/json-schema/7.0.11:
+ resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
+ dev: true
+
+ /@types/json5/0.0.29:
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+ dev: true
+
+ /@types/lodash/4.14.191:
+ resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==}
+
+ /@types/node/18.11.18:
+ resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==}
+ dev: true
+
+ /@types/nprogress/0.2.0:
+ resolution: {integrity: sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==}
+ dev: true
+
+ /@types/parse-json/4.0.0:
+ resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==}
+
+ /@types/prop-types/15.7.5:
+ resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
+
+ /@types/quill/1.3.10:
+ resolution: {integrity: sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw==}
+ dependencies:
+ parchment: 1.1.4
+ dev: false
+
+ /@types/react-dom/17.0.18:
+ resolution: {integrity: sha512-rLVtIfbwyur2iFKykP2w0pl/1unw26b5td16d5xMgp7/yjTHomkyxPYChFoCr/FtEX1lN9wY6lFj1qvKdS5kDw==}
+ dependencies:
+ '@types/react': 17.0.53
+ dev: true
+
+ /@types/react-is/17.0.3:
+ resolution: {integrity: sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==}
+ dependencies:
+ '@types/react': 17.0.53
+ dev: false
+
+ /@types/react-lazy-load-image-component/1.5.2:
+ resolution: {integrity: sha512-4NLJsMJVrMv18FuMIkUUBVj/PH9A+BvLKrZC75EWiEFn1IsMrZHgL1tVKw5QBfoa0Qjz6SkWIzEvwcyZ8PgnIg==}
+ dependencies:
+ '@types/react': 17.0.53
+ csstype: 3.1.1
+ dev: true
+
+ /@types/react-transition-group/4.4.5:
+ resolution: {integrity: sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==}
+ dependencies:
+ '@types/react': 17.0.53
+ dev: false
+
+ /@types/react/17.0.53:
+ resolution: {integrity: sha512-1yIpQR2zdYu1Z/dc1OxC+MA6GR240u3gcnP4l6mvj/PJiVaqHsQPmWttsvHsfnhfPbU2FuGmo0wSITPygjBmsw==}
+ dependencies:
+ '@types/prop-types': 15.7.5
+ '@types/scheduler': 0.16.2
+ csstype: 3.1.1
+
+ /@types/resolve/1.17.1:
+ resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
+ dependencies:
+ '@types/node': 18.11.18
+ dev: true
+
+ /@types/scheduler/0.16.2:
+ resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==}
+
+ /@types/semver/7.3.13:
+ resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
+ dev: true
+
+ /@types/stylis/4.0.2:
+ resolution: {integrity: sha512-wtckGuk1eXUlUz0Qb1eXHG37Z7HWT2GfMdqRf8F/ifddTwadSS9Jwsqi4qtXk7cP7MtoyGVIHPElFCLc6HItbg==}
+ dev: true
+
+ /@types/trusted-types/2.0.2:
+ resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==}
+ dev: true
+
+ /@typescript-eslint/eslint-plugin/5.50.0_go4drrxstycfikanvu45pi4vgq:
+ resolution: {integrity: sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^5.0.0
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64
+ '@typescript-eslint/scope-manager': 5.50.0
+ '@typescript-eslint/type-utils': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64
+ '@typescript-eslint/utils': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64
+ debug: 4.3.4
+ eslint: 8.33.0
+ grapheme-splitter: 1.0.4
+ ignore: 5.2.4
+ natural-compare-lite: 1.4.0
+ regexpp: 3.2.0
+ semver: 7.3.8
+ tsutils: 3.21.0_typescript@4.9.5
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/experimental-utils/5.50.0_4vsywjlpuriuw3tl5oq6zy5a64:
+ resolution: {integrity: sha512-gZIhzNRivy0RVqcxjKnQ+ipGc0qolilhBeNmvH+Dvu7Vymug+IfiYxTj2zM7mIlHsw6Q5aH7L7WmuTE3tZyzag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ '@typescript-eslint/utils': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64
+ eslint: 8.33.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@typescript-eslint/parser/5.50.0_4vsywjlpuriuw3tl5oq6zy5a64:
+ resolution: {integrity: sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/scope-manager': 5.50.0
+ '@typescript-eslint/types': 5.50.0
+ '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.5
+ debug: 4.3.4
+ eslint: 8.33.0
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/scope-manager/5.50.0:
+ resolution: {integrity: sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.50.0
+ '@typescript-eslint/visitor-keys': 5.50.0
+ dev: true
+
+ /@typescript-eslint/type-utils/5.50.0_4vsywjlpuriuw3tl5oq6zy5a64:
+ resolution: {integrity: sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.5
+ '@typescript-eslint/utils': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64
+ debug: 4.3.4
+ eslint: 8.33.0
+ tsutils: 3.21.0_typescript@4.9.5
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/types/5.50.0:
+ resolution: {integrity: sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /@typescript-eslint/typescript-estree/5.50.0_typescript@4.9.5:
+ resolution: {integrity: sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 5.50.0
+ '@typescript-eslint/visitor-keys': 5.50.0
+ debug: 4.3.4
+ globby: 11.1.0
+ is-glob: 4.0.3
+ semver: 7.3.8
+ tsutils: 3.21.0_typescript@4.9.5
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/utils/5.50.0_4vsywjlpuriuw3tl5oq6zy5a64:
+ resolution: {integrity: sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ '@types/json-schema': 7.0.11
+ '@types/semver': 7.3.13
+ '@typescript-eslint/scope-manager': 5.50.0
+ '@typescript-eslint/types': 5.50.0
+ '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.5
+ eslint: 8.33.0
+ eslint-scope: 5.1.1
+ eslint-utils: 3.0.0_eslint@8.33.0
+ semver: 7.3.8
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@typescript-eslint/visitor-keys/5.50.0:
+ resolution: {integrity: sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.50.0
+ eslint-visitor-keys: 3.3.0
+ dev: true
+
+ /@vitejs/plugin-react/1.3.2:
+ resolution: {integrity: sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/plugin-transform-react-jsx': 7.20.13_@babel+core@7.20.12
+ '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.20.12
+ '@rollup/pluginutils': 4.2.1
+ react-refresh: 0.13.0
+ resolve: 1.22.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /acorn-jsx/5.3.2_acorn@8.8.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ acorn: 8.8.2
+ dev: true
+
+ /acorn/8.8.2:
+ resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /ajv/6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+ dev: true
+
+ /ajv/8.12.0:
+ resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js: 4.4.1
+ dev: true
+
+ /ansi-regex/5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /ansi-styles/3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+ dependencies:
+ color-convert: 1.9.3
+
+ /ansi-styles/4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ color-convert: 2.0.1
+ dev: true
+
+ /apexcharts/3.36.3:
+ resolution: {integrity: sha512-8/FXEs0ohXMff07Gv28XjhPwEJphIUdq2/wii/pcvi54Tw6z1mjrV8ydN8rlWi/ve8BAPBefJkLmRWv7UOBsLw==}
+ 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
+ dev: false
+
+ /argparse/2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ dev: true
+
+ /aria-query/4.2.2:
+ resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==}
+ engines: {node: '>=6.0'}
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@babel/runtime-corejs3': 7.20.13
+ dev: true
+
+ /array-includes/3.1.6:
+ resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ es-abstract: 1.21.1
+ get-intrinsic: 1.2.0
+ is-string: 1.0.7
+ dev: true
+
+ /array-union/2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /array.prototype.flat/1.3.1:
+ resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ es-abstract: 1.21.1
+ es-shim-unscopables: 1.0.0
+ dev: true
+
+ /array.prototype.flatmap/1.3.1:
+ resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ es-abstract: 1.21.1
+ es-shim-unscopables: 1.0.0
+ dev: true
+
+ /array.prototype.tosorted/1.1.1:
+ resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ es-abstract: 1.21.1
+ es-shim-unscopables: 1.0.0
+ get-intrinsic: 1.2.0
+ dev: true
+
+ /ast-types-flow/0.0.7:
+ resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
+ dev: true
+
+ /async/3.2.4:
+ resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
+ dev: true
+
+ /asynckit/0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+ dev: false
+
+ /at-least-node/1.0.0:
+ resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
+ engines: {node: '>= 4.0.0'}
+ dev: true
+
+ /attr-accept/2.2.2:
+ resolution: {integrity: sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==}
+ engines: {node: '>=4'}
+ dev: false
+
+ /available-typed-arrays/1.0.5:
+ resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /axe-core/4.6.3:
+ resolution: {integrity: sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /axios/0.27.2:
+ resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
+ dependencies:
+ follow-redirects: 1.15.2
+ form-data: 4.0.0
+ transitivePeerDependencies:
+ - debug
+ dev: false
+
+ /axobject-query/2.2.0:
+ resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==}
+ dev: true
+
+ /babel-plugin-macros/3.1.0:
+ resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
+ engines: {node: '>=10', npm: '>=6'}
+ dependencies:
+ '@babel/runtime': 7.20.13
+ cosmiconfig: 7.1.0
+ resolve: 1.22.1
+
+ /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.20.12:
+ resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/compat-data': 7.20.14
+ '@babel/core': 7.20.12
+ '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.20.12:
+ resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12
+ core-js-compat: 3.27.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.20.12:
+ resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /babel-plugin-transform-react-remove-prop-types/0.4.24:
+ resolution: {integrity: sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==}
+ dev: true
+
+ /babel-preset-react-app/10.0.1:
+ resolution: {integrity: sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==}
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-proposal-decorators': 7.20.13_@babel+core@7.20.12
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-proposal-private-property-in-object': 7.20.5_@babel+core@7.20.12
+ '@babel/plugin-transform-flow-strip-types': 7.19.0_@babel+core@7.20.12
+ '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-runtime': 7.19.6_@babel+core@7.20.12
+ '@babel/preset-env': 7.20.2_@babel+core@7.20.12
+ '@babel/preset-react': 7.18.6_@babel+core@7.20.12
+ '@babel/preset-typescript': 7.18.6_@babel+core@7.20.12
+ '@babel/runtime': 7.20.13
+ babel-plugin-macros: 3.1.0
+ babel-plugin-transform-react-remove-prop-types: 0.4.24
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /balanced-match/1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ dev: true
+
+ /brace-expansion/1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+ dev: true
+
+ /brace-expansion/2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ dependencies:
+ balanced-match: 1.0.2
+ dev: true
+
+ /braces/3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+ dev: true
+
+ /browserslist/4.21.5:
+ resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001450
+ electron-to-chromium: 1.4.284
+ node-releases: 2.0.9
+ update-browserslist-db: 1.0.10_browserslist@4.21.5
+
+ /buffer-from/1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+ dev: true
+
+ /builtin-modules/3.3.0:
+ resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /call-bind/1.0.2:
+ resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
+ dependencies:
+ function-bind: 1.1.1
+ get-intrinsic: 1.2.0
+
+ /callsites/3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ /camel-case/4.1.2:
+ resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
+ dependencies:
+ pascal-case: 3.1.2
+ tslib: 2.5.0
+ dev: false
+
+ /camelcase/6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /can-use-dom/0.1.0:
+ resolution: {integrity: sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ==}
+ dev: false
+
+ /caniuse-lite/1.0.30001450:
+ resolution: {integrity: sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==}
+
+ /capital-case/1.0.4:
+ resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==}
+ dependencies:
+ no-case: 3.0.4
+ tslib: 2.5.0
+ upper-case-first: 2.0.2
+ dev: false
+
+ /chalk/2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+
+ /chalk/4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+ dev: true
+
+ /change-case/4.1.2:
+ resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==}
+ dependencies:
+ camel-case: 4.1.2
+ capital-case: 1.0.4
+ constant-case: 3.0.4
+ dot-case: 3.0.4
+ header-case: 2.0.4
+ no-case: 3.0.4
+ param-case: 3.0.4
+ pascal-case: 3.1.2
+ path-case: 3.0.4
+ sentence-case: 3.0.4
+ snake-case: 3.0.4
+ tslib: 2.5.0
+ dev: false
+
+ /clone/2.1.2:
+ resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
+ engines: {node: '>=0.8'}
+ dev: false
+
+ /clsx/1.2.1:
+ resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /color-convert/1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+ dependencies:
+ color-name: 1.1.3
+
+ /color-convert/2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+ dependencies:
+ color-name: 1.1.4
+ dev: true
+
+ /color-name/1.1.3:
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+
+ /color-name/1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ dev: true
+
+ /combined-stream/1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ delayed-stream: 1.0.0
+ dev: false
+
+ /commander/2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+ dev: true
+
+ /common-tags/1.8.2:
+ resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==}
+ engines: {node: '>=4.0.0'}
+ dev: true
+
+ /concat-map/0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ dev: true
+
+ /confusing-browser-globals/1.0.11:
+ resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==}
+ dev: true
+
+ /constant-case/3.0.4:
+ resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==}
+ dependencies:
+ no-case: 3.0.4
+ tslib: 2.5.0
+ upper-case: 2.0.2
+ dev: false
+
+ /convert-source-map/1.9.0:
+ resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+
+ /core-js-compat/3.27.2:
+ resolution: {integrity: sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==}
+ dependencies:
+ browserslist: 4.21.5
+ dev: true
+
+ /core-js-pure/3.27.2:
+ resolution: {integrity: sha512-Cf2jqAbXgWH3VVzjyaaFkY1EBazxugUepGymDoeteyYr9ByX51kD2jdHZlsEF/xnJMyN3Prua7mQuzwMg6Zc9A==}
+ requiresBuild: true
+ dev: true
+
+ /core-js/3.27.2:
+ resolution: {integrity: sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==}
+ requiresBuild: true
+ dev: false
+
+ /cosmiconfig/7.1.0:
+ resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
+ engines: {node: '>=10'}
+ dependencies:
+ '@types/parse-json': 4.0.0
+ import-fresh: 3.3.0
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ yaml: 1.10.2
+
+ /cross-spawn/7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+ dev: true
+
+ /crypto-random-string/2.0.0:
+ resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /cssjanus/2.1.0:
+ resolution: {integrity: sha512-kAijbny3GmdOi9k+QT6DGIXqFvL96aksNlGr4Rhk9qXDZYWUojU4bRc3IHWxdaLNOqgEZHuXoe5Wl2l7dxLW5g==}
+ engines: {node: '>=10.0.0'}
+ dev: false
+
+ /csstype/3.1.1:
+ resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==}
+
+ /damerau-levenshtein/1.0.8:
+ resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
+ dev: true
+
+ /date-fns/2.29.3:
+ resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==}
+ engines: {node: '>=0.11'}
+ dev: false
+
+ /debug/3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.3
+ dev: true
+
+ /debug/4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+
+ /deep-equal/1.1.1:
+ resolution: {integrity: sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==}
+ dependencies:
+ is-arguments: 1.1.1
+ is-date-object: 1.0.5
+ is-regex: 1.1.4
+ object-is: 1.1.5
+ object-keys: 1.1.1
+ regexp.prototype.flags: 1.4.3
+ dev: false
+
+ /deep-is/0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ dev: true
+
+ /deepmerge/4.3.0:
+ resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /define-properties/1.1.4:
+ resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-property-descriptors: 1.0.0
+ object-keys: 1.1.1
+
+ /delayed-stream/1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+ dev: false
+
+ /dir-glob/3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-type: 4.0.0
+ dev: true
+
+ /doctrine/2.1.0:
+ resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ esutils: 2.0.3
+ dev: true
+
+ /doctrine/3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ esutils: 2.0.3
+ dev: true
+
+ /dom-helpers/5.2.1:
+ resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
+ dependencies:
+ '@babel/runtime': 7.20.13
+ csstype: 3.1.1
+ dev: false
+
+ /dot-case/3.0.4:
+ resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
+ dependencies:
+ no-case: 3.0.4
+ tslib: 2.5.0
+ dev: false
+
+ /ejs/3.1.8:
+ resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+ dependencies:
+ jake: 10.8.5
+ dev: true
+
+ /electron-to-chromium/1.4.284:
+ resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==}
+
+ /emoji-regex/9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ dev: true
+
+ /entities/4.4.0:
+ resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==}
+ engines: {node: '>=0.12'}
+ dev: false
+
+ /error-ex/1.3.2:
+ resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+ dependencies:
+ is-arrayish: 0.2.1
+
+ /es-abstract/1.21.1:
+ resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ es-set-tostringtag: 2.0.1
+ es-to-primitive: 1.2.1
+ function-bind: 1.1.1
+ function.prototype.name: 1.1.5
+ get-intrinsic: 1.2.0
+ get-symbol-description: 1.0.0
+ globalthis: 1.0.3
+ gopd: 1.0.1
+ has: 1.0.3
+ has-property-descriptors: 1.0.0
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ internal-slot: 1.0.4
+ is-array-buffer: 3.0.1
+ is-callable: 1.2.7
+ is-negative-zero: 2.0.2
+ is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.2
+ is-string: 1.0.7
+ is-typed-array: 1.1.10
+ is-weakref: 1.0.2
+ object-inspect: 1.12.3
+ object-keys: 1.1.1
+ object.assign: 4.1.4
+ regexp.prototype.flags: 1.4.3
+ safe-regex-test: 1.0.0
+ string.prototype.trimend: 1.0.6
+ string.prototype.trimstart: 1.0.6
+ typed-array-length: 1.0.4
+ unbox-primitive: 1.0.2
+ which-typed-array: 1.1.9
+ dev: true
+
+ /es-set-tostringtag/2.0.1:
+ resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.0
+ has: 1.0.3
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /es-shim-unscopables/1.0.0:
+ resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
+ dependencies:
+ has: 1.0.3
+ dev: true
+
+ /es-to-primitive/1.2.1:
+ resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.0.5
+ is-symbol: 1.0.4
+ dev: true
+
+ /esbuild-android-64/0.15.18:
+ resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-android-arm64/0.15.18:
+ resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-darwin-64/0.15.18:
+ resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-darwin-arm64/0.15.18:
+ resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-freebsd-64/0.15.18:
+ resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-freebsd-arm64/0.15.18:
+ resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-linux-32/0.15.18:
+ resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-linux-64/0.15.18:
+ resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-linux-arm/0.15.18:
+ resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-linux-arm64/0.15.18:
+ resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-linux-mips64le/0.15.18:
+ resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-linux-ppc64le/0.15.18:
+ resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-linux-riscv64/0.15.18:
+ resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-linux-s390x/0.15.18:
+ resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-netbsd-64/0.15.18:
+ resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-openbsd-64/0.15.18:
+ resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-sunos-64/0.15.18:
+ resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-windows-32/0.15.18:
+ resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-windows-64/0.15.18:
+ resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild-windows-arm64/0.15.18:
+ resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /esbuild/0.15.18:
+ resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/android-arm': 0.15.18
+ '@esbuild/linux-loong64': 0.15.18
+ esbuild-android-64: 0.15.18
+ esbuild-android-arm64: 0.15.18
+ esbuild-darwin-64: 0.15.18
+ esbuild-darwin-arm64: 0.15.18
+ esbuild-freebsd-64: 0.15.18
+ esbuild-freebsd-arm64: 0.15.18
+ esbuild-linux-32: 0.15.18
+ esbuild-linux-64: 0.15.18
+ esbuild-linux-arm: 0.15.18
+ esbuild-linux-arm64: 0.15.18
+ esbuild-linux-mips64le: 0.15.18
+ esbuild-linux-ppc64le: 0.15.18
+ esbuild-linux-riscv64: 0.15.18
+ esbuild-linux-s390x: 0.15.18
+ esbuild-netbsd-64: 0.15.18
+ esbuild-openbsd-64: 0.15.18
+ esbuild-sunos-64: 0.15.18
+ esbuild-windows-32: 0.15.18
+ esbuild-windows-64: 0.15.18
+ esbuild-windows-arm64: 0.15.18
+ dev: false
+
+ /escalade/3.1.1:
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ engines: {node: '>=6'}
+
+ /escape-string-regexp/1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+
+ /escape-string-regexp/4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ /eslint-config-airbnb-base/15.0.0_ohdts44xlqyeyrlje4qnefqeay:
+ resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ peerDependencies:
+ eslint: ^7.32.0 || ^8.2.0
+ eslint-plugin-import: ^2.25.2
+ dependencies:
+ confusing-browser-globals: 1.0.11
+ eslint: 8.33.0
+ eslint-plugin-import: 2.27.5_4tvin5zjco7u46hg5f7ihcjrli
+ object.assign: 4.1.4
+ object.entries: 1.1.6
+ semver: 6.3.0
+ dev: true
+
+ /eslint-config-airbnb-typescript/16.2.0_kh22gsft6r4fkunxdzqyqzlvzy:
+ resolution: {integrity: sha512-OUaMPZpTOZGKd5tXOjJ9PRU4iYNW/Z5DoHIynjsVK/FpkWdiY5+nxQW6TiJAlLwVI1l53xUOrnlZWtVBVQzuWA==}
+ peerDependencies:
+ '@typescript-eslint/eslint-plugin': ^5.0.0
+ '@typescript-eslint/parser': ^5.0.0
+ eslint: ^7.32.0 || ^8.2.0
+ eslint-plugin-import: ^2.25.3
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 5.50.0_go4drrxstycfikanvu45pi4vgq
+ '@typescript-eslint/parser': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64
+ eslint: 8.33.0
+ eslint-config-airbnb-base: 15.0.0_ohdts44xlqyeyrlje4qnefqeay
+ eslint-plugin-import: 2.27.5_4tvin5zjco7u46hg5f7ihcjrli
+ dev: true
+
+ /eslint-config-airbnb/19.0.4_2aqs4ooozum2jqoyu546hxblca:
+ resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==}
+ engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^7.32.0 || ^8.2.0
+ eslint-plugin-import: ^2.25.3
+ eslint-plugin-jsx-a11y: ^6.5.1
+ eslint-plugin-react: ^7.28.0
+ eslint-plugin-react-hooks: ^4.3.0
+ dependencies:
+ eslint: 8.33.0
+ eslint-config-airbnb-base: 15.0.0_ohdts44xlqyeyrlje4qnefqeay
+ eslint-plugin-import: 2.27.5_4tvin5zjco7u46hg5f7ihcjrli
+ eslint-plugin-jsx-a11y: 6.5.1_eslint@8.33.0
+ eslint-plugin-react: 7.32.2_eslint@8.33.0
+ eslint-plugin-react-hooks: 4.3.0_eslint@8.33.0
+ object.assign: 4.1.4
+ object.entries: 1.1.6
+ dev: true
+
+ /eslint-config-prettier/8.6.0_eslint@8.33.0:
+ resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==}
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+ dependencies:
+ eslint: 8.33.0
+ dev: true
+
+ /eslint-config-react-app/7.0.0_ycrng7fijpsjsynw5fqx5sdt2a:
+ resolution: {integrity: sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ eslint: ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@babel/core': 7.20.12
+ '@babel/eslint-parser': 7.19.1_b3mcivpi6zqbotlvqqcfprcnry
+ '@rushstack/eslint-patch': 1.2.0
+ '@typescript-eslint/eslint-plugin': 5.50.0_go4drrxstycfikanvu45pi4vgq
+ '@typescript-eslint/parser': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64
+ babel-preset-react-app: 10.0.1
+ confusing-browser-globals: 1.0.11
+ eslint: 8.33.0
+ eslint-plugin-flowtype: 8.0.3_dbm4zd4qfhols3fjlijwxohvlm
+ eslint-plugin-import: 2.27.5_4tvin5zjco7u46hg5f7ihcjrli
+ eslint-plugin-jest: 25.7.0_cxlvstdti72ph7tnrcvqamh3c4
+ eslint-plugin-jsx-a11y: 6.5.1_eslint@8.33.0
+ eslint-plugin-react: 7.32.2_eslint@8.33.0
+ eslint-plugin-react-hooks: 4.3.0_eslint@8.33.0
+ eslint-plugin-testing-library: 5.10.0_4vsywjlpuriuw3tl5oq6zy5a64
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - '@babel/plugin-syntax-flow'
+ - '@babel/plugin-transform-react-jsx'
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - jest
+ - supports-color
+ dev: true
+
+ /eslint-import-resolver-node/0.3.7:
+ resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==}
+ dependencies:
+ debug: 3.2.7
+ is-core-module: 2.11.0
+ resolve: 1.22.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-import-resolver-typescript/2.7.1_ohdts44xlqyeyrlje4qnefqeay:
+ resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ eslint: '*'
+ eslint-plugin-import: '*'
+ dependencies:
+ debug: 4.3.4
+ eslint: 8.33.0
+ eslint-plugin-import: 2.27.5_4tvin5zjco7u46hg5f7ihcjrli
+ glob: 7.2.3
+ is-glob: 4.0.3
+ resolve: 1.22.1
+ tsconfig-paths: 3.14.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-module-utils/2.7.4_qdl6xlpqkduu5ncgccpyrhnn6i:
+ resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint:
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64
+ debug: 3.2.7
+ eslint: 8.33.0
+ eslint-import-resolver-node: 0.3.7
+ eslint-import-resolver-typescript: 2.7.1_ohdts44xlqyeyrlje4qnefqeay
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-plugin-flowtype/8.0.3_dbm4zd4qfhols3fjlijwxohvlm:
+ resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==}
+ 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
+ dependencies:
+ '@babel/plugin-syntax-flow': 7.18.6_@babel+core@7.20.12
+ '@babel/plugin-transform-react-jsx': 7.20.13_@babel+core@7.20.12
+ eslint: 8.33.0
+ lodash: 4.17.21
+ string-natural-compare: 3.0.1
+ dev: true
+
+ /eslint-plugin-import/2.27.5_4tvin5zjco7u46hg5f7ihcjrli:
+ resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64
+ array-includes: 3.1.6
+ array.prototype.flat: 1.3.1
+ array.prototype.flatmap: 1.3.1
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 8.33.0
+ eslint-import-resolver-node: 0.3.7
+ eslint-module-utils: 2.7.4_qdl6xlpqkduu5ncgccpyrhnn6i
+ has: 1.0.3
+ is-core-module: 2.11.0
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.values: 1.1.6
+ resolve: 1.22.1
+ semver: 6.3.0
+ tsconfig-paths: 3.14.1
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+ dev: true
+
+ /eslint-plugin-jest/25.7.0_cxlvstdti72ph7tnrcvqamh3c4:
+ resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==}
+ 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
+ jest: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/eslint-plugin':
+ optional: true
+ jest:
+ optional: true
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 5.50.0_go4drrxstycfikanvu45pi4vgq
+ '@typescript-eslint/experimental-utils': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64
+ eslint: 8.33.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /eslint-plugin-jsx-a11y/6.5.1_eslint@8.33.0:
+ resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ dependencies:
+ '@babel/runtime': 7.20.13
+ aria-query: 4.2.2
+ array-includes: 3.1.6
+ ast-types-flow: 0.0.7
+ axe-core: 4.6.3
+ axobject-query: 2.2.0
+ damerau-levenshtein: 1.0.8
+ emoji-regex: 9.2.2
+ eslint: 8.33.0
+ has: 1.0.3
+ jsx-ast-utils: 3.3.3
+ language-tags: 1.0.7
+ minimatch: 3.1.2
+ dev: true
+
+ /eslint-plugin-prettier/4.2.1_jqplj6qf3uqpxpu4gdyhwwasnq:
+ resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ eslint: '>=7.28.0'
+ eslint-config-prettier: '*'
+ prettier: '>=2.0.0'
+ peerDependenciesMeta:
+ eslint-config-prettier:
+ optional: true
+ dependencies:
+ eslint: 8.33.0
+ eslint-config-prettier: 8.6.0_eslint@8.33.0
+ prettier: 2.8.3
+ prettier-linter-helpers: 1.0.0
+ dev: true
+
+ /eslint-plugin-react-hooks/4.3.0_eslint@8.33.0:
+ resolution: {integrity: sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+ dependencies:
+ eslint: 8.33.0
+ dev: true
+
+ /eslint-plugin-react/7.32.2_eslint@8.33.0:
+ resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ dependencies:
+ array-includes: 3.1.6
+ array.prototype.flatmap: 1.3.1
+ array.prototype.tosorted: 1.1.1
+ doctrine: 2.1.0
+ eslint: 8.33.0
+ estraverse: 5.3.0
+ jsx-ast-utils: 3.3.3
+ minimatch: 3.1.2
+ object.entries: 1.1.6
+ object.fromentries: 2.0.6
+ object.hasown: 1.1.2
+ object.values: 1.1.6
+ prop-types: 15.8.1
+ resolve: 2.0.0-next.4
+ semver: 6.3.0
+ string.prototype.matchall: 4.0.8
+ dev: true
+
+ /eslint-plugin-testing-library/5.10.0_4vsywjlpuriuw3tl5oq6zy5a64:
+ resolution: {integrity: sha512-aTOsCAEI9trrX3TLOnsskfhe57DmsjP/yMKLPqg4ftdRvfR4qut2PGWUa8TwP7whZbwMzJjh98tgAPcE8vdHow==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'}
+ peerDependencies:
+ eslint: ^7.5.0 || ^8.0.0
+ dependencies:
+ '@typescript-eslint/utils': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64
+ eslint: 8.33.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /eslint-scope/5.1.1:
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
+ engines: {node: '>=8.0.0'}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 4.3.0
+ dev: true
+
+ /eslint-scope/7.1.1:
+ resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+ dev: true
+
+ /eslint-utils/3.0.0_eslint@8.33.0:
+ resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
+ engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
+ peerDependencies:
+ eslint: '>=5'
+ dependencies:
+ eslint: 8.33.0
+ eslint-visitor-keys: 2.1.0
+ dev: true
+
+ /eslint-visitor-keys/2.1.0:
+ resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /eslint-visitor-keys/3.3.0:
+ resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /eslint/8.33.0:
+ resolution: {integrity: sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ '@eslint/eslintrc': 1.4.1
+ '@humanwhocodes/config-array': 0.11.8
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.4
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.1.1
+ eslint-utils: 3.0.0_eslint@8.33.0
+ eslint-visitor-keys: 3.3.0
+ espree: 9.4.1
+ esquery: 1.4.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 6.0.1
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ globals: 13.20.0
+ grapheme-splitter: 1.0.4
+ ignore: 5.2.4
+ import-fresh: 3.3.0
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ js-sdsl: 4.3.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.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.1
+ regexpp: 3.2.0
+ strip-ansi: 6.0.1
+ strip-json-comments: 3.1.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /espree/9.4.1:
+ resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ acorn: 8.8.2
+ acorn-jsx: 5.3.2_acorn@8.8.2
+ eslint-visitor-keys: 3.3.0
+ dev: true
+
+ /esquery/1.4.0:
+ resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
+ engines: {node: '>=0.10'}
+ dependencies:
+ estraverse: 5.3.0
+ dev: true
+
+ /esrecurse/4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+ dependencies:
+ estraverse: 5.3.0
+ dev: true
+
+ /estraverse/4.3.0:
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /estraverse/5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /estree-walker/1.0.1:
+ resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==}
+ dev: true
+
+ /estree-walker/2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+ dev: false
+
+ /esutils/2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /eventemitter3/2.0.3:
+ resolution: {integrity: sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==}
+ dev: false
+
+ /extend/3.0.2:
+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+ dev: false
+
+ /fast-deep-equal/3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+ dev: true
+
+ /fast-diff/1.1.2:
+ resolution: {integrity: sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==}
+ dev: false
+
+ /fast-diff/1.2.0:
+ resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==}
+ dev: true
+
+ /fast-glob/3.2.12:
+ resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.5
+ dev: true
+
+ /fast-json-stable-stringify/2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+ dev: true
+
+ /fast-levenshtein/2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+ dev: true
+
+ /fastq/1.15.0:
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
+ dependencies:
+ reusify: 1.0.4
+ dev: true
+
+ /file-entry-cache/6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flat-cache: 3.0.4
+ dev: true
+
+ /file-selector/0.6.0:
+ resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==}
+ engines: {node: '>= 12'}
+ dependencies:
+ tslib: 2.5.0
+ dev: false
+
+ /filelist/1.0.4:
+ resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
+ dependencies:
+ minimatch: 5.1.6
+ dev: true
+
+ /fill-range/7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: true
+
+ /find-root/1.1.0:
+ resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==}
+ dev: false
+
+ /find-up/5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+ dev: true
+
+ /flat-cache/3.0.4:
+ resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flatted: 3.2.7
+ rimraf: 3.0.2
+ dev: true
+
+ /flatted/3.2.7:
+ resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
+ dev: true
+
+ /follow-redirects/1.15.2:
+ resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ dev: false
+
+ /for-each/0.3.3:
+ resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ dependencies:
+ is-callable: 1.2.7
+ dev: true
+
+ /form-data/4.0.0:
+ resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
+ engines: {node: '>= 6'}
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+ dev: false
+
+ /framer-motion/6.5.1_sfoxds7t5ydpegc3knd667wn6m:
+ resolution: {integrity: sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==}
+ peerDependencies:
+ react: '>=16.8 || ^17.0.0 || ^18.0.0'
+ react-dom: '>=16.8 || ^17.0.0 || ^18.0.0'
+ dependencies:
+ '@motionone/dom': 10.12.0
+ framesync: 6.0.1
+ hey-listen: 1.0.8
+ popmotion: 11.0.3
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ style-value-types: 5.0.0
+ tslib: 2.5.0
+ optionalDependencies:
+ '@emotion/is-prop-valid': 0.8.8
+ dev: false
+
+ /framesync/6.0.1:
+ resolution: {integrity: sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==}
+ dependencies:
+ tslib: 2.5.0
+ dev: false
+
+ /fs-extra/9.1.0:
+ resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ at-least-node: 1.0.0
+ graceful-fs: 4.2.10
+ jsonfile: 6.1.0
+ universalify: 2.0.0
+ dev: true
+
+ /fs.realpath/1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+ dev: true
+
+ /fsevents/2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ optional: true
+
+ /function-bind/1.1.1:
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+
+ /function.prototype.name/1.1.5:
+ resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ es-abstract: 1.21.1
+ functions-have-names: 1.2.3
+ dev: true
+
+ /functions-have-names/1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+
+ /gensync/1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
+ /get-intrinsic/1.2.0:
+ resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
+ dependencies:
+ function-bind: 1.1.1
+ has: 1.0.3
+ has-symbols: 1.0.3
+
+ /get-own-enumerable-property-symbols/3.0.2:
+ resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
+ dev: true
+
+ /get-symbol-description/1.0.0:
+ resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.0
+ dev: true
+
+ /glob-parent/5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /glob-parent/6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /glob/7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ dev: true
+
+ /globals/11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+
+ /globals/13.20.0:
+ resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ type-fest: 0.20.2
+ dev: true
+
+ /globalthis/1.0.3:
+ resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-properties: 1.1.4
+ dev: true
+
+ /globby/11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.2.12
+ ignore: 5.2.4
+ merge2: 1.4.1
+ slash: 3.0.0
+ dev: true
+
+ /goober/2.1.11_csstype@3.1.1:
+ resolution: {integrity: sha512-5SS2lmxbhqH0u9ABEWq7WPU69a4i2pYcHeCxqaNq6Cw3mnrF0ghWNM4tEGid4dKy8XNIAUbuThuozDHHKJVh3A==}
+ peerDependencies:
+ csstype: ^3.0.10
+ dependencies:
+ csstype: 3.1.1
+ dev: false
+
+ /gopd/1.0.1:
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+ dependencies:
+ get-intrinsic: 1.2.0
+ dev: true
+
+ /graceful-fs/4.2.10:
+ resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
+ dev: true
+
+ /grapheme-splitter/1.0.4:
+ resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
+ dev: true
+
+ /has-bigints/1.0.2:
+ resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
+ dev: true
+
+ /has-flag/3.0.0:
+ resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
+ engines: {node: '>=4'}
+
+ /has-flag/4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /has-property-descriptors/1.0.0:
+ resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
+ dependencies:
+ get-intrinsic: 1.2.0
+
+ /has-proto/1.0.1:
+ resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /has-symbols/1.0.3:
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
+ engines: {node: '>= 0.4'}
+
+ /has-tostringtag/1.0.0:
+ resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.3
+
+ /has/1.0.3:
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
+ engines: {node: '>= 0.4.0'}
+ dependencies:
+ function-bind: 1.1.1
+
+ /header-case/2.0.4:
+ resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==}
+ dependencies:
+ capital-case: 1.0.4
+ tslib: 2.5.0
+ dev: false
+
+ /hey-listen/1.0.8:
+ resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==}
+ dev: false
+
+ /highlight.js/11.7.0:
+ resolution: {integrity: sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==}
+ engines: {node: '>=12.0.0'}
+ dev: false
+
+ /history/5.3.0:
+ resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==}
+ dependencies:
+ '@babel/runtime': 7.20.13
+ dev: false
+
+ /hoist-non-react-statics/3.3.2:
+ resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
+ dependencies:
+ react-is: 16.13.1
+ dev: false
+
+ /idb/7.1.1:
+ resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==}
+ dev: true
+
+ /ignore/5.2.4:
+ resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
+ engines: {node: '>= 4'}
+ dev: true
+
+ /import-fresh/3.3.0:
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ engines: {node: '>=6'}
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ /imurmurhash/0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+ dev: true
+
+ /inflight/1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+ dev: true
+
+ /inherits/2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: true
+
+ /internal-slot/1.0.4:
+ resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.0
+ has: 1.0.3
+ side-channel: 1.0.4
+ dev: true
+
+ /invariant/2.2.4:
+ resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
+ dependencies:
+ loose-envify: 1.4.0
+ dev: false
+
+ /is-arguments/1.1.1:
+ resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ has-tostringtag: 1.0.0
+ dev: false
+
+ /is-array-buffer/3.0.1:
+ resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.0
+ is-typed-array: 1.1.10
+ dev: true
+
+ /is-arrayish/0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+ /is-bigint/1.0.4:
+ resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
+ dependencies:
+ has-bigints: 1.0.2
+ dev: true
+
+ /is-boolean-object/1.1.2:
+ resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-callable/1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /is-core-module/2.11.0:
+ resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
+ dependencies:
+ has: 1.0.3
+
+ /is-date-object/1.0.5:
+ resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+
+ /is-extglob/2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-glob/4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+ dev: true
+
+ /is-module/1.0.0:
+ resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
+ dev: true
+
+ /is-negative-zero/2.0.2:
+ resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /is-number-object/1.0.7:
+ resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-number/7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+ dev: true
+
+ /is-obj/1.0.1:
+ resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-path-inside/3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-regex/1.1.4:
+ resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ has-tostringtag: 1.0.0
+
+ /is-regexp/1.0.0:
+ resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-shared-array-buffer/1.0.2:
+ resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
+ dependencies:
+ call-bind: 1.0.2
+ dev: true
+
+ /is-stream/2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-string/1.0.7:
+ resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-symbol/1.0.4:
+ resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.3
+ dev: true
+
+ /is-typed-array/1.1.10:
+ resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-weakref/1.0.2:
+ resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
+ dependencies:
+ call-bind: 1.0.2
+ dev: true
+
+ /isexe/2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ dev: true
+
+ /jake/10.8.5:
+ resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ async: 3.2.4
+ chalk: 4.1.2
+ filelist: 1.0.4
+ minimatch: 3.1.2
+ dev: true
+
+ /jest-worker/26.6.2:
+ resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
+ engines: {node: '>= 10.13.0'}
+ dependencies:
+ '@types/node': 18.11.18
+ merge-stream: 2.0.0
+ supports-color: 7.2.0
+ dev: true
+
+ /js-sdsl/4.3.0:
+ resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==}
+ dev: true
+
+ /js-tokens/4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ /js-yaml/4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ dev: true
+
+ /jsesc/0.5.0:
+ resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
+ hasBin: true
+ dev: true
+
+ /jsesc/2.5.2:
+ resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ /json-parse-even-better-errors/2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+ /json-schema-traverse/0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+ dev: true
+
+ /json-schema-traverse/1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+ dev: true
+
+ /json-schema/0.4.0:
+ resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
+ dev: true
+
+ /json-stable-stringify-without-jsonify/1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+ dev: true
+
+ /json5/1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+ dependencies:
+ minimist: 1.2.7
+ dev: true
+
+ /json5/2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ /jsonfile/6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+ dependencies:
+ universalify: 2.0.0
+ optionalDependencies:
+ graceful-fs: 4.2.10
+ dev: true
+
+ /jsonpointer/5.0.1:
+ resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /jsx-ast-utils/3.3.3:
+ resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==}
+ engines: {node: '>=4.0'}
+ dependencies:
+ array-includes: 3.1.6
+ object.assign: 4.1.4
+ dev: true
+
+ /jsx-runtime/1.2.0:
+ resolution: {integrity: sha512-iCxmRTlUAWmXwHZxN0JSx/T7eRi0SkKAskE0lp+j4W1mzdNp49ja/9QI2ZmlggPM95RqnDw5ioYjw0EcvpIClw==}
+ dependencies:
+ object-assign: 3.0.0
+ dev: false
+
+ /language-subtag-registry/0.3.22:
+ resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
+ dev: true
+
+ /language-tags/1.0.7:
+ resolution: {integrity: sha512-bSytju1/657hFjgUzPAPqszxH62ouE8nQFoFaVlIQfne4wO/wXC9A4+m8jYve7YBBvi59eq0SUpcshvG8h5Usw==}
+ dependencies:
+ language-subtag-registry: 0.3.22
+ dev: true
+
+ /leven/3.1.0:
+ resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /levn/0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ dev: true
+
+ /lines-and-columns/1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ /locate-path/6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-locate: 5.0.0
+ dev: true
+
+ /lodash-es/4.17.21:
+ resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
+ dev: false
+
+ /lodash.debounce/4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+
+ /lodash.memoize/4.1.2:
+ resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
+ dev: false
+
+ /lodash.merge/4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ dev: true
+
+ /lodash.sortby/4.7.0:
+ resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
+ dev: true
+
+ /lodash.throttle/4.1.1:
+ resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
+ dev: false
+
+ /lodash/4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+ /loose-envify/1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+ dependencies:
+ js-tokens: 4.0.0
+
+ /lower-case/2.0.2:
+ resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
+ dependencies:
+ tslib: 2.5.0
+ dev: false
+
+ /lru-cache/5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+ dependencies:
+ yallist: 3.1.1
+
+ /lru-cache/6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+ dependencies:
+ yallist: 4.0.0
+ dev: true
+
+ /magic-string/0.25.9:
+ resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
+ dependencies:
+ sourcemap-codec: 1.4.8
+ dev: true
+
+ /merge-stream/2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+ dev: true
+
+ /merge2/1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /micromatch/4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /mime-db/1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+ dev: false
+
+ /mime-types/2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-db: 1.52.0
+ dev: false
+
+ /minimatch/3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+ dev: true
+
+ /minimatch/5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+ dependencies:
+ brace-expansion: 2.0.1
+ dev: true
+
+ /minimist/1.2.7:
+ resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
+ dev: true
+
+ /ms/2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+
+ /ms/2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ dev: true
+
+ /nanoclone/0.2.1:
+ resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==}
+ dev: false
+
+ /nanoid/3.3.4:
+ resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+ dev: false
+
+ /natural-compare-lite/1.4.0:
+ resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
+ dev: true
+
+ /natural-compare/1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+ dev: true
+
+ /no-case/3.0.4:
+ resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+ dependencies:
+ lower-case: 2.0.2
+ tslib: 2.5.0
+ dev: false
+
+ /node-releases/2.0.9:
+ resolution: {integrity: sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==}
+
+ /notistack/3.0.0-alpha.11_pwge5r66yg44rq5pj4ruhckhdm:
+ resolution: {integrity: sha512-QfiVC1On1Zfs1UADxgRRhcVhAWveD3lBUKhDwx0GdXoSKii0UARz0tfJyIwwOxy5Lr+DOeAHz8Mvl1GwpeVnQQ==}
+ engines: {node: '>=12.0.0', npm: '>=6.0.0'}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ dependencies:
+ clsx: 1.2.1
+ goober: 2.1.11_csstype@3.1.1
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ transitivePeerDependencies:
+ - csstype
+ dev: false
+
+ /nprogress/0.2.0:
+ resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
+ dev: false
+
+ /numeral/2.0.6:
+ resolution: {integrity: sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==}
+ dev: false
+
+ /object-assign/3.0.0:
+ resolution: {integrity: sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /object-assign/4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ /object-inspect/1.12.3:
+ resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
+ dev: true
+
+ /object-is/1.1.5:
+ resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ dev: false
+
+ /object-keys/1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+
+ /object.assign/4.1.4:
+ resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ has-symbols: 1.0.3
+ object-keys: 1.1.1
+ dev: true
+
+ /object.entries/1.1.6:
+ resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ es-abstract: 1.21.1
+ dev: true
+
+ /object.fromentries/2.0.6:
+ resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ es-abstract: 1.21.1
+ dev: true
+
+ /object.hasown/1.1.2:
+ resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==}
+ dependencies:
+ define-properties: 1.1.4
+ es-abstract: 1.21.1
+ dev: true
+
+ /object.values/1.1.6:
+ resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ es-abstract: 1.21.1
+ dev: true
+
+ /once/1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+ dev: true
+
+ /optionator/0.9.1:
+ resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.3
+ dev: true
+
+ /p-limit/3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ yocto-queue: 0.1.0
+ dev: true
+
+ /p-locate/5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-limit: 3.1.0
+ dev: true
+
+ /param-case/3.0.4:
+ resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
+ dependencies:
+ dot-case: 3.0.4
+ tslib: 2.5.0
+ dev: false
+
+ /parchment/1.1.4:
+ resolution: {integrity: sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==}
+ dev: false
+
+ /parent-module/1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+ dependencies:
+ callsites: 3.1.0
+
+ /parse-json/5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@babel/code-frame': 7.18.6
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
+ /pascal-case/3.1.2:
+ resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
+ dependencies:
+ no-case: 3.0.4
+ tslib: 2.5.0
+ dev: false
+
+ /path-case/3.0.4:
+ resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==}
+ dependencies:
+ dot-case: 3.0.4
+ tslib: 2.5.0
+ dev: false
+
+ /path-exists/4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /path-is-absolute/1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /path-key/3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /path-parse/1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ /path-type/4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+
+ /picocolors/1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+
+ /picomatch/2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ /popmotion/11.0.3:
+ resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==}
+ dependencies:
+ framesync: 6.0.1
+ hey-listen: 1.0.8
+ style-value-types: 5.0.0
+ tslib: 2.5.0
+ dev: false
+
+ /postcss/8.4.21:
+ resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.4
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+ dev: false
+
+ /prelude-ls/1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+ dev: true
+
+ /prettier-linter-helpers/1.0.0:
+ resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ fast-diff: 1.2.0
+ dev: true
+
+ /prettier/2.8.3:
+ resolution: {integrity: sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ dev: true
+
+ /pretty-bytes/5.6.0:
+ resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /pretty-bytes/6.0.0:
+ resolution: {integrity: sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg==}
+ engines: {node: ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /prop-types/15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+
+ /property-expr/2.0.5:
+ resolution: {integrity: sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==}
+ dev: false
+
+ /punycode/2.3.0:
+ resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /queue-microtask/1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ dev: true
+
+ /quill-delta/3.6.3:
+ resolution: {integrity: sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==}
+ engines: {node: '>=0.10'}
+ dependencies:
+ deep-equal: 1.1.1
+ extend: 3.0.2
+ fast-diff: 1.1.2
+ dev: false
+
+ /quill/1.3.7:
+ resolution: {integrity: sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==}
+ dependencies:
+ clone: 2.1.2
+ deep-equal: 1.1.1
+ eventemitter3: 2.0.3
+ extend: 3.0.2
+ parchment: 1.1.4
+ quill-delta: 3.6.3
+ dev: false
+
+ /randombytes/2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+ dependencies:
+ safe-buffer: 5.2.1
+ dev: true
+
+ /react-apexcharts/1.4.0_rurziszfowucu2gmkqclv6xeru:
+ resolution: {integrity: sha512-DrcMV4aAMrUG+n6412yzyATWEyCDWlpPBBhVbpzBC4PDeuYU6iF84SmExbck+jx5MUm4U5PM3/T307Mc3kzc9Q==}
+ peerDependencies:
+ apexcharts: ^3.18.0
+ react: '>=0.13'
+ dependencies:
+ apexcharts: 3.36.3
+ prop-types: 15.8.1
+ react: 17.0.2
+ dev: false
+
+ /react-dom/17.0.2_react@17.0.2:
+ resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==}
+ peerDependencies:
+ react: 17.0.2
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react: 17.0.2
+ scheduler: 0.20.2
+ dev: false
+
+ /react-dropzone/14.2.3_react@17.0.2:
+ resolution: {integrity: sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==}
+ engines: {node: '>= 10.13'}
+ peerDependencies:
+ react: '>= 16.8 || 18.0.0'
+ dependencies:
+ attr-accept: 2.2.2
+ file-selector: 0.6.0
+ prop-types: 15.8.1
+ react: 17.0.2
+ dev: false
+
+ /react-fast-compare/3.2.0:
+ resolution: {integrity: sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==}
+ dev: false
+
+ /react-helmet-async/1.3.0_sfoxds7t5ydpegc3knd667wn6m:
+ resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
+ peerDependencies:
+ react: ^16.6.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0
+ dependencies:
+ '@babel/runtime': 7.20.13
+ invariant: 2.2.4
+ prop-types: 15.8.1
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ react-fast-compare: 3.2.0
+ shallowequal: 1.1.0
+ dev: false
+
+ /react-hook-form/7.43.0_react@17.0.2:
+ resolution: {integrity: sha512-/rVEz7T0gLdSFwPqutJ1kn2e0sQNyb9ci/hmwEYr2YG0KF/LSuRLvNrf9QWJM+gj88CjDpDW5Bh/1AD7B2+z9Q==}
+ engines: {node: '>=12.22.0'}
+ peerDependencies:
+ react: ^16.8.0 || ^17 || ^18
+ dependencies:
+ react: 17.0.2
+ dev: false
+
+ /react-intersection-observer/8.34.0_react@17.0.2:
+ resolution: {integrity: sha512-TYKh52Zc0Uptp5/b4N91XydfSGKubEhgZRtcg1rhTKABXijc4Sdr1uTp5lJ8TN27jwUsdXxjHXtHa0kPj704sw==}
+ peerDependencies:
+ react: ^15.0.0 || ^16.0.0 || ^17.0.0|| ^18.0.0
+ dependencies:
+ react: 17.0.2
+ dev: false
+
+ /react-is/16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+
+ /react-is/17.0.2:
+ resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
+ dev: false
+
+ /react-is/18.2.0:
+ resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
+ dev: false
+
+ /react-lazy-load-image-component/1.5.6_sfoxds7t5ydpegc3knd667wn6m:
+ resolution: {integrity: sha512-M0jeJtOlTHgThOfgYM9krSqYbR6ShxROy/KVankwbw9/amPKG1t5GSGN1sei6Cyu8+QJVuyAUvQ+LFtCVTTlKw==}
+ peerDependencies:
+ react: ^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x
+ react-dom: ^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x
+ dependencies:
+ lodash.debounce: 4.0.8
+ lodash.throttle: 4.1.1
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ dev: false
+
+ /react-quill/2.0.0-beta.4_sfoxds7t5ydpegc3knd667wn6m:
+ resolution: {integrity: sha512-KyAHvAlPjP4xLElKZJefMth91Z6FbbXRvq9OSu6xN3KBaoasLP9p+3dcxg4Ywr4tBlpMGXcPszYSAgd5CpJ45Q==}
+ peerDependencies:
+ react: ^16 || ^17
+ react-dom: ^16 || ^17
+ dependencies:
+ '@types/quill': 1.3.10
+ lodash: 4.17.21
+ quill: 1.3.7
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ dev: false
+
+ /react-refresh/0.13.0:
+ resolution: {integrity: sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /react-router-dom/6.8.0_sfoxds7t5ydpegc3knd667wn6m:
+ resolution: {integrity: sha512-hQouduSTywGJndE86CXJ2h7YEy4HYC6C/uh19etM+79FfQ6cFFFHnHyDlzO4Pq0eBUI96E4qVE5yUjA00yJZGQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ react: '>=16.8'
+ react-dom: '>=16.8'
+ dependencies:
+ '@remix-run/router': 1.3.1
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ react-router: 6.8.0_react@17.0.2
+ dev: false
+
+ /react-router/6.8.0_react@17.0.2:
+ resolution: {integrity: sha512-760bk7y3QwabduExtudhWbd88IBbuD1YfwzpuDUAlJUJ7laIIcqhMvdhSVh1Fur1PE8cGl84L0dxhR3/gvHF7A==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ react: '>=16.8'
+ dependencies:
+ '@remix-run/router': 1.3.1
+ react: 17.0.2
+ dev: false
+
+ /react-transition-group/4.4.5_sfoxds7t5ydpegc3knd667wn6m:
+ resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==}
+ peerDependencies:
+ react: '>=16.6.0'
+ react-dom: '>=16.6.0'
+ dependencies:
+ '@babel/runtime': 7.20.13
+ dom-helpers: 5.2.1
+ loose-envify: 1.4.0
+ prop-types: 15.8.1
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ dev: false
+
+ /react/17.0.2:
+ resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ dev: false
+
+ /regenerate-unicode-properties/10.1.0:
+ resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ regenerate: 1.4.2
+ dev: true
+
+ /regenerate/1.4.2:
+ resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
+ dev: true
+
+ /regenerator-runtime/0.13.11:
+ resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
+
+ /regenerator-transform/0.15.1:
+ resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==}
+ dependencies:
+ '@babel/runtime': 7.20.13
+ dev: true
+
+ /regexp.prototype.flags/1.4.3:
+ resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ functions-have-names: 1.2.3
+
+ /regexpp/3.2.0:
+ resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /regexpu-core/5.2.2:
+ resolution: {integrity: sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==}
+ engines: {node: '>=4'}
+ dependencies:
+ regenerate: 1.4.2
+ regenerate-unicode-properties: 10.1.0
+ regjsgen: 0.7.1
+ regjsparser: 0.9.1
+ unicode-match-property-ecmascript: 2.0.0
+ unicode-match-property-value-ecmascript: 2.1.0
+ dev: true
+
+ /regjsgen/0.7.1:
+ resolution: {integrity: sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==}
+ dev: true
+
+ /regjsparser/0.9.1:
+ resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
+ hasBin: true
+ dependencies:
+ jsesc: 0.5.0
+ dev: true
+
+ /require-from-string/2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /reselect/4.1.7:
+ resolution: {integrity: sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==}
+ dev: false
+
+ /resolve-from/4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ /resolve/1.22.1:
+ resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.11.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ /resolve/2.0.0-next.4:
+ resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.11.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /reusify/1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ dev: true
+
+ /rifm/0.12.1_react@17.0.2:
+ resolution: {integrity: sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==}
+ peerDependencies:
+ react: '>=16.8'
+ dependencies:
+ react: 17.0.2
+ dev: false
+
+ /rimraf/3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ hasBin: true
+ dependencies:
+ glob: 7.2.3
+ dev: true
+
+ /rollup-plugin-terser/7.0.2_rollup@2.79.1:
+ resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==}
+ deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser
+ peerDependencies:
+ rollup: ^2.0.0
+ dependencies:
+ '@babel/code-frame': 7.18.6
+ jest-worker: 26.6.2
+ rollup: 2.79.1
+ serialize-javascript: 4.0.0
+ terser: 5.16.2
+ dev: true
+
+ /rollup/2.79.1:
+ resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.2
+
+ /run-parallel/1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ dependencies:
+ queue-microtask: 1.2.3
+ dev: true
+
+ /safe-buffer/5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ dev: true
+
+ /safe-regex-test/1.0.0:
+ resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.0
+ is-regex: 1.1.4
+ dev: true
+
+ /scheduler/0.20.2:
+ resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==}
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ dev: false
+
+ /semver/6.3.0:
+ resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
+ hasBin: true
+
+ /semver/7.3.8:
+ resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+ dev: true
+
+ /sentence-case/3.0.4:
+ resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==}
+ dependencies:
+ no-case: 3.0.4
+ tslib: 2.5.0
+ upper-case-first: 2.0.2
+ dev: false
+
+ /serialize-javascript/4.0.0:
+ resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==}
+ dependencies:
+ randombytes: 2.1.0
+ dev: true
+
+ /shallowequal/1.1.0:
+ resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
+ dev: false
+
+ /shebang-command/2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+ dependencies:
+ shebang-regex: 3.0.0
+ dev: true
+
+ /shebang-regex/3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /side-channel/1.0.4:
+ resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.0
+ object-inspect: 1.12.3
+ dev: true
+
+ /simplebar-react/2.4.3_sfoxds7t5ydpegc3knd667wn6m:
+ resolution: {integrity: sha512-Ep8gqAUZAS5IC2lT5RE4t1ZFUIVACqbrSRQvFV9a6NbVUzXzOMnc4P82Hl8Ak77AnPQvmgUwZS7aUKLyBoMAcg==}
+ peerDependencies:
+ react: ^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0 || ^18.0.0
+ react-dom: ^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0 || ^18.0.0
+ dependencies:
+ prop-types: 15.8.1
+ react: 17.0.2
+ react-dom: 17.0.2_react@17.0.2
+ simplebar: 5.3.9
+ dev: false
+
+ /simplebar/5.3.9:
+ resolution: {integrity: sha512-1vIIpjDvY9sVH14e0LGeiCiTFU3ILqAghzO6OI9axeG+mvU/vMSrvXeAXkBolqFFz3XYaY8n5ahH9MeP3sp2Ag==}
+ dependencies:
+ '@juggle/resize-observer': 3.4.0
+ can-use-dom: 0.1.0
+ core-js: 3.27.2
+ lodash.debounce: 4.0.8
+ lodash.memoize: 4.1.2
+ lodash.throttle: 4.1.1
+ dev: false
+
+ /slash/3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /snake-case/3.0.4:
+ resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
+ dependencies:
+ dot-case: 3.0.4
+ tslib: 2.5.0
+ dev: false
+
+ /source-map-js/1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /source-map-support/0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+ dev: true
+
+ /source-map/0.5.7:
+ resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /source-map/0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /source-map/0.8.0-beta.0:
+ resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
+ engines: {node: '>= 8'}
+ dependencies:
+ whatwg-url: 7.1.0
+ dev: true
+
+ /sourcemap-codec/1.4.8:
+ resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
+ deprecated: Please use @jridgewell/sourcemap-codec instead
+ dev: true
+
+ /string-natural-compare/3.0.1:
+ resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==}
+ dev: true
+
+ /string.prototype.matchall/4.0.8:
+ resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ es-abstract: 1.21.1
+ get-intrinsic: 1.2.0
+ has-symbols: 1.0.3
+ internal-slot: 1.0.4
+ regexp.prototype.flags: 1.4.3
+ side-channel: 1.0.4
+ dev: true
+
+ /string.prototype.trimend/1.0.6:
+ resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ es-abstract: 1.21.1
+ dev: true
+
+ /string.prototype.trimstart/1.0.6:
+ resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.4
+ es-abstract: 1.21.1
+ dev: true
+
+ /stringify-object/3.3.0:
+ resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
+ engines: {node: '>=4'}
+ dependencies:
+ get-own-enumerable-property-symbols: 3.0.2
+ is-obj: 1.0.1
+ is-regexp: 1.0.0
+ dev: true
+
+ /strip-ansi/6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+ dev: true
+
+ /strip-bom/3.0.0:
+ resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /strip-comments/2.0.1:
+ resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /strip-json-comments/3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /style-value-types/5.0.0:
+ resolution: {integrity: sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==}
+ dependencies:
+ hey-listen: 1.0.8
+ tslib: 2.5.0
+ dev: false
+
+ /stylis-plugin-rtl/2.1.1_stylis@4.1.3:
+ resolution: {integrity: sha512-q6xIkri6fBufIO/sV55md2CbgS5c6gg9EhSVATtHHCdOnbN/jcI0u3lYhNVeuI65c4lQPo67g8xmq5jrREvzlg==}
+ peerDependencies:
+ stylis: 4.x
+ dependencies:
+ cssjanus: 2.1.0
+ stylis: 4.1.3
+ dev: false
+
+ /stylis/4.1.3:
+ resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==}
+ dev: false
+
+ /supports-color/5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+ dependencies:
+ has-flag: 3.0.0
+
+ /supports-color/7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+ dependencies:
+ has-flag: 4.0.0
+ dev: true
+
+ /supports-preserve-symlinks-flag/1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ /svg-parser/2.0.4:
+ resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
+ dev: false
+
+ /svg.draggable.js/2.2.2:
+ resolution: {integrity: sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ dev: false
+
+ /svg.easing.js/2.0.0:
+ resolution: {integrity: sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ dev: false
+
+ /svg.filter.js/2.0.2:
+ resolution: {integrity: sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ dev: false
+
+ /svg.js/2.7.1:
+ resolution: {integrity: sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==}
+ dev: false
+
+ /svg.pathmorphing.js/0.1.3:
+ resolution: {integrity: sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ dev: false
+
+ /svg.resize.js/1.4.3:
+ resolution: {integrity: sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ svg.select.js: 2.1.2
+ dev: false
+
+ /svg.select.js/2.1.2:
+ resolution: {integrity: sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ dev: false
+
+ /svg.select.js/3.0.1:
+ resolution: {integrity: sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ dev: false
+
+ /temp-dir/2.0.0:
+ resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /tempy/0.6.0:
+ resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==}
+ engines: {node: '>=10'}
+ dependencies:
+ is-stream: 2.0.1
+ temp-dir: 2.0.0
+ type-fest: 0.16.0
+ unique-string: 2.0.0
+ dev: true
+
+ /terser/5.16.2:
+ resolution: {integrity: sha512-JKuM+KvvWVqT7muHVyrwv7FVRPnmHDwF6XwoIxdbF5Witi0vu99RYpxDexpJndXt3jbZZmmWr2/mQa6HvSNdSg==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ '@jridgewell/source-map': 0.3.2
+ acorn: 8.8.2
+ commander: 2.20.3
+ source-map-support: 0.5.21
+ dev: true
+
+ /text-table/0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+ dev: true
+
+ /to-fast-properties/2.0.0:
+ resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+ engines: {node: '>=4'}
+
+ /to-regex-range/5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+ dev: true
+
+ /toposort/2.0.2:
+ resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==}
+ dev: false
+
+ /tr46/1.0.1:
+ resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
+ dependencies:
+ punycode: 2.3.0
+ dev: true
+
+ /tsconfig-paths/3.14.1:
+ resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==}
+ dependencies:
+ '@types/json5': 0.0.29
+ json5: 1.0.2
+ minimist: 1.2.7
+ strip-bom: 3.0.0
+ dev: true
+
+ /tslib/1.14.1:
+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
+ dev: true
+
+ /tslib/2.5.0:
+ resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
+ dev: false
+
+ /tsutils/3.21.0_typescript@4.9.5:
+ resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
+ 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'
+ dependencies:
+ tslib: 1.14.1
+ typescript: 4.9.5
+ dev: true
+
+ /type-check/0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ dev: true
+
+ /type-fest/0.16.0:
+ resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /type-fest/0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /typed-array-length/1.0.4:
+ resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
+ dependencies:
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ is-typed-array: 1.1.10
+ dev: true
+
+ /typescript/4.9.5:
+ resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+ dev: true
+
+ /unbox-primitive/1.0.2:
+ resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
+ dependencies:
+ call-bind: 1.0.2
+ has-bigints: 1.0.2
+ has-symbols: 1.0.3
+ which-boxed-primitive: 1.0.2
+ dev: true
+
+ /unicode-canonical-property-names-ecmascript/2.0.0:
+ resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /unicode-match-property-ecmascript/2.0.0:
+ resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
+ engines: {node: '>=4'}
+ dependencies:
+ unicode-canonical-property-names-ecmascript: 2.0.0
+ unicode-property-aliases-ecmascript: 2.1.0
+ dev: true
+
+ /unicode-match-property-value-ecmascript/2.1.0:
+ resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /unicode-property-aliases-ecmascript/2.1.0:
+ resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /unique-string/2.0.0:
+ resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
+ engines: {node: '>=8'}
+ dependencies:
+ crypto-random-string: 2.0.0
+ dev: true
+
+ /universalify/2.0.0:
+ resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
+ engines: {node: '>= 10.0.0'}
+ dev: true
+
+ /upath/1.2.0:
+ resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /update-browserslist-db/1.0.10_browserslist@4.21.5:
+ resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+ dependencies:
+ browserslist: 4.21.5
+ escalade: 3.1.1
+ picocolors: 1.0.0
+
+ /upper-case-first/2.0.2:
+ resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==}
+ dependencies:
+ tslib: 2.5.0
+ dev: false
+
+ /upper-case/2.0.2:
+ resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==}
+ dependencies:
+ tslib: 2.5.0
+ dev: false
+
+ /uri-js/4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+ dependencies:
+ punycode: 2.3.0
+ dev: true
+
+ /vite-plugin-pwa/0.12.8_vite@3.2.5:
+ resolution: {integrity: sha512-pSiFHmnJGMQJJL8aJzQ8SaraZBSBPMGvGUkCNzheIq9UQCEk/eP3UmANNmS9eupuhIpTK8AdxTOHcaMcAqAbCA==}
+ peerDependencies:
+ vite: ^2.0.0 || ^3.0.0-0
+ dependencies:
+ debug: 4.3.4
+ fast-glob: 3.2.12
+ pretty-bytes: 6.0.0
+ rollup: 2.79.1
+ vite: 3.2.5
+ workbox-build: 6.5.4
+ workbox-window: 6.5.4
+ transitivePeerDependencies:
+ - '@types/babel__core'
+ - supports-color
+ dev: true
+
+ /vite-plugin-svgr/2.4.0_vite@3.2.5:
+ resolution: {integrity: sha512-q+mJJol6ThvqkkJvvVFEndI4EaKIjSI0I3jNFgSoC9fXAz1M7kYTVUin8fhUsFojFDKZ9VHKtX6NXNaOLpbsHA==}
+ peerDependencies:
+ vite: ^2.6.0 || 3 || 4
+ dependencies:
+ '@rollup/pluginutils': 5.0.2
+ '@svgr/core': 6.5.1
+ vite: 3.2.5
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+ dev: false
+
+ /vite/3.2.5:
+ resolution: {integrity: sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': '>= 14'
+ less: '*'
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ dependencies:
+ esbuild: 0.15.18
+ postcss: 8.4.21
+ resolve: 1.22.1
+ rollup: 2.79.1
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: false
+
+ /webidl-conversions/4.0.2:
+ resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
+ dev: true
+
+ /whatwg-url/7.1.0:
+ resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
+ dependencies:
+ lodash.sortby: 4.7.0
+ tr46: 1.0.1
+ webidl-conversions: 4.0.2
+ dev: true
+
+ /which-boxed-primitive/1.0.2:
+ resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
+ dependencies:
+ is-bigint: 1.0.4
+ is-boolean-object: 1.1.2
+ is-number-object: 1.0.7
+ is-string: 1.0.7
+ is-symbol: 1.0.4
+ dev: true
+
+ /which-typed-array/1.1.9:
+ resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-tostringtag: 1.0.0
+ is-typed-array: 1.1.10
+ dev: true
+
+ /which/2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
+ dev: true
+
+ /word-wrap/1.2.3:
+ resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /workbox-background-sync/6.5.4:
+ resolution: {integrity: sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==}
+ dependencies:
+ idb: 7.1.1
+ workbox-core: 6.5.4
+ dev: true
+
+ /workbox-broadcast-update/6.5.4:
+ resolution: {integrity: sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==}
+ dependencies:
+ workbox-core: 6.5.4
+ dev: true
+
+ /workbox-build/6.5.4:
+ resolution: {integrity: sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==}
+ engines: {node: '>=10.0.0'}
+ dependencies:
+ '@apideck/better-ajv-errors': 0.3.6_ajv@8.12.0
+ '@babel/core': 7.20.12
+ '@babel/preset-env': 7.20.2_@babel+core@7.20.12
+ '@babel/runtime': 7.20.13
+ '@rollup/plugin-babel': 5.3.1_3dsfpkpoyvuuxyfgdbpn4j4uzm
+ '@rollup/plugin-node-resolve': 11.2.1_rollup@2.79.1
+ '@rollup/plugin-replace': 2.4.2_rollup@2.79.1
+ '@surma/rollup-plugin-off-main-thread': 2.2.3
+ ajv: 8.12.0
+ common-tags: 1.8.2
+ fast-json-stable-stringify: 2.1.0
+ fs-extra: 9.1.0
+ glob: 7.2.3
+ lodash: 4.17.21
+ pretty-bytes: 5.6.0
+ rollup: 2.79.1
+ rollup-plugin-terser: 7.0.2_rollup@2.79.1
+ 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.4
+ workbox-broadcast-update: 6.5.4
+ workbox-cacheable-response: 6.5.4
+ workbox-core: 6.5.4
+ workbox-expiration: 6.5.4
+ workbox-google-analytics: 6.5.4
+ workbox-navigation-preload: 6.5.4
+ workbox-precaching: 6.5.4
+ workbox-range-requests: 6.5.4
+ workbox-recipes: 6.5.4
+ workbox-routing: 6.5.4
+ workbox-strategies: 6.5.4
+ workbox-streams: 6.5.4
+ workbox-sw: 6.5.4
+ workbox-window: 6.5.4
+ transitivePeerDependencies:
+ - '@types/babel__core'
+ - supports-color
+ dev: true
+
+ /workbox-cacheable-response/6.5.4:
+ resolution: {integrity: sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==}
+ dependencies:
+ workbox-core: 6.5.4
+ dev: true
+
+ /workbox-core/6.5.4:
+ resolution: {integrity: sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==}
+ dev: true
+
+ /workbox-expiration/6.5.4:
+ resolution: {integrity: sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==}
+ dependencies:
+ idb: 7.1.1
+ workbox-core: 6.5.4
+ dev: true
+
+ /workbox-google-analytics/6.5.4:
+ resolution: {integrity: sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==}
+ dependencies:
+ workbox-background-sync: 6.5.4
+ workbox-core: 6.5.4
+ workbox-routing: 6.5.4
+ workbox-strategies: 6.5.4
+ dev: true
+
+ /workbox-navigation-preload/6.5.4:
+ resolution: {integrity: sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==}
+ dependencies:
+ workbox-core: 6.5.4
+ dev: true
+
+ /workbox-precaching/6.5.4:
+ resolution: {integrity: sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==}
+ dependencies:
+ workbox-core: 6.5.4
+ workbox-routing: 6.5.4
+ workbox-strategies: 6.5.4
+ dev: true
+
+ /workbox-range-requests/6.5.4:
+ resolution: {integrity: sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==}
+ dependencies:
+ workbox-core: 6.5.4
+ dev: true
+
+ /workbox-recipes/6.5.4:
+ resolution: {integrity: sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==}
+ dependencies:
+ workbox-cacheable-response: 6.5.4
+ workbox-core: 6.5.4
+ workbox-expiration: 6.5.4
+ workbox-precaching: 6.5.4
+ workbox-routing: 6.5.4
+ workbox-strategies: 6.5.4
+ dev: true
+
+ /workbox-routing/6.5.4:
+ resolution: {integrity: sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==}
+ dependencies:
+ workbox-core: 6.5.4
+ dev: true
+
+ /workbox-strategies/6.5.4:
+ resolution: {integrity: sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==}
+ dependencies:
+ workbox-core: 6.5.4
+ dev: true
+
+ /workbox-streams/6.5.4:
+ resolution: {integrity: sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==}
+ dependencies:
+ workbox-core: 6.5.4
+ workbox-routing: 6.5.4
+ dev: true
+
+ /workbox-sw/6.5.4:
+ resolution: {integrity: sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==}
+ dev: true
+
+ /workbox-window/6.5.4:
+ resolution: {integrity: sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==}
+ dependencies:
+ '@types/trusted-types': 2.0.2
+ workbox-core: 6.5.4
+ dev: true
+
+ /wrappy/1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+ dev: true
+
+ /yallist/3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+ /yallist/4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+ dev: true
+
+ /yaml/1.10.2:
+ resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
+ engines: {node: '>= 6'}
+
+ /yocto-queue/0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /yup/0.32.11:
+ resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==}
+ engines: {node: '>=10'}
+ dependencies:
+ '@babel/runtime': 7.20.13
+ '@types/lodash': 4.14.191
+ lodash: 4.17.21
+ lodash-es: 4.17.21
+ nanoclone: 0.2.1
+ property-expr: 2.0.5
+ toposort: 2.0.2
+ dev: false
diff --git a/frontend/hospital-portal/public/_redirects b/frontend/hospital-portal/public/_redirects
new file mode 100755
index 00000000..50a46335
--- /dev/null
+++ b/frontend/hospital-portal/public/_redirects
@@ -0,0 +1 @@
+/* /index.html 200
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/favicon/android-chrome-192x192.png b/frontend/hospital-portal/public/favicon/android-chrome-192x192.png
new file mode 100755
index 00000000..70c722f4
Binary files /dev/null and b/frontend/hospital-portal/public/favicon/android-chrome-192x192.png differ
diff --git a/frontend/hospital-portal/public/favicon/android-chrome-512x512.png b/frontend/hospital-portal/public/favicon/android-chrome-512x512.png
new file mode 100755
index 00000000..066477f7
Binary files /dev/null and b/frontend/hospital-portal/public/favicon/android-chrome-512x512.png differ
diff --git a/frontend/hospital-portal/public/favicon/apple-touch-icon.png b/frontend/hospital-portal/public/favicon/apple-touch-icon.png
new file mode 100755
index 00000000..2b289350
Binary files /dev/null and b/frontend/hospital-portal/public/favicon/apple-touch-icon.png differ
diff --git a/frontend/hospital-portal/public/favicon/favicon-16x16.png b/frontend/hospital-portal/public/favicon/favicon-16x16.png
new file mode 100755
index 00000000..37198cac
Binary files /dev/null and b/frontend/hospital-portal/public/favicon/favicon-16x16.png differ
diff --git a/frontend/hospital-portal/public/favicon/favicon-32x32.png b/frontend/hospital-portal/public/favicon/favicon-32x32.png
new file mode 100755
index 00000000..515d99b1
Binary files /dev/null and b/frontend/hospital-portal/public/favicon/favicon-32x32.png differ
diff --git a/frontend/hospital-portal/public/favicon/favicon.ico b/frontend/hospital-portal/public/favicon/favicon.ico
new file mode 100755
index 00000000..43a6b2ad
Binary files /dev/null and b/frontend/hospital-portal/public/favicon/favicon.ico differ
diff --git a/frontend/hospital-portal/public/fonts/CircularStd-Bold.otf b/frontend/hospital-portal/public/fonts/CircularStd-Bold.otf
new file mode 100755
index 00000000..3374c7bf
Binary files /dev/null and b/frontend/hospital-portal/public/fonts/CircularStd-Bold.otf differ
diff --git a/frontend/hospital-portal/public/fonts/CircularStd-Book.otf b/frontend/hospital-portal/public/fonts/CircularStd-Book.otf
new file mode 100755
index 00000000..e4c2e628
Binary files /dev/null and b/frontend/hospital-portal/public/fonts/CircularStd-Book.otf differ
diff --git a/frontend/hospital-portal/public/fonts/CircularStd-Medium.otf b/frontend/hospital-portal/public/fonts/CircularStd-Medium.otf
new file mode 100755
index 00000000..931f4159
Binary files /dev/null and b/frontend/hospital-portal/public/fonts/CircularStd-Medium.otf differ
diff --git a/frontend/hospital-portal/public/fonts/Roboto-Bold.ttf b/frontend/hospital-portal/public/fonts/Roboto-Bold.ttf
new file mode 100755
index 00000000..d998cf5b
Binary files /dev/null and b/frontend/hospital-portal/public/fonts/Roboto-Bold.ttf differ
diff --git a/frontend/hospital-portal/public/fonts/Roboto-Regular.ttf b/frontend/hospital-portal/public/fonts/Roboto-Regular.ttf
new file mode 100755
index 00000000..2b6392ff
Binary files /dev/null and b/frontend/hospital-portal/public/fonts/Roboto-Regular.ttf differ
diff --git a/frontend/hospital-portal/public/fonts/index.css b/frontend/hospital-portal/public/fonts/index.css
new file mode 100755
index 00000000..9ff95eef
--- /dev/null
+++ b/frontend/hospital-portal/public/fonts/index.css
@@ -0,0 +1,18 @@
+@font-face {
+ font-family: 'CircularStd';
+ font-weight: 400;
+ font-style: normal;
+ src: local('CircularStd'), url('CircularStd-Book.otf') format('opentype');
+}
+@font-face {
+ font-family: 'CircularStd';
+ font-weight: 500;
+ font-style: normal;
+ src: local('CircularStd'), url('CircularStd-Medium.otf') format('opentype');
+}
+@font-face {
+ font-family: 'CircularStd';
+ font-weight: 700;
+ font-style: normal;
+ src: local('CircularStd'), url('CircularStd-Bold.otf') format('opentype');
+}
diff --git a/frontend/hospital-portal/public/icons/ic_analytics.svg b/frontend/hospital-portal/public/icons/ic_analytics.svg
new file mode 100755
index 00000000..7c60ce51
--- /dev/null
+++ b/frontend/hospital-portal/public/icons/ic_analytics.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/icons/ic_banking.svg b/frontend/hospital-portal/public/icons/ic_banking.svg
new file mode 100755
index 00000000..3062152c
--- /dev/null
+++ b/frontend/hospital-portal/public/icons/ic_banking.svg
@@ -0,0 +1,5 @@
+
diff --git a/frontend/hospital-portal/public/icons/ic_blog.svg b/frontend/hospital-portal/public/icons/ic_blog.svg
new file mode 100755
index 00000000..c50eb249
--- /dev/null
+++ b/frontend/hospital-portal/public/icons/ic_blog.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/icons/ic_booking.svg b/frontend/hospital-portal/public/icons/ic_booking.svg
new file mode 100755
index 00000000..d24d76a1
--- /dev/null
+++ b/frontend/hospital-portal/public/icons/ic_booking.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/icons/ic_calendar.svg b/frontend/hospital-portal/public/icons/ic_calendar.svg
new file mode 100755
index 00000000..f5059ee0
--- /dev/null
+++ b/frontend/hospital-portal/public/icons/ic_calendar.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/icons/ic_cart.svg b/frontend/hospital-portal/public/icons/ic_cart.svg
new file mode 100755
index 00000000..b65a2963
--- /dev/null
+++ b/frontend/hospital-portal/public/icons/ic_cart.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/icons/ic_chat.svg b/frontend/hospital-portal/public/icons/ic_chat.svg
new file mode 100755
index 00000000..719d28b6
--- /dev/null
+++ b/frontend/hospital-portal/public/icons/ic_chat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/icons/ic_dashboard.svg b/frontend/hospital-portal/public/icons/ic_dashboard.svg
new file mode 100755
index 00000000..92028f09
--- /dev/null
+++ b/frontend/hospital-portal/public/icons/ic_dashboard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/icons/ic_ecommerce.svg b/frontend/hospital-portal/public/icons/ic_ecommerce.svg
new file mode 100755
index 00000000..15a4d2ac
--- /dev/null
+++ b/frontend/hospital-portal/public/icons/ic_ecommerce.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/icons/ic_kanban.svg b/frontend/hospital-portal/public/icons/ic_kanban.svg
new file mode 100755
index 00000000..8791ade6
--- /dev/null
+++ b/frontend/hospital-portal/public/icons/ic_kanban.svg
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/icons/ic_mail.svg b/frontend/hospital-portal/public/icons/ic_mail.svg
new file mode 100755
index 00000000..c493ce21
--- /dev/null
+++ b/frontend/hospital-portal/public/icons/ic_mail.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/icons/ic_user.svg b/frontend/hospital-portal/public/icons/ic_user.svg
new file mode 100755
index 00000000..d11ec005
--- /dev/null
+++ b/frontend/hospital-portal/public/icons/ic_user.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/image/overlay.png b/frontend/hospital-portal/public/image/overlay.png
new file mode 100644
index 00000000..a69d15cf
Binary files /dev/null and b/frontend/hospital-portal/public/image/overlay.png differ
diff --git a/frontend/hospital-portal/public/logo/logo-linksehat.png b/frontend/hospital-portal/public/logo/logo-linksehat.png
new file mode 100755
index 00000000..de1bbe31
Binary files /dev/null and b/frontend/hospital-portal/public/logo/logo-linksehat.png differ
diff --git a/frontend/hospital-portal/public/logo/logo_full.jpg b/frontend/hospital-portal/public/logo/logo_full.jpg
new file mode 100755
index 00000000..68a42fb4
Binary files /dev/null and b/frontend/hospital-portal/public/logo/logo_full.jpg differ
diff --git a/frontend/hospital-portal/public/logo/logo_full.svg b/frontend/hospital-portal/public/logo/logo_full.svg
new file mode 100755
index 00000000..374d1109
--- /dev/null
+++ b/frontend/hospital-portal/public/logo/logo_full.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/logo/logo_single.svg b/frontend/hospital-portal/public/logo/logo_single.svg
new file mode 100755
index 00000000..10fdd3b4
--- /dev/null
+++ b/frontend/hospital-portal/public/logo/logo_single.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/hospital-portal/public/manifest.json b/frontend/hospital-portal/public/manifest.json
new file mode 100755
index 00000000..7519a991
--- /dev/null
+++ b/frontend/hospital-portal/public/manifest.json
@@ -0,0 +1,20 @@
+{
+ "name": "React Material Minimal UI",
+ "short_name": "Minimal-UI",
+ "display": "standalone",
+ "start_url": "/",
+ "theme_color": "#000000",
+ "background_color": "#ffffff",
+ "icons": [
+ {
+ "src": "favicon/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "favicon/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ]
+}
diff --git a/frontend/hospital-portal/public/robots.txt b/frontend/hospital-portal/public/robots.txt
new file mode 100755
index 00000000..e9e57dc4
--- /dev/null
+++ b/frontend/hospital-portal/public/robots.txt
@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:
diff --git a/frontend/hospital-portal/src/@types/auth.ts b/frontend/hospital-portal/src/@types/auth.ts
new file mode 100755
index 00000000..3df73c76
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/auth.ts
@@ -0,0 +1,66 @@
+import { UserCredential } from 'firebase/auth';
+
+// ----------------------------------------------------------------------
+
+export type ActionMap = {
+ [Key in keyof M]: M[Key] extends undefined
+ ? {
+ type: Key;
+ }
+ : {
+ type: Key;
+ payload: M[Key];
+ };
+};
+
+export type AuthUser = null | Record;
+
+export type AuthState = {
+ isAuthenticated: boolean;
+ isInitialized: boolean;
+ user: AuthUser;
+};
+
+export type JWTContextType = {
+ isAuthenticated: boolean;
+ isInitialized: boolean;
+ user: AuthUser;
+ method: 'jwt';
+ login: (email: string, password: string) => Promise;
+ register: (email: string, password: string, firstName: string, lastName: string) => Promise;
+ logout: () => Promise;
+};
+
+export type FirebaseContextType = {
+ isAuthenticated: boolean;
+ isInitialized: boolean;
+ user: AuthUser;
+ method: 'firebase';
+ login: (email: string, password: string) => Promise;
+ register: (email: string, password: string, firstName: string, lastName: string) => Promise;
+ logout: () => Promise;
+};
+
+export type AWSCognitoContextType = {
+ isAuthenticated: boolean;
+ isInitialized: boolean;
+ user: AuthUser;
+ method: 'cognito';
+ login: (email: string, password: string) => Promise;
+ register: (
+ email: string,
+ password: string,
+ firstName: string,
+ lastName: string
+ ) => Promise;
+ logout: VoidFunction;
+};
+
+export type Auth0ContextType = {
+ isAuthenticated: boolean;
+ isInitialized: boolean;
+ user: AuthUser;
+ method: 'auth0';
+ login: () => Promise;
+ logout: VoidFunction;
+};
diff --git a/frontend/hospital-portal/src/@types/blog.ts b/frontend/hospital-portal/src/@types/blog.ts
new file mode 100755
index 00000000..cad70573
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/blog.ts
@@ -0,0 +1,55 @@
+export type NewPostFormValues = {
+ title: string;
+ description: string;
+ content: string;
+ cover: File | any;
+ tags: string[];
+ publish: boolean;
+ comments: boolean;
+ metaTitle: string;
+ metaDescription: string;
+ metaKeywords: string[];
+};
+
+export type PostComment = {
+ id: string;
+ name: string;
+ avatarUrl: string;
+ message: string;
+ postedAt: Date;
+ users: {
+ id: string;
+ name: string;
+ avatarUrl: string;
+ }[];
+ replyComment: {
+ id: string;
+ userId: string;
+ message: string;
+ postedAt: Date;
+ tagUser?: string;
+ }[];
+};
+
+export type Post = {
+ id: string;
+ cover: string;
+ title: string;
+ description: string;
+ createdAt: Date | string | number;
+ view: number;
+ comment: number;
+ share: number;
+ favorite: number;
+ author: {
+ name: string;
+ avatarUrl: string;
+ };
+ tags: string[];
+ body: string;
+ favoritePerson: {
+ name: string;
+ avatarUrl: string;
+ }[];
+ comments: PostComment[];
+};
diff --git a/frontend/hospital-portal/src/@types/calendar.ts b/frontend/hospital-portal/src/@types/calendar.ts
new file mode 100755
index 00000000..91ef5cc5
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/calendar.ts
@@ -0,0 +1,14 @@
+import { EventInput } from '@fullcalendar/common';
+
+// ----------------------------------------------------------------------
+
+export type CalendarView = 'dayGridMonth' | 'timeGridWeek' | 'timeGridDay' | 'listWeek';
+
+export type CalendarState = {
+ isLoading: boolean;
+ error: Error | string | null;
+ events: EventInput[];
+ isOpenModal: boolean;
+ selectedEventId: null | string;
+ selectedRange: null | { start: Date; end: Date };
+};
diff --git a/frontend/hospital-portal/src/@types/chat.ts b/frontend/hospital-portal/src/@types/chat.ts
new file mode 100755
index 00000000..887777e1
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/chat.ts
@@ -0,0 +1,65 @@
+// ----------------------------------------------------------------------
+
+export type Contact = {
+ id: string;
+ name: string;
+ username: string;
+ avatar: string;
+ address: string;
+ phone: string;
+ email: string;
+ lastActivity: Date | string | number;
+ status: string;
+ position: string;
+};
+
+export type Participant = {
+ id: string;
+ name: string;
+ username: string;
+ avatar: string;
+ address?: string;
+ phone?: string;
+ email?: string;
+ lastActivity?: Date | string | number;
+ status?: 'online' | 'offline' | 'away' | 'busy';
+ position?: string;
+};
+
+export type TextMessage = {
+ id: string;
+ body: string;
+ contentType: 'text';
+ attachments: string[];
+ createdAt: Date;
+ senderId: string;
+};
+
+export type ImageMessage = {
+ id: string;
+ body: string;
+ contentType: 'image';
+ attachments: string[];
+ createdAt: Date;
+ senderId: string;
+};
+
+export type Message = TextMessage | ImageMessage;
+
+export type Conversation = {
+ id: string;
+ participants: Participant[];
+ type: string;
+ unreadCount: number;
+ messages: Message[];
+};
+
+export type SendMessage = {
+ conversationId: string;
+ messageId: string;
+ message: string;
+ contentType: 'text';
+ attachments: string[];
+ createdAt: Date | string | number;
+ senderId: string;
+};
diff --git a/frontend/hospital-portal/src/@types/corporates.ts b/frontend/hospital-portal/src/@types/corporates.ts
new file mode 100755
index 00000000..03c941d7
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/corporates.ts
@@ -0,0 +1,183 @@
+// ----------------------------------------------------------------------
+
+export type Corporate = {
+ id: number;
+ code: string;
+ name?: string;
+ welcome_message?: string;
+ help_text?: string;
+ logo?: any;
+ logo_url?: string;
+ active: boolean | number;
+ divisions?: Division[];
+ employees?: Employee[];
+ current_policy?: Policy;
+};
+
+export type Division = {
+ id: number;
+ corporate_id: number;
+ code: string;
+ name?: string;
+}
+
+export type Employee = {
+ id: number;
+ name: string;
+}
+
+export type Policy = {
+ id: number;
+ corporate_id: number;
+ code: string;
+ total_premi: number;
+ minimal_deposit_percentage: number;
+ minimal_deposit_net: number;
+ minimal_alert_percentage: number;
+ minimal_alert_net: number;
+ minimal_stop_service_percentage: number;
+ minimal_stop_service_net: number;
+ start: string | Date;
+ end: string | Date;
+}
+
+export type CorporatePlan = {
+ id: number;
+ corporate_id: number;
+ code: string;
+ name: string;
+ description: string | null;
+ active: boolean | number;
+}
+
+export type Plan = {
+ id: number;
+ corporate_plan: CorporatePlan | null;
+ service_code: string;
+ corporate_plan_id: string;
+ code: string;
+ type: string;
+ start: string;
+ end: string;
+ require_referral: string;
+ referral_source: string;
+ referral_duration: string;
+ family_plan: string;
+ family_plan_share_rules: string;
+ limit_rules: string;
+ layer: string;
+ layer_conditions: string;
+ budget_type: string;
+ budget_code: string;
+ budget_conditions: string;
+ surgery_limit: string;
+ non_surgery_limit: string;
+ max_claim_limit: string;
+ max_claim_count: string;
+ area_limit: string;
+ limit_shared_plans: string;
+ limit_shared_plan_type: string;
+ cashless_percentage: string;
+ reimbursement_percentage: string;
+ digital_percentage: string;
+ co_share_m_percentage: string;
+ co_share_s_percentage: string;
+ co_share_c_percentage: string;
+ cashless_deductible: string;
+ reimbursement_deductible: string;
+ digital_deductible: string;
+ co_share_m_deductible: string;
+ co_share_s_deductible: string;
+ co_share_c_deductible: string;
+ co_share_deductible_condition: string;
+ msc: string;
+ genders: string;
+ min_age: string;
+ max_age: string;
+ rule_of_excess: string;
+ max_excess_covered: string;
+ prorate_type: string;
+ prorate_lookup: string;
+ currency: string;
+ max_surgery_reinstatement_days: string;
+ max_surgery_periode_days: string;
+}
+
+export type CorporateBenefit = {
+ id: number;
+ corporate_id: number;
+ code: string;
+ name: string;
+ description: string | null;
+ active: boolean | number;
+}
+
+export type Benefit = {
+ service_code : string;
+ plan_code : string;
+ benefit_code : string;
+ code : string;
+ description : string;
+ budget : string;
+ budget_conditions : string;
+ budget_code : string;
+ primary_benefit_code : string;
+ benefit_mode : string;
+ room_class_coverage : string;
+ max_bed_coverage : string;
+ tolerance_parameter : string;
+ max_room_class : string;
+ limit_amount : string;
+ area_limit : string;
+ shared_benefit : string;
+ shared_benefit_type : string;
+ msc : string;
+ genders : string;
+ min_age : string;
+ max_age : string;
+ max_frequency_period : string;
+ daily_frequency : string;
+ weekly_frequency : string;
+ monthly_frequency : string;
+ yearly_frequency : string;
+ custom_frequency_days : string;
+ custom_duration_value : string;
+ allowed_transaction_types : string;
+ high_plan_factor : string;
+ pre_post_treatment : string;
+ pre_treatment_days : string;
+ post_treatment_days : string;
+ layer_type_1 : string;
+ layer_value_1 : string;
+ layer_type_2 : string;
+ layer_value_2 : string;
+ cashless_percentage : string;
+ reimbursement_percentage : string;
+ digital_percentage : string;
+ co_share_m_percentage : string;
+ co_share_s_percentage : string;
+ co_share_c_percentage : string;
+ cashless_deductible : string;
+ reimbursement_deductible : string;
+ digital_deductible : string;
+ co_share_m_deductible : string;
+ co_share_s_deductible : string;
+ co_share_c_deductible : string;
+ prorate_type : string;
+ prorate_lookup : string;
+ max_days_for_disability : string;
+ max_period_for_disability : string;
+ currency : string;
+ show_benefit_item : string;
+ show_benefit_value : string;
+}
+
+export type CorporateService = {
+ id?: string | number;
+ corporate_id?: string | number;
+ description?: string;
+ name?: string;
+ service_code: string;
+ status: string;
+ configurations: any;
+}
diff --git a/frontend/hospital-portal/src/@types/diagnosis.ts b/frontend/hospital-portal/src/@types/diagnosis.ts
new file mode 100755
index 00000000..a33734b5
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/diagnosis.ts
@@ -0,0 +1,11 @@
+export type Icd = {
+ id: number;
+ type: string;
+ rev: string;
+ version?: string;
+ code: string;
+ name: string;
+ description?: any;
+ childs?: Icd[];
+ status: string;
+};
diff --git a/frontend/hospital-portal/src/@types/doctor.tsx b/frontend/hospital-portal/src/@types/doctor.tsx
new file mode 100644
index 00000000..0d2925b4
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/doctor.tsx
@@ -0,0 +1,51 @@
+export type Organizations = {
+ id: number;
+ code: string;
+ name: string;
+ address: string;
+ type: string;
+ lat: string;
+ lng: string;
+ phone: string;
+ timezone: string;
+ active: boolean | number;
+};
+
+export type PractitionerRole = {
+ meta: string;
+ practitioner_id: number;
+ organization_id: number;
+ identifier_id: number;
+ speciality_id: number;
+ period_start: string;
+ period_end: string;
+ active: boolean | number;
+};
+
+export type Specialities = {
+ id: number;
+ code: string;
+ name: string;
+};
+
+export type Practitioner = {
+ id: number;
+ name: string;
+ name_prefix: string;
+ name_suffix: string;
+ address: string;
+ birth_date: string;
+ birth_place: string;
+ phone: string;
+ email: string;
+ gender: string;
+ description: string;
+ avatar_url: string;
+ doctor_id: string;
+ education: string;
+ experience: string;
+ award: string;
+ active: boolean | number;
+ organizations?: Organizations[];
+ specialities?: Specialities[];
+};
diff --git a/frontend/hospital-portal/src/@types/invoice.ts b/frontend/hospital-portal/src/@types/invoice.ts
new file mode 100755
index 00000000..0e845bdc
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/invoice.ts
@@ -0,0 +1,36 @@
+// ----------------------------------------------------------------------
+
+export type InvoiceAddress = {
+ id: string;
+ name: string;
+ address: string;
+ company: string;
+ email: string;
+ phone: string;
+};
+
+export type InvoiceItem = {
+ id: string;
+ title: string;
+ description: string;
+ quantity: number;
+ price: number;
+ total: number;
+ service: string;
+};
+
+export type Invoice = {
+ id: string;
+ sent: number;
+ status: string;
+ totalPrice: number;
+ invoiceNumber: string;
+ subTotalPrice: number;
+ taxes: number | string;
+ discount: number | string;
+ invoiceFrom: InvoiceAddress;
+ invoiceTo: InvoiceAddress;
+ createDate: Date | number;
+ dueDate: Date | number;
+ items: InvoiceItem[];
+};
diff --git a/frontend/hospital-portal/src/@types/kanban.ts b/frontend/hospital-portal/src/@types/kanban.ts
new file mode 100755
index 00000000..c7b5f84d
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/kanban.ts
@@ -0,0 +1,37 @@
+export type CardComment = {
+ id: string;
+ avatar: string;
+ name: string;
+ createdAt: Date | string | number;
+ messageType: 'image' | 'text';
+ message: string;
+};
+
+export type Assignee = {
+ id: string;
+ avatar: string;
+ name: string;
+};
+
+export type KanbanCard = {
+ id: string;
+ name: string;
+ description?: string;
+ assignee: Assignee[];
+ due: [number | null, number | null];
+ attachments: string[];
+ comments: CardComment[];
+ completed: boolean;
+};
+
+export type KanbanColumn = {
+ id: string;
+ name: string;
+ cardIds: string[];
+};
+
+export type KanbanBoard = {
+ cards: KanbanCard[];
+ columns: KanbanColumn[];
+ columnOrder: string[];
+};
diff --git a/frontend/hospital-portal/src/@types/mail.ts b/frontend/hospital-portal/src/@types/mail.ts
new file mode 100755
index 00000000..a568f086
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/mail.ts
@@ -0,0 +1,45 @@
+// ----------------------------------------------------------------------
+
+export type MailLabelId =
+ | 'all'
+ | 'inbox'
+ | 'sent'
+ | 'drafts'
+ | 'trash'
+ | 'spam'
+ | 'important'
+ | 'starred'
+ | 'id_social'
+ | 'id_promotions'
+ | 'id_forums';
+
+export type MailLabel = {
+ id: MailLabelId;
+ type: string;
+ name: string;
+ unreadCount: number;
+ color?: string;
+};
+
+export type Mail = {
+ id: string;
+ labelIds: string[];
+ folder: string | undefined;
+ isImportant: boolean;
+ isStarred: boolean;
+ isUnread: boolean;
+ subject: string;
+ message: string;
+ createdAt: Date | string | number;
+ files: string[];
+ from: {
+ name: string;
+ email: string;
+ avatar: null | string;
+ };
+ to: {
+ name: string;
+ email: string;
+ avatar: null | string;
+ }[];
+};
diff --git a/frontend/hospital-portal/src/@types/member.ts b/frontend/hospital-portal/src/@types/member.ts
new file mode 100755
index 00000000..c38b0640
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/member.ts
@@ -0,0 +1,21 @@
+// ----------------------------------------------------------------------
+
+export type Member = {
+ id: string,
+ member_id: string,
+ record_type: string,
+ payor_id: string,
+ user_id: string,
+ name_prefix: string,
+ name: string,
+ name_suffix: string,
+ birth_date: string,
+ gender: string,
+ language: string,
+ race: string,
+ marital_status: string,
+ principal_id: string,
+ relation_with_principal: string,
+ bpjs_class: string,
+ active: string,
+};
diff --git a/frontend/hospital-portal/src/@types/organization.tsx b/frontend/hospital-portal/src/@types/organization.tsx
new file mode 100644
index 00000000..d5348677
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/organization.tsx
@@ -0,0 +1,51 @@
+export type Organizations = {
+ id: number;
+ code: string;
+ name: string;
+ address: string;
+ type: string;
+ lat: string;
+ lng: string;
+ phone: string;
+ timezone: string;
+ active: boolean | number;
+ province_id: number;
+ city_id: number;
+ district_id: number;
+ village_id: number;
+ postal_code: string;
+ description: string;
+ technology: string;
+ support_services: string;
+ merchant_code: string;
+ merchant_key: string;
+ image_url: string;
+ region_groups: string;
+};
+
+export type Provinces = {
+ id: number;
+ name: string;
+ code: string;
+};
+
+export type Cities = {
+ id: number;
+ name: string;
+ code: string;
+ province_id: number;
+};
+
+export type Districts = {
+ id: number;
+ name: string;
+ code: string;
+ city_id: number;
+};
+
+export type Villages = {
+ id: number;
+ name: string;
+ code: string;
+ district_id: number;
+};
diff --git a/frontend/hospital-portal/src/@types/paginated-data.ts b/frontend/hospital-portal/src/@types/paginated-data.ts
new file mode 100755
index 00000000..eca6d930
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/paginated-data.ts
@@ -0,0 +1,29 @@
+export type LaravelPaginatedData = {
+ current_page: number;
+ data: any[];
+ path: string;
+ first_page_url: string;
+ last_page: number;
+ last_page_url: string;
+ next_page_url?: string;
+ prev_page_url?: string;
+ per_page: number;
+ from?: number;
+ to?: number;
+ total: number;
+}
+
+export const LaravelPaginatedDataDefault = {
+ current_page: 1,
+ data: [],
+ path: "",
+ first_page_url: "",
+ last_page: 1,
+ last_page_url: "",
+ next_page_url: "",
+ prev_page_url: "",
+ per_page: 10,
+ from: 0,
+ to: 0,
+ total: 0
+}
\ No newline at end of file
diff --git a/frontend/hospital-portal/src/@types/product.ts b/frontend/hospital-portal/src/@types/product.ts
new file mode 100755
index 00000000..b0683037
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/product.ts
@@ -0,0 +1,126 @@
+// ----------------------------------------------------------------------
+
+export type PaymentType = 'paypal' | 'credit_card' | 'cash';
+
+export type ProductStatus = 'sale' | 'new' | '';
+
+export type ProductInventoryType = 'in_stock' | 'out_of_stock' | 'low_stock';
+
+export type ProductCategory = 'Accessories' | 'Apparel' | 'Shoes' | string;
+
+export type ProductGender = 'Men' | 'Women' | 'Kids' | string;
+
+export type OnCreateBilling = (address: BillingAddress) => void;
+
+export type ProductRating = {
+ name: string;
+ starCount: number;
+ reviewCount: number;
+};
+
+export type ProductReview = {
+ id: string;
+ name: string;
+ avatarUrl: string;
+ comment: string;
+ rating: number;
+ isPurchased: boolean;
+ helpful: number;
+ postedAt: Date | string | number;
+};
+
+export type Product = {
+ id: string;
+ cover: string;
+ images: string[];
+ name: string;
+ price: number;
+ code: string;
+ sku: string;
+ tags: string[];
+ priceSale: number | null;
+ totalRating: number;
+ totalReview: number;
+ ratings: ProductRating[];
+ reviews: ProductReview[];
+ colors: string[];
+ status: ProductStatus;
+ inventoryType: ProductInventoryType;
+ sizes: string[];
+ available: number;
+ description: string;
+ sold: number;
+ createdAt: Date | string | number;
+ category: ProductCategory;
+ gender: ProductGender;
+};
+
+export type CartItem = {
+ id: string;
+ name: string;
+ cover: string;
+ available: number;
+ price: number;
+ color: string;
+ size: string;
+ quantity: number;
+ subtotal: number;
+};
+
+export type BillingAddress = {
+ receiver: string;
+ phone: string;
+ fullAddress: string;
+ addressType: string;
+ isDefault: boolean;
+};
+
+export type ProductState = {
+ isLoading: boolean;
+ error: Error | string | null;
+ products: Product[];
+ product: Product | null;
+ sortBy: string | null;
+ filters: {
+ gender: string[];
+ category: string;
+ colors: string[];
+ priceRange: string;
+ rating: string;
+ };
+ checkout: {
+ activeStep: number;
+ cart: CartItem[];
+ subtotal: number;
+ total: number;
+ discount: number;
+ shipping: number;
+ billing: BillingAddress | null;
+ };
+};
+
+export type ProductFilter = {
+ gender: string[];
+ category: string;
+ colors: string[];
+ priceRange: string;
+ rating: string;
+};
+
+export type DeliveryOption = {
+ value: number;
+ title: string;
+ description: string;
+};
+
+export type PaymentOption = {
+ value: PaymentType;
+ title: string;
+ description: string;
+ icons: string[];
+};
+
+export type CardOption = {
+ value: string;
+ label: string;
+};
diff --git a/frontend/hospital-portal/src/@types/user.ts b/frontend/hospital-portal/src/@types/user.ts
new file mode 100755
index 00000000..df02c82e
--- /dev/null
+++ b/frontend/hospital-portal/src/@types/user.ts
@@ -0,0 +1,128 @@
+// ----------------------------------------------------------------------
+
+export type UserInvoice = {
+ id: string;
+ createdAt: Date | string | number;
+ price: number;
+};
+
+export type CreditCard = {
+ id: string;
+ cardNumber: string;
+ cardType: string;
+};
+
+export type Follower = {
+ id: string;
+ avatarUrl: string;
+ name: string;
+ country: string;
+ isFollowed: boolean;
+};
+
+export type Gallery = {
+ id: string;
+ title: string;
+ postAt: Date | string | number;
+ imageUrl: string;
+};
+
+export type UserAddressBook = {
+ id: string;
+ name: string;
+ phone: string;
+ country: string;
+ state: string;
+ city: string;
+ street: string;
+ zipCode: string;
+};
+
+export type Profile = {
+ id: string;
+ cover: string;
+ position: string;
+ follower: number;
+ following: number;
+ quote: string;
+ country: string;
+ email: string;
+ company: string;
+ school: string;
+ role: string;
+ facebookLink: string;
+ instagramLink: string;
+ linkedinLink: string;
+ twitterLink: string;
+};
+
+export type UserManager = {
+ id: string;
+ avatarUrl: string;
+ name: string;
+ email: string;
+ phoneNumber: string;
+ address: string;
+ country: string;
+ state: string;
+ city: string;
+ zipCode: string;
+ company: string;
+ isVerified: boolean;
+ status: string;
+ role: string;
+};
+
+export type UserData = {
+ id: string;
+ avatarUrl: string;
+ cover: string;
+ name: string;
+ follower: number;
+ following: number;
+ totalPost: number;
+ position: string;
+};
+
+export type NotificationSettings = {
+ activityComments: boolean;
+ activityAnswers: boolean;
+ activityFollows: boolean;
+ applicationNews: boolean;
+ applicationProduct: boolean;
+ applicationBlog: boolean;
+};
+
+export type Friend = {
+ id: string;
+ avatarUrl: string;
+ name: string;
+ role: string;
+};
+
+export type UserPost = {
+ id: string;
+ author: {
+ id: string;
+ avatarUrl: string;
+ name: string;
+ };
+ isLiked: boolean;
+ createdAt: Date | string | number;
+ media: string;
+ message: string;
+ personLikes: {
+ name: string;
+ avatarUrl: string;
+ }[];
+ comments: {
+ id: string;
+ author: {
+ id: string;
+ avatarUrl: string;
+ name: string;
+ };
+ createdAt: Date | string | number;
+ message: string;
+ }[];
+};
diff --git a/frontend/hospital-portal/src/App.tsx b/frontend/hospital-portal/src/App.tsx
new file mode 100755
index 00000000..33c51771
--- /dev/null
+++ b/frontend/hospital-portal/src/App.tsx
@@ -0,0 +1,33 @@
+// routes
+import Router from './routes';
+// theme
+import ThemeProvider from './theme';
+// components
+import Settings from './components/settings';
+import RtlLayout from './components/RtlLayout';
+import ScrollToTop from './components/ScrollToTop';
+import { ProgressBarStyle } from './components/ProgressBar';
+import ThemeColorPresets from './components/ThemeColorPresets';
+import MotionLazyContainer from './components/animate/MotionLazyContainer';
+import { SnackbarProvider } from 'notistack';
+
+// ----------------------------------------------------------------------
+
+export default function App() {
+ return (
+
+
+
+
+
+
+ {/* */}
+
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/_mock/_analytics.tsx b/frontend/hospital-portal/src/_mock/_analytics.tsx
new file mode 100755
index 00000000..932c1dea
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/_analytics.tsx
@@ -0,0 +1,50 @@
+// components
+import Iconify from '../components/Iconify';
+//
+import _mock from './_mock';
+
+// ----------------------------------------------------------------------
+
+export const _analyticPost = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ title: _mock.text.title(index),
+ description: _mock.text.description(index),
+ image: _mock.image.cover(index),
+ postedAt: _mock.time(index),
+}));
+
+export const _analyticOrderTimeline = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ title: [
+ '1983, orders, $4220',
+ '12 Invoices have been paid',
+ 'Order #37745 from September',
+ 'New order placed #XF-2356',
+ 'New order placed #XF-2346',
+ ][index],
+ type: `order${index + 1}`,
+ time: _mock.time(index),
+}));
+
+export const _analyticTraffic = [
+ {
+ name: 'FaceBook',
+ value: 323234,
+ icon: ,
+ },
+ {
+ name: 'Google',
+ value: 341212,
+ icon: ,
+ },
+ {
+ name: 'Linkedin',
+ value: 411213,
+ icon: ,
+ },
+ {
+ name: 'Twitter',
+ value: 443232,
+ icon: ,
+ },
+];
diff --git a/frontend/hospital-portal/src/_mock/_app.ts b/frontend/hospital-portal/src/_mock/_app.ts
new file mode 100755
index 00000000..d72405b8
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/_app.ts
@@ -0,0 +1,52 @@
+import { noCase } from 'change-case';
+// _mock
+import _mock from './_mock';
+import { randomNumberRange, randomInArray } from './funcs';
+
+// ----------------------------------------------------------------------
+
+export const _appRelated = ['Chrome', 'Drive', 'Dropbox', 'Evernote', 'Github'].map(
+ (appName, index) => ({
+ id: _mock.id(index),
+ name: appName,
+ system: (index === 2 && 'Windows') || (index === 4 && 'Windows') || 'Mac',
+ price: index === 0 || index === 2 || index === 4 ? 0 : _mock.number.price(index),
+ rating: _mock.number.rating(index),
+ review: randomNumberRange(999, 99999),
+ shortcut: `https://minimal-assets-api.vercel.app/assets/icons/ic_${noCase(appName)}.svg`,
+ })
+);
+
+export const _appInstalled = ['de', 'en', 'fr', 'kr', 'us'].map((country, index) => ({
+ id: _mock.id(index),
+ name: ['Germany', 'England', 'France', 'Korean', 'USA'][index],
+ android: randomNumberRange(999, 99999),
+ windows: randomNumberRange(999, 99999),
+ apple: randomNumberRange(999, 99999),
+ flag: `https://minimal-assets-api.vercel.app/assets/icons/ic_flag_${country}.svg`,
+}));
+
+export const _appAuthors = [...Array(3)].map((_, index) => ({
+ id: _mock.id(index),
+ name: _mock.name.fullName(index),
+ avatar: _mock.image.avatar(index),
+ favourite: randomNumberRange(9999, 19999),
+}));
+
+export const _appInvoices = [...Array(5)].map((_, index) => ({
+ id: `${Date.now() + index}`,
+ price: _mock.number.price(index),
+ category: randomInArray(['Android', 'Mac', 'Windows']),
+ status: randomInArray(['paid', 'out_of_date', 'in_progress']),
+}));
+
+export const _appFeatured = [...Array(3)].map((_, index) => ({
+ id: _mock.id(index),
+ title: [
+ 'Harry Potter and the Deathly Hallows - Part 2',
+ 'Disney Zombies 2',
+ 'Lightroom mobile - Koloro',
+ ][index],
+ description: _mock.text.title(index),
+ image: _mock.image.feed(index),
+}));
diff --git a/frontend/hospital-portal/src/_mock/_banking.ts b/frontend/hospital-portal/src/_mock/_banking.ts
new file mode 100755
index 00000000..a607194b
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/_banking.ts
@@ -0,0 +1,102 @@
+import _mock from './_mock';
+
+// ----------------------------------------------------------------------
+
+export const _bankingContacts = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ name: _mock.name.fullName(index),
+ email: _mock.email(index),
+ avatar: _mock.image.avatar(index + 4),
+}));
+
+export const _bankingQuickTransfer = [...Array(12)].map((_, index) => ({
+ id: _mock.id(index),
+ name: _mock.name.fullName(index),
+ email: _mock.email(index),
+ avatar: _mock.image.avatar(index),
+}));
+
+export const _bankingCreditCard = [
+ {
+ id: _mock.id(2),
+ balance: 23432.03,
+ cardType: 'mastercard',
+ cardHolder: _mock.name.fullName(2),
+ cardNumber: '**** **** **** 3640',
+ cardValid: '11/22',
+ },
+ {
+ id: _mock.id(3),
+ balance: 18000.23,
+ cardType: 'visa',
+ cardHolder: _mock.name.fullName(3),
+ cardNumber: '**** **** **** 8864',
+ cardValid: '11/25',
+ },
+ {
+ id: _mock.id(4),
+ balance: 2000.89,
+ cardType: 'mastercard',
+ cardHolder: _mock.name.fullName(4),
+ cardNumber: '**** **** **** 7755',
+ cardValid: '11/22',
+ },
+];
+
+export const _bankingRecentTransitions = [
+ {
+ id: _mock.id(2),
+ name: _mock.name.fullName(2),
+ avatar: _mock.image.avatar(8),
+ type: 'Income',
+ message: 'Receive money from',
+ category: 'Annette Black',
+ date: 1627556358365,
+ status: 'in_progress',
+ amount: 811.45,
+ },
+ {
+ id: _mock.id(3),
+ name: _mock.name.fullName(3),
+ avatar: _mock.image.avatar(9),
+ type: 'Expenses',
+ message: 'Payment for',
+ category: 'Courtney Henry',
+ date: 1627556329038,
+ status: 'completed',
+ amount: 436.03,
+ },
+ {
+ id: _mock.id(4),
+ name: _mock.name.fullName(4),
+ avatar: _mock.image.avatar(12),
+ type: 'Receive',
+ message: 'Payment for',
+ category: 'Theresa Webb',
+ date: 1627556339677,
+ status: 'failed',
+ amount: 82.26,
+ },
+ {
+ id: _mock.id(5),
+ name: null,
+ avatar: null,
+ type: 'Expenses',
+ message: 'Payment for',
+ category: 'Beauty & Health',
+ date: 1627547330510,
+ status: 'completed',
+ amount: 480.73,
+ },
+ {
+ id: _mock.id(6),
+ name: null,
+ avatar: null,
+ type: 'Expenses',
+ message: 'Payment for',
+ category: 'Books',
+ date: 1627556347676,
+ status: 'in_progress',
+ amount: 11.45,
+ },
+];
diff --git a/frontend/hospital-portal/src/_mock/_booking.ts b/frontend/hospital-portal/src/_mock/_booking.ts
new file mode 100755
index 00000000..cf0451c9
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/_booking.ts
@@ -0,0 +1,42 @@
+import _mock from './_mock';
+import { randomInArray } from './funcs';
+
+// ----------------------------------------------------------------------
+
+export const _bookings = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ name: _mock.name.fullName(index),
+ avatar: _mock.image.avatar(index),
+ checkIn: _mock.time(index),
+ checkOut: _mock.time(index),
+ phoneNumber: _mock.phoneNumber(index),
+ status: randomInArray(['pending', 'un_paid', 'paid']),
+ roomType: randomInArray(['double', 'king', 'single']),
+}));
+
+export const _bookingsOverview = [...Array(3)].map((_, index) => ({
+ status: ['Pending', 'Cancel', 'Done'][index],
+ quantity: _mock.number.percent(index) * 1000,
+ value: _mock.number.percent(index),
+}));
+
+export const _bookingReview = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ name: _mock.name.fullName(index),
+ description: _mock.text.description(index),
+ avatar: _mock.image.avatar(index),
+ rating: _mock.number.rating(index),
+ postedAt: _mock.time(index),
+ tags: ['Great Sevice', 'Recommended', 'Best Price'],
+}));
+
+export const _bookingNew = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ name: _mock.name.fullName(index),
+ avatar: _mock.image.avatar(index),
+ bookdAt: _mock.time(index),
+ roomNumber: 'A-21',
+ roomType: randomInArray(['double', 'king', 'single']),
+ person: '3-5',
+ cover: `https://minimal-assets-api.vercel.app/assets/images/rooms/room-${index + 1}.jpg`,
+}));
diff --git a/frontend/hospital-portal/src/_mock/_countries.ts b/frontend/hospital-portal/src/_mock/_countries.ts
new file mode 100755
index 00000000..abe4d11c
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/_countries.ts
@@ -0,0 +1,258 @@
+export const countries = [
+ { code: 'AD', label: 'Andorra', phone: '376' },
+ { code: 'AE', label: 'United Arab Emirates', phone: '971' },
+ { code: 'AF', label: 'Afghanistan', phone: '93' },
+ { code: 'AG', label: 'Antigua and Barbuda', phone: '1-268' },
+ { code: 'AI', label: 'Anguilla', phone: '1-264' },
+ { code: 'AL', label: 'Albania', phone: '355' },
+ { code: 'AM', label: 'Armenia', phone: '374' },
+ { code: 'AO', label: 'Angola', phone: '244' },
+ { code: 'AQ', label: 'Antarctica', phone: '672' },
+ { code: 'AR', label: 'Argentina', phone: '54' },
+ { code: 'AS', label: 'American Samoa', phone: '1-684' },
+ { code: 'AT', label: 'Austria', phone: '43' },
+ { code: 'AU', label: 'Australia', phone: '61' },
+ { code: 'AW', label: 'Aruba', phone: '297' },
+ { code: 'AX', label: 'Alland Islands', phone: '358' },
+ { code: 'AZ', label: 'Azerbaijan', phone: '994' },
+ { code: 'BA', label: 'Bosnia and Herzegovina', phone: '387' },
+ { code: 'BB', label: 'Barbados', phone: '1-246' },
+ { code: 'BD', label: 'Bangladesh', phone: '880' },
+ { code: 'BE', label: 'Belgium', phone: '32' },
+ { code: 'BF', label: 'Burkina Faso', phone: '226' },
+ { code: 'BG', label: 'Bulgaria', phone: '359' },
+ { code: 'BH', label: 'Bahrain', phone: '973' },
+ { code: 'BI', label: 'Burundi', phone: '257' },
+ { code: 'BJ', label: 'Benin', phone: '229' },
+ { code: 'BL', label: 'Saint Barthelemy', phone: '590' },
+ { code: 'BM', label: 'Bermuda', phone: '1-441' },
+ { code: 'BN', label: 'Brunei Darussalam', phone: '673' },
+ { code: 'BO', label: 'Bolivia', phone: '591' },
+ { code: 'BR', label: 'Brazil', phone: '55' },
+ { code: 'BS', label: 'Bahamas', phone: '1-242' },
+ { code: 'BT', label: 'Bhutan', phone: '975' },
+ { code: 'BV', label: 'Bouvet Island', phone: '47' },
+ { code: 'BW', label: 'Botswana', phone: '267' },
+ { code: 'BY', label: 'Belarus', phone: '375' },
+ { code: 'BZ', label: 'Belize', phone: '501' },
+ { code: 'CA', label: 'Canada', phone: '1' },
+ { code: 'CC', label: 'Cocos (Keeling) Islands', phone: '61' },
+ { code: 'CD', label: 'Congo, Democratic Republic of the', phone: '243' },
+ { code: 'CF', label: 'Central African Republic', phone: '236' },
+ { code: 'CG', label: 'Congo, Republic of the', phone: '242' },
+ { code: 'CH', label: 'Switzerland', phone: '41' },
+ { code: 'CI', label: "Cote d'Ivoire", phone: '225' },
+ { code: 'CK', label: 'Cook Islands', phone: '682' },
+ { code: 'CL', label: 'Chile', phone: '56' },
+ { code: 'CM', label: 'Cameroon', phone: '237' },
+ { code: 'CN', label: 'China', phone: '86' },
+ { code: 'CO', label: 'Colombia', phone: '57' },
+ { code: 'CR', label: 'Costa Rica', phone: '506' },
+ { code: 'CU', label: 'Cuba', phone: '53' },
+ { code: 'CV', label: 'Cape Verde', phone: '238' },
+ { code: 'CW', label: 'Curacao', phone: '599' },
+ { code: 'CX', label: 'Christmas Island', phone: '61' },
+ { code: 'CY', label: 'Cyprus', phone: '357' },
+ { code: 'CZ', label: 'Czech Republic', phone: '420' },
+ { code: 'DE', label: 'Germany', phone: '49' },
+ { code: 'DJ', label: 'Djibouti', phone: '253' },
+ { code: 'DK', label: 'Denmark', phone: '45' },
+ { code: 'DM', label: 'Dominica', phone: '1-767' },
+ { code: 'DO', label: 'Dominican Republic', phone: '1-809' },
+ { code: 'DZ', label: 'Algeria', phone: '213' },
+ { code: 'EC', label: 'Ecuador', phone: '593' },
+ { code: 'EE', label: 'Estonia', phone: '372' },
+ { code: 'EG', label: 'Egypt', phone: '20' },
+ { code: 'EH', label: 'Western Sahara', phone: '212' },
+ { code: 'ER', label: 'Eritrea', phone: '291' },
+ { code: 'ES', label: 'Spain', phone: '34' },
+ { code: 'ET', label: 'Ethiopia', phone: '251' },
+ { code: 'FI', label: 'Finland', phone: '358' },
+ { code: 'FJ', label: 'Fiji', phone: '679' },
+ { code: 'FK', label: 'Falkland Islands (Malvinas)', phone: '500' },
+ { code: 'FM', label: 'Micronesia, Federated States of', phone: '691' },
+ { code: 'FO', label: 'Faroe Islands', phone: '298' },
+ { code: 'FR', label: 'France', phone: '33' },
+ { code: 'GA', label: 'Gabon', phone: '241' },
+ { code: 'GB', label: 'United Kingdom', phone: '44' },
+ { code: 'GD', label: 'Grenada', phone: '1-473' },
+ { code: 'GE', label: 'Georgia', phone: '995' },
+ { code: 'GF', label: 'French Guiana', phone: '594' },
+ { code: 'GG', label: 'Guernsey', phone: '44' },
+ { code: 'GH', label: 'Ghana', phone: '233' },
+ { code: 'GI', label: 'Gibraltar', phone: '350' },
+ { code: 'GL', label: 'Greenland', phone: '299' },
+ { code: 'GM', label: 'Gambia', phone: '220' },
+ { code: 'GN', label: 'Guinea', phone: '224' },
+ { code: 'GP', label: 'Guadeloupe', phone: '590' },
+ { code: 'GQ', label: 'Equatorial Guinea', phone: '240' },
+ { code: 'GR', label: 'Greece', phone: '30' },
+ {
+ code: 'GS',
+ label: 'South Georgia and the South Sandwich Islands',
+ phone: '500',
+ },
+ { code: 'GT', label: 'Guatemala', phone: '502' },
+ { code: 'GU', label: 'Guam', phone: '1-671' },
+ { code: 'GW', label: 'Guinea-Bissau', phone: '245' },
+ { code: 'GY', label: 'Guyana', phone: '592' },
+ { code: 'HK', label: 'Hong Kong', phone: '852' },
+ { code: 'HM', label: 'Heard Island and McDonald Islands', phone: '672' },
+ { code: 'HN', label: 'Honduras', phone: '504' },
+ { code: 'HR', label: 'Croatia', phone: '385' },
+ { code: 'HT', label: 'Haiti', phone: '509' },
+ { code: 'HU', label: 'Hungary', phone: '36' },
+ { code: 'ID', label: 'Indonesia', phone: '62' },
+ { code: 'IE', label: 'Ireland', phone: '353' },
+ { code: 'IL', label: 'Israel', phone: '972' },
+ { code: 'IM', label: 'Isle of Man', phone: '44' },
+ { code: 'IN', label: 'India', phone: '91' },
+ { code: 'IO', label: 'British Indian Ocean Territory', phone: '246' },
+ { code: 'IQ', label: 'Iraq', phone: '964' },
+ { code: 'IR', label: 'Iran, Islamic Republic of', phone: '98' },
+ { code: 'IS', label: 'Iceland', phone: '354' },
+ { code: 'IT', label: 'Italy', phone: '39' },
+ { code: 'JE', label: 'Jersey', phone: '44' },
+ { code: 'JM', label: 'Jamaica', phone: '1-876' },
+ { code: 'JO', label: 'Jordan', phone: '962' },
+ { code: 'JP', label: 'Japan', phone: '81' },
+ { code: 'KE', label: 'Kenya', phone: '254' },
+ { code: 'KG', label: 'Kyrgyzstan', phone: '996' },
+ { code: 'KH', label: 'Cambodia', phone: '855' },
+ { code: 'KI', label: 'Kiribati', phone: '686' },
+ { code: 'KM', label: 'Comoros', phone: '269' },
+ { code: 'KN', label: 'Saint Kitts and Nevis', phone: '1-869' },
+ { code: 'KP', label: "Korea, Democratic People's Republic of", phone: '850' },
+ { code: 'KR', label: 'Korea, Republic of', phone: '82' },
+ { code: 'KW', label: 'Kuwait', phone: '965' },
+ { code: 'KY', label: 'Cayman Islands', phone: '1-345' },
+ { code: 'KZ', label: 'Kazakhstan', phone: '7' },
+ { code: 'LA', label: "Lao People's Democratic Republic", phone: '856' },
+ { code: 'LB', label: 'Lebanon', phone: '961' },
+ { code: 'LC', label: 'Saint Lucia', phone: '1-758' },
+ { code: 'LI', label: 'Liechtenstein', phone: '423' },
+ { code: 'LK', label: 'Sri Lanka', phone: '94' },
+ { code: 'LR', label: 'Liberia', phone: '231' },
+ { code: 'LS', label: 'Lesotho', phone: '266' },
+ { code: 'LT', label: 'Lithuania', phone: '370' },
+ { code: 'LU', label: 'Luxembourg', phone: '352' },
+ { code: 'LV', label: 'Latvia', phone: '371' },
+ { code: 'LY', label: 'Libya', phone: '218' },
+ { code: 'MA', label: 'Morocco', phone: '212' },
+ { code: 'MC', label: 'Monaco', phone: '377' },
+ { code: 'MD', label: 'Moldova, Republic of', phone: '373' },
+ { code: 'ME', label: 'Montenegro', phone: '382' },
+ { code: 'MF', label: 'Saint Martin (French part)', phone: '590' },
+ { code: 'MG', label: 'Madagascar', phone: '261' },
+ { code: 'MH', label: 'Marshall Islands', phone: '692' },
+ {
+ code: 'MK',
+ label: 'Macedonia, the Former Yugoslav Republic of',
+ phone: '389',
+ },
+ { code: 'ML', label: 'Mali', phone: '223' },
+ { code: 'MM', label: 'Myanmar', phone: '95' },
+ { code: 'MN', label: 'Mongolia', phone: '976' },
+ { code: 'MO', label: 'Macao', phone: '853' },
+ { code: 'MP', label: 'Northern Mariana Islands', phone: '1-670' },
+ { code: 'MQ', label: 'Martinique', phone: '596' },
+ { code: 'MR', label: 'Mauritania', phone: '222' },
+ { code: 'MS', label: 'Montserrat', phone: '1-664' },
+ { code: 'MT', label: 'Malta', phone: '356' },
+ { code: 'MU', label: 'Mauritius', phone: '230' },
+ { code: 'MV', label: 'Maldives', phone: '960' },
+ { code: 'MW', label: 'Malawi', phone: '265' },
+ { code: 'MX', label: 'Mexico', phone: '52' },
+ { code: 'MY', label: 'Malaysia', phone: '60' },
+ { code: 'MZ', label: 'Mozambique', phone: '258' },
+ { code: 'NA', label: 'Namibia', phone: '264' },
+ { code: 'NC', label: 'New Caledonia', phone: '687' },
+ { code: 'NE', label: 'Niger', phone: '227' },
+ { code: 'NF', label: 'Norfolk Island', phone: '672' },
+ { code: 'NG', label: 'Nigeria', phone: '234' },
+ { code: 'NI', label: 'Nicaragua', phone: '505' },
+ { code: 'NL', label: 'Netherlands', phone: '31' },
+ { code: 'NO', label: 'Norway', phone: '47' },
+ { code: 'NP', label: 'Nepal', phone: '977' },
+ { code: 'NR', label: 'Nauru', phone: '674' },
+ { code: 'NU', label: 'Niue', phone: '683' },
+ { code: 'NZ', label: 'New Zealand', phone: '64' },
+ { code: 'OM', label: 'Oman', phone: '968' },
+ { code: 'PA', label: 'Panama', phone: '507' },
+ { code: 'PE', label: 'Peru', phone: '51' },
+ { code: 'PF', label: 'French Polynesia', phone: '689' },
+ { code: 'PG', label: 'Papua New Guinea', phone: '675' },
+ { code: 'PH', label: 'Philippines', phone: '63' },
+ { code: 'PK', label: 'Pakistan', phone: '92' },
+ { code: 'PL', label: 'Poland', phone: '48' },
+ { code: 'PM', label: 'Saint Pierre and Miquelon', phone: '508' },
+ { code: 'PN', label: 'Pitcairn', phone: '870' },
+ { code: 'PR', label: 'Puerto Rico', phone: '1' },
+ { code: 'PS', label: 'Palestine, State of', phone: '970' },
+ { code: 'PT', label: 'Portugal', phone: '351' },
+ { code: 'PW', label: 'Palau', phone: '680' },
+ { code: 'PY', label: 'Paraguay', phone: '595' },
+ { code: 'QA', label: 'Qatar', phone: '974' },
+ { code: 'RE', label: 'Reunion', phone: '262' },
+ { code: 'RO', label: 'Romania', phone: '40' },
+ { code: 'RS', label: 'Serbia', phone: '381' },
+ { code: 'RU', label: 'Russian Federation', phone: '7' },
+ { code: 'RW', label: 'Rwanda', phone: '250' },
+ { code: 'SA', label: 'Saudi Arabia', phone: '966' },
+ { code: 'SB', label: 'Solomon Islands', phone: '677' },
+ { code: 'SC', label: 'Seychelles', phone: '248' },
+ { code: 'SD', label: 'Sudan', phone: '249' },
+ { code: 'SE', label: 'Sweden', phone: '46' },
+ { code: 'SG', label: 'Singapore', phone: '65' },
+ { code: 'SH', label: 'Saint Helena', phone: '290' },
+ { code: 'SI', label: 'Slovenia', phone: '386' },
+ { code: 'SJ', label: 'Svalbard and Jan Mayen', phone: '47' },
+ { code: 'SK', label: 'Slovakia', phone: '421' },
+ { code: 'SL', label: 'Sierra Leone', phone: '232' },
+ { code: 'SM', label: 'San Marino', phone: '378' },
+ { code: 'SN', label: 'Senegal', phone: '221' },
+ { code: 'SO', label: 'Somalia', phone: '252' },
+ { code: 'SR', label: 'Suriname', phone: '597' },
+ { code: 'SS', label: 'South Sudan', phone: '211' },
+ { code: 'ST', label: 'Sao Tome and Principe', phone: '239' },
+ { code: 'SV', label: 'El Salvador', phone: '503' },
+ { code: 'SX', label: 'Sint Maarten (Dutch part)', phone: '1-721' },
+ { code: 'SY', label: 'Syrian Arab Republic', phone: '963' },
+ { code: 'SZ', label: 'Swaziland', phone: '268' },
+ { code: 'TC', label: 'Turks and Caicos Islands', phone: '1-649' },
+ { code: 'TD', label: 'Chad', phone: '235' },
+ { code: 'TF', label: 'French Southern Territories', phone: '262' },
+ { code: 'TG', label: 'Togo', phone: '228' },
+ { code: 'TH', label: 'Thailand', phone: '66' },
+ { code: 'TJ', label: 'Tajikistan', phone: '992' },
+ { code: 'TK', label: 'Tokelau', phone: '690' },
+ { code: 'TL', label: 'Timor-Leste', phone: '670' },
+ { code: 'TM', label: 'Turkmenistan', phone: '993' },
+ { code: 'TN', label: 'Tunisia', phone: '216' },
+ { code: 'TO', label: 'Tonga', phone: '676' },
+ { code: 'TR', label: 'Turkey', phone: '90' },
+ { code: 'TT', label: 'Trinidad and Tobago', phone: '1-868' },
+ { code: 'TV', label: 'Tuvalu', phone: '688' },
+ { code: 'TW', label: 'Taiwan, Province of China', phone: '886' },
+ { code: 'TZ', label: 'United Republic of Tanzania', phone: '255' },
+ { code: 'UA', label: 'Ukraine', phone: '380' },
+ { code: 'UG', label: 'Uganda', phone: '256' },
+ { code: 'US', label: 'United States', phone: '1' },
+ { code: 'UY', label: 'Uruguay', phone: '598' },
+ { code: 'UZ', label: 'Uzbekistan', phone: '998' },
+ { code: 'VA', label: 'Holy See (Vatican City State)', phone: '379' },
+ { code: 'VC', label: 'Saint Vincent and the Grenadines', phone: '1-784' },
+ { code: 'VE', label: 'Venezuela', phone: '58' },
+ { code: 'VG', label: 'British Virgin Islands', phone: '1-284' },
+ { code: 'VI', label: 'US Virgin Islands', phone: '1-340' },
+ { code: 'VN', label: 'Vietnam', phone: '84' },
+ { code: 'VU', label: 'Vanuatu', phone: '678' },
+ { code: 'WF', label: 'Wallis and Futuna', phone: '681' },
+ { code: 'WS', label: 'Samoa', phone: '685' },
+ { code: 'XK', label: 'Kosovo', phone: '383' },
+ { code: 'YE', label: 'Yemen', phone: '967' },
+ { code: 'YT', label: 'Mayotte', phone: '262' },
+ { code: 'ZA', label: 'South Africa', phone: '27' },
+ { code: 'ZM', label: 'Zambia', phone: '260' },
+ { code: 'ZW', label: 'Zimbabwe', phone: '263' },
+];
diff --git a/frontend/hospital-portal/src/_mock/_ecommerce.ts b/frontend/hospital-portal/src/_mock/_ecommerce.ts
new file mode 100755
index 00000000..37ecedc8
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/_ecommerce.ts
@@ -0,0 +1,56 @@
+import _mock from './_mock';
+
+// ----------------------------------------------------------------------
+
+const COUNTRY = ['de', 'en', 'fr', 'kr', 'us'];
+
+const CATEGORY = ['CAP', 'Branded Shoes', 'Headphone', 'Cell Phone', 'Earings'];
+
+const PRODUCT_NAME = [
+ 'Small Granite Computer',
+ 'Small Rubber Mouse',
+ 'Awesome Rubber Hat',
+ 'Sleek Cotton Sausages',
+ 'Rustic Wooden Chicken',
+];
+
+export const _ecommerceSalesOverview = [...Array(3)].map((_, index) => ({
+ label: ['Total Profit', 'Total Income', 'Total Expenses'][index],
+ amount: _mock.number.price(index) * 100,
+ value: _mock.number.percent(index),
+}));
+
+export const _ecommerceBestSalesman = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ name: _mock.name.fullName(index),
+ email: _mock.email(index),
+ avatar: _mock.image.avatar(index + 8),
+ category: CATEGORY[index],
+ flag: `https://minimal-assets-api.vercel.app/assets/icons/ic_flag_${COUNTRY[index]}.svg`,
+ total: _mock.number.price(index),
+ rank: `Top ${index + 1}`,
+}));
+
+export const _ecommerceLatestProducts = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ name: PRODUCT_NAME[index],
+ image: _mock.image.product(index),
+ price: _mock.number.price(index),
+ priceSale: index === 0 || index === 3 ? 0 : _mock.number.price(index),
+ colors: (index === 0 && ['#2EC4B6', '#E71D36', '#FF9F1C', '#011627']) ||
+ (index === 1 && ['#92140C', '#FFCF99']) ||
+ (index === 2 && ['#0CECDD', '#FFF338', '#FF67E7', '#C400FF', '#52006A', '#046582']) ||
+ (index === 3 && ['#845EC2', '#E4007C', '#2A1A5E']) || ['#090088'],
+}));
+
+export const _ecommerceNewProducts = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ name: [
+ 'Nike Air Max 97',
+ 'Nike Zoom Gravity',
+ 'Nike DBreak-Type',
+ 'Kyrie Flytrap 3 EP Basketball Shoe',
+ 'Nike Air Max Fusion Men',
+ ][index],
+ image: _mock.image.product(index),
+}));
diff --git a/frontend/hospital-portal/src/_mock/_mock.ts b/frontend/hospital-portal/src/_mock/_mock.ts
new file mode 100755
index 00000000..5cbf4ee7
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/_mock.ts
@@ -0,0 +1,55 @@
+import { sub } from 'date-fns';
+//
+import { role } from './role';
+import { email } from './email';
+import { boolean } from './boolean';
+import { company } from './company';
+import { phoneNumber } from './phoneNumber';
+import { fullAddress, country } from './address';
+import { firstName, lastName, fullName } from './name';
+import { title, sentence, description } from './text';
+import { price, rating, age, percent } from './number';
+
+// ----------------------------------------------------------------------
+
+const _mock = {
+ id: (index: number) => `e99f09a7-dd88-49d5-b1c8-1daf80c2d7b${index + 1}`,
+ email: (index: number) => email[index],
+ phoneNumber: (index: number) => phoneNumber[index],
+ time: (index: number) => sub(new Date(), { days: index, hours: index }),
+ boolean: (index: number) => boolean[index],
+ role: (index: number) => role[index],
+ company: (index: number) => company[index],
+ address: {
+ fullAddress: (index: number) => fullAddress[index],
+ country: (index: number) => country[index],
+ },
+ name: {
+ firstName: (index: number) => firstName[index],
+ lastName: (index: number) => lastName[index],
+ fullName: (index: number) => fullName[index],
+ },
+ text: {
+ title: (index: number) => title[index],
+ sentence: (index: number) => sentence[index],
+ description: (index: number) => description[index],
+ },
+ number: {
+ percent: (index: number) => percent[index],
+ rating: (index: number) => rating[index],
+ age: (index: number) => age[index],
+ price: (index: number) => price[index],
+ },
+ image: {
+ cover: (index: number) =>
+ `https://minimal-assets-api.vercel.app/assets/images/covers/cover_${index + 1}.jpg`,
+ feed: (index: number) =>
+ `https://minimal-assets-api.vercel.app/assets/images/feeds/feed_${index + 1}.jpg`,
+ product: (index: number) =>
+ `https://minimal-assets-api.vercel.app/assets/images/products/product_${index + 1}.jpg`,
+ avatar: (index: number) =>
+ `https://minimal-assets-api.vercel.app/assets/images/avatars/avatar_${index + 1}.jpg`,
+ },
+};
+
+export default _mock;
diff --git a/frontend/hospital-portal/src/_mock/_others.ts b/frontend/hospital-portal/src/_mock/_others.ts
new file mode 100755
index 00000000..1bf4913f
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/_others.ts
@@ -0,0 +1,163 @@
+import _mock from './_mock';
+import { randomInArray } from './funcs';
+
+// ----------------------------------------------------------------------
+
+export const _carouselsExample = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ title: _mock.text.title(index),
+ image: _mock.image.feed(index),
+ description: _mock.text.description(index),
+}));
+
+export const _carouselsMembers = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ name: _mock.name.fullName(index),
+ role: _mock.role(index),
+ avatar: `https://minimal-assets-api.vercel.app/assets/images/members/member-${index + 1}.jpg`,
+}));
+
+// ----------------------------------------------------------------------
+
+export const _invoice = {
+ id: `${Date.now()}`,
+ taxes: 5,
+ discount: 10,
+ status: 'paid',
+ invoiceFrom: {
+ name: _mock.name.fullName(1),
+ address: _mock.address.fullAddress(1),
+ company: _mock.company(1),
+ email: _mock.email(1),
+ phone: _mock.phoneNumber(1),
+ },
+ invoiceTo: {
+ name: _mock.name.fullName(2),
+ address: _mock.address.fullAddress(2),
+ company: _mock.company(2),
+ email: _mock.email(2),
+ phone: _mock.phoneNumber(2),
+ },
+ items: [...Array(3)].map((_, index) => ({
+ id: _mock.id(index),
+ title: _mock.text.title(index),
+ description: _mock.text.description(index),
+ qty: 5,
+ price: _mock.number.price(index),
+ })),
+};
+
+// ----------------------------------------------------------------------
+
+export const _faqs = [...Array(8)].map((_, index) => ({
+ id: _mock.id(index),
+ value: `panel${index + 1}`,
+ heading: `Questions ${index + 1}`,
+ detail: _mock.text.description(index),
+}));
+
+// ----------------------------------------------------------------------
+
+export const _addressBooks = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ receiver: _mock.name.fullName(index),
+ fullAddress: _mock.address.fullAddress(index),
+ phone: _mock.phoneNumber(index),
+ addressType: index === 0 ? 'Home' : 'Office',
+ isDefault: index === 0,
+}));
+
+// ----------------------------------------------------------------------
+
+export const _skills = [...Array(3)].map((_, index) => ({
+ label: ['Development', 'Design', 'Marketing'][index],
+ value: _mock.number.percent(index),
+}));
+
+// ----------------------------------------------------------------------
+
+export const _accordions = [...Array(4)].map((_, index) => ({
+ id: _mock.id(index),
+ value: `panel${index + 1}`,
+ heading: `Accordion ${index + 1}`,
+ subHeading: _mock.text.title(index),
+ detail: _mock.text.description(index),
+}));
+
+// ----------------------------------------------------------------------
+
+export const _dataGrid = [...Array(36)].map((_, index) => ({
+ id: _mock.id(index),
+ name: _mock.name.fullName(index),
+ email: _mock.email(index),
+ lastLogin: _mock.time(index),
+ performance: _mock.number.percent(index),
+ rating: _mock.number.rating(index),
+ status: randomInArray(['online', 'away', 'busy']),
+ isAdmin: _mock.boolean(index),
+ lastName: _mock.name.lastName(index),
+ firstName: _mock.name.firstName(index),
+ age: _mock.number.age(index),
+}));
+
+// ----------------------------------------------------------------------
+
+export const _megaMenuProducts = [...Array(10)].map((_, index) => ({
+ name: _mock.text.title(index),
+ image: _mock.image.feed(index),
+ path: '#',
+}));
+
+// ----------------------------------------------------------------------
+
+export const _contacts = [...Array(20)].map((_, index) => ({
+ id: _mock.id(index),
+ name: _mock.name.fullName(index),
+ username: _mock.name.fullName(index),
+ avatar: _mock.image.avatar(index),
+ address: _mock.address.fullAddress(index),
+ phone: _mock.phoneNumber(index),
+ email: _mock.email(index),
+ lastActivity: _mock.time(index),
+ status: randomInArray(['online', 'offline', 'away', 'busy']),
+ position: _mock.role(index),
+}));
+
+// ----------------------------------------------------------------------
+
+export const _notifications = [...Array(5)].map((_, index) => ({
+ id: _mock.id(index),
+ title: [
+ 'Your order is placed',
+ 'Sylvan King',
+ 'You have new message',
+ 'You have new mail',
+ 'Delivery processing',
+ ][index],
+ description: [
+ 'waiting for shipping',
+ 'answered to your comment on the Minimal',
+ '5 unread messages',
+ 'sent from Guido Padberg',
+ 'Your order is being shipped',
+ ][index],
+ avatar: [null, _mock.image.avatar(2), null, null, null][index],
+ type: ['order_placed', 'friend_interactive', 'chat_message', 'mail', 'order_shipped'][index],
+ createdAt: _mock.time(index),
+ isUnRead: [true, true, false, false, false][index],
+}));
+
+// ----------------------------------------------------------------------
+
+export const _mapContact = [
+ {
+ latlng: [33, 65],
+ address: _mock.address.fullAddress(1),
+ phoneNumber: _mock.phoneNumber(1),
+ },
+ {
+ latlng: [-12.5, 18.5],
+ address: _mock.address.fullAddress(2),
+ phoneNumber: _mock.phoneNumber(2),
+ },
+];
diff --git a/frontend/hospital-portal/src/_mock/_plans.tsx b/frontend/hospital-portal/src/_mock/_plans.tsx
new file mode 100755
index 00000000..658f3862
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/_plans.tsx
@@ -0,0 +1,67 @@
+import { PlanFreeIcon, PlanStarterIcon, PlanPremiumIcon } from '../assets';
+
+// ----------------------------------------------------------------------
+
+const LICENSES = ['Standard', 'Standard Plus', 'Extended'];
+
+export const _homePlans = [...Array(3)].map((_, index) => ({
+ license: LICENSES[index],
+ commons: ['One end products', '12 months updates', '6 months of support'],
+ options: [
+ 'JavaScript version',
+ 'TypeScript version',
+ 'Design Resources',
+ 'Commercial applications',
+ ],
+ icons: [
+ 'https://minimal-assets-api.vercel.app/assets/images/home/ic_sketch.svg',
+ 'https://minimal-assets-api.vercel.app/assets/images/home/ic_figma.svg',
+ 'https://minimal-assets-api.vercel.app/assets/images/home/ic_js.svg',
+ 'https://minimal-assets-api.vercel.app/assets/images/home/ic_ts.svg',
+ ],
+}));
+
+export const _pricingPlans = [
+ {
+ subscription: 'basic',
+ icon: ,
+ price: 0,
+ caption: 'forever',
+ lists: [
+ { text: '3 prototypes', isAvailable: true },
+ { text: '3 boards', isAvailable: true },
+ { text: 'Up to 5 team members', isAvailable: false },
+ { text: 'Advanced security', isAvailable: false },
+ { text: 'Permissions & workflows', isAvailable: false },
+ ],
+ labelAction: 'current plan',
+ },
+ {
+ subscription: 'starter',
+ icon: ,
+ price: 4.99,
+ caption: 'saving $24 a year',
+ lists: [
+ { text: '3 prototypes', isAvailable: true },
+ { text: '3 boards', isAvailable: true },
+ { text: 'Up to 5 team members', isAvailable: true },
+ { text: 'Advanced security', isAvailable: false },
+ { text: 'Permissions & workflows', isAvailable: false },
+ ],
+ labelAction: 'choose starter',
+ },
+ {
+ subscription: 'premium',
+ icon: ,
+ price: 9.99,
+ caption: 'saving $124 a year',
+ lists: [
+ { text: '3 prototypes', isAvailable: true },
+ { text: '3 boards', isAvailable: true },
+ { text: 'Up to 5 team members', isAvailable: true },
+ { text: 'Advanced security', isAvailable: true },
+ { text: 'Permissions & workflows', isAvailable: true },
+ ],
+ labelAction: 'choose premium',
+ },
+];
diff --git a/frontend/hospital-portal/src/_mock/_top100Films.ts b/frontend/hospital-portal/src/_mock/_top100Films.ts
new file mode 100755
index 00000000..21bf5e44
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/_top100Films.ts
@@ -0,0 +1,105 @@
+export const top100Films = [
+ { title: 'The Shawshank Redemption', year: 1994 },
+ { title: 'The Godfather', year: 1972 },
+ { title: 'The Godfather: Part II', year: 1974 },
+ { title: 'The Dark Knight', year: 2008 },
+ { title: '12 Angry Men', year: 1957 },
+ { title: "Schindler's List", year: 1993 },
+ { title: 'Pulp Fiction', year: 1994 },
+ { title: 'The Lord of the Rings: The Return of the King', year: 2003 },
+ { title: 'The Good, the Bad and the Ugly', year: 1966 },
+ { title: 'Fight Club', year: 1999 },
+ { title: 'The Lord of the Rings: The Fellowship of the Ring', year: 2001 },
+ { title: 'Star Wars: Episode V - The Empire Strikes Back', year: 1980 },
+ { title: 'Forrest Gump', year: 1994 },
+ { title: 'Inception', year: 2010 },
+ { title: 'The Lord of the Rings: The Two Towers', year: 2002 },
+ { title: "One Flew Over the Cuckoo's Nest", year: 1975 },
+ { title: 'Goodfellas', year: 1990 },
+ { title: 'The Matrix', year: 1999 },
+ { title: 'Seven Samurai', year: 1954 },
+ { title: 'Star Wars: Episode IV - A New Hope', year: 1977 },
+ { title: 'City of God', year: 2002 },
+ { title: 'Se7en', year: 1995 },
+ { title: 'The Silence of the Lambs', year: 1991 },
+ { title: "It's a Wonderful Life", year: 1946 },
+ { title: 'Life Is Beautiful', year: 1997 },
+ { title: 'The Usual Suspects', year: 1995 },
+ { title: 'Léon: The Professional', year: 1994 },
+ { title: 'Spirited Away', year: 2001 },
+ { title: 'Saving Private Ryan', year: 1998 },
+ { title: 'Once Upon a Time in the West', year: 1968 },
+ { title: 'American History X', year: 1998 },
+ { title: 'Interstellar', year: 2014 },
+ { title: 'Casablanca', year: 1942 },
+ { title: 'City Lights', year: 1931 },
+ { title: 'Psycho', year: 1960 },
+ { title: 'The Green Mile', year: 1999 },
+ { title: 'The Intouchables', year: 2011 },
+ { title: 'Modern Times', year: 1936 },
+ { title: 'Raiders of the Lost Ark', year: 1981 },
+ { title: 'Rear Window', year: 1954 },
+ { title: 'The Pianist', year: 2002 },
+ { title: 'The Departed', year: 2006 },
+ { title: 'Terminator 2: Judgment Day', year: 1991 },
+ { title: 'Back to the Future', year: 1985 },
+ { title: 'Whiplash', year: 2014 },
+ { title: 'Gladiator', year: 2000 },
+ { title: 'Memento', year: 2000 },
+ { title: 'The Prestige', year: 2006 },
+ { title: 'The Lion King', year: 1994 },
+ { title: 'Apocalypse Now', year: 1979 },
+ { title: 'Alien', year: 1979 },
+ { title: 'Sunset Boulevard', year: 1950 },
+ {
+ title: 'Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb',
+ year: 1964,
+ },
+ { title: 'The Great Dictator', year: 1940 },
+ { title: 'Cinema Paradiso', year: 1988 },
+ { title: 'The Lives of Others', year: 2006 },
+ { title: 'Grave of the Fireflies', year: 1988 },
+ { title: 'Paths of Glory', year: 1957 },
+ { title: 'Django Unchained', year: 2012 },
+ { title: 'The Shining', year: 1980 },
+ { title: 'WALL·E', year: 2008 },
+ { title: 'American Beauty', year: 1999 },
+ { title: 'The Dark Knight Rises', year: 2012 },
+ { title: 'Princess Mononoke', year: 1997 },
+ { title: 'Aliens', year: 1986 },
+ { title: 'Oldboy', year: 2003 },
+ { title: 'Once Upon a Time in America', year: 1984 },
+ { title: 'Witness for the Prosecution', year: 1957 },
+ { title: 'Das Boot', year: 1981 },
+ { title: 'Citizen Kane', year: 1941 },
+ { title: 'North by Northwest', year: 1959 },
+ { title: 'Vertigo', year: 1958 },
+ { title: 'Star Wars: Episode VI - Return of the Jedi', year: 1983 },
+ { title: 'Reservoir Dogs', year: 1992 },
+ { title: 'Braveheart', year: 1995 },
+ { title: 'M', year: 1931 },
+ { title: 'Requiem for a Dream', year: 2000 },
+ { title: 'Amélie', year: 2001 },
+ { title: 'A Clockwork Orange', year: 1971 },
+ { title: 'Like Stars on Earth', year: 2007 },
+ { title: 'Taxi Driver', year: 1976 },
+ { title: 'Lawrence of Arabia', year: 1962 },
+ { title: 'Double Indemnity', year: 1944 },
+ { title: 'Eternal Sunshine of the Spotless Mind', year: 2004 },
+ { title: 'Amadeus', year: 1984 },
+ { title: 'To Kill a Mockingbird', year: 1962 },
+ { title: 'Toy Story 3', year: 2010 },
+ { title: 'Logan', year: 2017 },
+ { title: 'Full Metal Jacket', year: 1987 },
+ { title: 'Dangal', year: 2016 },
+ { title: 'The Sting', year: 1973 },
+ { title: '2001: A Space Odyssey', year: 1968 },
+ { title: "Singin' in the Rain", year: 1952 },
+ { title: 'Toy Story', year: 1995 },
+ { title: 'Bicycle Thieves', year: 1948 },
+ { title: 'The Kid', year: 1921 },
+ { title: 'Inglourious Basterds', year: 2009 },
+ { title: 'Snatch', year: 2000 },
+ { title: '3 Idiots', year: 2009 },
+ { title: 'Monty Python and the Holy Grail', year: 1975 },
+];
diff --git a/frontend/hospital-portal/src/_mock/_user.ts b/frontend/hospital-portal/src/_mock/_user.ts
new file mode 100755
index 00000000..26eaf351
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/_user.ts
@@ -0,0 +1,136 @@
+import _mock from './_mock';
+import { randomNumberRange, randomInArray } from './funcs';
+
+// ----------------------------------------------------------------------
+
+export const _userAbout = {
+ id: _mock.id(1),
+ cover: _mock.image.cover(1),
+ position: 'UI Designer',
+ follower: randomNumberRange(999, 99999),
+ following: randomNumberRange(999, 99999),
+ quote:
+ 'Tart I love sugar plum I love oat cake. Sweet roll caramels I love jujubes. Topping cake wafer..',
+ country: _mock.address.country(1),
+ email: _mock.email(1),
+ company: _mock.company(1),
+ school: _mock.company(2),
+ role: 'Manager',
+ facebookLink: `https://www.facebook.com/caitlyn.kerluke`,
+ instagramLink: `https://www.instagram.com/caitlyn.kerluke`,
+ linkedinLink: `https://www.linkedin.com/in/caitlyn.kerluke`,
+ twitterLink: `https://www.twitter.com/caitlyn.kerluke`,
+};
+
+export const _userFollowers = [...Array(18)].map((_, index) => ({
+ id: _mock.id(index),
+ avatarUrl: _mock.image.avatar(index),
+ name: _mock.name.fullName(index),
+ country: _mock.address.country(index),
+ isFollowed: _mock.boolean(index),
+}));
+
+export const _userFriends = [...Array(18)].map((_, index) => ({
+ id: _mock.id(index),
+ avatarUrl: _mock.image.avatar(index),
+ name: _mock.name.fullName(index),
+ role: _mock.role(index),
+}));
+
+export const _userGallery = [...Array(12)].map((_, index) => ({
+ id: _mock.id(index),
+ title: _mock.text.title(index),
+ postAt: _mock.time(index),
+ imageUrl: _mock.image.cover(index),
+}));
+
+export const _userFeeds = [...Array(3)].map((_, index) => ({
+ id: _mock.id(index),
+ author: {
+ id: _mock.id(8),
+ avatarUrl: _mock.image.avatar(1),
+ name: 'Caitlyn Kerluke',
+ },
+ isLiked: true,
+ createdAt: _mock.time(index),
+ media: _mock.image.feed(index),
+ message: _mock.text.sentence(index),
+ personLikes: [...Array(36)].map((_, index) => ({
+ name: _mock.name.fullName(index),
+ avatarUrl: _mock.image.avatar(index + 2),
+ })),
+ comments: (index === 2 && []) || [
+ {
+ id: _mock.id(7),
+ author: {
+ id: _mock.id(8),
+ avatarUrl: _mock.image.avatar(randomInArray([2, 3, 4, 5, 6]) || 2),
+ name: _mock.name.fullName(index + 5),
+ },
+ createdAt: _mock.time(2),
+ message: 'Praesent venenatis metus at',
+ },
+ {
+ id: _mock.id(9),
+ author: {
+ id: _mock.id(10),
+ avatarUrl: _mock.image.avatar(randomInArray([7, 8, 9, 10, 11]) || 7),
+ name: _mock.name.fullName(index + 6),
+ },
+ createdAt: _mock.time(3),
+ message:
+ 'Etiam rhoncus. Nullam vel sem. Pellentesque libero tortor, tincidunt et, tincidunt eget, semper nec, quam. Sed lectus.',
+ },
+ ],
+}));
+
+export const _userCards = [...Array(24)].map((_, index) => ({
+ id: _mock.id(index),
+ avatarUrl: _mock.image.avatar(index),
+ cover: _mock.image.cover(index),
+ name: _mock.name.fullName(index),
+ follower: randomNumberRange(999, 99999),
+ following: randomNumberRange(999, 99999),
+ totalPost: randomNumberRange(999, 99999),
+ position: _mock.role(index),
+}));
+
+export const _userPayment = [...Array(2)].map((_, index) => ({
+ id: _mock.id(index),
+ cardNumber: ['**** **** **** 1234', '**** **** **** 5678', '**** **** **** 7878'][index],
+ cardType: ['master_card', 'visa', 'master_card'][index],
+}));
+
+export const _userAddressBook = [...Array(4)].map((_, index) => ({
+ id: _mock.id(index),
+ name: _mock.name.fullName(index),
+ phone: _mock.phoneNumber(index),
+ country: _mock.address.country(index),
+ state: 'New Hampshire',
+ city: 'East Sambury',
+ street: '41256 Kamille Turnpike',
+ zipCode: '85807',
+}));
+
+export const _userInvoices = [...Array(10)].map((_, index) => ({
+ id: _mock.id(index),
+ createdAt: _mock.time(index),
+ price: _mock.number.price(index),
+}));
+
+export const _userList = [...Array(24)].map((_, index) => ({
+ id: _mock.id(index),
+ avatarUrl: _mock.image.avatar(index),
+ name: _mock.name.fullName(index),
+ email: _mock.email(index),
+ phoneNumber: _mock.phoneNumber(index),
+ address: '908 Jack Locks',
+ country: _mock.address.country(index),
+ state: 'Virginia',
+ city: 'Rancho Cordova',
+ zipCode: '85807',
+ company: _mock.company(index),
+ isVerified: _mock.boolean(index),
+ status: randomInArray(['active', 'banned']),
+ role: _mock.role(index),
+}));
diff --git a/frontend/hospital-portal/src/_mock/address.ts b/frontend/hospital-portal/src/_mock/address.ts
new file mode 100755
index 00000000..71b65bf3
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/address.ts
@@ -0,0 +1,87 @@
+// ----------------------------------------------------------------------
+
+export const fullAddress = [
+ '19034 Verna Unions Apt. 164 - Honolulu, RI / 87535',
+ '1147 Rohan Drive Suite 819 - Burlington, VT / 82021',
+ '18605 Thompson Circle Apt. 086 - Idaho Falls, WV / 50337',
+ '110 Lamar Station Apt. 730 - Hagerstown, OK / 49808',
+ '36901 Elmer Spurs Apt. 762 - Miramar, DE / 92836',
+ '2089 Runolfsson Harbors Suite 886 - Chapel Hill, TX / 32827',
+ '279 Karolann Ports Apt. 774 - Prescott Valley, WV / 53905',
+ '96607 Claire Square Suite 591 - St. Louis Park, HI / 40802',
+ '9388 Auer Station Suite 573 - Honolulu, AK / 98024',
+ '47665 Adaline Squares Suite 510 - Blacksburg, NE / 53515',
+ '989 Vernice Flats Apt. 183 - Billings, NV / 04147',
+ '91020 Wehner Locks Apt. 673 - Albany, WY / 68763',
+ '585 Candelario Pass Suite 090 - Columbus, LA / 25376',
+ '80988 Renner Crest Apt. 000 - Fargo, VA / 24266',
+ '28307 Shayne Pike Suite 523 - North Las Vegas, AZ / 28550',
+ '205 Farrell Highway Suite 333 - Rock Hill, OK / 63421',
+ '253 Kara Motorway Suite 821 - Manchester, SD / 09331',
+ '13663 Kiara Oval Suite 606 - Missoula, AR / 44478',
+ '8110 Claire Port Apt. 703 - Anchorage, TN / 01753',
+ '4642 Demetris Lane Suite 407 - Edmond, AZ / 60888',
+ '74794 Asha Flat Suite 890 - Lancaster, OR / 13466',
+ '8135 Keeling Pines Apt. 326 - Alexandria, MA / 89442',
+ '441 Gibson Shores Suite 247 - Pasco, NM / 60678',
+ '4373 Emelia Valley Suite 596 - Columbia, NM / 42586',
+ '1946 Strosin Creek Apt. 279 - Casper, CO / 21335',
+ '147 Rempel Center Apt. 305 - Centennial, TN / 09375',
+ '78481 Floyd Mountains Apt. 184 - Glendale, SD / 18777',
+ '129 Toy Pines Suite 339 - Idaho Falls, CT / 82070',
+ '08945 Cremin Underpass Apt. 700 - Iowa City, GA / 33243',
+ '20728 Dorcas Highway Suite 959 - Largo, ND / 99931',
+ '492 Wilburn Park Apt. 746 - Bellevue, TN / 16077',
+ '70530 Garfield Tunnel Suite 902 - Detroit, IA / 01664',
+ '868 Kautzer Grove Suite 334 - Kearny, KS / 51368',
+ '71189 Towne Forks Suite 519 - Anchorage, IL / 52636',
+ '5070 Magdalena Neck Suite 096 - Cedar Rapids, PA / 01342',
+ '6216 Jermain Walk Apt. 279 - Wilmington, MA / 55416',
+ '1795 Kilback Stravenue Apt. 745 - Concord, MA / 96099',
+ '831 Rolfson Expressway Apt. 878 - Norman, NY / 10239',
+ '909 Nathaniel Lake Suite 769 - Sherman, NJ / 46523',
+ '3690 Hans Ports Apt. 369 - Cary, KS / 48930'
+];
+
+export const country = [
+ 'Kenya',
+ 'Madagascar',
+ 'Netherlands Antilles',
+ 'Azerbaijan',
+ 'Aruba',
+ 'Comoros',
+ 'Sierra Leone',
+ 'Bermuda',
+ 'Italy',
+ 'Iran',
+ 'Denmark',
+ 'Congo',
+ 'Cambodia',
+ 'Virgin Islands, British',
+ 'Bahamas',
+ 'Italy',
+ 'France',
+ 'Portugal',
+ 'Nepal',
+ 'Saint Vincent and the Grenadines',
+ 'Greenland',
+ 'Maldives',
+ 'Comoros',
+ 'Bhutan',
+ 'Tuvalu',
+ 'Ethiopia',
+ 'Myanmar',
+ 'Libyan Arab Jamahiriya',
+ 'Senegal',
+ 'Malta',
+ 'Kyrgyz Republic',
+ 'Turks and Caicos Islands',
+ 'Gibraltar',
+ 'Sweden',
+ 'Zambia',
+ 'Isle of Man',
+ 'Canada',
+ 'Turkey',
+ 'Samoa',
+ 'Vietnam'
+];
diff --git a/frontend/hospital-portal/src/_mock/boolean.ts b/frontend/hospital-portal/src/_mock/boolean.ts
new file mode 100755
index 00000000..1375e685
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/boolean.ts
@@ -0,0 +1,44 @@
+// ----------------------------------------------------------------------
+
+export const boolean = [
+ true,
+ true,
+ true,
+ false,
+ false,
+ true,
+ false,
+ false,
+ false,
+ false,
+ true,
+ true,
+ true,
+ false,
+ false,
+ false,
+ true,
+ false,
+ false,
+ false,
+ true,
+ false,
+ false,
+ true,
+ true,
+ true,
+ false,
+ false,
+ true,
+ true,
+ false,
+ true,
+ false,
+ true,
+ true,
+ true,
+ false,
+ true,
+ false,
+ false
+];
diff --git a/frontend/hospital-portal/src/_mock/company.ts b/frontend/hospital-portal/src/_mock/company.ts
new file mode 100755
index 00000000..990ec032
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/company.ts
@@ -0,0 +1,44 @@
+// ----------------------------------------------------------------------
+
+export const company = [
+ 'Lueilwitz and Sons',
+ 'Gleichner, Mueller and Tromp',
+ 'Nikolaus - Leuschke',
+ 'Hegmann, Kreiger and Bayer',
+ 'Grimes Inc',
+ 'Durgan - Murazik',
+ 'Altenwerth, Medhurst and Roberts',
+ 'Raynor Group',
+ 'Mraz, Donnelly and Collins',
+ 'Padberg - Bailey',
+ 'Heidenreich, Stokes and Parker',
+ 'Pagac and Sons',
+ 'Rempel, Hand and Herzog',
+ 'Dare - Treutel',
+ 'Kihn, Marquardt and Crist',
+ 'Nolan - Kunde',
+ 'Wuckert Inc',
+ 'Dibbert Inc',
+ 'Goyette and Sons',
+ 'Feest Group',
+ 'Bosco and Sons',
+ 'Bartell - Kovacek',
+ 'Schimmel - Raynor',
+ 'Tremblay LLC',
+ 'Hills - Mitchell',
+ 'Rogahn LLC',
+ 'Kuhn, Osinski and Morar',
+ 'Schmitt Inc',
+ 'Breitenberg - Rosenbaum',
+ "O'Keefe, Schneider and Mraz",
+ 'Rohan, Langworth and Kling',
+ 'Morar and Sons',
+ 'Mraz LLC',
+ 'Rowe, Parisian and Kub',
+ 'Marquardt - Hane',
+ 'Medhurst Group',
+ 'Nikolaus - Lang',
+ 'Effertz, Mohr and Olson',
+ 'Anderson - Kris',
+ 'Runolfsson Group'
+];
diff --git a/frontend/hospital-portal/src/_mock/email.ts b/frontend/hospital-portal/src/_mock/email.ts
new file mode 100755
index 00000000..51babacf
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/email.ts
@@ -0,0 +1,44 @@
+// ----------------------------------------------------------------------
+
+export const email = [
+ 'nannie_abernathy70@yahoo.com',
+ 'ashlynn_ohara62@gmail.com',
+ 'milo.farrell@hotmail.com',
+ 'violet.ratke86@yahoo.com',
+ 'letha_lubowitz24@yahoo.com',
+ 'aditya_greenfelder31@gmail.com',
+ 'lenna_bergnaum27@hotmail.com',
+ 'luella.ryan33@gmail.com',
+ 'joana.simonis84@gmail.com',
+ 'marjolaine_white94@gmail.com',
+ 'vergie_block82@hotmail.com',
+ 'vito.hudson@hotmail.com',
+ 'tyrel_greenholt@gmail.com',
+ 'dwight.block85@yahoo.com',
+ 'mireya13@hotmail.com',
+ 'dasia_jenkins@hotmail.com',
+ 'benny89@yahoo.com',
+ 'dawn.goyette@gmail.com',
+ 'zella_hickle4@yahoo.com',
+ 'avery43@hotmail.com',
+ 'olen_legros@gmail.com',
+ 'jimmie.gerhold73@hotmail.com',
+ 'genevieve.powlowski@hotmail.com',
+ 'louie.kuphal39@gmail.com',
+ 'enoch.cruickshank@gmail.com',
+ 'arlo_mccullough@gmail.com',
+ 'sadie18@yahoo.com',
+ 'aric67@gmail.com',
+ 'mack_deckow53@gmail.com',
+ 'constantin91@yahoo.com',
+ 'lonny84@hotmail.com',
+ 'gus56@hotmail.com',
+ 'brennon64@yahoo.com',
+ 'hortense.streich@hotmail.com',
+ 'kallie_powlowski57@hotmail.com',
+ 'meghan.kemmer@hotmail.com',
+ 'bella.mraz14@yahoo.com',
+ 'barney88@gmail.com',
+ 'diamond_johns@hotmail.com',
+ 'gus80@hotmail.com'
+];
diff --git a/frontend/hospital-portal/src/_mock/funcs.ts b/frontend/hospital-portal/src/_mock/funcs.ts
new file mode 100755
index 00000000..876a14ad
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/funcs.ts
@@ -0,0 +1,13 @@
+// ----------------------------------------------------------------------
+
+export function randomNumber(number: number) {
+ return Math.floor(Math.random() * number) + 1;
+}
+
+export function randomNumberRange(min: number, max: number) {
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+}
+
+export function randomInArray(array: any) {
+ return array[Math.floor(Math.random() * array.length)];
+}
diff --git a/frontend/hospital-portal/src/_mock/index.ts b/frontend/hospital-portal/src/_mock/index.ts
new file mode 100755
index 00000000..ff7adc08
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/index.ts
@@ -0,0 +1,16 @@
+import _mock from './_mock';
+
+// ----------------------------------------------------------------------
+
+export * from './_app';
+export * from './_user';
+export * from './_plans';
+export * from './_others';
+export * from './_booking';
+export * from './_banking';
+export * from './_ecommerce';
+export * from './_analytics';
+export * from './_countries';
+export * from './_top100Films';
+
+export default _mock;
diff --git a/frontend/hospital-portal/src/_mock/map/cities.ts b/frontend/hospital-portal/src/_mock/map/cities.ts
new file mode 100755
index 00000000..4b69c39e
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/map/cities.ts
@@ -0,0 +1,182 @@
+export const cities = [
+ {
+ city: 'New York',
+ population: '8,175,133',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Above_Gotham.jpg/240px-Above_Gotham.jpg',
+ state: 'New York',
+ latitude: 40.6643,
+ longitude: -73.9385
+ },
+ {
+ city: 'Los Angeles',
+ population: '3,792,621',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/5/57/LA_Skyline_Mountains2.jpg/240px-LA_Skyline_Mountains2.jpg',
+ state: 'California',
+ latitude: 34.0194,
+ longitude: -118.4108
+ },
+ {
+ city: 'Chicago',
+ population: '2,695,598',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/8/85/2008-06-10_3000x1000_chicago_skyline.jpg/240px-2008-06-10_3000x1000_chicago_skyline.jpg',
+ state: 'Illinois',
+ latitude: 41.8376,
+ longitude: -87.6818
+ },
+ {
+ city: 'Houston',
+ population: '2,100,263',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Aerial_views_of_the_Houston%2C_Texas%2C_28005u.jpg/240px-Aerial_views_of_the_Houston%2C_Texas%2C_28005u.jpg',
+ state: 'Texas',
+ latitude: 29.7805,
+ longitude: -95.3863
+ },
+ {
+ city: 'Phoenix',
+ population: '1,445,632',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Downtown_Phoenix_Aerial_Looking_Northeast.jpg/207px-Downtown_Phoenix_Aerial_Looking_Northeast.jpg',
+ state: 'Arizona',
+ latitude: 33.5722,
+ longitude: -112.088
+ },
+ {
+ city: 'Philadelphia',
+ population: '1,526,006',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Philly_skyline.jpg/240px-Philly_skyline.jpg',
+ state: 'Pennsylvania',
+ latitude: 40.0094,
+ longitude: -75.1333
+ },
+ {
+ city: 'San Antonio',
+ population: '1,327,407',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Downtown_San_Antonio_View.JPG/240px-Downtown_San_Antonio_View.JPG',
+ state: 'Texas',
+ latitude: 29.4724,
+ longitude: -98.5251
+ },
+ {
+ city: 'San Diego',
+ population: '1,307,402',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/5/53/US_Navy_110604-N-NS602-574_Navy_and_Marine_Corps_personnel%2C_along_with_community_leaders_from_the_greater_San_Diego_area_come_together_to_commemora.jpg/240px-US_Navy_110604-N-NS602-574_Navy_and_Marine_Corps_personnel%2C_along_with_community_leaders_from_the_greater_San_Diego_area_come_together_to_commemora.jpg',
+ state: 'California',
+ latitude: 32.8153,
+ longitude: -117.135
+ },
+ {
+ city: 'Dallas',
+ population: '1,197,816',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Dallas_skyline_daytime.jpg/240px-Dallas_skyline_daytime.jpg',
+ state: 'Texas',
+ latitude: 32.7757,
+ longitude: -96.7967
+ },
+ {
+ city: 'San Jose',
+ population: '945,942',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/1/1e/Downtown_San_Jose_skyline.PNG/240px-Downtown_San_Jose_skyline.PNG',
+ state: 'California',
+ latitude: 37.2969,
+ longitude: -121.8193
+ },
+ {
+ city: 'Austin',
+ population: '790,390',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Austin2012-12-01.JPG/240px-Austin2012-12-01.JPG',
+ state: 'Texas',
+ latitude: 30.3072,
+ longitude: -97.756
+ },
+ {
+ city: 'Jacksonville',
+ population: '821,784',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Skyline_of_Jacksonville_FL%2C_South_view_20160706_1.jpg/240px-Skyline_of_Jacksonville_FL%2C_South_view_20160706_1.jpg',
+ state: 'Florida',
+ latitude: 30.337,
+ longitude: -81.6613
+ },
+ {
+ city: 'San Francisco',
+ population: '805,235',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/San_Francisco_skyline_from_Coit_Tower.jpg/240px-San_Francisco_skyline_from_Coit_Tower.jpg',
+ state: 'California',
+ latitude: 37.7751,
+ longitude: -122.4193
+ },
+ {
+ city: 'Columbus',
+ population: '787,033',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Columbus-ohio-skyline-panorama.jpg/240px-Columbus-ohio-skyline-panorama.jpg',
+ state: 'Ohio',
+ latitude: 39.9848,
+ longitude: -82.985
+ },
+ {
+ city: 'Indianapolis',
+ population: '820,445',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/1/16/Downtown_indy_from_parking_garage_zoom.JPG/213px-Downtown_indy_from_parking_garage_zoom.JPG',
+ state: 'Indiana',
+ latitude: 39.7767,
+ longitude: -86.1459
+ },
+ {
+ city: 'Fort Worth',
+ population: '741,206',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/d/db/FortWorthTexasSkylineW.jpg/240px-FortWorthTexasSkylineW.jpg',
+ state: 'Texas',
+ latitude: 32.7795,
+ longitude: -97.3463
+ },
+ {
+ city: 'Charlotte',
+ population: '731,424',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/7/7d/Charlotte_skyline45647.jpg/222px-Charlotte_skyline45647.jpg',
+ state: 'North Carolina',
+ latitude: 35.2087,
+ longitude: -80.8307
+ },
+ {
+ city: 'Seattle',
+ population: '608,660',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/3/36/SeattleI5Skyline.jpg/240px-SeattleI5Skyline.jpg',
+ state: 'Washington',
+ latitude: 47.6205,
+ longitude: -122.3509
+ },
+ {
+ city: 'Denver',
+ population: '600,158',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/0/0b/DenverCP.JPG/240px-DenverCP.JPG',
+ state: 'Colorado',
+ latitude: 39.7618,
+ longitude: -104.8806
+ },
+ {
+ city: 'El Paso',
+ population: '649,121',
+ image:
+ 'http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Downtown_El_Paso_at_sunset.jpeg/240px-Downtown_El_Paso_at_sunset.jpeg',
+ state: 'Texas',
+ latitude: 31.8484,
+ longitude: -106.427
+ }
+];
diff --git a/frontend/hospital-portal/src/_mock/map/countries.ts b/frontend/hospital-portal/src/_mock/map/countries.ts
new file mode 100755
index 00000000..28792b1d
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/map/countries.ts
@@ -0,0 +1,87 @@
+// utils
+import _mock from '../_mock';
+
+// ----------------------------------------------------------------------
+
+export const countries = [
+ {
+ timezones: ['America/Aruba'],
+ latlng: [12.5, -69.96666666],
+ name: 'Aruba',
+ country_code: 'AW',
+ capital: 'Oranjestad',
+ photo: _mock.image.feed(1),
+ },
+ {
+ timezones: ['Asia/Kabul'],
+ latlng: [33, 65],
+ name: 'Afghanistan',
+ country_code: 'AF',
+ capital: 'Kabul',
+ photo: _mock.image.feed(2),
+ },
+ {
+ timezones: ['Africa/Luanda'],
+ latlng: [-12.5, 18.5],
+ name: 'Angola',
+ country_code: 'AO',
+ capital: 'Luanda',
+ photo: _mock.image.feed(3),
+ },
+ {
+ timezones: ['Pacific/Efate'],
+ latlng: [-16, 167],
+ name: 'Vanuatu',
+ country_code: 'VU',
+ capital: 'Port Vila',
+ photo: _mock.image.feed(4),
+ },
+ {
+ timezones: ['Pacific/Wallis'],
+ latlng: [-13.3, -176.2],
+ name: 'Wallis and Futuna',
+ country_code: 'WF',
+ capital: 'Mata-Utu',
+ photo: _mock.image.feed(5),
+ },
+ {
+ timezones: ['Pacific/Apia'],
+ latlng: [-13.58333333, -172.33333333],
+ name: 'Samoa',
+ country_code: 'WS',
+ capital: 'Apia',
+ photo: _mock.image.feed(6),
+ },
+ {
+ timezones: ['Asia/Aden'],
+ latlng: [15, 48],
+ name: 'Yemen',
+ country_code: 'YE',
+ capital: "Sana'a",
+ photo: _mock.image.feed(7),
+ },
+ {
+ timezones: ['Africa/Johannesburg'],
+ latlng: [-29, 24],
+ name: 'South Africa',
+ country_code: 'ZA',
+ capital: 'Pretoria',
+ photo: _mock.image.feed(8),
+ },
+ {
+ timezones: ['Africa/Lusaka'],
+ latlng: [-15, 30],
+ name: 'Zambia',
+ country_code: 'ZM',
+ capital: 'Lusaka',
+ photo: _mock.image.feed(9),
+ },
+ {
+ timezones: ['Africa/Harare'],
+ latlng: [-20, 30],
+ name: 'Zimbabwe',
+ country_code: 'ZW',
+ capital: 'Harare',
+ photo: _mock.image.feed(10),
+ },
+];
diff --git a/frontend/hospital-portal/src/_mock/map/map-style-basic-v8.json b/frontend/hospital-portal/src/_mock/map/map-style-basic-v8.json
new file mode 100755
index 00000000..7c5384e6
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/map/map-style-basic-v8.json
@@ -0,0 +1,599 @@
+{
+ "version": 8,
+ "name": "Basic",
+ "metadata": {
+ "mapbox:autocomposite": true
+ },
+ "sources": {
+ "mapbox": {
+ "url": "mapbox://mapbox.mapbox-streets-v7",
+ "type": "vector"
+ }
+ },
+ "sprite": "mapbox://sprites/mapbox/basic-v8",
+ "glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf",
+ "layers": [
+ {
+ "id": "background",
+ "type": "background",
+ "paint": {
+ "background-color": "#dedede"
+ },
+ "interactive": true
+ },
+ {
+ "id": "landuse_overlay_national_park",
+ "type": "fill",
+ "source": "mapbox",
+ "source-layer": "landuse_overlay",
+ "filter": ["==", "class", "national_park"],
+ "paint": {
+ "fill-color": "#d2edae",
+ "fill-opacity": 0.75
+ },
+ "interactive": true
+ },
+ {
+ "id": "landuse_park",
+ "type": "fill",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": ["==", "class", "park"],
+ "paint": {
+ "fill-color": "#d2edae"
+ },
+ "interactive": true
+ },
+ {
+ "id": "waterway",
+ "type": "line",
+ "source": "mapbox",
+ "source-layer": "waterway",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["in", "class", "river", "canal"]
+ ],
+ "paint": {
+ "line-color": "#a0cfdf",
+ "line-width": {
+ "base": 1.4,
+ "stops": [
+ [8, 0.5],
+ [20, 15]
+ ]
+ }
+ },
+ "interactive": true
+ },
+ {
+ "id": "water",
+ "type": "fill",
+ "source": "mapbox",
+ "source-layer": "water",
+ "paint": {
+ "fill-color": "#a0cfdf"
+ },
+ "interactive": true
+ },
+ {
+ "id": "building",
+ "type": "fill",
+ "source": "mapbox",
+ "source-layer": "building",
+ "paint": {
+ "fill-color": "#d6d6d6"
+ },
+ "interactive": true
+ },
+ {
+ "interactive": true,
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "miter"
+ },
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ [
+ "in",
+ "class",
+ "motorway_link",
+ "street",
+ "street_limited",
+ "service",
+ "track",
+ "pedestrian",
+ "path",
+ "link"
+ ],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "type": "line",
+ "source": "mapbox",
+ "id": "tunnel_minor",
+ "paint": {
+ "line-color": "#efefef",
+ "line-width": {
+ "base": 1.55,
+ "stops": [
+ [4, 0.25],
+ [20, 30]
+ ]
+ },
+ "line-dasharray": [0.36, 0.18]
+ },
+ "source-layer": "road"
+ },
+ {
+ "interactive": true,
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "miter"
+ },
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ [
+ "in",
+ "class",
+ "motorway",
+ "primary",
+ "secondary",
+ "tertiary",
+ "trunk"
+ ],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "type": "line",
+ "source": "mapbox",
+ "id": "tunnel_major",
+ "paint": {
+ "line-color": "#fff",
+ "line-width": {
+ "base": 1.4,
+ "stops": [
+ [6, 0.5],
+ [20, 30]
+ ]
+ },
+ "line-dasharray": [0.28, 0.14]
+ },
+ "source-layer": "road"
+ },
+ {
+ "interactive": true,
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ [
+ "in",
+ "class",
+ "motorway_link",
+ "street",
+ "street_limited",
+ "service",
+ "track",
+ "pedestrian",
+ "path",
+ "link"
+ ],
+ ["in", "structure", "none", "ford"]
+ ]
+ ],
+ "type": "line",
+ "source": "mapbox",
+ "id": "road_minor",
+ "paint": {
+ "line-color": "#efefef",
+ "line-width": {
+ "base": 1.55,
+ "stops": [
+ [4, 0.25],
+ [20, 30]
+ ]
+ }
+ },
+ "source-layer": "road"
+ },
+ {
+ "interactive": true,
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ [
+ "in",
+ "class",
+ "motorway",
+ "primary",
+ "secondary",
+ "tertiary",
+ "trunk"
+ ],
+ ["in", "structure", "none", "ford"]
+ ]
+ ],
+ "type": "line",
+ "source": "mapbox",
+ "id": "road_major",
+ "paint": {
+ "line-color": "#fff",
+ "line-width": {
+ "base": 1.4,
+ "stops": [
+ [6, 0.5],
+ [20, 30]
+ ]
+ }
+ },
+ "source-layer": "road"
+ },
+ {
+ "interactive": true,
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "miter"
+ },
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ [
+ "in",
+ "class",
+ "motorway_link",
+ "street",
+ "street_limited",
+ "service",
+ "track",
+ "pedestrian",
+ "path",
+ "link"
+ ],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "type": "line",
+ "source": "mapbox",
+ "id": "bridge_minor case",
+ "paint": {
+ "line-color": "#dedede",
+ "line-width": {
+ "base": 1.6,
+ "stops": [
+ [12, 0.5],
+ [20, 10]
+ ]
+ },
+ "line-gap-width": {
+ "base": 1.55,
+ "stops": [
+ [4, 0.25],
+ [20, 30]
+ ]
+ }
+ },
+ "source-layer": "road"
+ },
+ {
+ "interactive": true,
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "miter"
+ },
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ [
+ "in",
+ "class",
+ "motorway",
+ "primary",
+ "secondary",
+ "tertiary",
+ "trunk"
+ ],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "type": "line",
+ "source": "mapbox",
+ "id": "bridge_major case",
+ "paint": {
+ "line-color": "#dedede",
+ "line-width": {
+ "base": 1.6,
+ "stops": [
+ [12, 0.5],
+ [20, 10]
+ ]
+ },
+ "line-gap-width": {
+ "base": 1.55,
+ "stops": [
+ [4, 0.25],
+ [20, 30]
+ ]
+ }
+ },
+ "source-layer": "road"
+ },
+ {
+ "interactive": true,
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ [
+ "in",
+ "class",
+ "motorway_link",
+ "street",
+ "street_limited",
+ "service",
+ "track",
+ "pedestrian",
+ "path",
+ "link"
+ ],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "type": "line",
+ "source": "mapbox",
+ "id": "bridge_minor",
+ "paint": {
+ "line-color": "#efefef",
+ "line-width": {
+ "base": 1.55,
+ "stops": [
+ [4, 0.25],
+ [20, 30]
+ ]
+ }
+ },
+ "source-layer": "road"
+ },
+ {
+ "interactive": true,
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ [
+ "in",
+ "class",
+ "motorway",
+ "primary",
+ "secondary",
+ "tertiary",
+ "trunk"
+ ],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "type": "line",
+ "source": "mapbox",
+ "id": "bridge_major",
+ "paint": {
+ "line-color": "#fff",
+ "line-width": {
+ "base": 1.4,
+ "stops": [
+ [6, 0.5],
+ [20, 30]
+ ]
+ }
+ },
+ "source-layer": "road"
+ },
+ {
+ "interactive": true,
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["<=", "admin_level", 2], ["==", "maritime", 0]]
+ ],
+ "type": "line",
+ "source": "mapbox",
+ "id": "admin_country",
+ "paint": {
+ "line-color": "#8b8a8a",
+ "line-width": {
+ "base": 1.3,
+ "stops": [
+ [3, 0.5],
+ [22, 15]
+ ]
+ }
+ },
+ "source-layer": "admin"
+ },
+ {
+ "interactive": true,
+ "minzoom": 5,
+ "layout": {
+ "icon-image": "{maki}-11",
+ "text-offset": [0, 0.5],
+ "text-field": "{name_en}",
+ "text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"],
+ "text-max-width": 8,
+ "text-anchor": "top",
+ "text-size": 11,
+ "icon-size": 1
+ },
+ "filter": [
+ "all",
+ ["==", "$type", "Point"],
+ ["all", ["==", "scalerank", 1], ["==", "localrank", 1]]
+ ],
+ "type": "symbol",
+ "source": "mapbox",
+ "id": "poi_label",
+ "paint": {
+ "text-color": "#666",
+ "text-halo-width": 1,
+ "text-halo-color": "rgba(255,255,255,0.75)",
+ "text-halo-blur": 1
+ },
+ "source-layer": "poi_label"
+ },
+ {
+ "interactive": true,
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": "{name_en}",
+ "text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"],
+ "text-transform": "uppercase",
+ "text-letter-spacing": 0.1,
+ "text-size": {
+ "base": 1.4,
+ "stops": [
+ [10, 8],
+ [20, 14]
+ ]
+ }
+ },
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["in", "class", "motorway", "primary", "secondary", "tertiary", "trunk"]
+ ],
+ "type": "symbol",
+ "source": "mapbox",
+ "id": "road_major_label",
+ "paint": {
+ "text-color": "#666",
+ "text-halo-color": "rgba(255,255,255,0.75)",
+ "text-halo-width": 2
+ },
+ "source-layer": "road_label"
+ },
+ {
+ "interactive": true,
+ "minzoom": 8,
+ "layout": {
+ "text-field": "{name_en}",
+ "text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"],
+ "text-max-width": 6,
+ "text-size": {
+ "stops": [
+ [6, 12],
+ [12, 16]
+ ]
+ }
+ },
+ "filter": [
+ "all",
+ ["==", "$type", "Point"],
+ [
+ "in",
+ "type",
+ "town",
+ "village",
+ "hamlet",
+ "suburb",
+ "neighbourhood",
+ "island"
+ ]
+ ],
+ "type": "symbol",
+ "source": "mapbox",
+ "id": "place_label_other",
+ "paint": {
+ "text-color": "#666",
+ "text-halo-color": "rgba(255,255,255,0.75)",
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "place_label"
+ },
+ {
+ "interactive": true,
+ "layout": {
+ "text-field": "{name_en}",
+ "text-font": ["Open Sans Bold", "Arial Unicode MS Bold"],
+ "text-max-width": 10,
+ "text-size": {
+ "stops": [
+ [3, 12],
+ [8, 16]
+ ]
+ }
+ },
+ "maxzoom": 16,
+ "filter": ["all", ["==", "$type", "Point"], ["==", "type", "city"]],
+ "type": "symbol",
+ "source": "mapbox",
+ "id": "place_label_city",
+ "paint": {
+ "text-color": "#666",
+ "text-halo-color": "rgba(255,255,255,0.75)",
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "place_label"
+ },
+ {
+ "interactive": true,
+ "layout": {
+ "text-field": "{name_en}",
+ "text-font": ["Open Sans Regular", "Arial Unicode MS Regular"],
+ "text-max-width": 10,
+ "text-size": {
+ "stops": [
+ [3, 14],
+ [8, 22]
+ ]
+ }
+ },
+ "maxzoom": 12,
+ "filter": ["==", "$type", "Point"],
+ "type": "symbol",
+ "source": "mapbox",
+ "id": "country_label",
+ "paint": {
+ "text-color": "#666",
+ "text-halo-color": "rgba(255,255,255,0.75)",
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "country_label"
+ }
+ ]
+}
diff --git a/frontend/hospital-portal/src/_mock/map/stations.ts b/frontend/hospital-portal/src/_mock/map/stations.ts
new file mode 100755
index 00000000..685aa0e2
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/map/stations.ts
@@ -0,0 +1,91 @@
+export const stations = [
+ { name: 'Lafayette (LAFY)', coordinates: [-122.123801, 37.893394] },
+ {
+ name: '12th St. Oakland City Center (12TH)',
+ coordinates: [-122.271604, 37.803664]
+ },
+ {
+ name: '16th St. Mission (16TH)',
+ coordinates: [-122.419694, 37.765062]
+ },
+ { name: '19th St. Oakland (19TH)', coordinates: [-122.269029, 37.80787] },
+ {
+ name: '24th St. Mission (24TH)',
+ coordinates: [-122.418466, 37.752254]
+ },
+ { name: 'Ashby (ASHB)', coordinates: [-122.26978, 37.853024] },
+ { name: 'Balboa Park (BALB)', coordinates: [-122.447414, 37.721981] },
+ { name: 'Bay Fair (BAYF)', coordinates: [-122.126871, 37.697185] },
+ { name: 'Castro Valley (CAST)', coordinates: [-122.075567, 37.690754] },
+ {
+ name: 'Civic Center/UN Plaza (CIVC)',
+ coordinates: [-122.413756, 37.779528]
+ },
+ { name: 'Colma (COLM)', coordinates: [-122.466233, 37.684638] },
+ {
+ name: 'Coliseum/Oakland Airport (COLS)',
+ coordinates: [-122.197273, 37.754006]
+ },
+ { name: 'Concord (CONC)', coordinates: [-122.029095, 37.973737] },
+ { name: 'Daly City (DALY)', coordinates: [-122.469081, 37.706121] },
+ {
+ name: 'Downtown Berkeley (DBRK)',
+ coordinates: [-122.268045, 37.869867]
+ },
+ {
+ name: 'El Cerrito del Norte (DELN)',
+ coordinates: [-122.317269, 37.925655]
+ },
+ {
+ name: 'Dublin/Pleasanton (DUBL)',
+ coordinates: [-121.900367, 37.701695]
+ },
+ { name: 'Embarcadero (EMBR)', coordinates: [-122.396742, 37.792976] },
+ { name: 'Fremont (FRMT)', coordinates: [-121.9764, 37.557355] },
+ { name: 'Fruitvale (FTVL)', coordinates: [-122.224274, 37.774963] },
+ { name: 'Glen Park (GLEN)', coordinates: [-122.434092, 37.732921] },
+ { name: 'Hayward (HAYW)', coordinates: [-122.087967, 37.670399] },
+ { name: 'Lake Merritt (LAKE)', coordinates: [-122.265609, 37.797484] },
+ { name: 'MacArthur (MCAR)', coordinates: [-122.267227, 37.828415] },
+ { name: 'Millbrae (MLBR)', coordinates: [-122.38666, 37.599787] },
+ { name: 'Montgomery St. (MONT)', coordinates: [-122.401407, 37.789256] },
+ { name: 'North Berkeley (NBRK)', coordinates: [-122.283451, 37.87404] },
+ {
+ name: 'North Concord/Martinez (NCON)',
+ coordinates: [-122.024597, 38.003275]
+ },
+ { name: 'Orinda (ORIN)', coordinates: [-122.183791, 37.878361] },
+ {
+ name: 'Pleasant Hill/Contra Costa Centre (PHIL)',
+ coordinates: [-122.056013, 37.928403]
+ },
+ {
+ name: 'Pittsburg/Bay Point (PITT)',
+ coordinates: [-121.945154, 38.018914]
+ },
+ {
+ name: 'El Cerrito Plaza (PLZA)',
+ coordinates: [-122.299272, 37.903059]
+ },
+ { name: 'Powell St. (POWL)', coordinates: [-122.406857, 37.784991] },
+ { name: 'Richmond (RICH)', coordinates: [-122.353165, 37.936887] },
+ { name: 'Rockridge (ROCK)', coordinates: [-122.251793, 37.844601] },
+ { name: 'San Leandro (SANL)', coordinates: [-122.161311, 37.722619] },
+ { name: 'San Bruno (SBRN)', coordinates: [-122.416038, 37.637753] },
+ {
+ name: "San Francisco Int'l Airport (SFIA)",
+ coordinates: [-122.392612, 37.616035]
+ },
+ { name: 'South Hayward (SHAY)', coordinates: [-122.057551, 37.6348] },
+ {
+ name: 'South San Francisco (SSAN)',
+ coordinates: [-122.444116, 37.664174]
+ },
+ { name: 'Union City (UCTY)', coordinates: [-122.017867, 37.591208] },
+ { name: 'Walnut Creek (WCRK)', coordinates: [-122.067423, 37.905628] },
+ {
+ name: 'West Dublin/Pleasanton (WDUB)',
+ coordinates: [-121.928099, 37.699759]
+ },
+ { name: 'West Oakland (WOAK)', coordinates: [-122.294582, 37.804675] }
+];
diff --git a/frontend/hospital-portal/src/_mock/name.ts b/frontend/hospital-portal/src/_mock/name.ts
new file mode 100755
index 00000000..9f2e9d79
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/name.ts
@@ -0,0 +1,130 @@
+// ----------------------------------------------------------------------
+
+export const fullName = [
+ 'Jayvion Simon',
+ 'Lucian Obrien',
+ 'Deja Brady',
+ 'Harrison Stein',
+ 'Reece Chung',
+ 'Lainey Davidson',
+ 'Cristopher Cardenas',
+ 'Melanie Noble',
+ 'Chase Day',
+ 'Shawn Manning',
+ 'Soren Durham',
+ 'Cortez Herring',
+ 'Brycen Jimenez',
+ 'Giana Brandt',
+ 'Aspen Schmitt',
+ 'Colten Aguilar',
+ 'Angelique Morse',
+ 'Selina Boyer',
+ 'Lawson Bass',
+ 'Ariana Lang',
+ 'Amiah Pruitt',
+ 'Harold Mcgrath',
+ 'Esperanza Mcintyre',
+ 'Mireya Conner',
+ 'Jamie Kline',
+ 'Laney Vazquez',
+ 'Tiffany May',
+ 'Dexter Shepherd',
+ 'Jaqueline Spencer',
+ 'Londyn Jarvis',
+ 'Yesenia Butler',
+ 'Jayvon Hull',
+ 'Izayah Pope',
+ 'Ayana Hunter',
+ 'Isabell Bender',
+ 'Desiree Schmidt',
+ 'Aidan Stout',
+ 'Jace Bush',
+ 'Janiya Williamson',
+ 'Hudson Alvarez'
+];
+
+export const firstName = [
+ 'Mossie',
+ 'David',
+ 'Ebba',
+ 'Chester',
+ 'Eula',
+ 'Jaren',
+ 'Boyd',
+ 'Brady',
+ 'Aida',
+ 'Anastasia',
+ 'Gregoria',
+ 'Julianne',
+ 'Ila',
+ 'Elyssa',
+ 'Lucio',
+ 'Lewis',
+ 'Jacinthe',
+ 'Molly',
+ 'Brown',
+ 'Fritz',
+ 'Keon',
+ 'Ella',
+ 'Ken',
+ 'Whitney',
+ 'Monte',
+ 'Rose',
+ 'Shana',
+ 'Devon',
+ 'Jaleel',
+ 'Laury',
+ 'Brooks',
+ 'Bruce',
+ 'Avery',
+ 'Esperanza',
+ 'Helene',
+ 'Heloise',
+ 'Elinor',
+ 'Adeline',
+ 'Haley',
+ 'Anabelle'
+];
+
+export const lastName = [
+ 'Carroll',
+ 'Simonis',
+ 'Yost',
+ 'Hand',
+ 'Emmerich',
+ 'Wilderman',
+ 'Howell',
+ 'Sporer',
+ 'Boehm',
+ 'Morar',
+ 'Koch',
+ 'Reynolds',
+ 'Padberg',
+ 'Watsica',
+ 'Upton',
+ 'Yundt',
+ 'Pfeffer',
+ 'Parker',
+ 'Zulauf',
+ 'Treutel',
+ 'McDermott',
+ 'McDermott',
+ 'Cruickshank',
+ 'Parisian',
+ 'Auer',
+ 'Turner',
+ 'Dooley',
+ 'Wiegand',
+ 'Abbott',
+ 'Wisoky',
+ 'Fahey',
+ 'Satterfield',
+ 'Bahringer',
+ 'Schulist',
+ 'Durgan',
+ 'Carroll',
+ 'Jones',
+ 'Leffler',
+ 'Gutkowski',
+ 'Homenick'
+];
diff --git a/frontend/hospital-portal/src/_mock/number.ts b/frontend/hospital-portal/src/_mock/number.ts
new file mode 100755
index 00000000..e65518e1
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/number.ts
@@ -0,0 +1,23 @@
+// ----------------------------------------------------------------------
+
+export const price = [
+ 16.19, 35.71, 34.3, 93.1, 55.47, 89.09, 44.39, 26.92, 45.35, 26.96, 78.22, 35.54, 90.69, 63.61,
+ 67.55, 94.75, 75.78, 39.6, 52.84, 72.8, 83.08, 85.02, 69.22, 60.96, 84.7, 16.68, 78.83, 58.07,
+ 65.8, 55.69, 87.55, 44.74, 27.42, 84, 76.17, 43.83, 76.39, 17.42, 42.3, 12.45
+];
+
+export const rating = [
+ 2.5, 2, 4.9, 2, 4, 5, 4.9, 5, 3.7, 2.5, 2, 4.9, 4.8, 4, 2, 3.7, 1.4, 2.4, 1.8, 5, 2.9, 3.9, 3.9,
+ 1.8, 5, 2.6, 3.1, 3.9, 1.2, 3.2, 4.1, 5, 4.5, 4.1, 2.3, 2.4, 5, 3.1, 4.9, 1.7
+];
+
+export const age = [
+ 52, 43, 56, 25, 22, 53, 38, 50, 55, 37, 16, 27, 55, 41, 52, 32, 34, 52, 31, 53, 23, 48, 43, 41,
+ 19, 21, 17, 29, 32, 54, 38, 34, 49, 33, 55, 50, 24, 27, 23, 23
+];
+
+export const percent = [
+ 8.62, 86.36, 73.99, 79, 63.41, 58.79, 12.32, 88.44, 45.06, 91.64, 88.41, 73.08, 39.14, 89.34,
+ 43.37, 34.45, 24.04, 80.96, 72.91, 47.59, 2.46, 3.33, 99.31, 47.6, 34.09, 50.61, 66.13, 46.69,
+ 92.43, 31.41, 90.85, 36.32, 38.84, 25.6, 87.61, 1.31, 89.32, 41.23, 85.9, 62.63
+];
diff --git a/frontend/hospital-portal/src/_mock/phoneNumber.ts b/frontend/hospital-portal/src/_mock/phoneNumber.ts
new file mode 100755
index 00000000..30d98426
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/phoneNumber.ts
@@ -0,0 +1,44 @@
+// ----------------------------------------------------------------------
+
+export const phoneNumber = [
+ '365-374-4961',
+ '904-966-2836',
+ '399-757-9909',
+ '692-767-2903',
+ '990-588-5716',
+ '955-439-2578',
+ '226-924-4058',
+ '552-917-1454',
+ '285-840-9338',
+ '306-269-2446',
+ '883-373-6253',
+ '476-509-8866',
+ '201-465-1954',
+ '538-295-9408',
+ '531-492-6028',
+ '981-699-7588',
+ '500-268-4826',
+ '205-952-3828',
+ '222-255-5190',
+ '408-439-8033',
+ '272-940-8266',
+ '812-685-8057',
+ '353-801-5212',
+ '606-285-8928',
+ '202-767-8621',
+ '222-830-0731',
+ '964-940-3166',
+ '262-702-2396',
+ '886-261-9789',
+ '352-390-5069',
+ '343-907-8334',
+ '575-347-2399',
+ '749-228-5604',
+ '774-452-2071',
+ '607-841-0447',
+ '395-619-2157',
+ '233-834-0373',
+ '586-880-2602',
+ '746-772-0722',
+ '638-615-3365,'
+];
diff --git a/frontend/hospital-portal/src/_mock/role.ts b/frontend/hospital-portal/src/_mock/role.ts
new file mode 100755
index 00000000..fcc7b4c3
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/role.ts
@@ -0,0 +1,44 @@
+// ----------------------------------------------------------------------
+
+export const role = [
+ 'UX Designer',
+ 'Full Stack Designer',
+ 'Backend Developer',
+ 'UX Designer',
+ 'UX Designer',
+ 'Project Manager',
+ 'Leader',
+ 'Backend Developer',
+ 'Project Manager',
+ 'UI Designer',
+ 'UI/UX Designer',
+ 'UI/UX Designer',
+ 'UI Designer',
+ 'Backend Developer',
+ 'Backend Developer',
+ 'Front End Developer',
+ 'Backend Developer',
+ 'Full Stack Designer',
+ 'Full Stack Developer',
+ 'Backend Developer',
+ 'UX Designer',
+ 'UI Designer',
+ 'Project Manager',
+ 'UI/UX Designer',
+ 'UI Designer',
+ 'Project Manager',
+ 'Full Stack Developer',
+ 'Hr Manager',
+ 'Hr Manager',
+ 'UI/UX Designer',
+ 'Project Manager',
+ 'Full Stack Designer',
+ 'UI Designer',
+ 'Leader',
+ 'Front End Developer',
+ 'UI/UX Designer',
+ 'Project Manager',
+ 'UI/UX Designer',
+ 'UI Designer',
+ 'Full Stack Designer'
+];
diff --git a/frontend/hospital-portal/src/_mock/text.ts b/frontend/hospital-portal/src/_mock/text.ts
new file mode 100755
index 00000000..4866f941
--- /dev/null
+++ b/frontend/hospital-portal/src/_mock/text.ts
@@ -0,0 +1,130 @@
+// ----------------------------------------------------------------------
+
+export const title = [
+ 'Apply These 7 Secret Techniques To Improve Event',
+ 'Believing These 7 Myths About Event Keeps You From Growing',
+ "Don't Waste Time! 7 Facts Until You Reach Your Event",
+ 'How 7 Things Will Change The Way You Approach Event',
+ "Event Awards: 7 Reasons Why They Don't Work & What You Can Do About It",
+ "Event Doesn't Have To Be Hard. Read These 7 Tips",
+ 'Event Is Your Worst Enemy. 7 Ways To Defeat It',
+ 'Event On A Budget: 7 Tips From The Great Depression',
+ 'Knowing These 7 Secrets Will Make Your Event Look Amazing',
+ 'Master The Art Of Event With These 7 Tips',
+ 'My Life, My Job, My Career: How 7 Simple Event Helped Me Succeed',
+ 'Take Advantage Of Event - Read These 7 Tips',
+ 'The Next 7 Things You Should Do For Event Success',
+ 'The Time Is Running Out! Think About These 7 Ways To Change Your Event',
+ 'The 7 Best Things About Event',
+ 'The 7 Biggest Event Mistakes You Can Easily Avoid',
+ 'The 7 Most Successful Event Companies In Region',
+ 'Think Your Event Is Safe? 7 Ways You Can Lose It Today',
+ "Thinking About Event? 7 Reasons Why It's Time To Stop!",
+ '7 Places To Get Deals On Event',
+ 'Best Event Android Apps',
+ 'Best Event Tips You Will Read This Year',
+ 'Best 30 Tips For Event',
+ 'Should Fixing Event Take 30 Steps?',
+ 'The A - Z Of Event',
+ 'The Next 30 Things To Immediately Do About Event',
+ 'The Ultimate Guide To Event',
+ 'Top 30 Funny Event Quotes',
+ 'Top 30 Quotes On Event',
+ 'Top 7 Lessons About Event To Learn Before You Hit 30',
+ 'Top 7 Ways To Buy A Used Event',
+ '30 Best Ways To Sell Event',
+ '30 Ideas For Event',
+ '30 Lessons About Event You Need To Learn Before You Hit 40',
+ '30 Methods Of Event Domination',
+ '30 Things To Do Immediately About Event',
+ '30 Tips To Grow Your Event',
+ '30 Ways To Avoid Event Burnout',
+ '30 Ways To Improve Event',
+ 'How To Make More Event By Doing Less'
+];
+
+export const sentence = [
+ 'Assumenda nam repudiandae rerum fugiat vel maxime.',
+ 'Quis veniam aut saepe aliquid nulla.',
+ 'Reprehenderit ut voluptas sapiente ratione nostrum est.',
+ 'Error ut sit vel molestias velit.',
+ 'Quo quia sit nihil nemo doloremque et.',
+ 'Autem doloribus harum vero laborum.',
+ 'Tempora officiis consequuntur architecto nostrum autem nam adipisci.',
+ 'Voluptas sunt magni adipisci praesentium saepe.',
+ 'Ea architecto quas voluptates voluptas earum illo est vel rem.',
+ 'Ipsum expedita reiciendis ut.',
+ 'Architecto vel voluptatibus alias a aut non maxime ipsa voluptates.',
+ 'Reiciendis enim officiis cupiditate eaque distinctio laudantium modi similique consequatur.',
+ 'Ab autem consequatur itaque mollitia ipsum cupiditate error repudiandae nobis.',
+ 'Distinctio architecto debitis eligendi consequatur unde id modi accusantium possimus.',
+ 'At ut voluptate accusantium.',
+ 'Repudiandae ut qui veritatis sint.',
+ 'Laboriosam blanditiis quo sed et qui esse ipsam necessitatibus sed.',
+ 'Et molestiae et excepturi maxime omnis.',
+ 'Sint dolorem quam eum magnam.',
+ 'Rerum ut iusto iste quam voluptatem necessitatibus.',
+ 'Et quam in.',
+ 'Fugit esse tenetur.',
+ 'Dolorem dolor porro nihil cupiditate molestiae deserunt ut.',
+ 'Omnis beatae eos eius aut molestias laboriosam laborum et optio.',
+ 'Ut veniam quam assumenda ut voluptatibus ducimus accusamus.',
+ 'Quos dignissimos neque omnis reiciendis voluptatem ducimus.',
+ 'Laboriosam quia ut esse.',
+ 'Sit reiciendis nihil qui molestias et.',
+ 'Facilis cupiditate minima ratione quaerat omnis velit non ex totam.',
+ 'Provident sint esse voluptatem voluptas eveniet est.',
+ 'Molestias consequatur ea facilis.',
+ 'Tempora voluptatibus autem ut ut porro quae delectus dolorum.',
+ 'Et consequatur amet nemo ducimus voluptatem placeat voluptas.',
+ 'Modi iste atque hic voluptas sit quis deleniti quas consequatur.',
+ 'Omnis est aliquid odio mollitia aliquid ex.',
+ 'Officia possimus veniam quod molestias.',
+ 'Mollitia inventore recusandae provident aut.',
+ 'Numquam ullam beatae possimus.',
+ 'Fuga velit cupiditate ex culpa odio aut ut.',
+ 'Vero corrupti nam voluptatum excepturi est et.'
+];
+
+export const description = [
+ 'Occaecati est et illo quibusdam accusamus qui. Incidunt aut et molestiae ut facere aut. Est quidem iusto praesentium excepturi harum nihil tenetur facilis. Ut omnis voluptates nihil accusantium doloribus eaque debitis.',
+ 'Atque eaque ducimus minima distinctio velit. Laborum et veniam officiis. Delectus ex saepe hic id laboriosam officia. Odit nostrum qui illum saepe debitis ullam. Laudantium beatae modi fugit ut. Dolores consequatur beatae nihil voluptates rem maiores.',
+ 'Rerum eius velit dolores. Explicabo ad nemo quibusdam. Voluptatem eum suscipit et ipsum et consequatur aperiam quia. Rerum nulla sequi recusandae illum velit quia quas. Et error laborum maiores cupiditate occaecati.',
+ 'Et non omnis qui. Qui sunt deserunt dolorem aut velit cumque adipisci aut enim. Nihil quis quisquam nesciunt dicta nobis ab aperiam dolorem repellat. Voluptates non blanditiis. Error et tenetur iste soluta cupiditate ratione perspiciatis et. Quibusdam aliquid nam sunt et quisquam non esse.',
+ 'Nihil ea sunt facilis praesentium atque. Ab animi alias sequi molestias aut velit ea. Sed possimus eos. Et est aliquid est voluptatem.',
+ 'Non rerum modi. Accusamus voluptatem odit nihil in. Quidem et iusto numquam veniam culpa aperiam odio aut enim. Quae vel dolores. Pariatur est culpa veritatis aut dolorem.',
+ 'Est enim et sit non impedit aperiam cumque animi. Aut eius impedit saepe blanditiis. Totam molestias magnam minima fugiat.',
+ 'Unde a inventore et. Sed esse ut. Atque ducimus quibusdam fuga quas id qui fuga.',
+ 'Eaque natus adipisci soluta nostrum dolorem. Nesciunt ipsum molestias ut aliquid natus ut omnis qui fugiat. Dolor et rem. Ut neque voluptatem blanditiis quasi ullam deleniti.',
+ 'Nam et error exercitationem qui voluptate optio. Officia omnis qui accusantium ipsam qui. Quia sequi nulla perspiciatis optio vero omnis maxime omnis ipsum. Perspiciatis consequuntur asperiores veniam dolores.',
+ 'Perspiciatis nulla ut ut ut voluptates totam consectetur eligendi qui. Optio ut cum. Dolorum sapiente qui laborum. Impedit temporibus totam delectus nihil. Voluptatem corrupti rem.',
+ 'Distinctio omnis similique omnis eos. Repellat cumque rerum nisi. Reiciendis soluta non ut veniam temporibus. Accusantium et dolorem voluptas harum. Nemo eius voluptate dicta et hic nemo. Dolorem assumenda et beatae molestias sit quo mollitia quis consequatur.',
+ 'Sed ut mollitia tempore ipsam et illum doloribus ut. Occaecati ratione veritatis explicabo. Omnis nam omnis sunt placeat tempore accusantium placeat distinctio velit.',
+ 'Eum illo dicta et perspiciatis ut blanditiis eos sequi. Ea veritatis aut et voluptas aut. Laborum eos quia tempore a culpa.',
+ 'Aut quos quae dolores repudiandae similique perferendis perferendis earum laudantium. Facere placeat natus nobis. Eius vitae ullam dolorem.',
+ 'Vero dolorem et voluptatem fugit tempore a quam iure. Fuga consequatur corrupti sunt asperiores vitae. Libero totam repellendus animi debitis illum et sunt officia.',
+ 'Cupiditate illum officiis id molestiae. Numquam non molestiae aliquid et natus sed hic. Alias quia explicabo sed corrupti sint. Natus in et odio qui unde facilis quia. Est sit eius laboriosam aliquid non aperiam quia quo corporis.',
+ 'Et a ab. Optio aspernatur minus tempora amet vitae consectetur inventore cumque. Sed et omnis. Aspernatur a magnam.',
+ 'Ipsum omnis et. Quia ea et autem tempore consequuntur veniam dolorem officiis. Ipsa dicta et ut quidem quia doloremque. Sequi vitae doloremque temporibus. Deserunt incidunt id aperiam itaque natus. Earum sit eaque quas incidunt nihil.',
+ 'Quae consequatur reiciendis. Consequatur non optio. Eaque id placeat. Commodi quo officia aut repudiandae reiciendis tempore voluptatem et. Ut accusamus qui itaque maxime aliquam. Fugit ut animi molestiae porro maiores.',
+ 'Modi hic asperiores ab cumque quam est aut. Voluptas atque quos molestias. Ut excepturi distinctio ipsam aspernatur sit.',
+ 'Sunt totam facilis. Quam commodi voluptatem veniam. Tempora deleniti itaque fugit nihil voluptas.',
+ 'Ipsam aliquam velit nobis repellendus officiis aut deserunt id et. Nihil sunt aut dolores aut. Dolores est ipsa quia et laborum quidem laborum accusamus id. Facilis odit quod hic laudantium saepe omnis nisi in sint. Sed cupiditate possimus id.',
+ 'Magnam non eveniet optio optio ut aliquid atque. Velit libero aspernatur quis laborum consequatur laudantium. Tempora facere optio fugit accusantium ut. Omnis aspernatur reprehenderit autem esse ut ut enim voluptatibus.',
+ 'Ipsam vel molestiae dolorem iure molestiae. Ut qui cumque et sint recusandae modi nulla. Vel rerum tempore similique autem enim voluptatem dolores facilis. Qui delectus recusandae magnam.',
+ 'Fugiat molestias distinctio enim nobis rerum. Perspiciatis adipisci corrupti quas sed ab sunt nostrum. Quibusdam reiciendis ratione dolores vitae fuga exercitationem asperiores maxime voluptate. Minus et ea delectus quia ullam est. Exercitationem iusto libero. Et aut dolore reprehenderit et saepe sint modi.',
+ 'Ex neque aut voluptatem delectus eum deserunt voluptate. Ut quam placeat et. Et impedit tenetur illum aut consequatur quia. Autem sed dolorem non ad aspernatur illum dignissimos beatae. Earum iusto aut rem aut. Facere ea alias enim quo assumenda.',
+ 'Quis sint recusandae quasi corporis et fugit. Omnis voluptatum id laborum qui. Assumenda animi quia eum et facere fuga. Ab et sint molestiae et voluptatum nostrum est.',
+ 'Est quis numquam recusandae alias porro magni. Incidunt quis aut necessitatibus nam ea dolores cumque. Quis dolorum veniam.',
+ 'Corporis magnam non. Ut voluptates pariatur et. Quis tenetur mollitia et necessitatibus et. Perferendis error velit aut.',
+ 'Eos ex accusantium possimus aut quae. Omnis dolorum velit. Sapiente quia dolore ea assumenda voluptatem exercitationem sed consequuntur. Eveniet et molestiae ipsa harum quidem soluta quo. Consequatur ad sunt sed numquam odio eveniet.',
+ 'Ut sit et provident vero vero voluptatem distinctio. Cumque sit error qui et. Ea architecto ipsum occaecati sed alias eum vel. Officia tempore architecto autem vel veniam. Minus modi commodi ad consequatur similique ut. Tenetur tempore eum.',
+ 'Quibusdam in cum voluptatem consequatur rerum. Qui eum assumenda nemo maiores veniam quae. Ipsa occaecati et provident. Quas similique deserunt doloremque placeat natus.',
+ 'Voluptates et earum fugiat molestiae distinctio. Aut sapiente quas dolores et. Quo et dolor velit et iure consequatur ut in amet. Repellendus aut sequi animi inventore nesciunt itaque.',
+ 'Sit a tempore dicta provident molestiae. Necessitatibus blanditiis voluptatum. Magnam esse animi in qui veritatis quibusdam recusandae adipisci possimus. Tenetur dolores ipsum.',
+ 'Neque id sunt amet modi expedita aut libero aut in. Minima dolore praesentium quia quas et pariatur numquam. In ut sequi nemo velit iste minima aliquam. Neque ut tenetur consequuntur sint nemo unde. Magni nesciunt omnis illo optio. Molestias eum exercitationem aut harum odit.',
+ 'Modi quia laboriosam qui ad aut. Fugit quisquam earum distinctio officia est fugit quos. Iure repellat distinctio veritatis voluptate amet ratione repudiandae.',
+ 'Impedit perferendis vel quis ratione. Id aut id officia. Illum fuga saepe provident voluptate eligendi provident. Et nostrum maxime magni. Nobis cumque id magni in iste earum.',
+ 'Dolor numquam maiores praesentium dolorem nihil minus praesentium rem dolorem. Est rerum placeat. Numquam sed magni aliquam laborum enim facere ducimus.',
+ 'In sint enim nam et itaque et qui. Molestiae a iusto quidem quia temporibus id quia eaque eius. Quis quia consectetur saepe vero et molestias. Rem minima accusamus vitae adipisci molestiae unde voluptate consequatur molestiae. Rerum exercitationem quisquam vitae.'
+];
diff --git a/frontend/hospital-portal/src/assets/icon_plan_free.tsx b/frontend/hospital-portal/src/assets/icon_plan_free.tsx
new file mode 100755
index 00000000..b2d4e57d
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/icon_plan_free.tsx
@@ -0,0 +1,51 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function PlanFreeIcon({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/icon_plan_premium.tsx b/frontend/hospital-portal/src/assets/icon_plan_premium.tsx
new file mode 100755
index 00000000..3fef5686
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/icon_plan_premium.tsx
@@ -0,0 +1,118 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function PlanPremiumIcon({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/icon_plan_starter.tsx b/frontend/hospital-portal/src/assets/icon_plan_starter.tsx
new file mode 100755
index 00000000..17204406
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/icon_plan_starter.tsx
@@ -0,0 +1,85 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function PlanStarterIcon({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/icon_sent.tsx b/frontend/hospital-portal/src/assets/icon_sent.tsx
new file mode 100755
index 00000000..ab941300
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/icon_sent.tsx
@@ -0,0 +1,40 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function SentIcon({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/illustration_404.tsx b/frontend/hospital-portal/src/assets/illustration_404.tsx
new file mode 100755
index 00000000..369d87fc
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/illustration_404.tsx
@@ -0,0 +1,62 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function PageNotFoundIllustration({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/illustration_500.tsx b/frontend/hospital-portal/src/assets/illustration_500.tsx
new file mode 100755
index 00000000..33373060
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/illustration_500.tsx
@@ -0,0 +1,240 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function SeverErrorIllustration({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_LIGHTER = theme.palette.primary.lighter;
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/illustration_booking.tsx b/frontend/hospital-portal/src/assets/illustration_booking.tsx
new file mode 100755
index 00000000..b1e97b2d
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/illustration_booking.tsx
@@ -0,0 +1,255 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function BookingIllustration({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_LIGHTER = theme.palette.primary.lighter;
+ const PRIMARY_LIGHT = theme.palette.primary.light;
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/illustration_checkin.tsx b/frontend/hospital-portal/src/assets/illustration_checkin.tsx
new file mode 100755
index 00000000..c3d270f5
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/illustration_checkin.tsx
@@ -0,0 +1,88 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function CheckInIllustration({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_LIGHTER = theme.palette.primary.lighter;
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/illustration_checkout.tsx b/frontend/hospital-portal/src/assets/illustration_checkout.tsx
new file mode 100755
index 00000000..4a93df54
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/illustration_checkout.tsx
@@ -0,0 +1,84 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function CheckOutIllustration({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_LIGHT = theme.palette.primary.light;
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/illustration_coming_soon.tsx b/frontend/hospital-portal/src/assets/illustration_coming_soon.tsx
new file mode 100755
index 00000000..707c7505
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/illustration_coming_soon.tsx
@@ -0,0 +1,139 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function ComingSoonIllustration({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/illustration_doc.tsx b/frontend/hospital-portal/src/assets/illustration_doc.tsx
new file mode 100755
index 00000000..b73ef54a
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/illustration_doc.tsx
@@ -0,0 +1,34 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function DocIllustration({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_MAIN = theme.palette.primary.main;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/illustration_maintenance.tsx b/frontend/hospital-portal/src/assets/illustration_maintenance.tsx
new file mode 100755
index 00000000..878e5fb9
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/illustration_maintenance.tsx
@@ -0,0 +1,171 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function MaintenanceIllustration({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/illustration_motivation.tsx b/frontend/hospital-portal/src/assets/illustration_motivation.tsx
new file mode 100755
index 00000000..eaa3bbda
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/illustration_motivation.tsx
@@ -0,0 +1,92 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function MotivationIllustration({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_LIGHTER = theme.palette.primary.lighter;
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/illustration_order_complete.tsx b/frontend/hospital-portal/src/assets/illustration_order_complete.tsx
new file mode 100755
index 00000000..acbb644b
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/illustration_order_complete.tsx
@@ -0,0 +1,235 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function OrderCompleteIllustration({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_LIGHTER = theme.palette.primary.lighter;
+ const PRIMARY_LIGHT = theme.palette.primary.light;
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/illustration_seo.tsx b/frontend/hospital-portal/src/assets/illustration_seo.tsx
new file mode 100755
index 00000000..e780b5a8
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/illustration_seo.tsx
@@ -0,0 +1,133 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function SeoIllustration({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_LIGHTER = theme.palette.primary.lighter;
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/illustration_upload.tsx b/frontend/hospital-portal/src/assets/illustration_upload.tsx
new file mode 100755
index 00000000..f7436613
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/illustration_upload.tsx
@@ -0,0 +1,536 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function UploadIllustration({ ...other }: BoxProps) {
+ const theme = useTheme();
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+ const PRIMARY_DARKER = theme.palette.primary.darker;
+
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/assets/index.ts b/frontend/hospital-portal/src/assets/index.ts
new file mode 100755
index 00000000..154f3172
--- /dev/null
+++ b/frontend/hospital-portal/src/assets/index.ts
@@ -0,0 +1,17 @@
+export { default as DocIllustration } from './illustration_doc';
+export { default as SeoIllustration } from './illustration_seo';
+export { default as UploadIllustration } from './illustration_upload';
+export { default as SeverErrorIllustration } from './illustration_500';
+export { default as PageNotFoundIllustration } from './illustration_404';
+export { default as MotivationIllustration } from './illustration_motivation';
+export { default as ComingSoonIllustration } from './illustration_coming_soon';
+export { default as MaintenanceIllustration } from './illustration_maintenance';
+export { default as OrderCompleteIllustration } from './illustration_order_complete';
+export { default as BookingIllustration } from './illustration_booking';
+export { default as CheckInIllustration } from './illustration_checkin';
+export { default as CheckOutIllustration } from './illustration_checkout';
+//
+export { default as SentIcon } from './icon_sent';
+export { default as PlanFreeIcon } from './icon_plan_free';
+export { default as PlanStarterIcon } from './icon_plan_starter';
+export { default as PlanPremiumIcon } from './icon_plan_premium';
diff --git a/frontend/hospital-portal/src/components/BadgeStatus.tsx b/frontend/hospital-portal/src/components/BadgeStatus.tsx
new file mode 100755
index 00000000..73f752ae
--- /dev/null
+++ b/frontend/hospital-portal/src/components/BadgeStatus.tsx
@@ -0,0 +1,100 @@
+// @mui
+import { Theme, useTheme, styled } from '@mui/material/styles';
+import { BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export type BadgeStatusEnum =
+ | 'away'
+ | 'busy'
+ | 'unread'
+ | 'online'
+ | 'offline'
+ | 'invisible'
+ | string;
+
+type BadgeSize = 'small' | 'medium' | 'large';
+
+const RootStyle = styled('span')(
+ ({
+ theme,
+ ownerState,
+ }: {
+ theme: Theme;
+ ownerState: {
+ size: BadgeSize;
+ status: BadgeStatusEnum;
+ };
+ }) => {
+ const { status, size } = ownerState;
+
+ return {
+ width: 10,
+ height: 10,
+ display: 'flex',
+ borderRadius: '50%',
+ alignItems: 'center',
+ justifyContent: 'center',
+ '&:before, &:after': {
+ content: "''",
+ borderRadius: 1,
+ backgroundColor: theme.palette.common.white,
+ },
+
+ ...(size === 'small' && { width: 8, height: 8 }),
+
+ ...(size === 'large' && { width: 12, height: 12 }),
+
+ ...(status === 'offline' && { backgroundColor: 'transparent' }),
+
+ ...(status === 'away' && {
+ backgroundColor: theme.palette.warning.main,
+ '&:before': {
+ width: 2,
+ height: 4,
+ transform: 'translateX(1px) translateY(-1px)',
+ },
+ '&:after': {
+ width: 2,
+ height: 4,
+ transform: 'translateY(1px) rotate(125deg)',
+ },
+ }),
+
+ ...(status === 'busy' && {
+ backgroundColor: theme.palette.error.main,
+ '&:before': { width: 6, height: 2 },
+ }),
+
+ ...(status === 'online' && {
+ backgroundColor: theme.palette.success.main,
+ }),
+
+ ...(status === 'invisible' && {
+ backgroundColor: theme.palette.text.disabled,
+ '&:before': {
+ width: 6,
+ height: 6,
+ borderRadius: '50%',
+ },
+ }),
+
+ ...(status === 'unread' && {
+ backgroundColor: theme.palette.info.main,
+ }),
+ };
+ }
+);
+
+// ----------------------------------------------------------------------
+
+interface Props extends BoxProps {
+ size?: BadgeSize;
+ status?: BadgeStatusEnum;
+}
+
+export default function BadgeStatus({ size = 'medium', status = 'offline', sx }: Props) {
+ const theme = useTheme();
+
+ return ;
+}
diff --git a/frontend/hospital-portal/src/components/BasePagination.tsx b/frontend/hospital-portal/src/components/BasePagination.tsx
new file mode 100755
index 00000000..f099aa1a
--- /dev/null
+++ b/frontend/hospital-portal/src/components/BasePagination.tsx
@@ -0,0 +1,17 @@
+import { Pagination } from "@mui/material";
+import { Box } from "@mui/system";
+import { LaravelPaginatedData } from "../@types/paginated-data";
+
+
+export interface Props {
+ paginationData?: LaravelPaginatedData;
+ onPageChange: any;
+}
+
+export default function BasePagination({ paginationData, onPageChange }: Props) {
+ return (
+
+
+
+ )
+}
diff --git a/frontend/hospital-portal/src/components/Breadcrumbs.tsx b/frontend/hospital-portal/src/components/Breadcrumbs.tsx
new file mode 100755
index 00000000..834e965c
--- /dev/null
+++ b/frontend/hospital-portal/src/components/Breadcrumbs.tsx
@@ -0,0 +1,92 @@
+import { ReactElement } from 'react';
+import { Link as RouterLink } from 'react-router-dom';
+// @mui
+import {
+ Box,
+ Link,
+ Typography,
+ BreadcrumbsProps,
+ Breadcrumbs as MUIBreadcrumbs,
+} from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+type TLink = {
+ href?: string;
+ name: string;
+ icon?: ReactElement;
+};
+
+export interface Props extends BreadcrumbsProps {
+ links: TLink[];
+ activeLast?: boolean;
+}
+
+export default function Breadcrumbs({ links, activeLast = false, ...other }: Props) {
+ const currentLink = links[links.length - 1].name;
+
+ const listDefault = links.map((link) => );
+
+ const listActiveLast = links.map((link) => (
+
+ {link.name !== currentLink ? (
+
+ ) : (
+
+ {currentLink}
+
+ )}
+
+ ));
+
+ return (
+
+ }
+ {...other}
+ >
+ {activeLast ? listDefault : listActiveLast}
+
+ );
+}
+
+// ----------------------------------------------------------------------
+
+type LinkItemProps = {
+ link: TLink;
+};
+
+function LinkItem({ link }: LinkItemProps) {
+ const { href, name, icon } = link;
+ return (
+ div': { display: 'inherit' },
+ }}
+ >
+ {icon && {icon}}
+ {name}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/HeaderBreadcrumbs.tsx b/frontend/hospital-portal/src/components/HeaderBreadcrumbs.tsx
new file mode 100755
index 00000000..ddf66cc4
--- /dev/null
+++ b/frontend/hospital-portal/src/components/HeaderBreadcrumbs.tsx
@@ -0,0 +1,60 @@
+import { ReactNode } from 'react';
+import { isString } from 'lodash';
+// @mui
+import { Box, Typography, Link } from '@mui/material';
+//
+import Breadcrumbs, { Props as BreadcrumbsProps } from './Breadcrumbs';
+
+// ----------------------------------------------------------------------
+
+interface Props extends BreadcrumbsProps {
+ action?: ReactNode;
+ heading: string;
+ moreLink?: string | string[];
+}
+
+export default function HeaderBreadcrumbs({
+ links,
+ action,
+ heading,
+ moreLink = '' || [],
+ sx,
+ ...other
+}: Props) {
+ return (
+
+
+
+
+ {heading}
+
+
+
+
+ {action && {action}}
+
+
+
+ {isString(moreLink) ? (
+
+ {moreLink}
+
+ ) : (
+ moreLink.map((href) => (
+
+ {href}
+
+ ))
+ )}
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/Iconify.tsx b/frontend/hospital-portal/src/components/Iconify.tsx
new file mode 100755
index 00000000..4ba15d23
--- /dev/null
+++ b/frontend/hospital-portal/src/components/Iconify.tsx
@@ -0,0 +1,15 @@
+// icons
+import { Icon, IconifyIcon } from '@iconify/react';
+// @mui
+import { Box, BoxProps, SxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+interface Props extends BoxProps {
+ sx?: SxProps;
+ icon: IconifyIcon | string;
+}
+
+export default function Iconify({ icon, sx, ...other }: Props) {
+ return ;
+}
diff --git a/frontend/hospital-portal/src/components/Image.tsx b/frontend/hospital-portal/src/components/Image.tsx
new file mode 100755
index 00000000..49c29380
--- /dev/null
+++ b/frontend/hospital-portal/src/components/Image.tsx
@@ -0,0 +1,97 @@
+import { LazyLoadImage, LazyLoadImageProps } from 'react-lazy-load-image-component';
+// @mui
+import { Theme } from '@mui/material/styles';
+import { Box, BoxProps, SxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export type ImageRato = '4/3' | '3/4' | '6/4' | '4/6' | '16/9' | '9/16' | '21/9' | '9/21' | '1/1';
+
+type IProps = BoxProps & LazyLoadImageProps;
+
+interface Props extends IProps {
+ sx?: SxProps;
+ ratio?: ImageRato;
+ disabledEffect?: boolean;
+}
+
+export default function Image({
+ ratio,
+ disabledEffect = false,
+ effect = 'blur',
+ sx,
+ ...other
+}: Props) {
+ if (ratio) {
+ return (
+
+
+
+ );
+ }
+
+ return (
+
+
+
+ );
+}
+
+// ----------------------------------------------------------------------
+
+function getRatio(ratio = '1/1') {
+ return {
+ '4/3': 'calc(100% / 4 * 3)',
+ '3/4': 'calc(100% / 3 * 4)',
+ '6/4': 'calc(100% / 6 * 4)',
+ '4/6': 'calc(100% / 4 * 6)',
+ '16/9': 'calc(100% / 16 * 9)',
+ '9/16': 'calc(100% / 9 * 16)',
+ '21/9': 'calc(100% / 21 * 9)',
+ '9/21': 'calc(100% / 9 * 21)',
+ '1/1': '100%',
+ }[ratio];
+}
diff --git a/frontend/hospital-portal/src/components/LaravelTable.tsx b/frontend/hospital-portal/src/components/LaravelTable.tsx
new file mode 100644
index 00000000..18325952
--- /dev/null
+++ b/frontend/hospital-portal/src/components/LaravelTable.tsx
@@ -0,0 +1,28 @@
+import { Card, Paper, TableContainer } from "@mui/material";
+import { LaravelPaginatedData } from "../@types/paginated-data";
+import BasePagination from "./BasePagination";
+
+type LaravelTableProps = {
+ isLoading: boolean;
+ lastRequest: number;
+ data: LaravelPaginatedData;
+ handlePageChange: void;
+ TableContent: any;
+};
+
+function LaravelTable(props: LaravelTableProps) {
+ return (
+
+
+ { props.TableContent }
+
+
+ { !props.isLoading ?
+ () :
+ ()
+ }
+
+ )
+}
+
+export default LaravelTable
\ No newline at end of file
diff --git a/frontend/hospital-portal/src/components/LoadingScreen.tsx b/frontend/hospital-portal/src/components/LoadingScreen.tsx
new file mode 100755
index 00000000..0b8ef04d
--- /dev/null
+++ b/frontend/hospital-portal/src/components/LoadingScreen.tsx
@@ -0,0 +1,94 @@
+import { m } from 'framer-motion';
+// @mui
+import { alpha, styled } from '@mui/material/styles';
+import { Box, SxProps } from '@mui/material';
+//
+import Logo from './Logo';
+import ProgressBar from './ProgressBar';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled('div')(({ theme }) => ({
+ right: 0,
+ bottom: 0,
+ zIndex: 99999,
+ width: '100%',
+ height: '100%',
+ position: 'fixed',
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: theme.palette.background.default,
+}));
+
+// ----------------------------------------------------------------------
+
+type Props = {
+ isDashboard?: boolean;
+ sx?: SxProps;
+};
+
+export default function LoadingScreen({ isDashboard, ...other }: Props) {
+ return (
+ <>
+
+
+ {!isDashboard && (
+
+
+
+
+
+ `solid 3px ${alpha(theme.palette.primary.dark, 0.24)}`,
+ }}
+ />
+
+ `solid 8px ${alpha(theme.palette.primary.dark, 0.24)}`,
+ }}
+ />
+
+ )}
+ >
+ );
+}
diff --git a/frontend/hospital-portal/src/components/Logo.tsx b/frontend/hospital-portal/src/components/Logo.tsx
new file mode 100755
index 00000000..de8e5831
--- /dev/null
+++ b/frontend/hospital-portal/src/components/Logo.tsx
@@ -0,0 +1,29 @@
+import { Link as RouterLink } from 'react-router-dom';
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+interface Props extends BoxProps {
+ disabledLink?: boolean;
+}
+
+export default function Logo({ disabledLink = false, sx }: Props) {
+ const theme = useTheme();
+ const PRIMARY_LIGHT = theme.palette.primary.light;
+ const PRIMARY_MAIN = theme.palette.primary.main;
+ const PRIMARY_DARK = theme.palette.primary.dark;
+
+ const logo = (
+
+
+
+ );
+
+ if (disabledLink) {
+ return <>{logo}>;
+ }
+
+ return {logo};
+}
diff --git a/frontend/hospital-portal/src/components/MenuPopover.tsx b/frontend/hospital-portal/src/components/MenuPopover.tsx
new file mode 100755
index 00000000..0942abec
--- /dev/null
+++ b/frontend/hospital-portal/src/components/MenuPopover.tsx
@@ -0,0 +1,120 @@
+// @mui
+import { styled } from '@mui/material/styles';
+import { Popover, PopoverProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+type Arrow =
+ | 'top-left'
+ | 'top-center'
+ | 'top-right'
+ | 'bottom-left'
+ | 'bottom-center'
+ | 'bottom-right'
+ | 'left-top'
+ | 'left-center'
+ | 'left-bottom'
+ | 'right-top'
+ | 'right-center'
+ | 'right-bottom';
+
+type ArrowStyleProps = {
+ arrow: Arrow;
+};
+
+const ArrowStyle = styled('span')(({ arrow, theme }) => {
+ const SIZE = 12;
+
+ const POSITION = -(SIZE / 2);
+
+ const borderStyle = `solid 1px ${theme.palette.grey[500_12]}`;
+
+ const topStyle = {
+ borderRadius: '0 0 3px 0',
+ top: POSITION,
+ borderBottom: borderStyle,
+ borderRight: borderStyle,
+ };
+ const bottomStyle = {
+ borderRadius: '3px 0 0 0',
+ bottom: POSITION,
+ borderTop: borderStyle,
+ borderLeft: borderStyle,
+ };
+ const leftStyle = {
+ borderRadius: '0 3px 0 0',
+ left: POSITION,
+ borderTop: borderStyle,
+ borderRight: borderStyle,
+ };
+ const rightStyle = {
+ borderRadius: '0 0 0 3px',
+ right: POSITION,
+ borderBottom: borderStyle,
+ borderLeft: borderStyle,
+ };
+
+ return {
+ [theme.breakpoints.up('sm')]: {
+ zIndex: 1,
+ width: SIZE,
+ height: SIZE,
+ content: "''",
+ position: 'absolute',
+
+ transform: 'rotate(-135deg)',
+ background: theme.palette.background.paper,
+ },
+ // Top
+ ...(arrow === 'top-left' && { ...topStyle, left: 20 }),
+ ...(arrow === 'top-center' && { ...topStyle, left: 0, right: 0, margin: 'auto' }),
+ ...(arrow === 'top-right' && { ...topStyle, right: 20 }),
+ // Bottom
+ ...(arrow === 'bottom-left' && { ...bottomStyle, left: 20 }),
+ ...(arrow === 'bottom-center' && { ...bottomStyle, left: 0, right: 0, margin: 'auto' }),
+ ...(arrow === 'bottom-right' && { ...bottomStyle, right: 20 }),
+ // Left
+ ...(arrow === 'left-top' && { ...leftStyle, top: 20 }),
+ ...(arrow === 'left-center' && { ...leftStyle, top: 0, bottom: 0, margin: 'auto' }),
+ ...(arrow === 'left-bottom' && { ...leftStyle, bottom: 20 }),
+ // Right
+ ...(arrow === 'right-top' && { ...rightStyle, top: 20 }),
+ ...(arrow === 'right-center' && { ...rightStyle, top: 0, bottom: 0, margin: 'auto' }),
+ ...(arrow === 'right-bottom' && { ...rightStyle, bottom: 20 }),
+ };
+});
+
+// ----------------------------------------------------------------------
+
+interface Props extends PopoverProps {
+ arrow?: Arrow;
+ disabledArrow?: boolean;
+}
+
+export default function MenuPopover({
+ children,
+ arrow = 'top-right',
+ disabledArrow,
+ sx,
+ ...other
+}: Props) {
+ return (
+
+ {!disabledArrow && }
+
+ {children}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/MuiDialog.tsx b/frontend/hospital-portal/src/components/MuiDialog.tsx
new file mode 100644
index 00000000..54ee1110
--- /dev/null
+++ b/frontend/hospital-portal/src/components/MuiDialog.tsx
@@ -0,0 +1,56 @@
+import { Dialog, DialogTitle, DialogContent, Stack, Typography, IconButton } from '@mui/material';
+import CloseIcon from '@mui/icons-material/Close';
+import { ReactElement } from 'react';
+import Iconify from './Iconify';
+
+// ----------------------------------------------------------------------
+
+type MuiDialogProps = {
+ title?: {
+ name?: string;
+ icon?: string;
+ };
+ openDialog: boolean;
+ setOpenDialog: Function;
+ content?: ReactElement;
+ maxWidth?: string;
+};
+
+// ----------------------------------------------------------------------
+
+const MuiDialog = ({ title, openDialog, setOpenDialog, content, maxWidth }: MuiDialogProps) => {
+ const handleClose = () => {
+ setOpenDialog(false);
+ };
+
+ let maxWidthDialog = 'md';
+
+ if (maxWidth) {
+ maxWidthDialog = maxWidth;
+ }
+
+ return (
+
+ );
+};
+
+export default MuiDialog;
diff --git a/frontend/hospital-portal/src/components/MyDropzone.tsx b/frontend/hospital-portal/src/components/MyDropzone.tsx
new file mode 100644
index 00000000..4a5a891e
--- /dev/null
+++ b/frontend/hospital-portal/src/components/MyDropzone.tsx
@@ -0,0 +1,93 @@
+import React, { Dispatch, FunctionComponent, useCallback, useState } from 'react';
+
+import { useDropzone } from 'react-dropzone';
+import { Box, Stack, Typography } from '@mui/material';
+import BlockContent from './upload/BlockContent';
+import { styled } from '@mui/material/styles';
+import { UploadIllustration } from '../assets';
+
+const DropZoneStyle = styled('div')(({ theme }) => ({
+ outline: 'none',
+ overflow: 'hidden',
+ position: 'relative',
+ padding: theme.spacing(5, 1),
+ borderRadius: theme.shape.borderRadius,
+ transition: theme.transitions.create('padding'),
+ // backgroundColor: theme.palette.background.neutral,
+ backgroundColor: '#ffffff',
+
+ border: `2px dashed ${theme.palette.grey[500_32]}`,
+ '&:hover': { cursor: 'pointer', backgroundColor: '#f7f7f7' },
+}));
+
+const MyDropzone: FunctionComponent<{
+ setFile: Dispatch;
+ currentImage: string;
+}> = ({
+ setFile,
+ currentImage,
+
+ // onChanges,
+}) => {
+ const onDrop = useCallback((acceptedFiles) => {
+ // Do something with the files
+ console.log(acceptedFiles);
+ setFile(acceptedFiles[0]);
+ setImage(acceptedFiles[0]);
+ // onChanges(acceptedFiles[0]);
+ }, []);
+
+ const { getRootProps, getInputProps, isDragActive, isDragReject } = useDropzone({
+ onDrop,
+ multiple: false,
+ });
+ const [image, setImage] = useState(null);
+ return (
+
+
+
+ {image ? (
+
+ ) : currentImage ? (
+
+ ) : (
+
+ )}
+
+
+
+ Pilih Foto
+
+
+
+ Letakkan foto disini atau klik jelajahi
+
+ jelajahi
+
+ foto di perangkat Anda
+
+
+
+ {/* */}
+
+ {isDragReject && Unsupported file type...
}
+
+ );
+};
+
+export default MyDropzone;
diff --git a/frontend/hospital-portal/src/components/Page.tsx b/frontend/hospital-portal/src/components/Page.tsx
new file mode 100755
index 00000000..21ec0036
--- /dev/null
+++ b/frontend/hospital-portal/src/components/Page.tsx
@@ -0,0 +1,27 @@
+import { Helmet } from 'react-helmet-async';
+import { forwardRef, ReactNode } from 'react';
+// @mui
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+interface Props extends BoxProps {
+ children: ReactNode;
+ meta?: ReactNode;
+ title: string;
+}
+
+const Page = forwardRef(({ children, title = '', meta, ...other }, ref) => (
+ <>
+
+ {`${title} | LinkSehat`}
+ {meta}
+
+
+
+ {children}
+
+ >
+));
+
+export default Page;
diff --git a/frontend/hospital-portal/src/components/ProgressBar.tsx b/frontend/hospital-portal/src/components/ProgressBar.tsx
new file mode 100755
index 00000000..beeee9f6
--- /dev/null
+++ b/frontend/hospital-portal/src/components/ProgressBar.tsx
@@ -0,0 +1,57 @@
+import NProgress from 'nprogress';
+import { useEffect, useMemo } from 'react';
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { GlobalStyles } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export function ProgressBarStyle() {
+ const theme = useTheme();
+
+ return (
+
+ );
+}
+
+export default function ProgressBar() {
+ NProgress.configure({
+ showSpinner: false
+ });
+
+ useMemo(() => {
+ NProgress.start();
+ }, []);
+
+ useEffect(() => {
+ NProgress.done();
+ }, []);
+
+ return null;
+}
diff --git a/frontend/hospital-portal/src/components/RtlLayout.tsx b/frontend/hospital-portal/src/components/RtlLayout.tsx
new file mode 100755
index 00000000..c3429810
--- /dev/null
+++ b/frontend/hospital-portal/src/components/RtlLayout.tsx
@@ -0,0 +1,29 @@
+import { useEffect, ReactNode } from 'react';
+// rtl
+import rtlPlugin from 'stylis-plugin-rtl';
+// emotion
+import createCache from '@emotion/cache';
+import { CacheProvider } from '@emotion/react';
+// @mui
+import { useTheme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+type Props = {
+ children: ReactNode;
+};
+
+export default function RtlLayout({ children }: Props) {
+ const theme = useTheme();
+
+ useEffect(() => {
+ document.dir = theme.direction;
+ }, [theme.direction]);
+
+ const cacheRtl = createCache({
+ key: theme.direction === 'rtl' ? 'rtl' : 'css',
+ stylisPlugins: theme.direction === 'rtl' ? [rtlPlugin] : [],
+ });
+
+ return {children};
+}
diff --git a/frontend/hospital-portal/src/components/ScrollToTop.ts b/frontend/hospital-portal/src/components/ScrollToTop.ts
new file mode 100755
index 00000000..3ac7ef34
--- /dev/null
+++ b/frontend/hospital-portal/src/components/ScrollToTop.ts
@@ -0,0 +1,14 @@
+import { useEffect } from 'react';
+import { useLocation } from 'react-router-dom';
+
+// ----------------------------------------------------------------------
+
+export default function ScrollToTop() {
+ const { pathname } = useLocation();
+
+ useEffect(() => {
+ window.scrollTo(0, 0);
+ }, [pathname]);
+
+ return null;
+}
diff --git a/frontend/hospital-portal/src/components/Scrollbar.tsx b/frontend/hospital-portal/src/components/Scrollbar.tsx
new file mode 100755
index 00000000..ba1ff721
--- /dev/null
+++ b/frontend/hospital-portal/src/components/Scrollbar.tsx
@@ -0,0 +1,61 @@
+import SimpleBarReact, { Props as ScrollbarProps } from 'simplebar-react';
+// @mui
+import { alpha, styled } from '@mui/material/styles';
+import { Box, SxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled('div')(() => ({
+ flexGrow: 1,
+ height: '100%',
+ overflow: 'hidden',
+}));
+
+const SimpleBarStyle = styled(SimpleBarReact)(({ theme }) => ({
+ maxHeight: '100%',
+ '& .simplebar-scrollbar': {
+ '&:before': {
+ backgroundColor: alpha(theme.palette.grey[600], 0.48),
+ },
+ '&.simplebar-visible:before': {
+ opacity: 1,
+ },
+ },
+ '& .simplebar-track.simplebar-vertical': {
+ width: 10,
+ },
+ '& .simplebar-track.simplebar-horizontal .simplebar-scrollbar': {
+ height: 6,
+ },
+ '& .simplebar-mask': {
+ zIndex: 'inherit',
+ },
+}));
+
+// ----------------------------------------------------------------------
+
+interface Props extends ScrollbarProps {
+ sx?: SxProps;
+}
+
+export default function Scrollbar({ children, sx, ...other }: Props) {
+ const userAgent = typeof navigator === 'undefined' ? 'SSR' : navigator.userAgent;
+
+ const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent);
+
+ if (isMobile) {
+ return (
+
+ {children}
+
+ );
+ }
+
+ return (
+
+
+ {children}
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/SvgIconStyle.tsx b/frontend/hospital-portal/src/components/SvgIconStyle.tsx
new file mode 100755
index 00000000..d98dc9e3
--- /dev/null
+++ b/frontend/hospital-portal/src/components/SvgIconStyle.tsx
@@ -0,0 +1,24 @@
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+interface Props extends BoxProps {
+ src: string;
+}
+
+export default function SvgIconStyle({ src, sx }: Props) {
+ return (
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/ThemeColorPresets.tsx b/frontend/hospital-portal/src/components/ThemeColorPresets.tsx
new file mode 100755
index 00000000..03d43c43
--- /dev/null
+++ b/frontend/hospital-portal/src/components/ThemeColorPresets.tsx
@@ -0,0 +1,38 @@
+import { ReactNode, useMemo } from 'react';
+// @mui
+import { alpha, ThemeProvider, createTheme, useTheme } from '@mui/material/styles';
+// hooks
+import useSettings from '../hooks/useSettings';
+//
+import componentsOverride from '../theme/overrides';
+
+// ----------------------------------------------------------------------
+
+type Props = {
+ children: ReactNode;
+};
+
+export default function ThemeColorPresets({ children }: Props) {
+ const defaultTheme = useTheme();
+ const { setColor } = useSettings();
+
+ const themeOptions = useMemo(
+ () => ({
+ ...defaultTheme,
+ palette: {
+ ...defaultTheme.palette,
+ primary: setColor,
+ },
+ customShadows: {
+ ...defaultTheme.customShadows,
+ primary: `0 8px 16px 0 ${alpha(setColor.main, 0.24)}`,
+ },
+ }),
+ [setColor, defaultTheme]
+ );
+
+ const theme = createTheme(themeOptions);
+ theme.components = componentsOverride(theme);
+
+ return {children};
+}
diff --git a/frontend/hospital-portal/src/components/UploadImage.tsx b/frontend/hospital-portal/src/components/UploadImage.tsx
new file mode 100644
index 00000000..a69c73ec
--- /dev/null
+++ b/frontend/hospital-portal/src/components/UploadImage.tsx
@@ -0,0 +1,128 @@
+import React, { Dispatch, FunctionComponent, useCallback, useState } from 'react';
+
+import { useDropzone } from 'react-dropzone';
+import { Box, Stack, Typography } from '@mui/material';
+import BlockContent from './upload/BlockContent';
+import { styled } from '@mui/material/styles';
+import { UploadIllustration } from '../assets';
+import Iconify from './Iconify';
+
+const RootStyle = styled('div')(({ theme }) => ({
+ width: 144,
+ height: 144,
+ margin: 'auto',
+ borderRadius: '50%',
+ padding: theme.spacing(1),
+ border: `2px dashed ${theme.palette.grey[500_32]}`,
+}));
+const DropZoneStyle = styled('div')({
+ zIndex: 0,
+ width: '100%',
+ height: '100%',
+ outline: 'none',
+ display: 'flex',
+ overflow: 'hidden',
+ borderRadius: '50%',
+ position: 'relative',
+ alignItems: 'center',
+ justifyContent: 'center',
+ '& > *': { width: '100%', height: '100%' },
+ '&:hover': {
+ cursor: 'pointer',
+ '& .placeholder': {
+ zIndex: 9,
+ },
+ },
+});
+
+const PlaceholderStyle = styled('div')(({ theme }) => ({
+ display: 'flex',
+ position: 'absolute',
+ alignItems: 'center',
+ flexDirection: 'column',
+ justifyContent: 'center',
+ color: theme.palette.text.secondary,
+ // backgroundColor: theme.palette.background.neutral,
+ transition: theme.transitions.create('opacity', {
+ easing: theme.transitions.easing.easeInOut,
+ duration: theme.transitions.duration.shorter,
+ }),
+ '&:hover': { opacity: 0.72 },
+}));
+
+const UploadImage: FunctionComponent<{
+ setFile: Dispatch;
+ currentImage: string;
+}> = ({ setFile, currentImage, setSave, error, file, helperText, sx, ...other }) => {
+ const onDrop = useCallback(
+ (acceptedFiles) => {
+ // Do something with the files
+ console.log(acceptedFiles);
+ setFile(acceptedFiles[0]);
+ setImage(acceptedFiles[0]);
+ },
+ [setFile, setSave]
+ );
+
+ const { getRootProps, getInputProps, isDragActive, isDragReject } = useDropzone({
+ onDrop,
+ multiple: false,
+ });
+
+ const [image, setImage] = useState(null);
+
+ return (
+
+
+
+ {/* */}
+ {image ? (
+
+ ) : currentImage ? (
+
+ ) : (
+
+
+ {image ? 'Update photo' : 'Upload photo'}
+
+ )}
+
+
+
+ {image ? 'Update photo' : 'Upload photo'}
+
+ {/* */}
+ {/* */}
+
+ {isDragReject && Unsupported file type...
}
+
+
+ );
+};
+
+export default UploadImage;
diff --git a/frontend/hospital-portal/src/components/animate/DialogAnimate.tsx b/frontend/hospital-portal/src/components/animate/DialogAnimate.tsx
new file mode 100755
index 00000000..0eddb6ec
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/DialogAnimate.tsx
@@ -0,0 +1,61 @@
+import { m, AnimatePresence } from 'framer-motion';
+// @mui
+import { Dialog, Box, Paper, DialogProps } from '@mui/material';
+//
+import { varFade } from './variants';
+
+// ----------------------------------------------------------------------
+
+export interface Props extends DialogProps {
+ variants?: Record;
+ onClose?: VoidFunction;
+}
+
+export default function DialogAnimate({
+ open = false,
+ variants,
+ onClose,
+ children,
+ sx,
+ ...other
+}: Props) {
+ return (
+
+ {open && (
+
+ )}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/animate/FabButtonAnimate.tsx b/frontend/hospital-portal/src/components/animate/FabButtonAnimate.tsx
new file mode 100755
index 00000000..13c63dcf
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/FabButtonAnimate.tsx
@@ -0,0 +1,107 @@
+import { m } from 'framer-motion';
+import { forwardRef, ReactNode } from 'react';
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Box, Fab, FabProps, SxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+interface Props extends Omit {
+ sxWrap?: SxProps;
+ color?:
+ | 'inherit'
+ | 'default'
+ | 'primary'
+ | 'secondary'
+ | 'info'
+ | 'success'
+ | 'warning'
+ | 'error';
+}
+
+const FabButtonAnimate = forwardRef(
+ ({ color = 'primary', size = 'large', children, sx, sxWrap, ...other }, ref) => {
+ const theme = useTheme();
+
+ if (
+ color === 'default' ||
+ color === 'inherit' ||
+ color === 'primary' ||
+ color === 'secondary'
+ ) {
+ return (
+
+
+ {children}
+
+
+ );
+ }
+
+ return (
+
+
+ {children}
+
+
+ );
+ }
+);
+
+export default FabButtonAnimate;
+
+// ----------------------------------------------------------------------
+
+type AnimateWrapProp = {
+ children: ReactNode;
+ size: 'small' | 'medium' | 'large';
+ sxWrap?: SxProps;
+};
+
+const varSmall = {
+ hover: { scale: 1.07 },
+ tap: { scale: 0.97 },
+};
+
+const varMedium = {
+ hover: { scale: 1.06 },
+ tap: { scale: 0.98 },
+};
+
+const varLarge = {
+ hover: { scale: 1.05 },
+ tap: { scale: 0.99 },
+};
+
+function AnimateWrap({ size, children, sxWrap }: AnimateWrapProp) {
+ const isSmall = size === 'small';
+ const isLarge = size === 'large';
+
+ return (
+
+ {children}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/animate/IconButtonAnimate.tsx b/frontend/hospital-portal/src/components/animate/IconButtonAnimate.tsx
new file mode 100755
index 00000000..0306c78d
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/IconButtonAnimate.tsx
@@ -0,0 +1,59 @@
+import { m } from 'framer-motion';
+import { forwardRef, ReactNode } from 'react';
+// @mui
+import { Box, IconButton, IconButtonProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+const IconButtonAnimate = forwardRef(
+ ({ children, size = 'medium', ...other }, ref) => (
+
+
+ {children}
+
+
+ )
+);
+
+export default IconButtonAnimate;
+
+// ----------------------------------------------------------------------
+
+type AnimateWrapProp = {
+ children: ReactNode;
+ size: 'small' | 'medium' | 'large';
+};
+
+const varSmall = {
+ hover: { scale: 1.1 },
+ tap: { scale: 0.95 },
+};
+
+const varMedium = {
+ hover: { scale: 1.09 },
+ tap: { scale: 0.97 },
+};
+
+const varLarge = {
+ hover: { scale: 1.08 },
+ tap: { scale: 0.99 },
+};
+
+function AnimateWrap({ size, children }: AnimateWrapProp) {
+ const isSmall = size === 'small';
+ const isLarge = size === 'large';
+
+ return (
+
+ {children}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/animate/MotionContainer.tsx b/frontend/hospital-portal/src/components/animate/MotionContainer.tsx
new file mode 100755
index 00000000..b3517a66
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/MotionContainer.tsx
@@ -0,0 +1,43 @@
+import { m, MotionProps } from 'framer-motion';
+// @mui
+import { Box, BoxProps } from '@mui/material';
+//
+import { varContainer } from './variants';
+
+// ----------------------------------------------------------------------
+
+type IProps = BoxProps & MotionProps;
+
+export interface Props extends IProps {
+ animate?: boolean;
+ action?: boolean;
+}
+
+export default function MotionContainer({ animate, action = false, children, ...other }: Props) {
+ if (action) {
+ return (
+
+ {children}
+
+ );
+ }
+
+ return (
+
+ {children}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/animate/MotionInView.tsx b/frontend/hospital-portal/src/components/animate/MotionInView.tsx
new file mode 100755
index 00000000..61942e59
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/MotionInView.tsx
@@ -0,0 +1,50 @@
+import { useEffect } from 'react';
+import { m, useAnimation, MotionProps } from 'framer-motion';
+import { useInView } from 'react-intersection-observer';
+// @mui
+import { Box, BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+type Props = BoxProps & MotionProps;
+
+interface MotionInViewProps extends Props {
+ threshold?: number | number[];
+}
+
+export default function MotionInView({
+ children,
+ variants,
+ transition,
+ threshold,
+ ...other
+}: MotionInViewProps) {
+ const controls = useAnimation();
+ const [ref, inView] = useInView({
+ threshold: threshold || 0,
+ triggerOnce: true,
+ });
+
+ useEffect(() => {
+ if (!variants) return;
+ if (inView) {
+ controls.start(Object.keys(variants)[1]);
+ } else {
+ controls.start(Object.keys(variants)[0]);
+ }
+ }, [controls, inView, variants]);
+
+ return (
+
+ {children}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/animate/MotionLazyContainer.tsx b/frontend/hospital-portal/src/components/animate/MotionLazyContainer.tsx
new file mode 100755
index 00000000..801efa1d
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/MotionLazyContainer.tsx
@@ -0,0 +1,20 @@
+import { ReactNode } from 'react';
+import { LazyMotion } from 'framer-motion';
+import features from "./features";
+
+// ----------------------------------------------------------------------
+
+// eslint-disable-next-line import/extensions
+// const loadFeatures = () => import('~/src/components/animate/features.js').then((res) => res.default);
+
+type Props = {
+ children: ReactNode;
+};
+
+export default function MotionLazyContainer({ children }: Props) {
+ return (
+
+ {children}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/animate/TextAnimate.tsx b/frontend/hospital-portal/src/components/animate/TextAnimate.tsx
new file mode 100755
index 00000000..82573b2f
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/TextAnimate.tsx
@@ -0,0 +1,34 @@
+import { m, MotionProps } from 'framer-motion';
+// @mui
+import { Box, BoxProps } from '@mui/material';
+//
+import { varFade } from './variants';
+
+// ----------------------------------------------------------------------
+
+type Props = BoxProps & MotionProps;
+
+interface TextAnimateProps extends Props {
+ text: string;
+}
+
+export default function TextAnimate({ text, variants, sx, ...other }: TextAnimateProps) {
+ return (
+
+ {text.split('').map((letter, index) => (
+
+ {letter}
+
+ ))}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/animate/features.js b/frontend/hospital-portal/src/components/animate/features.js
new file mode 100755
index 00000000..9e51e8f3
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/features.js
@@ -0,0 +1,3 @@
+import { domMax } from 'framer-motion';
+
+export default domMax;
diff --git a/frontend/hospital-portal/src/components/animate/index.ts b/frontend/hospital-portal/src/components/animate/index.ts
new file mode 100755
index 00000000..c1ed72c5
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/index.ts
@@ -0,0 +1,13 @@
+// ----------------------------------------------------------------------
+
+export * from './variants';
+
+export { default as DialogAnimate } from './DialogAnimate';
+export { default as TextAnimate } from './TextAnimate';
+
+export { default as FabButtonAnimate } from './FabButtonAnimate';
+export { default as IconButtonAnimate } from './IconButtonAnimate';
+
+export { default as MotionInView } from './MotionInView';
+export { default as MotionContainer } from './MotionContainer';
+export { default as MotionLazyContainer } from './MotionLazyContainer';
diff --git a/frontend/hospital-portal/src/components/animate/type.ts b/frontend/hospital-portal/src/components/animate/type.ts
new file mode 100755
index 00000000..cf2fe978
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/type.ts
@@ -0,0 +1,44 @@
+// ----------------------------------------------------------------------
+
+type EaseType =
+ | 'linear'
+ | 'easeIn'
+ | 'easeOut'
+ | 'easeInOut'
+ | 'circIn'
+ | 'circOut'
+ | 'circInOut'
+ | 'backIn'
+ | 'backOut'
+ | 'backInOut'
+ | 'anticipate'
+ | number[];
+
+export type VariantsType = {
+ distance?: number;
+ durationIn?: number;
+ durationOut?: number;
+ easeIn?: EaseType;
+ easeOut?: EaseType;
+};
+
+export type TranHoverType = {
+ duration?: number;
+ ease?: EaseType;
+};
+
+export type TranEnterType = {
+ durationIn?: number;
+ easeIn?: EaseType;
+};
+
+export type TranExitType = {
+ durationOut?: number;
+ easeOut?: EaseType;
+};
+
+export type BackgroundType = {
+ colors?: string[];
+ duration?: number;
+ ease?: EaseType;
+};
diff --git a/frontend/hospital-portal/src/components/animate/variants/actions.ts b/frontend/hospital-portal/src/components/animate/variants/actions.ts
new file mode 100755
index 00000000..503c9f3d
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/actions.ts
@@ -0,0 +1,7 @@
+// ----------------------------------------------------------------------
+
+export const varHover = (scale?: number) => ({
+ hover: {
+ scale: scale || 1.1,
+ },
+});
diff --git a/frontend/hospital-portal/src/components/animate/variants/background.ts b/frontend/hospital-portal/src/components/animate/variants/background.ts
new file mode 100755
index 00000000..4b7ea8e4
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/background.ts
@@ -0,0 +1,106 @@
+// @types
+import { BackgroundType } from '../type';
+
+// ----------------------------------------------------------------------
+
+export const varBgColor = (props?: BackgroundType) => {
+ const colors = props?.colors || ['#19dcea', '#b22cff'];
+ const duration = props?.duration || 5;
+ const ease = props?.ease || 'linear';
+
+ return {
+ animate: {
+ background: colors,
+ transition: { duration, ease },
+ },
+ };
+};
+
+// ----------------------------------------------------------------------
+
+export const varBgKenburns = (props?: BackgroundType) => {
+ const duration = props?.duration || 5;
+ const ease = props?.ease || 'easeOut';
+
+ return {
+ top: {
+ animate: {
+ scale: [1, 1.25],
+ y: [0, -15],
+ transformOrigin: ['50% 16%', 'top'],
+ transition: { duration, ease },
+ },
+ },
+ right: {
+ animate: {
+ scale: [1, 1.25],
+ x: [0, 20],
+ y: [0, -15],
+ transformOrigin: ['84% 50%', 'right'],
+ transition: { duration, ease },
+ },
+ },
+ bottom: {
+ animate: {
+ scale: [1, 1.25],
+ y: [0, 15],
+ transformOrigin: ['50% 84%', 'bottom'],
+ transition: { duration, ease },
+ },
+ },
+ left: {
+ animate: {
+ scale: [1, 1.25],
+ x: [0, -20],
+ y: [0, 15],
+ transformOrigin: ['16% 50%', 'left'],
+ transition: { duration, ease },
+ },
+ },
+ };
+};
+
+// ----------------------------------------------------------------------
+
+export const varBgPan = (props?: BackgroundType) => {
+ const colors = props?.colors || ['#ee7752', '#e73c7e', '#23a6d5', '#23d5ab'];
+ const duration = props?.duration || 5;
+ const ease = props?.ease || 'linear';
+
+ const gradient = (deg: number) => `linear-gradient(${deg}deg, ${colors})`;
+
+ return {
+ top: {
+ animate: {
+ backgroundImage: [gradient(0), gradient(0)],
+ backgroundPosition: ['center 99%', 'center 1%'],
+ backgroundSize: ['100% 600%', '100% 600%'],
+ transition: { duration, ease },
+ },
+ },
+ right: {
+ animate: {
+ backgroundPosition: ['1% center', '99% center'],
+ backgroundImage: [gradient(270), gradient(270)],
+ backgroundSize: ['600% 100%', '600% 100%'],
+ transition: { duration, ease },
+ },
+ },
+ bottom: {
+ animate: {
+ backgroundImage: [gradient(0), gradient(0)],
+ backgroundPosition: ['center 1%', 'center 99%'],
+ backgroundSize: ['100% 600%', '100% 600%'],
+ transition: { duration, ease },
+ },
+ },
+ left: {
+ animate: {
+ backgroundPosition: ['99% center', '1% center'],
+ backgroundImage: [gradient(270), gradient(270)],
+ backgroundSize: ['600% 100%', '600% 100%'],
+ transition: { duration, ease },
+ },
+ },
+ };
+};
diff --git a/frontend/hospital-portal/src/components/animate/variants/bounce.ts b/frontend/hospital-portal/src/components/animate/variants/bounce.ts
new file mode 100755
index 00000000..6632ac2b
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/bounce.ts
@@ -0,0 +1,106 @@
+// @types
+import { VariantsType } from '../type';
+//
+import { varTranEnter, varTranExit } from './transition';
+
+// ----------------------------------------------------------------------
+
+export const varBounce = (props?: VariantsType) => {
+ const durationIn = props?.durationIn;
+ const durationOut = props?.durationOut;
+ const easeIn = props?.easeIn;
+ const easeOut = props?.easeOut;
+
+ return {
+ // IN
+ in: {
+ initial: {},
+ animate: {
+ scale: [0.3, 1.1, 0.9, 1.03, 0.97, 1],
+ opacity: [0, 1, 1, 1, 1, 1],
+ transition: varTranEnter({ durationIn, easeIn }),
+ },
+ exit: {
+ scale: [0.9, 1.1, 0.3],
+ opacity: [1, 1, 0],
+ },
+ },
+ inUp: {
+ initial: {},
+ animate: {
+ y: [720, -24, 12, -4, 0],
+ scaleY: [4, 0.9, 0.95, 0.985, 1],
+ opacity: [0, 1, 1, 1, 1],
+ transition: { ...varTranEnter({ durationIn, easeIn }) },
+ },
+ exit: {
+ y: [12, -24, 720],
+ scaleY: [0.985, 0.9, 3],
+ opacity: [1, 1, 0],
+ transition: varTranExit({ durationOut, easeOut }),
+ },
+ },
+ inDown: {
+ initial: {},
+ animate: {
+ y: [-720, 24, -12, 4, 0],
+ scaleY: [4, 0.9, 0.95, 0.985, 1],
+ opacity: [0, 1, 1, 1, 1],
+ transition: varTranEnter({ durationIn, easeIn }),
+ },
+ exit: {
+ y: [-12, 24, -720],
+ scaleY: [0.985, 0.9, 3],
+ opacity: [1, 1, 0],
+ transition: varTranExit({ durationOut, easeOut }),
+ },
+ },
+ inLeft: {
+ initial: {},
+ animate: {
+ x: [-720, 24, -12, 4, 0],
+ scaleX: [3, 1, 0.98, 0.995, 1],
+ opacity: [0, 1, 1, 1, 1],
+ transition: varTranEnter({ durationIn, easeIn }),
+ },
+ exit: {
+ x: [0, 24, -720],
+ scaleX: [1, 0.9, 2],
+ opacity: [1, 1, 0],
+ transition: varTranExit({ durationOut, easeOut }),
+ },
+ },
+ inRight: {
+ initial: {},
+ animate: {
+ x: [720, -24, 12, -4, 0],
+ scaleX: [3, 1, 0.98, 0.995, 1],
+ opacity: [0, 1, 1, 1, 1],
+ transition: varTranEnter({ durationIn, easeIn }),
+ },
+ exit: {
+ x: [0, -24, 720],
+ scaleX: [1, 0.9, 2],
+ opacity: [1, 1, 0],
+ transition: varTranExit({ durationOut, easeOut }),
+ },
+ },
+
+ // OUT
+ out: {
+ animate: { scale: [0.9, 1.1, 0.3], opacity: [1, 1, 0] },
+ },
+ outUp: {
+ animate: { y: [-12, 24, -720], scaleY: [0.985, 0.9, 3], opacity: [1, 1, 0] },
+ },
+ outDown: {
+ animate: { y: [12, -24, 720], scaleY: [0.985, 0.9, 3], opacity: [1, 1, 0] },
+ },
+ outLeft: {
+ animate: { x: [0, 24, -720], scaleX: [1, 0.9, 2], opacity: [1, 1, 0] },
+ },
+ outRight: {
+ animate: { x: [0, -24, 720], scaleX: [1, 0.9, 2], opacity: [1, 1, 0] },
+ },
+ };
+};
diff --git a/frontend/hospital-portal/src/components/animate/variants/container.ts b/frontend/hospital-portal/src/components/animate/variants/container.ts
new file mode 100755
index 00000000..19eacd77
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/container.ts
@@ -0,0 +1,28 @@
+// ----------------------------------------------------------------------
+
+export type Props = {
+ staggerIn?: number;
+ delayIn?: number;
+ staggerOut?: number;
+};
+
+export const varContainer = (props?: Props) => {
+ const staggerIn = props?.staggerIn || 0.05;
+ const delayIn = props?.staggerIn || 0.05;
+ const staggerOut = props?.staggerIn || 0.05;
+
+ return {
+ animate: {
+ transition: {
+ staggerChildren: staggerIn,
+ delayChildren: delayIn,
+ },
+ },
+ exit: {
+ transition: {
+ staggerChildren: staggerOut,
+ staggerDirection: -1,
+ },
+ },
+ };
+};
diff --git a/frontend/hospital-portal/src/components/animate/variants/fade.ts b/frontend/hospital-portal/src/components/animate/variants/fade.ts
new file mode 100755
index 00000000..24f5e8c2
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/fade.ts
@@ -0,0 +1,70 @@
+// @types
+import { VariantsType } from '../type';
+//
+import { varTranEnter, varTranExit } from './transition';
+
+// ----------------------------------------------------------------------
+
+export const varFade = (props?: VariantsType) => {
+ const distance = props?.distance || 120;
+ const durationIn = props?.durationIn;
+ const durationOut = props?.durationOut;
+ const easeIn = props?.easeIn;
+ const easeOut = props?.easeOut;
+
+ return {
+ // IN
+ in: {
+ initial: { opacity: 0 },
+ animate: { opacity: 1, transition: varTranEnter },
+ exit: { opacity: 0, transition: varTranExit },
+ },
+ inUp: {
+ initial: { y: distance, opacity: 0 },
+ animate: { y: 0, opacity: 1, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { y: distance, opacity: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ inDown: {
+ initial: { y: -distance, opacity: 0 },
+ animate: { y: 0, opacity: 1, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { y: -distance, opacity: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ inLeft: {
+ initial: { x: -distance, opacity: 0 },
+ animate: { x: 0, opacity: 1, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { x: -distance, opacity: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ inRight: {
+ initial: { x: distance, opacity: 0 },
+ animate: { x: 0, opacity: 1, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { x: distance, opacity: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+
+ // OUT
+ out: {
+ initial: { opacity: 1 },
+ animate: { opacity: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { opacity: 1, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ outUp: {
+ initial: { y: 0, opacity: 1 },
+ animate: { y: -distance, opacity: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { y: 0, opacity: 1, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ outDown: {
+ initial: { y: 0, opacity: 1 },
+ animate: { y: distance, opacity: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { y: 0, opacity: 1, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ outLeft: {
+ initial: { x: 0, opacity: 1 },
+ animate: { x: -distance, opacity: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { x: 0, opacity: 1, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ outRight: {
+ initial: { x: 0, opacity: 1 },
+ animate: { x: distance, opacity: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { x: 0, opacity: 1, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ };
+};
diff --git a/frontend/hospital-portal/src/components/animate/variants/flip.ts b/frontend/hospital-portal/src/components/animate/variants/flip.ts
new file mode 100755
index 00000000..4b64c8b8
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/flip.ts
@@ -0,0 +1,37 @@
+// @types
+import { VariantsType } from '../type';
+//
+import { varTranEnter, varTranExit } from './transition';
+
+// ----------------------------------------------------------------------
+
+export const varFlip = (props?: VariantsType) => {
+ const durationIn = props?.durationIn;
+ const durationOut = props?.durationOut;
+ const easeIn = props?.easeIn;
+ const easeOut = props?.easeOut;
+
+ return {
+ // IN
+ inX: {
+ initial: { rotateX: -180, opacity: 0 },
+ animate: { rotateX: 0, opacity: 1, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { rotateX: -180, opacity: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ inY: {
+ initial: { rotateY: -180, opacity: 0 },
+ animate: { rotateY: 0, opacity: 1, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { rotateY: -180, opacity: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+
+ // OUT
+ outX: {
+ initial: { rotateX: 0, opacity: 1 },
+ animate: { rotateX: 70, opacity: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ outY: {
+ initial: { rotateY: 0, opacity: 1 },
+ animate: { rotateY: 70, opacity: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ };
+};
diff --git a/frontend/hospital-portal/src/components/animate/variants/index.ts b/frontend/hospital-portal/src/components/animate/variants/index.ts
new file mode 100755
index 00000000..ed93345a
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/index.ts
@@ -0,0 +1,12 @@
+export * from './path';
+export * from './fade';
+export * from './zoom';
+export * from './flip';
+export * from './slide';
+export * from './scale';
+export * from './bounce';
+export * from './rotate';
+export * from './actions';
+export * from './container';
+export * from './transition';
+export * from './background';
diff --git a/frontend/hospital-portal/src/components/animate/variants/path.ts b/frontend/hospital-portal/src/components/animate/variants/path.ts
new file mode 100755
index 00000000..a4bee2c3
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/path.ts
@@ -0,0 +1,14 @@
+// ----------------------------------------------------------------------
+
+export const TRANSITION = {
+ duration: 2,
+ ease: [0.43, 0.13, 0.23, 0.96],
+};
+
+export const varPath = {
+ animate: {
+ fillOpacity: [0, 0, 1],
+ pathLength: [1, 0.4, 0],
+ transition: TRANSITION,
+ },
+};
diff --git a/frontend/hospital-portal/src/components/animate/variants/rotate.ts b/frontend/hospital-portal/src/components/animate/variants/rotate.ts
new file mode 100755
index 00000000..7af88aae
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/rotate.ts
@@ -0,0 +1,28 @@
+// @types
+import { VariantsType } from '../type';
+//
+import { varTranEnter, varTranExit } from './transition';
+
+// ----------------------------------------------------------------------
+
+export const varRotate = (props?: VariantsType) => {
+ const durationIn = props?.durationIn;
+ const durationOut = props?.durationOut;
+ const easeIn = props?.easeIn;
+ const easeOut = props?.easeOut;
+
+ return {
+ // IN
+ in: {
+ initial: { opacity: 0, rotate: -360 },
+ animate: { opacity: 1, rotate: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { opacity: 0, rotate: -360, transition: varTranExit({ durationOut, easeOut }) },
+ },
+
+ // OUT
+ out: {
+ initial: { opacity: 1, rotate: 0 },
+ animate: { opacity: 0, rotate: -360, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ };
+};
diff --git a/frontend/hospital-portal/src/components/animate/variants/scale.ts b/frontend/hospital-portal/src/components/animate/variants/scale.ts
new file mode 100755
index 00000000..79dddc03
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/scale.ts
@@ -0,0 +1,37 @@
+// @types
+import { VariantsType } from '../type';
+//
+import { varTranEnter, varTranExit } from './transition';
+
+// ----------------------------------------------------------------------
+
+export const varScale = (props?: VariantsType) => {
+ const durationIn = props?.durationIn;
+ const durationOut = props?.durationOut;
+ const easeIn = props?.easeIn;
+ const easeOut = props?.easeOut;
+
+ return {
+ // IN
+ inX: {
+ initial: { scaleX: 0, opacity: 0 },
+ animate: { scaleX: 1, opacity: 1, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { scaleX: 0, opacity: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ inY: {
+ initial: { scaleY: 0, opacity: 0 },
+ animate: { scaleY: 1, opacity: 1, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { scaleY: 0, opacity: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+
+ // OUT
+ outX: {
+ initial: { scaleX: 1, opacity: 1 },
+ animate: { scaleX: 0, opacity: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ },
+ outY: {
+ initial: { scaleY: 1, opacity: 1 },
+ animate: { scaleY: 0, opacity: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ },
+ };
+};
diff --git a/frontend/hospital-portal/src/components/animate/variants/slide.ts b/frontend/hospital-portal/src/components/animate/variants/slide.ts
new file mode 100755
index 00000000..d835cb27
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/slide.ts
@@ -0,0 +1,60 @@
+// @types
+import { VariantsType } from '../type';
+//
+import { varTranEnter, varTranExit } from './transition';
+
+// ----------------------------------------------------------------------
+
+export const varSlide = (props?: VariantsType) => {
+ const distance = props?.distance || 160;
+ const durationIn = props?.durationIn;
+ const durationOut = props?.durationOut;
+ const easeIn = props?.easeIn;
+ const easeOut = props?.easeOut;
+
+ return {
+ // IN
+ inUp: {
+ initial: { y: distance },
+ animate: { y: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { y: distance, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ inDown: {
+ initial: { y: -distance },
+ animate: { y: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { y: -distance, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ inLeft: {
+ initial: { x: -distance },
+ animate: { x: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { x: -distance, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ inRight: {
+ initial: { x: distance },
+ animate: { x: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { x: distance, transition: varTranExit({ durationOut, easeOut }) },
+ },
+
+ // OUT
+ outUp: {
+ initial: { y: 0 },
+ animate: { y: -distance, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { y: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ outDown: {
+ initial: { y: 0 },
+ animate: { y: distance, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { y: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ outLeft: {
+ initial: { x: 0 },
+ animate: { x: -distance, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { x: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ outRight: {
+ initial: { x: 0 },
+ animate: { x: distance, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { x: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ };
+};
diff --git a/frontend/hospital-portal/src/components/animate/variants/transition.ts b/frontend/hospital-portal/src/components/animate/variants/transition.ts
new file mode 100755
index 00000000..5dc83c62
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/transition.ts
@@ -0,0 +1,25 @@
+// @types
+import { TranHoverType, TranEnterType, TranExitType } from '../type';
+
+// ----------------------------------------------------------------------
+
+export const varTranHover = (props?: TranHoverType) => {
+ const duration = props?.duration || 0.32;
+ const ease = props?.ease || [0.43, 0.13, 0.23, 0.96];
+
+ return { duration, ease };
+};
+
+export const varTranEnter = (props?: TranEnterType) => {
+ const duration = props?.durationIn || 0.64;
+ const ease = props?.easeIn || [0.43, 0.13, 0.23, 0.96];
+
+ return { duration, ease };
+};
+
+export const varTranExit = (props?: TranExitType) => {
+ const duration = props?.durationOut || 0.48;
+ const ease = props?.easeOut || [0.43, 0.13, 0.23, 0.96];
+
+ return { duration, ease };
+};
diff --git a/frontend/hospital-portal/src/components/animate/variants/zoom.ts b/frontend/hospital-portal/src/components/animate/variants/zoom.ts
new file mode 100755
index 00000000..2e8c88f3
--- /dev/null
+++ b/frontend/hospital-portal/src/components/animate/variants/zoom.ts
@@ -0,0 +1,125 @@
+// @types
+import { VariantsType } from '../type';
+//
+import { varTranEnter, varTranExit } from './transition';
+
+// ----------------------------------------------------------------------
+
+export const varZoom = (props?: VariantsType) => {
+ const distance = props?.distance || 720;
+ const durationIn = props?.durationIn;
+ const durationOut = props?.durationOut;
+ const easeIn = props?.easeIn;
+ const easeOut = props?.easeOut;
+
+ return {
+ // IN
+ in: {
+ initial: { scale: 0, opacity: 0 },
+ animate: { scale: 1, opacity: 1, transition: varTranEnter({ durationIn, easeIn }) },
+ exit: { scale: 0, opacity: 0, transition: varTranExit({ durationOut, easeOut }) },
+ },
+ inUp: {
+ initial: { scale: 0, opacity: 0, translateY: distance },
+ animate: {
+ scale: 1,
+ opacity: 1,
+ translateY: 0,
+ transition: varTranEnter({ durationIn, easeIn }),
+ },
+ exit: {
+ scale: 0,
+ opacity: 0,
+ translateY: distance,
+ transition: varTranExit({ durationOut, easeOut }),
+ },
+ },
+ inDown: {
+ initial: { scale: 0, opacity: 0, translateY: -distance },
+ animate: {
+ scale: 1,
+ opacity: 1,
+ translateY: 0,
+ transition: varTranEnter({ durationIn, easeIn }),
+ },
+ exit: {
+ scale: 0,
+ opacity: 0,
+ translateY: -distance,
+ transition: varTranExit({ durationOut, easeOut }),
+ },
+ },
+ inLeft: {
+ initial: { scale: 0, opacity: 0, translateX: -distance },
+ animate: {
+ scale: 1,
+ opacity: 1,
+ translateX: 0,
+ transition: varTranEnter({ durationIn, easeIn }),
+ },
+ exit: {
+ scale: 0,
+ opacity: 0,
+ translateX: -distance,
+ transition: varTranExit({ durationOut, easeOut }),
+ },
+ },
+ inRight: {
+ initial: { scale: 0, opacity: 0, translateX: distance },
+ animate: {
+ scale: 1,
+ opacity: 1,
+ translateX: 0,
+ transition: varTranEnter({ durationIn, easeIn }),
+ },
+ exit: {
+ scale: 0,
+ opacity: 0,
+ translateX: distance,
+ transition: varTranExit({ durationOut, easeOut }),
+ },
+ },
+
+ // OUT
+ out: {
+ initial: { scale: 1, opacity: 1 },
+ animate: { scale: 0, opacity: 0, transition: varTranEnter({ durationIn, easeIn }) },
+ },
+ outUp: {
+ initial: { scale: 1, opacity: 1 },
+ animate: {
+ scale: 0,
+ opacity: 0,
+ translateY: -distance,
+ transition: varTranEnter({ durationIn, easeIn }),
+ },
+ },
+ outDown: {
+ initial: { scale: 1, opacity: 1 },
+ animate: {
+ scale: 0,
+ opacity: 0,
+ translateY: distance,
+ transition: varTranEnter({ durationIn, easeIn }),
+ },
+ },
+ outLeft: {
+ initial: { scale: 1, opacity: 1 },
+ animate: {
+ scale: 0,
+ opacity: 0,
+ translateX: -distance,
+ transition: varTranEnter({ durationIn, easeIn }),
+ },
+ },
+ outRight: {
+ initial: { scale: 1, opacity: 1 },
+ animate: {
+ scale: 0,
+ opacity: 0,
+ translateX: distance,
+ transition: varTranEnter({ durationIn, easeIn }),
+ },
+ },
+ };
+};
diff --git a/frontend/hospital-portal/src/components/chart/BaseOptionChart.tsx b/frontend/hospital-portal/src/components/chart/BaseOptionChart.tsx
new file mode 100755
index 00000000..5bb94bce
--- /dev/null
+++ b/frontend/hospital-portal/src/components/chart/BaseOptionChart.tsx
@@ -0,0 +1,191 @@
+import { ApexOptions } from 'apexcharts';
+// @mui
+import { useTheme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function BaseOptionChart(): ApexOptions {
+ const theme = useTheme();
+
+ const LABEL_TOTAL = {
+ show: true,
+ label: 'Total',
+ color: theme.palette.text.secondary,
+ fontSize: theme.typography.subtitle2.fontSize as string,
+ fontWeight: theme.typography.subtitle2.fontWeight,
+ lineHeight: theme.typography.subtitle2.lineHeight,
+ };
+
+ const LABEL_VALUE = {
+ offsetY: 8,
+ color: theme.palette.text.primary,
+ fontSize: theme.typography.h3.fontSize as string,
+ fontWeight: theme.typography.h3.fontWeight,
+ lineHeight: theme.typography.h3.lineHeight,
+ };
+
+ return {
+ // Colors
+ colors: [
+ theme.palette.primary.main,
+ theme.palette.chart.yellow[0],
+ theme.palette.chart.blue[0],
+ theme.palette.chart.violet[0],
+ theme.palette.chart.green[0],
+ theme.palette.chart.red[0],
+ ],
+
+ // Chart
+ chart: {
+ toolbar: { show: false },
+ zoom: { enabled: false },
+ // animations: { enabled: false },
+ foreColor: theme.palette.text.disabled,
+ fontFamily: theme.typography.fontFamily,
+ },
+
+ // States
+ states: {
+ hover: {
+ filter: {
+ type: 'lighten',
+ value: 0.04,
+ },
+ },
+ active: {
+ filter: {
+ type: 'darken',
+ value: 0.88,
+ },
+ },
+ },
+
+ // Fill
+ fill: {
+ opacity: 1,
+ gradient: {
+ type: 'vertical',
+ shadeIntensity: 0,
+ opacityFrom: 0.4,
+ opacityTo: 0,
+ stops: [0, 100],
+ },
+ },
+
+ // Datalabels
+ dataLabels: { enabled: false },
+
+ // Stroke
+ stroke: {
+ width: 3,
+ curve: 'smooth',
+ lineCap: 'round',
+ },
+
+ // Grid
+ grid: {
+ strokeDashArray: 3,
+ borderColor: theme.palette.divider,
+ },
+
+ // Xaxis
+ xaxis: {
+ axisBorder: { show: false },
+ axisTicks: { show: false },
+ },
+
+ // Markers
+ markers: {
+ size: 0,
+ strokeColors: theme.palette.background.paper,
+ },
+
+ // Tooltip
+ tooltip: {
+ x: {
+ show: false,
+ },
+ },
+
+ // Legend
+ legend: {
+ show: true,
+ fontSize: String(13),
+ position: 'top',
+ horizontalAlign: 'right',
+ markers: {
+ radius: 12,
+ },
+ fontWeight: 500,
+ itemMargin: { horizontal: 12 },
+ labels: {
+ colors: theme.palette.text.primary,
+ },
+ },
+
+ // plotOptions
+ plotOptions: {
+ // Bar
+ bar: {
+ columnWidth: '28%',
+ borderRadius: 4,
+ },
+ // Pie + Donut
+ pie: {
+ donut: {
+ labels: {
+ show: true,
+ value: LABEL_VALUE,
+ total: LABEL_TOTAL,
+ },
+ },
+ },
+ // Radialbar
+ radialBar: {
+ track: {
+ strokeWidth: '100%',
+ background: theme.palette.grey[500_16],
+ },
+ dataLabels: {
+ value: LABEL_VALUE,
+ total: LABEL_TOTAL,
+ },
+ },
+ // Radar
+ radar: {
+ polygons: {
+ fill: { colors: ['transparent'] },
+ strokeColors: theme.palette.divider,
+ connectorColors: theme.palette.divider,
+ },
+ },
+ // polarArea
+ polarArea: {
+ rings: {
+ strokeColor: theme.palette.divider,
+ },
+ spokes: {
+ connectorColors: theme.palette.divider,
+ },
+ },
+ },
+
+ // Responsive
+ responsive: [
+ {
+ // sm
+ breakpoint: theme.breakpoints.values.sm,
+ options: {
+ plotOptions: { bar: { columnWidth: '40%' } },
+ },
+ },
+ {
+ // md
+ breakpoint: theme.breakpoints.values.md,
+ options: {
+ plotOptions: { bar: { columnWidth: '32%' } },
+ },
+ },
+ ],
+ };
+}
diff --git a/frontend/hospital-portal/src/components/chart/ChartStyle.tsx b/frontend/hospital-portal/src/components/chart/ChartStyle.tsx
new file mode 100755
index 00000000..11b5522f
--- /dev/null
+++ b/frontend/hospital-portal/src/components/chart/ChartStyle.tsx
@@ -0,0 +1,58 @@
+// @mui
+import { alpha, useTheme } from '@mui/material/styles';
+import { GlobalStyles } from '@mui/material';
+// utils
+import cssStyles from '../../utils/cssStyles';
+
+// ----------------------------------------------------------------------
+
+export default function ChartStyle() {
+ const theme = useTheme();
+
+ return (
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/chart/index.ts b/frontend/hospital-portal/src/components/chart/index.ts
new file mode 100755
index 00000000..51b1931d
--- /dev/null
+++ b/frontend/hospital-portal/src/components/chart/index.ts
@@ -0,0 +1,2 @@
+export { default as ChartStyle } from './ChartStyle';
+export { default as BaseOptionChart } from './BaseOptionChart';
diff --git a/frontend/hospital-portal/src/components/dialogs/MemberSelectDialog.tsx b/frontend/hospital-portal/src/components/dialogs/MemberSelectDialog.tsx
new file mode 100644
index 00000000..3d1662af
--- /dev/null
+++ b/frontend/hospital-portal/src/components/dialogs/MemberSelectDialog.tsx
@@ -0,0 +1,275 @@
+// @mui
+import { styled } from '@mui/material/styles';
+import {
+ Typography,
+ LinearProgress,
+ linearProgressClasses,
+ Stack,
+ FormControlLabel,
+ TableRow,
+ TableCell,
+ Table,
+ TableBody,
+ TextField,
+ Button,
+} from '@mui/material';
+import { LoadingButton } from '@mui/lab';
+import Checkbox from '@mui/material/Checkbox';
+// components
+import { FormProvider, RHFTextField } from '../../components/hook-form';
+// React
+import React, { ReactElement, useEffect, useState } from 'react';
+import { fCurrency } from '../../utils/formatNumber';
+// yup
+import * as Yup from 'yup';
+// form
+import { useForm } from 'react-hook-form';
+import { yupResolver } from '@hookform/resolvers/yup';
+import MuiDialog from '../MuiDialog';
+import { Member } from '../../@types/member';
+import { LaravelPaginatedDataDefault } from '../../@types/paginated-data';
+import DataTable from '../LaravelTable';
+import axios from '../../utils/axios';
+
+// ----------------------------------------------------------------------
+
+type DataContent = {
+ info: string;
+ date: string;
+ time: string;
+};
+
+type MuiDialogProps = {
+ title?: {
+ name?: string;
+ icon?: string;
+ };
+ openDialog: boolean;
+ setOpenDialog: Function;
+ content?: ReactElement;
+ onSelect?: Function;
+};
+
+type FormValuesProps = {
+ topup: string;
+};
+
+// ----------------------------------------------------------------------
+
+const testData = {
+ companyName: 'PT. Aman Mineral',
+ policyNumber: 12345678,
+ totalMembers: 50,
+ totalCases: 100,
+ totalPersen: 75,
+ myLimit: '375.000.000',
+ totalLimit: 500000000,
+};
+
+const BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({
+ height: 10,
+ borderRadius: 6,
+ [`&.${linearProgressClasses.colorPrimary}`]: {
+ backgroundColor: theme.palette.grey[theme.palette.mode === 'light' ? 300 : 800],
+ },
+ [`& .${linearProgressClasses.bar}`]: {
+ borderRadius: 6,
+ background: 'linear-gradient(270deg, #19BBBB 38.42%, #FF9565 76.21%, #FE7253 104.02%)',
+ },
+}));
+
+// ----------------------------------------------------------------------
+
+export default function MemberSelectDialog({
+ openDialog,
+ setOpenDialog,
+ onSelect
+}: MuiDialogProps) {
+ const [dataTableLoading, setDataTableLoading] = useState(false)
+ const [dataTableData, setDataTableData] = useState(LaravelPaginatedDataDefault)
+ const [searchFilter, setSearchFilter] = useState({
+ search: ''
+ })
+
+ const handleSearchChange = (event: any) => {
+ setSearchFilter({...searchFilter, ...{search: event.target.value}})
+ }
+
+ const loadDataTableData = async (appliedFilter : any | null = null) => {
+ setDataTableLoading(true);
+ const filter = appliedFilter ? appliedFilter : {};
+ const response = await axios.get('/members', { params: filter });
+ // console.log(response.data);
+ setDataTableLoading(false);
+
+ setDataTableData(response.data);
+ }
+
+ const applyFilter = async (searchFilter: {search: string}) => {
+ await loadDataTableData(searchFilter);
+ }
+
+ const handleFilterSubmit = (event: any) => {
+ event.preventDefault();
+ applyFilter(searchFilter)
+ }
+
+ useEffect(() => {
+ console.log('effect openDialog');
+ if (openDialog === false) {
+ }
+ }, [openDialog]);
+
+ const handlePageChange = () => {
+ console.log('handle change')
+ }
+
+ // Called on every row to map the data to the columns
+ function createData(member: Member): Member {
+ return {
+ ...member,
+ };
+ }
+
+ const Row = (props: { row: ReturnType, onSelect }) => (
+
+ *': { borderBottom: 'unset' } }}>
+ {/*
+ setOpen(!open)}
+ >
+ {open ? : }
+
+ */}
+ {/* { columns.map((column, index) =>
+ { row[column.id] ?? '-' }
+ ) } */}
+ {/* TODO FIX DISPLAY DATA FROM RELATION */}
+
+ {/* { id: 'member_id', label: 'MemberID', minWidth: 100, align: "left" },
+ { id: 'principal_id', label: 'Mapping ID', minWidth: 100, align: "left" },
+ { id: 'nik', label: 'NIK', minWidth: 100, align: "left" },
+ { id: 'current_policy.policy_number', label: 'Policy Number', minWidth: 100, align: "left" },
+ { id: 'effective_date', label: 'Effective Date', minWidth: 100, align: "left" },
+ { id: 'name', label: 'Name', minWidth: 100, align: "left" },
+ { id: 'nric', label: 'NRIC', minWidth: 100, align: "left" },
+ { id: 'email', label: 'E-mail', minWidth: 100, align: "left" },
+ { id: 'plan_id', label: 'PlanID', minWidth: 100, align: "left" },
+ { id: 'termination_date', label: 'Termination Date', minWidth: 100, align: 'right' },
+ { id: 'activation_date', label: 'Activation Date', minWidth: 100, align: "right" },
+ */}
+ {props.row.member_id}
+ {props.row.principal_id}
+ {props.row.employeds?.[0]?.nik}
+ {props.row.current_policy?.policy_id}
+ {props.row.current_policy?.start}
+ {props.row.name}
+ {props.row.nric}
+ {props.row.email}
+ {props.row.current_plan?.code}
+ {props.row.current_policy?.start}
+ {props.row.current_policy?.end}
+
+
+ {/* COLLAPSIBLE ROW */}
+ {/*
+
+
+
+
+ No Extra Data
+
+
+ {false && }
+
+
+ */}
+
+ );
+
+ const headStyle = {
+ fontWeight: 'bold',
+ };
+ const TableContent = () => (
+
+ {/* ------------------ TABLE HEADER ------------------ */}
+
+
+
+
+ Type
+
+
+ Code
+
+
+ Name
+
+
+ Version
+
+
+ Status
+
+
+ Action
+
+
+
+ {/* ------------------ END TABLE HEADER ------------------ */}
+
+ {/* ------------------ TABLE ROW ------------------ */}
+ {dataTableLoading ? (
+
+
+
+ Loading
+
+
+
+ ) : dataTableData.data.length === 0 ? (
+
+
+
+ No Data
+
+
+
+ ) : (
+
+ {dataTableData.data.map((row) => (
+
+ ))}
+
+ )}
+ {/* ------------------ END TABLE ROW ------------------ */}
+
+ );
+
+ const getContent = () => (
+
+
+ }
+ />
+
+ );
+
+ return (
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/editor/EditorToolbar.tsx b/frontend/hospital-portal/src/components/editor/EditorToolbar.tsx
new file mode 100755
index 00000000..4d22dd1f
--- /dev/null
+++ b/frontend/hospital-portal/src/components/editor/EditorToolbar.tsx
@@ -0,0 +1,179 @@
+import { Quill } from 'react-quill';
+// components
+import Iconify from '../Iconify';
+//
+import EditorToolbarStyle from './EditorToolbarStyle';
+
+// ----------------------------------------------------------------------
+
+const FONT_FAMILY = ['Arial', 'Tahoma', 'Georgia', 'Impact', 'Verdana'];
+
+const FONT_SIZE = [
+ '8px',
+ '9px',
+ '10px',
+ '12px',
+ '14px',
+ '16px',
+ '20px',
+ '24px',
+ '32px',
+ '42px',
+ '54px',
+ '68px',
+ '84px',
+ '98px',
+];
+const HEADINGS = ['Heading 1', 'Heading 2', 'Heading 3', 'Heading 4', 'Heading 5', 'Heading 6'];
+
+export function undoChange() {
+ // @ts-ignore
+ this.quill.history.undo();
+}
+export function redoChange() {
+ // @ts-ignore
+ this.quill.history.redo();
+}
+
+const Size = Quill.import('attributors/style/size');
+Size.whitelist = FONT_SIZE;
+Quill.register(Size, true);
+
+const Font = Quill.import('attributors/style/font');
+Font.whitelist = FONT_FAMILY;
+Quill.register(Font, true);
+
+export const formats = [
+ 'align',
+ 'background',
+ 'blockquote',
+ 'bold',
+ 'bullet',
+ 'code',
+ 'code-block',
+ 'color',
+ 'direction',
+ 'font',
+ 'formula',
+ 'header',
+ 'image',
+ 'indent',
+ 'italic',
+ 'link',
+ 'list',
+ 'script',
+ 'size',
+ 'strike',
+ 'table',
+ 'underline',
+ 'video',
+];
+
+type EditorToolbarProps = {
+ id: string;
+ isSimple?: boolean;
+};
+
+export default function EditorToolbar({ id, isSimple, ...other }: EditorToolbarProps) {
+ return (
+
+
+
+ {!isSimple && (
+
+ )}
+
+ {!isSimple && (
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+ {!isSimple && (
+
+
+
+
+ )}
+
+
+
+
+ {!isSimple && }
+ {!isSimple && }
+
+
+ {!isSimple && (
+
+
+
+
+ )}
+
+ {!isSimple && (
+
+
+
+
+ )}
+
+
+
+
+
+
+ {!isSimple && (
+
+
+
+
+
+ )}
+
+
+ {!isSimple && }
+
+
+
+ {!isSimple && (
+
+
+
+
+ )}
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/editor/EditorToolbarStyle.tsx b/frontend/hospital-portal/src/components/editor/EditorToolbarStyle.tsx
new file mode 100755
index 00000000..83b39f9f
--- /dev/null
+++ b/frontend/hospital-portal/src/components/editor/EditorToolbarStyle.tsx
@@ -0,0 +1,133 @@
+import { styled } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+const EditorToolbarStyle = styled('div')(({ theme }) => {
+ const isRTL = theme.direction === 'rtl';
+
+ return {
+ '& .ql-snow.ql-toolbar button:hover .ql-fill, .ql-snow .ql-toolbar button:hover .ql-fill, .ql-snow.ql-toolbar button:focus .ql-fill, .ql-snow .ql-toolbar button:focus .ql-fill, .ql-snow.ql-toolbar button.ql-active .ql-fill, .ql-snow .ql-toolbar button.ql-active .ql-fill, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill, .ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill, .ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill, .ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill, .ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill, .ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill, .ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill':
+ {
+ fill: theme.palette.primary.main,
+ },
+ '& .ql-snow.ql-toolbar button:hover, .ql-snow .ql-toolbar button:hover, .ql-snow.ql-toolbar button:focus, .ql-snow .ql-toolbar button:focus, .ql-snow.ql-toolbar button.ql-active, .ql-snow .ql-toolbar button.ql-active, .ql-snow.ql-toolbar .ql-picker-label:hover, .ql-snow .ql-toolbar .ql-picker-label:hover, .ql-snow.ql-toolbar .ql-picker-label.ql-active, .ql-snow .ql-toolbar .ql-picker-label.ql-active, .ql-snow.ql-toolbar .ql-picker-item:hover, .ql-snow .ql-toolbar .ql-picker-item:hover, .ql-snow.ql-toolbar .ql-picker-item.ql-selected, .ql-snow .ql-toolbar .ql-picker-item.ql-selected':
+ {
+ color: theme.palette.primary.main,
+ },
+ '& .ql-snow.ql-toolbar button:hover .ql-stroke, .ql-snow .ql-toolbar button:hover .ql-stroke, .ql-snow.ql-toolbar button:focus .ql-stroke, .ql-snow .ql-toolbar button:focus .ql-stroke, .ql-snow.ql-toolbar button.ql-active .ql-stroke, .ql-snow .ql-toolbar button.ql-active .ql-stroke, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke, .ql-snow.ql-toolbar button:hover .ql-stroke-miter, .ql-snow .ql-toolbar button:hover .ql-stroke-miter, .ql-snow.ql-toolbar button:focus .ql-stroke-miter, .ql-snow .ql-toolbar button:focus .ql-stroke-miter, .ql-snow.ql-toolbar button.ql-active .ql-stroke-miter, .ql-snow .ql-toolbar button.ql-active .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter':
+ {
+ stroke: theme.palette.primary.main,
+ },
+ '& .ql-stroke': {
+ stroke: theme.palette.text.primary,
+ },
+ '& .ql-fill, .ql-stroke.ql-fill': {
+ fill: theme.palette.text.primary,
+ },
+ '& .ql-picker, .ql-picker-options, .ql-picker-item, .ql-picker-label, button': {
+ '&:focus': { outline: 'none' },
+ },
+ '& .ql-toolbar.ql-snow': {
+ border: 'none',
+ borderBottom: `solid 1px ${theme.palette.grey[500_32]}`,
+ '& .ql-formats': {
+ '&:not(:last-of-type)': {
+ marginRight: theme.spacing(2),
+ },
+ },
+
+ // Button
+ '& button': {
+ padding: 0,
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ borderRadius: 4,
+ color: theme.palette.text.primary,
+ },
+
+ // Icon svg
+ '& button svg, span svg': {
+ width: 20,
+ height: 20,
+ },
+
+ // Select
+ '& .ql-picker-label': {
+ ...theme.typography.subtitle2,
+ color: theme.palette.text.primary,
+ '& .ql-stroke': {
+ stroke: theme.palette.text.primary,
+ },
+ },
+ '& .ql-picker-label svg': {
+ ...(isRTL && {
+ right: '0 !important',
+ left: 'auto !important',
+ }),
+ },
+ '& .ql-color,& .ql-background,& .ql-align ': {
+ '& .ql-picker-label': {
+ padding: 0,
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ },
+ '& .ql-expanded': {
+ '& .ql-picker-label': {
+ borderRadius: 4,
+ color: theme.palette.text.disabled,
+ borderColor: 'transparent !important',
+ backgroundColor: theme.palette.action.focus,
+ '& .ql-stroke': { stroke: theme.palette.text.disabled },
+ },
+ '& .ql-picker-options': {
+ padding: 0,
+ marginTop: 4,
+ border: 'none',
+ maxHeight: 200,
+ overflow: 'auto',
+ boxShadow: theme.customShadows.z20,
+ borderRadius: theme.shape.borderRadius,
+ backgroundColor: theme.palette.background.paper,
+ },
+ '& .ql-picker-item': {
+ color: theme.palette.text.primary,
+ },
+
+ // Align
+ '&.ql-align': {
+ '& .ql-picker-options': { padding: 0, display: 'flex' },
+ '& .ql-picker-item': {
+ width: 32,
+ height: 32,
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ },
+ // Color & Background
+ '&.ql-color, &.ql-background': {
+ '& .ql-picker-options': { padding: 8 },
+ '& .ql-picker-item': {
+ margin: 3,
+ borderRadius: 4,
+ '&.ql-selected': { border: 'solid 1px black' },
+ },
+ },
+ // Font, Size, Header
+ '&.ql-font, &.ql-size, &.ql-header': {
+ '& .ql-picker-options': {
+ padding: theme.spacing(1, 0),
+ },
+ '& .ql-picker-item': {
+ padding: theme.spacing(0.5, 1.5),
+ },
+ },
+ },
+ },
+ };
+});
+
+export default EditorToolbarStyle;
diff --git a/frontend/hospital-portal/src/components/editor/index.tsx b/frontend/hospital-portal/src/components/editor/index.tsx
new file mode 100755
index 00000000..5fb3ed88
--- /dev/null
+++ b/frontend/hospital-portal/src/components/editor/index.tsx
@@ -0,0 +1,100 @@
+import { ReactNode } from 'react';
+import ReactQuill from 'react-quill';
+import 'react-quill/dist/quill.snow.css';
+// @mui
+import { styled } from '@mui/material/styles';
+import { Box, BoxProps } from '@mui/material';
+//
+import EditorToolbar, { formats, redoChange, undoChange } from './EditorToolbar';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled(Box)(({ theme }) => ({
+ borderRadius: theme.shape.borderRadius,
+ border: `solid 1px ${theme.palette.grey[500_32]}`,
+ '& .ql-container.ql-snow': {
+ borderColor: 'transparent',
+ ...theme.typography.body1,
+ fontFamily: theme.typography.fontFamily,
+ },
+ '& .ql-editor': {
+ minHeight: 200,
+ '&.ql-blank::before': {
+ fontStyle: 'normal',
+ color: theme.palette.text.disabled,
+ },
+ '& pre.ql-syntax': {
+ ...theme.typography.body2,
+ padding: theme.spacing(2),
+ borderRadius: theme.shape.borderRadius,
+ backgroundColor: theme.palette.grey[900],
+ },
+ },
+}));
+
+// ----------------------------------------------------------------------
+
+export interface Props {
+ id?: string;
+ error?: boolean;
+ value?: string;
+ onChange?: (value: string) => void;
+ simple?: boolean;
+ helperText?: ReactNode;
+ sx?: BoxProps;
+}
+
+export default function Editor({
+ id = 'minimal-quill',
+ error,
+ value,
+ onChange,
+ simple = false,
+ helperText,
+ sx,
+ ...other
+}: Props) {
+ const modules = {
+ toolbar: {
+ container: `#${id}`,
+ handlers: {
+ undo: undoChange,
+ redo: redoChange,
+ },
+ },
+ history: {
+ delay: 500,
+ maxStack: 100,
+ userOnly: true,
+ },
+ syntax: false, // need highlightjs
+ clipboard: {
+ matchVisual: false,
+ },
+ };
+
+ return (
+
+ `solid 1px ${theme.palette.error.main}`,
+ }),
+ ...sx,
+ }}
+ >
+
+
+
+
+ {helperText && helperText}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/hook-form/FormProvider.tsx b/frontend/hospital-portal/src/components/hook-form/FormProvider.tsx
new file mode 100755
index 00000000..cc4bafd0
--- /dev/null
+++ b/frontend/hospital-portal/src/components/hook-form/FormProvider.tsx
@@ -0,0 +1,19 @@
+import { ReactNode } from 'react';
+// form
+import { FormProvider as Form, UseFormReturn } from 'react-hook-form';
+
+// ----------------------------------------------------------------------
+
+type Props = {
+ children: ReactNode;
+ methods: UseFormReturn;
+ onSubmit?: VoidFunction;
+};
+
+export default function FormProvider({ children, onSubmit, methods }: Props) {
+ return (
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/hook-form/RHFAutocomplete.tsx b/frontend/hospital-portal/src/components/hook-form/RHFAutocomplete.tsx
new file mode 100755
index 00000000..3872aec5
--- /dev/null
+++ b/frontend/hospital-portal/src/components/hook-form/RHFAutocomplete.tsx
@@ -0,0 +1,41 @@
+import { Autocomplete, TextField, TextFieldProps } from '@mui/material';
+import { useState } from 'react';
+import { Controller, useFormContext } from 'react-hook-form';
+
+interface IProps {
+ options: any[];
+ name: string;
+ label?: string;
+}
+
+export default function RHFAutocomplete({ name, options, label, ...other }: IProps & TextFieldProps) {
+ const { control } = useFormContext();
+ console.log(control)
+
+ const [value, setValue] = useState(options[0]);
+ const [inputValue, setInputValue] = useState('');
+
+ return (
+ (
+ {
+ // console.log('fuck', newValue)
+ setValue(newValue.id);
+ }}
+ inputValue={inputValue}
+ onInputChange={(event, newInputValue) => {
+ setInputValue(newInputValue);
+ }}
+ renderInput={(params) => }
+ {...other}
+ />
+ )}
+ />
+ );
+}
\ No newline at end of file
diff --git a/frontend/hospital-portal/src/components/hook-form/RHFCheckbox.tsx b/frontend/hospital-portal/src/components/hook-form/RHFCheckbox.tsx
new file mode 100755
index 00000000..cac7f8bb
--- /dev/null
+++ b/frontend/hospital-portal/src/components/hook-form/RHFCheckbox.tsx
@@ -0,0 +1,115 @@
+// form
+import { useFormContext, Controller } from 'react-hook-form';
+// @mui
+import { Checkbox, FormControlLabel, FormGroup, FormControlLabelProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+interface RHFCheckboxProps extends Omit {
+ name: string;
+}
+
+export function RHFCheckbox({ name, ...other }: RHFCheckboxProps) {
+ const { control } = useFormContext();
+
+ return (
+ }
+ />
+ }
+ {...other}
+ />
+ );
+}
+
+// ----------------------------------------------------------------------
+
+interface RHFMultiCheckboxProps extends Omit {
+ name: string;
+ options: string[];
+}
+
+export function RHFMultiCheckbox({ name, options, ...other }: RHFMultiCheckboxProps) {
+ const { control } = useFormContext();
+
+ return (
+ {
+ const onSelected = (option: string) =>
+ field.value.includes(option)
+ ? field.value.filter((value: string) => value !== option)
+ : [...field.value, option];
+
+ return (
+
+ {options.map((option) => (
+ field.onChange(onSelected(option))}
+ />
+ }
+ label={option}
+ {...other}
+ />
+ ))}
+
+ );
+ }}
+ />
+ );
+}
+
+
+// ----------------------------------------------------------------------
+interface optionsCustomInterface {
+ value: string;
+ label: string;
+}
+interface RHFCustomMultiCheckboxProps {
+ name: string;
+ options: optionsCustomInterface[];
+}
+
+export function RHFCustomMultiCheckbox({ name, options, ...other }: RHFCustomMultiCheckboxProps) {
+ const { control } = useFormContext();
+
+ return (
+ {
+ const onSelected = (option: optionsCustomInterface) =>
+ field.value.includes(option.value)
+ ? field.value.filter((value: string) => value !== option.value)
+ : [...field.value, option.value];
+
+ return (
+
+ {options.map((option, index) => (
+ field.onChange(onSelected(option))}
+ />
+ }
+ label={option.label}
+ {...other}
+ />
+ ))}
+
+ );
+ }}
+ />
+ );
+}
diff --git a/frontend/hospital-portal/src/components/hook-form/RHFDatepicker.tsx b/frontend/hospital-portal/src/components/hook-form/RHFDatepicker.tsx
new file mode 100755
index 00000000..dd386d85
--- /dev/null
+++ b/frontend/hospital-portal/src/components/hook-form/RHFDatepicker.tsx
@@ -0,0 +1,65 @@
+// form
+import { useFormContext, Controller } from 'react-hook-form';
+import * as React from 'react';
+
+// @mui
+import { IconButton, TextField, TextFieldProps } from '@mui/material';
+import { LocalizationProvider, MobileDatePicker } from '@mui/x-date-pickers';
+import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
+
+import { DesktopDatePicker } from '@mui/x-date-pickers/DesktopDatePicker';
+
+import InputAdornment from '@mui/material/InputAdornment';
+import EventIcon from '@mui/icons-material/Event';
+import { fPostFormat } from '../../utils/formatTime';
+
+// ----------------------------------------------------------------------
+
+interface IProps {
+ name: string;
+}
+
+export default function RHFDatepicker({ name, ...other }: IProps & TextFieldProps) {
+ const { control } = useFormContext();
+
+ return (
+ (
+
+ {
+ field.onChange(fPostFormat(value));
+ }}
+ renderInput={(field) => (
+
+
+
+ ),
+ }}
+ error={!!error}
+ helperText={error?.message}
+ {...other}
+ />
+ )}
+ />
+ {/* {
+ field.onChange(fPostFormat(value));
+ }}
+ renderInput={(params) => }
+ /> */}
+
+ )}
+ />
+ );
+}
diff --git a/frontend/hospital-portal/src/components/hook-form/RHFEditor.tsx b/frontend/hospital-portal/src/components/hook-form/RHFEditor.tsx
new file mode 100755
index 00000000..d492ec1c
--- /dev/null
+++ b/frontend/hospital-portal/src/components/hook-form/RHFEditor.tsx
@@ -0,0 +1,38 @@
+// form
+import { useFormContext, Controller } from 'react-hook-form';
+// @mui
+import { FormHelperText } from '@mui/material';
+//
+import Editor, { Props as EditorProps } from '../editor';
+
+// ----------------------------------------------------------------------
+
+interface Props extends EditorProps {
+ name: string;
+}
+
+export default function RHFEditor({ name, ...other }: Props) {
+ const { control } = useFormContext();
+
+ return (
+ (
+
+ {error?.message}
+
+ }
+ {...other}
+ />
+ )}
+ />
+ );
+}
diff --git a/frontend/hospital-portal/src/components/hook-form/RHFRadioGroup.tsx b/frontend/hospital-portal/src/components/hook-form/RHFRadioGroup.tsx
new file mode 100755
index 00000000..dc1349c7
--- /dev/null
+++ b/frontend/hospital-portal/src/components/hook-form/RHFRadioGroup.tsx
@@ -0,0 +1,54 @@
+// form
+import { useFormContext, Controller } from 'react-hook-form';
+// @mui
+import {
+ Radio,
+ RadioGroup,
+ FormHelperText,
+ RadioGroupProps,
+ FormControlLabel,
+} from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+interface IProps {
+ name: string;
+ options: string[];
+ getOptionLabel?: string[];
+}
+
+export default function RHFRadioGroup({
+ name,
+ options,
+ getOptionLabel,
+ ...other
+}: IProps & RadioGroupProps) {
+ const { control } = useFormContext();
+
+ return (
+ (
+
+
+ {options.map((option, index) => (
+ }
+ label={getOptionLabel?.length ? getOptionLabel[index] : option}
+ />
+ ))}
+
+
+ {!!error && (
+
+ {error.message}
+
+ )}
+
+ )}
+ />
+ );
+}
diff --git a/frontend/hospital-portal/src/components/hook-form/RHFSelect.tsx b/frontend/hospital-portal/src/components/hook-form/RHFSelect.tsx
new file mode 100755
index 00000000..4f6c02b8
--- /dev/null
+++ b/frontend/hospital-portal/src/components/hook-form/RHFSelect.tsx
@@ -0,0 +1,35 @@
+// form
+import { useFormContext, Controller } from 'react-hook-form';
+// @mui
+import { TextField, TextFieldProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+interface IProps {
+ name: string;
+ children: any;
+}
+
+export default function RHFSelect({ name, children, ...other }: IProps & TextFieldProps) {
+ const { control } = useFormContext();
+
+ return (
+ (
+
+ {children}
+
+ )}
+ />
+ );
+}
diff --git a/frontend/hospital-portal/src/components/hook-form/RHFSwitch.tsx b/frontend/hospital-portal/src/components/hook-form/RHFSwitch.tsx
new file mode 100755
index 00000000..c1919aa1
--- /dev/null
+++ b/frontend/hospital-portal/src/components/hook-form/RHFSwitch.tsx
@@ -0,0 +1,56 @@
+// form
+import { useFormContext, Controller } from 'react-hook-form';
+// @mui
+import { Switch, FormControlLabel, FormControlLabelProps } from '@mui/material';
+import { useEffect, useState } from 'react';
+
+// ----------------------------------------------------------------------
+
+type IProps = Omit;
+
+interface Props extends IProps {
+ name: string;
+}
+
+export default function RHFSwitch({ name, ...other }: Props) {
+ const { control } = useFormContext();
+
+ return (
+ }
+ />
+ }
+ {...other}
+ />
+ );
+}
+
+// interface Props extends IProps {
+// valueTrue: any,
+// valueFalse: any,
+// }
+
+// export function RHFSwitchEnum({ name, valueTrue, valueFalse, ...other}: Props) {
+// const { control } = useFormContext();
+// const [isChecked, setIsChecked] = useState(valueTrue === field.value);
+// useEffect(() => {
+// // setIsChecked()
+// }, [])
+
+// return (
+// }
+// />
+// }
+// {...other}
+// />
+// );
+// }
\ No newline at end of file
diff --git a/frontend/hospital-portal/src/components/hook-form/RHFTextField.tsx b/frontend/hospital-portal/src/components/hook-form/RHFTextField.tsx
new file mode 100755
index 00000000..833e7fda
--- /dev/null
+++ b/frontend/hospital-portal/src/components/hook-form/RHFTextField.tsx
@@ -0,0 +1,24 @@
+// form
+import { useFormContext, Controller } from 'react-hook-form';
+// @mui
+import { TextField, TextFieldProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+interface IProps {
+ name: string;
+}
+
+export default function RHFTextField({ name, ...other }: IProps & TextFieldProps) {
+ const { control } = useFormContext();
+
+ return (
+ (
+
+ )}
+ />
+ );
+}
diff --git a/frontend/hospital-portal/src/components/hook-form/RHFUpload.tsx b/frontend/hospital-portal/src/components/hook-form/RHFUpload.tsx
new file mode 100755
index 00000000..bd35f188
--- /dev/null
+++ b/frontend/hospital-portal/src/components/hook-form/RHFUpload.tsx
@@ -0,0 +1,110 @@
+// form
+import { useFormContext, Controller } from 'react-hook-form';
+// @mui
+import { FormHelperText } from '@mui/material';
+// type
+import {
+ UploadAvatar,
+ UploadMultiFile,
+ UploadSingleFile,
+ UploadProps,
+ UploadMultiFileProps,
+} from '../upload';
+
+// ----------------------------------------------------------------------
+
+interface Props extends Omit {
+ name: string;
+}
+
+export function RHFUploadAvatar({ name, ...other }: Props) {
+ const { control } = useFormContext();
+
+ return (
+ {
+ const checkError = !!error && !field.value;
+ return (
+
+
+ {checkError && (
+
+ {error.message}
+
+ )}
+
+ );
+ }}
+ />
+ );
+}
+
+// ----------------------------------------------------------------------
+
+export function RHFUploadSingleFile({ name, ...other }: Props) {
+ const { control } = useFormContext();
+
+ return (
+ {
+ const checkError = !!error && !field.value;
+
+ return (
+
+ {error.message}
+
+ )
+ }
+ {...other}
+ />
+ );
+ }}
+ />
+ );
+}
+
+// ----------------------------------------------------------------------
+
+interface RHFUploadMultiFileProps extends Omit {
+ name: string;
+}
+
+export function RHFUploadMultiFile({ name, ...other }: RHFUploadMultiFileProps) {
+ const { control } = useFormContext();
+
+ return (
+ {
+ const checkError = !!error && field.value?.length === 0;
+
+ return (
+
+ {error?.message}
+
+ )
+ }
+ {...other}
+ />
+ );
+ }}
+ />
+ );
+}
diff --git a/frontend/hospital-portal/src/components/hook-form/index.ts b/frontend/hospital-portal/src/components/hook-form/index.ts
new file mode 100755
index 00000000..6d936b02
--- /dev/null
+++ b/frontend/hospital-portal/src/components/hook-form/index.ts
@@ -0,0 +1,11 @@
+export * from './RHFCheckbox';
+export * from './RHFUpload';
+
+export { default as FormProvider } from './FormProvider';
+
+export { default as RHFSwitch } from './RHFSwitch';
+export { default as RHFSelect } from './RHFSelect';
+export { default as RHFEditor } from './RHFEditor';
+export { default as RHFTextField } from './RHFTextField';
+export { default as RHFRadioGroup } from './RHFRadioGroup';
+export { default as RHFDatepicker } from './RHFDatepicker';
diff --git a/frontend/hospital-portal/src/components/nav-section/horizontal/NavItem.tsx b/frontend/hospital-portal/src/components/nav-section/horizontal/NavItem.tsx
new file mode 100755
index 00000000..c4a29035
--- /dev/null
+++ b/frontend/hospital-portal/src/components/nav-section/horizontal/NavItem.tsx
@@ -0,0 +1,125 @@
+import { ReactElement, forwardRef } from 'react';
+import { NavLink as RouterLink } from 'react-router-dom';
+// @mui
+import { Box, Link } from '@mui/material';
+// config
+import { ICON } from '../../../config';
+// type
+import { NavItemProps } from '../type';
+//
+import Iconify from '../../Iconify';
+import { ListItemStyle } from './style';
+import { isExternalLink } from '..';
+
+// ----------------------------------------------------------------------
+
+export const NavItemRoot = forwardRef(
+ ({ item, active, open, onMouseEnter, onMouseLeave }, ref) => {
+ const { title, path, icon, children } = item;
+
+ if (children) {
+ return (
+
+
+
+ );
+ }
+
+ return isExternalLink(path) ? (
+
+
+
+ ) : (
+
+
+
+ );
+ }
+);
+
+// ----------------------------------------------------------------------
+
+export const NavItemSub = forwardRef(
+ ({ item, active, open, onMouseEnter, onMouseLeave }, ref) => {
+ const { title, path, icon, children } = item;
+
+ if (children) {
+ return (
+
+
+
+ );
+ }
+
+ return isExternalLink(path) ? (
+
+
+
+ ) : (
+
+
+
+ );
+ }
+);
+
+// ----------------------------------------------------------------------
+
+type NavItemContentProps = {
+ title: string;
+ icon?: ReactElement;
+ children?: { title: string; path: string }[];
+ subItem?: boolean;
+};
+
+function NavItemContent({ icon, title, children, subItem }: NavItemContentProps) {
+ return (
+ <>
+ {icon && (
+
+ {icon}
+
+ )}
+ {title}
+ {children && (
+
+ )}
+ >
+ );
+}
diff --git a/frontend/hospital-portal/src/components/nav-section/horizontal/NavList.tsx b/frontend/hospital-portal/src/components/nav-section/horizontal/NavList.tsx
new file mode 100755
index 00000000..1bdc4741
--- /dev/null
+++ b/frontend/hospital-portal/src/components/nav-section/horizontal/NavList.tsx
@@ -0,0 +1,131 @@
+import { useState, useEffect, useRef } from 'react';
+import { useLocation } from 'react-router-dom';
+// type
+import { NavListProps } from '../type';
+//
+import { NavItemRoot, NavItemSub } from './NavItem';
+import { PaperStyle } from './style';
+import { getActive } from '..';
+
+// ----------------------------------------------------------------------
+
+type NavListRootProps = {
+ list: NavListProps;
+};
+
+export function NavListRoot({ list }: NavListRootProps) {
+ const menuRef = useRef(null);
+
+ const { pathname } = useLocation();
+
+ const active = getActive(list.path, pathname);
+
+ const [open, setOpen] = useState(false);
+
+ const hasChildren = list.children;
+
+ useEffect(() => {
+ if (open) {
+ handleClose();
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [pathname]);
+
+ const handleOpen = () => {
+ setOpen(true);
+ };
+
+ const handleClose = () => {
+ setOpen(false);
+ };
+
+ if (hasChildren) {
+ return (
+ <>
+
+
+
+ {(list.children || []).map((item) => (
+
+ ))}
+
+ >
+ );
+ }
+
+ return ;
+}
+
+// ----------------------------------------------------------------------
+
+type NavListSubProps = {
+ list: NavListProps;
+};
+
+function NavListSub({ list }: NavListSubProps) {
+ const menuRef = useRef(null);
+
+ const { pathname } = useLocation();
+
+ const active = getActive(list.path, pathname, list.openWhen);
+
+ const [open, setOpen] = useState(false);
+
+ const handleOpen = () => {
+ setOpen(true);
+ };
+
+ const handleClose = () => {
+ setOpen(false);
+ };
+
+ const hasChildren = list.children;
+
+ if (hasChildren) {
+ return (
+ <>
+
+
+
+ {(list.children || []).map((item) => (
+
+ ))}
+
+ >
+ );
+ }
+
+ return ;
+}
diff --git a/frontend/hospital-portal/src/components/nav-section/horizontal/index.tsx b/frontend/hospital-portal/src/components/nav-section/horizontal/index.tsx
new file mode 100755
index 00000000..f823ccce
--- /dev/null
+++ b/frontend/hospital-portal/src/components/nav-section/horizontal/index.tsx
@@ -0,0 +1,40 @@
+import { memo } from 'react';
+// @mui
+import { Stack } from '@mui/material';
+// type
+import { NavSectionProps } from '../type';
+//
+import { NavListRoot } from './NavList';
+
+// ----------------------------------------------------------------------
+
+const hideScrollbar = {
+ msOverflowStyle: 'none',
+ scrollbarWidth: 'none',
+ overflowY: 'scroll',
+ '&::-webkit-scrollbar': {
+ display: 'none',
+ },
+} as const;
+
+function NavSectionHorizontal({ navConfig }: NavSectionProps) {
+ return (
+
+
+ {navConfig.map((group) => (
+
+ {group.items.map((list) => (
+
+ ))}
+
+ ))}
+
+
+ );
+}
+
+export default memo(NavSectionHorizontal);
diff --git a/frontend/hospital-portal/src/components/nav-section/horizontal/style.ts b/frontend/hospital-portal/src/components/nav-section/horizontal/style.ts
new file mode 100755
index 00000000..3550409e
--- /dev/null
+++ b/frontend/hospital-portal/src/components/nav-section/horizontal/style.ts
@@ -0,0 +1,85 @@
+import { ReactNode } from 'react';
+// @mui
+import { alpha, styled } from '@mui/material/styles';
+import { Button, Popover, ButtonProps, LinkProps } from '@mui/material';
+// config
+import { NAVBAR } from '../../../config';
+
+// ----------------------------------------------------------------------
+
+type IProps = LinkProps & ButtonProps;
+
+interface ListItemStyleProps extends IProps {
+ component?: ReactNode;
+ to?: string;
+ activeRoot?: boolean;
+ activeSub?: boolean;
+ subItem?: boolean;
+ open?: boolean;
+}
+
+export const ListItemStyle = styled(Button, {
+ shouldForwardProp: (prop) =>
+ prop !== 'activeRoot' && prop !== 'activeSub' && prop !== 'subItem' && prop !== 'open',
+})(({ activeRoot, activeSub, subItem, open, theme }) => {
+ const isLight = theme.palette.mode === 'light';
+
+ const activeRootStyle = {
+ color: theme.palette.grey[800],
+ backgroundColor: theme.palette.common.white,
+ boxShadow: `-2px 4px 6px 0 ${alpha(
+ isLight ? theme.palette.grey[500] : theme.palette.common.black,
+ 0.16
+ )}`,
+ };
+
+ return {
+ ...theme.typography.body2,
+ margin: theme.spacing(0, 0.5),
+ padding: theme.spacing(0, 1),
+ color: theme.palette.text.secondary,
+ height: NAVBAR.DASHBOARD_ITEM_HORIZONTAL_HEIGHT,
+ '&:hover': {
+ color: theme.palette.text.primary,
+ backgroundColor: theme.palette.background.paper,
+ },
+ // activeRoot
+ ...(activeRoot && {
+ ...theme.typography.subtitle2,
+ ...activeRootStyle,
+ '&:hover': { ...activeRootStyle },
+ }),
+ // activeSub
+ ...(activeSub && {
+ ...theme.typography.subtitle2,
+ color: theme.palette.text.primary,
+ }),
+ // subItem
+ ...(subItem && {
+ width: '100%',
+ margin: 0,
+ paddingRight: 0,
+ paddingLeft: theme.spacing(1),
+ justifyContent: 'space-between',
+ }),
+ // open
+ ...(open &&
+ !activeRoot && {
+ color: theme.palette.text.primary,
+ backgroundColor: theme.palette.action.hover,
+ }),
+ };
+});
+
+// ----------------------------------------------------------------------
+
+export const PaperStyle = styled(Popover)(({ theme }) => ({
+ pointerEvents: 'none',
+ '& .MuiPopover-paper': {
+ width: 160,
+ pointerEvents: 'auto',
+ padding: theme.spacing(1),
+ borderRadius: Number(theme.shape.borderRadius) * 1.5,
+ boxShadow: theme.customShadows.dropdown,
+ },
+}));
diff --git a/frontend/hospital-portal/src/components/nav-section/index.ts b/frontend/hospital-portal/src/components/nav-section/index.ts
new file mode 100755
index 00000000..c58b8d2c
--- /dev/null
+++ b/frontend/hospital-portal/src/components/nav-section/index.ts
@@ -0,0 +1,17 @@
+import { matchPath } from 'react-router-dom';
+
+// ----------------------------------------------------------------------
+
+export { default as NavSectionVertical } from './vertical';
+export { default as NavSectionHorizontal } from './horizontal';
+
+export function isExternalLink(path: string) {
+ return path.includes('http');
+}
+
+export function getActive(path: string, pathname: string, openWhen?: string[]) {
+ const listPathWhenActive = [ ...openWhen ?? [], path ];
+
+ return listPathWhenActive.includes(pathname);
+ // return path ? !!matchPath({ path: path, end: false }, pathname) : false;
+}
diff --git a/frontend/hospital-portal/src/components/nav-section/type.ts b/frontend/hospital-portal/src/components/nav-section/type.ts
new file mode 100755
index 00000000..870407d8
--- /dev/null
+++ b/frontend/hospital-portal/src/components/nav-section/type.ts
@@ -0,0 +1,35 @@
+import { ReactElement } from 'react';
+import { BoxProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export type NavListProps = {
+ title: string;
+ path: string;
+ icon?: ReactElement;
+ info?: ReactElement;
+ openWhen? : string[];
+ children?: {
+ title: string;
+ path: string;
+ children?: { title: string; path: string }[];
+ }[];
+};
+
+export type NavItemProps = {
+ item: NavListProps;
+ isCollapse?: boolean;
+ active?: boolean | undefined;
+ open?: boolean;
+ onOpen?: VoidFunction;
+ onMouseEnter?: VoidFunction;
+ onMouseLeave?: VoidFunction;
+};
+
+export interface NavSectionProps extends BoxProps {
+ isCollapse?: boolean;
+ navConfig: {
+ subheader: string;
+ items: NavListProps[];
+ }[];
+}
diff --git a/frontend/hospital-portal/src/components/nav-section/vertical/NavItem.tsx b/frontend/hospital-portal/src/components/nav-section/vertical/NavItem.tsx
new file mode 100755
index 00000000..cc6ca677
--- /dev/null
+++ b/frontend/hospital-portal/src/components/nav-section/vertical/NavItem.tsx
@@ -0,0 +1,126 @@
+import { NavLink as RouterLink } from 'react-router-dom';
+// @mui
+import { Box, Link, ListItemText } from '@mui/material';
+// type
+import { NavItemProps } from '../type';
+//
+import Iconify from '../../Iconify';
+import { ListItemStyle, ListItemTextStyle, ListItemIconStyle } from './style';
+import { isExternalLink } from '..';
+
+// ----------------------------------------------------------------------
+
+export function NavItemRoot({ item, isCollapse, open = false, active, onOpen }: NavItemProps) {
+ const { title, path, icon, info, children } = item;
+
+ const renderContent = (
+ <>
+ {icon && {icon}}
+
+ {!isCollapse && (
+ <>
+ {info && info}
+ {children && }
+ >
+ )}
+ >
+ );
+
+ if (children) {
+ return (
+
+ {renderContent}
+
+ );
+ }
+
+ return isExternalLink(path) ? (
+
+ {renderContent}
+
+ ) : (
+
+ {renderContent}
+
+ );
+}
+
+// ----------------------------------------------------------------------
+
+type NavItemSubProps = Omit;
+
+export function NavItemSub({ item, open = false, active = false, onOpen }: NavItemSubProps) {
+ const { title, path, info, children } = item;
+
+ const renderContent = (
+ <>
+
+
+ {info && info}
+ {children && }
+ >
+ );
+
+ if (children) {
+ return (
+
+ {renderContent}
+
+ );
+ }
+
+ return isExternalLink(path) ? (
+
+ {renderContent}
+
+ ) : (
+
+ {renderContent}
+
+ );
+}
+
+// ----------------------------------------------------------------------
+
+type DotIconProps = {
+ active: boolean;
+};
+
+export function DotIcon({ active }: DotIconProps) {
+ return (
+
+
+ theme.transitions.create('transform', {
+ duration: theme.transitions.duration.shorter,
+ }),
+ ...(active && {
+ transform: 'scale(2)',
+ bgcolor: 'primary.main',
+ }),
+ }}
+ />
+
+ );
+}
+
+// ----------------------------------------------------------------------
+
+type ArrowIconProps = {
+ open: boolean;
+};
+
+export function ArrowIcon({ open }: ArrowIconProps) {
+ return (
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/nav-section/vertical/NavList.tsx b/frontend/hospital-portal/src/components/nav-section/vertical/NavList.tsx
new file mode 100755
index 00000000..b5bb74b3
--- /dev/null
+++ b/frontend/hospital-portal/src/components/nav-section/vertical/NavList.tsx
@@ -0,0 +1,86 @@
+import { useState } from 'react';
+import { useLocation } from 'react-router-dom';
+// @mui
+import { List, Collapse } from '@mui/material';
+// type
+import { NavListProps } from '../type';
+//
+import { NavItemRoot, NavItemSub } from './NavItem';
+import { getActive } from '..';
+
+// ----------------------------------------------------------------------
+
+type NavListRootProps = {
+ list: NavListProps;
+ isCollapse: boolean;
+};
+
+export function NavListRoot({ list, isCollapse }: NavListRootProps) {
+ const { pathname } = useLocation();
+
+ const active = getActive(list.path, pathname, list.openWhen);
+
+ const [open, setOpen] = useState(active);
+
+ const hasChildren = list.children;
+
+ if (hasChildren) {
+ return (
+ <>
+ setOpen(!open)}
+ />
+
+ {!isCollapse && (
+
+
+ {(list.children || []).map((item) => (
+
+ ))}
+
+
+ )}
+ >
+ );
+ }
+
+ return ;
+}
+
+// ----------------------------------------------------------------------
+
+type NavListSubProps = {
+ list: NavListProps;
+};
+
+function NavListSub({ list }: NavListSubProps) {
+ const { pathname } = useLocation();
+
+ const active = getActive(list.path, pathname);
+
+ const [open, setOpen] = useState(active);
+
+ const hasChildren = list.children;
+
+ if (hasChildren) {
+ return (
+ <>
+ setOpen(!open)} open={open} active={active} />
+
+
+
+ {(list.children || []).map((item) => (
+
+ ))}
+
+
+ >
+ );
+ }
+
+ return ;
+}
diff --git a/frontend/hospital-portal/src/components/nav-section/vertical/index.tsx b/frontend/hospital-portal/src/components/nav-section/vertical/index.tsx
new file mode 100755
index 00000000..de247933
--- /dev/null
+++ b/frontend/hospital-portal/src/components/nav-section/vertical/index.tsx
@@ -0,0 +1,53 @@
+// @mui
+import { styled } from '@mui/material/styles';
+import { List, Box, ListSubheader } from '@mui/material';
+// type
+import { NavSectionProps } from '../type';
+//
+import { NavListRoot } from './NavList';
+
+// ----------------------------------------------------------------------
+
+export const ListSubheaderStyle = styled((props) => (
+
+))(({ theme }) => ({
+ ...theme.typography.overline,
+ paddingTop: theme.spacing(3),
+ paddingLeft: theme.spacing(2),
+ paddingBottom: theme.spacing(1),
+ color: theme.palette.text.primary,
+ transition: theme.transitions.create('opacity', {
+ duration: theme.transitions.duration.shorter,
+ }),
+}));
+
+// ----------------------------------------------------------------------
+
+export default function NavSectionVertical({
+ navConfig,
+ isCollapse = false,
+ ...other
+}: NavSectionProps) {
+ return (
+
+ {navConfig.map((group, index) => (
+
+
+ {group.subheader}
+
+
+ {group.items.map((list) => (
+
+ ))}
+
+ ))}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/nav-section/vertical/style.ts b/frontend/hospital-portal/src/components/nav-section/vertical/style.ts
new file mode 100755
index 00000000..c5005c45
--- /dev/null
+++ b/frontend/hospital-portal/src/components/nav-section/vertical/style.ts
@@ -0,0 +1,79 @@
+import { ReactNode } from 'react';
+// @mui
+import { alpha, styled } from '@mui/material/styles';
+import {
+ LinkProps,
+ ListItemText,
+ ListItemButton,
+ ListItemIcon,
+ ListItemButtonProps,
+} from '@mui/material';
+// config
+import { ICON, NAVBAR } from '../../../config';
+
+// ----------------------------------------------------------------------
+
+type IProps = LinkProps & ListItemButtonProps;
+
+interface ListItemStyleProps extends IProps {
+ component?: ReactNode;
+ to?: string;
+ activeRoot?: boolean;
+ activeSub?: boolean;
+ subItem?: boolean;
+}
+
+export const ListItemStyle = styled(ListItemButton, {
+ shouldForwardProp: (prop) => prop !== 'activeRoot' && prop !== 'activeSub' && prop !== 'subItem',
+})(({ activeRoot, activeSub, subItem, theme }) => ({
+ ...theme.typography.body2,
+ position: 'relative',
+ height: NAVBAR.DASHBOARD_ITEM_ROOT_HEIGHT,
+ textTransform: 'capitalize',
+ paddingLeft: theme.spacing(2),
+ paddingRight: theme.spacing(1.5),
+ marginBottom: theme.spacing(0.5),
+ color: theme.palette.text.secondary,
+ borderRadius: theme.shape.borderRadius,
+ // activeRoot
+ ...(activeRoot && {
+ ...theme.typography.subtitle2,
+ color: theme.palette.primary.main,
+ backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
+ }),
+ // activeSub
+ ...(activeSub && {
+ ...theme.typography.subtitle2,
+ color: theme.palette.text.primary,
+ }),
+ // subItem
+ ...(subItem && {
+ height: NAVBAR.DASHBOARD_ITEM_SUB_HEIGHT,
+ }),
+}));
+
+interface ListItemTextStyleProps extends ListItemButtonProps {
+ isCollapse?: boolean;
+}
+
+export const ListItemTextStyle = styled(ListItemText, {
+ shouldForwardProp: (prop) => prop !== 'isCollapse',
+})(({ isCollapse, theme }) => ({
+ whiteSpace: 'nowrap',
+ transition: theme.transitions.create(['width', 'opacity'], {
+ duration: theme.transitions.duration.shorter,
+ }),
+ ...(isCollapse && {
+ width: 0,
+ opacity: 0,
+ }),
+}));
+
+export const ListItemIconStyle = styled(ListItemIcon)({
+ width: ICON.NAVBAR_ITEM,
+ height: ICON.NAVBAR_ITEM,
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ '& svg': { width: '100%', height: '100%' },
+});
diff --git a/frontend/hospital-portal/src/components/settings/SettingColorPresets.tsx b/frontend/hospital-portal/src/components/settings/SettingColorPresets.tsx
new file mode 100755
index 00000000..91a10a3b
--- /dev/null
+++ b/frontend/hospital-portal/src/components/settings/SettingColorPresets.tsx
@@ -0,0 +1,69 @@
+// @mui
+import { alpha, styled } from '@mui/material/styles';
+import { Box, Grid, RadioGroup, CardActionArea } from '@mui/material';
+// hooks
+import useSettings from '../../hooks/useSettings';
+//
+import { BoxMask } from '.';
+
+// ----------------------------------------------------------------------
+
+const BoxStyle = styled(CardActionArea)(({ theme }) => ({
+ height: 48,
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ color: theme.palette.text.disabled,
+ border: `solid 1px ${theme.palette.grey[500_12]}`,
+ borderRadius: Number(theme.shape.borderRadius) * 1.25,
+}));
+
+// ----------------------------------------------------------------------
+
+export default function SettingColorPresets() {
+ const { themeColorPresets, onChangeColor, colorOption } = useSettings();
+
+ return (
+
+
+ {colorOption.map((color) => {
+ const colorName = color.name;
+ const colorValue = color.value;
+ const isSelected = themeColorPresets === colorName;
+
+ return (
+
+
+
+ theme.transitions.create('all', {
+ easing: theme.transitions.easing.easeInOut,
+ duration: theme.transitions.duration.shorter,
+ }),
+ ...(isSelected && { transform: 'none' }),
+ }}
+ />
+
+
+
+
+ );
+ })}
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/settings/SettingDirection.tsx b/frontend/hospital-portal/src/components/settings/SettingDirection.tsx
new file mode 100755
index 00000000..52059ad2
--- /dev/null
+++ b/frontend/hospital-portal/src/components/settings/SettingDirection.tsx
@@ -0,0 +1,56 @@
+// @mui
+import { styled } from '@mui/material/styles';
+import { Grid, RadioGroup, CardActionArea } from '@mui/material';
+// hooks
+import useSettings from '../../hooks/useSettings';
+//
+import Iconify from '../Iconify';
+import { BoxMask } from '.';
+
+// ----------------------------------------------------------------------
+
+const BoxStyle = styled(CardActionArea)(({ theme }) => ({
+ height: 72,
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ color: theme.palette.text.disabled,
+ border: `solid 1px ${theme.palette.grey[500_12]}`,
+ borderRadius: Number(theme.shape.borderRadius) * 1.25,
+}));
+
+// ----------------------------------------------------------------------
+
+export default function SettingDirection() {
+ const { themeDirection, onChangeDirection } = useSettings();
+
+ return (
+
+
+ {['ltr', 'rtl'].map((direction, index) => {
+ const isSelected = themeDirection === direction;
+
+ return (
+
+ theme.customShadows.z20,
+ }),
+ }}
+ >
+
+
+
+
+ );
+ })}
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/settings/SettingFullscreen.tsx b/frontend/hospital-portal/src/components/settings/SettingFullscreen.tsx
new file mode 100755
index 00000000..56d47624
--- /dev/null
+++ b/frontend/hospital-portal/src/components/settings/SettingFullscreen.tsx
@@ -0,0 +1,42 @@
+import { useState } from 'react';
+// @mui
+import { alpha } from '@mui/material/styles';
+import { Button } from '@mui/material';
+// components
+import Iconify from '../Iconify';
+
+// ----------------------------------------------------------------------
+
+export default function SettingFullscreen() {
+ const [fullscreen, setFullscreen] = useState(false);
+
+ const toggleFullScreen = () => {
+ if (!document.fullscreenElement) {
+ document.documentElement.requestFullscreen();
+ setFullscreen(true);
+ } else if (document.exitFullscreen) {
+ document.exitFullscreen();
+ setFullscreen(false);
+ }
+ };
+
+ return (
+ }
+ onClick={toggleFullScreen}
+ sx={{
+ fontSize: 14,
+ ...(fullscreen && {
+ bgcolor: (theme) =>
+ alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
+ }),
+ }}
+ >
+ {fullscreen ? 'Exit Fullscreen' : 'Fullscreen'}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/settings/SettingLayout.tsx b/frontend/hospital-portal/src/components/settings/SettingLayout.tsx
new file mode 100755
index 00000000..4bd8f449
--- /dev/null
+++ b/frontend/hospital-portal/src/components/settings/SettingLayout.tsx
@@ -0,0 +1,138 @@
+// @mui
+import { styled, alpha } from '@mui/material/styles';
+import { Grid, RadioGroup, CardActionArea, Box, Stack } from '@mui/material';
+// hooks
+import useSettings from '../../hooks/useSettings';
+//
+import { BoxMask } from '.';
+
+// ----------------------------------------------------------------------
+
+const BoxStyle = styled(CardActionArea)(({ theme }) => ({
+ display: 'flex',
+ flexDirection: 'column',
+ padding: theme.spacing(1.5),
+ color: theme.palette.text.disabled,
+ border: `solid 1px ${theme.palette.grey[500_12]}`,
+ borderRadius: Number(theme.shape.borderRadius) * 1.25,
+}));
+
+// ----------------------------------------------------------------------
+
+export default function SettingLayout() {
+ const { themeLayout, onChangeLayout } = useSettings();
+
+ return (
+
+
+ {['horizontal', 'vertical'].map((layout) => {
+ const isSelected = themeLayout === layout;
+ const isVertical = layout === 'vertical';
+
+ return (
+
+ theme.customShadows.z20,
+ }),
+ }}
+ >
+ {isVertical ? (
+
+ ) : (
+
+ )}
+
+
+
+ );
+ })}
+
+
+ );
+}
+
+// ----------------------------------------------------------------------
+
+type LayoutBoxProps = {
+ isSelected: boolean;
+};
+
+const style = {
+ width: 1,
+ height: 32,
+ borderRadius: 0.5,
+};
+
+function VerticalBox({ isSelected }: LayoutBoxProps) {
+ return (
+ <>
+ alpha(theme.palette.text.disabled, 0.72),
+ ...(isSelected && {
+ bgcolor: (theme) => alpha(theme.palette.primary.main, 0.72),
+ }),
+ }}
+ />
+ `dashed 1px ${theme.palette.divider}`,
+ bgcolor: (theme) => alpha(theme.palette.text.disabled, 0.08),
+ ...(isSelected && {
+ border: (theme) => `dashed 1px ${theme.palette.primary.main}`,
+ bgcolor: (theme) => alpha(theme.palette.primary.main, 0.16),
+ }),
+ }}
+ />
+ >
+ );
+}
+
+function HorizontalBox({ isSelected }: LayoutBoxProps) {
+ return (
+ <>
+ alpha(theme.palette.text.disabled, 0.72),
+ ...(isSelected && {
+ bgcolor: (theme) => alpha(theme.palette.primary.main, 0.72),
+ }),
+ }}
+ />
+
+ alpha(theme.palette.text.disabled, 0.32),
+ ...(isSelected && {
+ bgcolor: (theme) => alpha(theme.palette.primary.main, 0.32),
+ }),
+ }}
+ />
+ `dashed 1px ${theme.palette.divider}`,
+ bgcolor: (theme) => alpha(theme.palette.text.disabled, 0.08),
+ ...(isSelected && {
+ border: (theme) => `dashed 1px ${theme.palette.primary.main}`,
+ bgcolor: (theme) => alpha(theme.palette.primary.main, 0.16),
+ }),
+ }}
+ />
+
+ >
+ );
+}
diff --git a/frontend/hospital-portal/src/components/settings/SettingMode.tsx b/frontend/hospital-portal/src/components/settings/SettingMode.tsx
new file mode 100755
index 00000000..629e4679
--- /dev/null
+++ b/frontend/hospital-portal/src/components/settings/SettingMode.tsx
@@ -0,0 +1,57 @@
+// @mui
+import { styled } from '@mui/material/styles';
+import { Grid, RadioGroup, CardActionArea } from '@mui/material';
+// hooks
+import useSettings from '../../hooks/useSettings';
+//
+import Iconify from '../Iconify';
+import { BoxMask } from '.';
+
+// ----------------------------------------------------------------------
+
+const BoxStyle = styled(CardActionArea)(({ theme }) => ({
+ height: 72,
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ color: theme.palette.text.disabled,
+ border: `solid 1px ${theme.palette.grey[500_12]}`,
+ borderRadius: Number(theme.shape.borderRadius) * 1.25,
+}));
+
+// ----------------------------------------------------------------------
+
+export default function SettingMode() {
+ const { themeMode, onChangeMode } = useSettings();
+
+ return (
+
+
+ {['light', 'dark'].map((mode, index) => {
+ const isSelected = themeMode === mode;
+
+ return (
+
+ theme.customShadows.z20,
+ }),
+ }}
+ >
+
+
+
+
+ );
+ })}
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/settings/SettingStretch.tsx b/frontend/hospital-portal/src/components/settings/SettingStretch.tsx
new file mode 100755
index 00000000..acfe4031
--- /dev/null
+++ b/frontend/hospital-portal/src/components/settings/SettingStretch.tsx
@@ -0,0 +1,69 @@
+// @mui
+import { styled } from '@mui/material/styles';
+import { CardActionArea, Stack } from '@mui/material';
+// hooks
+import useSettings from '../../hooks/useSettings';
+//
+import Iconify from '../Iconify';
+
+// ----------------------------------------------------------------------
+
+const BoxStyle = styled(CardActionArea)(({ theme }) => ({
+ padding: theme.spacing(2),
+ color: theme.palette.text.disabled,
+ border: `solid 1px ${theme.palette.grey[500_12]}`,
+ backgroundColor: theme.palette.background.neutral,
+ borderRadius: Number(theme.shape.borderRadius) * 1.25,
+}));
+
+// ----------------------------------------------------------------------
+
+export default function SettingStretch() {
+ const { themeStretch, onToggleStretch } = useSettings();
+
+ const ICON_SIZE = {
+ width: themeStretch ? 24 : 18,
+ height: themeStretch ? 24 : 18,
+ };
+
+ return (
+ theme.palette.primary.main,
+ }),
+ }}
+ >
+ theme.customShadows.z12,
+ transition: (theme) => theme.transitions.create('width'),
+ ...(themeStretch && {
+ width: 1,
+ color: 'primary.main',
+ }),
+ }}
+ >
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/settings/ToggleButton.tsx b/frontend/hospital-portal/src/components/settings/ToggleButton.tsx
new file mode 100755
index 00000000..e0469eae
--- /dev/null
+++ b/frontend/hospital-portal/src/components/settings/ToggleButton.tsx
@@ -0,0 +1,69 @@
+// @mui
+import { alpha, styled } from '@mui/material/styles';
+import { Tooltip } from '@mui/material';
+// utils
+import cssStyles from '../../utils/cssStyles';
+//
+import Iconify from '../Iconify';
+import { IconButtonAnimate } from '../animate';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled('span')(({ theme }) => ({
+ ...cssStyles(theme).bgBlur({ opacity: 0.64 }),
+ right: 0,
+ top: '50%',
+ position: 'fixed',
+ marginTop: theme.spacing(-3),
+ padding: theme.spacing(0.5),
+ zIndex: theme.zIndex.drawer + 2,
+ borderRadius: '24px 0 20px 24px',
+ boxShadow: `-12px 12px 32px -4px ${alpha(
+ theme.palette.mode === 'light' ? theme.palette.grey[600] : theme.palette.common.black,
+ 0.36
+ )}`,
+}));
+
+const DotStyle = styled('span')(({ theme }) => ({
+ top: 8,
+ width: 8,
+ height: 8,
+ right: 10,
+ borderRadius: '50%',
+ position: 'absolute',
+ backgroundColor: theme.palette.error.main,
+}));
+
+// ----------------------------------------------------------------------
+
+type Props = {
+ open: boolean;
+ notDefault: boolean;
+ onToggle: VoidFunction;
+};
+
+export default function ToggleButton({ notDefault, open, onToggle }: Props) {
+ return (
+
+ {notDefault && !open && }
+
+
+ theme.transitions.create('all'),
+ '&:hover': {
+ color: 'primary.main',
+ bgcolor: (theme) =>
+ alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity),
+ },
+ }}
+ >
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/settings/index.tsx b/frontend/hospital-portal/src/components/settings/index.tsx
new file mode 100755
index 00000000..b38760f9
--- /dev/null
+++ b/frontend/hospital-portal/src/components/settings/index.tsx
@@ -0,0 +1,189 @@
+import { AnimatePresence, m } from 'framer-motion';
+import { useState, useEffect } from 'react';
+// @mui
+import { alpha, styled } from '@mui/material/styles';
+import { Backdrop, Divider, Typography, Stack, FormControlLabel, Radio } from '@mui/material';
+// hooks
+import useSettings from '../../hooks/useSettings';
+// utils
+import cssStyles from '../../utils/cssStyles';
+// config
+import { NAVBAR, defaultSettings } from '../../config';
+//
+import Iconify from '../Iconify';
+import Scrollbar from '../Scrollbar';
+import { IconButtonAnimate, varFade } from '../animate';
+//
+import ToggleButton from './ToggleButton';
+import SettingMode from './SettingMode';
+import SettingLayout from './SettingLayout';
+import SettingStretch from './SettingStretch';
+import SettingDirection from './SettingDirection';
+import SettingFullscreen from './SettingFullscreen';
+import SettingColorPresets from './SettingColorPresets';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled(m.div)(({ theme }) => ({
+ ...cssStyles(theme).bgBlur({ color: theme.palette.background.paper, opacity: 0.92 }),
+ top: 0,
+ right: 0,
+ bottom: 0,
+ display: 'flex',
+ position: 'fixed',
+ overflow: 'hidden',
+ width: NAVBAR.BASE_WIDTH,
+ flexDirection: 'column',
+ margin: theme.spacing(2),
+ paddingBottom: theme.spacing(3),
+ zIndex: theme.zIndex.drawer + 3,
+ borderRadius: Number(theme.shape.borderRadius) * 1.5,
+ boxShadow: `-24px 12px 32px -4px ${alpha(
+ theme.palette.mode === 'light' ? theme.palette.grey[500] : theme.palette.common.black,
+ 0.16
+ )}`,
+}));
+
+// ----------------------------------------------------------------------
+
+export default function Settings() {
+ const {
+ themeMode,
+ themeDirection,
+ themeColorPresets,
+ themeStretch,
+ themeLayout,
+ onResetSetting,
+ } = useSettings();
+ const [open, setOpen] = useState(false);
+
+ const notDefault =
+ themeMode !== defaultSettings.themeMode ||
+ themeDirection !== defaultSettings.themeDirection ||
+ themeColorPresets !== defaultSettings.themeColorPresets ||
+ themeLayout !== defaultSettings.themeLayout ||
+ themeStretch !== defaultSettings.themeStretch;
+
+ const varSidebar =
+ themeDirection !== 'rtl'
+ ? varFade({
+ distance: NAVBAR.BASE_WIDTH,
+ durationIn: 0.32,
+ durationOut: 0.32,
+ }).inRight
+ : varFade({
+ distance: NAVBAR.BASE_WIDTH,
+ durationIn: 0.32,
+ durationOut: 0.32,
+ }).inLeft;
+
+ useEffect(() => {
+ if (open) {
+ document.body.style.overflow = 'hidden';
+ } else {
+ document.body.style.overflow = 'unset';
+ }
+ }, [open]);
+
+ const handleToggle = () => {
+ setOpen((prev) => !prev);
+ };
+
+ const handleClose = () => {
+ setOpen(false);
+ };
+
+ return (
+ <>
+ theme.zIndex.drawer + 1 }}
+ />
+
+ {!open && }
+
+
+ {open && (
+ <>
+
+
+ Settings
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mode
+
+
+
+
+ Direction
+
+
+
+
+ Layout
+
+
+
+
+ Presets
+
+
+
+
+ Stretch
+
+
+
+
+
+
+
+ >
+ )}
+
+ >
+ );
+}
+
+// ----------------------------------------------------------------------
+
+type Props = {
+ value: string;
+};
+
+export function BoxMask({ value }: Props) {
+ return (
+ }
+ sx={{
+ m: 0,
+ top: 0,
+ right: 0,
+ bottom: 0,
+ left: 0,
+ position: 'absolute',
+ }}
+ />
+ );
+}
diff --git a/frontend/hospital-portal/src/components/settings/type.ts b/frontend/hospital-portal/src/components/settings/type.ts
new file mode 100755
index 00000000..6d700206
--- /dev/null
+++ b/frontend/hospital-portal/src/components/settings/type.ts
@@ -0,0 +1,45 @@
+// ----------------------------------------------------------------------
+
+export type ThemeMode = 'light' | 'dark';
+export type ThemeDirection = 'rtl' | 'ltr';
+export type ThemeColorPresets = 'default' | 'purple' | 'cyan' | 'blue' | 'orange' | 'red';
+export type ThemeLayout = 'vertical' | 'horizontal';
+export type ThemeStretch = boolean;
+
+type ColorVariants = {
+ name: string;
+ lighter: string;
+ light: string;
+ main: string;
+ dark: string;
+ darker: string;
+ contrastText: string;
+};
+
+export type SettingsValueProps = {
+ themeMode: ThemeMode;
+ themeDirection: ThemeDirection;
+ themeColorPresets: ThemeColorPresets;
+ themeStretch: ThemeStretch;
+ themeLayout: ThemeLayout;
+};
+
+export type SettingsContextProps = {
+ themeMode: ThemeMode;
+ themeDirection: ThemeDirection;
+ themeColorPresets: ThemeColorPresets;
+ themeLayout: ThemeLayout;
+ themeStretch: boolean;
+ setColor: ColorVariants;
+ colorOption: {
+ name: string;
+ value: string;
+ }[];
+ onToggleMode: VoidFunction;
+ onToggleStretch: VoidFunction;
+ onResetSetting: VoidFunction;
+ onChangeMode: (event: React.ChangeEvent) => void;
+ onChangeDirection: (event: React.ChangeEvent) => void;
+ onChangeColor: (event: React.ChangeEvent) => void;
+ onChangeLayout: (event: React.ChangeEvent) => void;
+};
diff --git a/frontend/hospital-portal/src/components/upload/BlockContent.tsx b/frontend/hospital-portal/src/components/upload/BlockContent.tsx
new file mode 100755
index 00000000..c6557bfc
--- /dev/null
+++ b/frontend/hospital-portal/src/components/upload/BlockContent.tsx
@@ -0,0 +1,38 @@
+// @mui
+import { Box, Typography, Stack } from '@mui/material';
+// assets
+import { UploadIllustration } from '../../assets';
+
+// ----------------------------------------------------------------------
+
+export default function BlockContent() {
+ return (
+
+
+
+
+
+ Drop or Select file
+
+
+
+ Drop files here or click
+
+ browse
+
+ thorough your machine
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/upload/MultiFilePreview.tsx b/frontend/hospital-portal/src/components/upload/MultiFilePreview.tsx
new file mode 100755
index 00000000..9e133967
--- /dev/null
+++ b/frontend/hospital-portal/src/components/upload/MultiFilePreview.tsx
@@ -0,0 +1,134 @@
+import isString from 'lodash/isString';
+import { m, AnimatePresence } from 'framer-motion';
+// @mui
+import { alpha } from '@mui/material/styles';
+import { List, Stack, Button, IconButton, ListItemText, ListItem } from '@mui/material';
+// utils
+import { fData } from '../../utils/formatNumber';
+// type
+import { UploadMultiFileProps, CustomFile } from './type';
+//
+import Image from '../Image';
+import Iconify from '../Iconify';
+import { varFade } from '../animate';
+
+// ----------------------------------------------------------------------
+
+const getFileData = (file: CustomFile | string) => {
+ if (typeof file === 'string') {
+ return {
+ key: file,
+ };
+ }
+ return {
+ key: file.name,
+ name: file.name,
+ size: file.size,
+ preview: file.preview,
+ };
+};
+
+// ----------------------------------------------------------------------
+
+export default function MultiFilePreview({
+ showPreview = false,
+ files,
+ onRemove,
+ onRemoveAll,
+}: UploadMultiFileProps) {
+ const hasFile = files.length > 0;
+
+ return (
+ <>
+
+
+ {files.map((file) => {
+ const { key, name, size, preview } = getFileData(file as CustomFile);
+
+ if (showPreview) {
+ return (
+ `solid 1px ${theme.palette.divider}`,
+ }}
+ >
+
+ onRemove(file)}
+ sx={{
+ top: 6,
+ p: '2px',
+ right: 6,
+ position: 'absolute',
+ color: 'common.white',
+ bgcolor: (theme) => alpha(theme.palette.grey[900], 0.72),
+ '&:hover': {
+ bgcolor: (theme) => alpha(theme.palette.grey[900], 0.48),
+ },
+ }}
+ >
+
+
+
+ );
+ }
+
+ return (
+ `solid 1px ${theme.palette.divider}`,
+ }}
+ >
+
+
+
+
+ onRemove(file)}>
+
+
+
+ );
+ })}
+
+
+
+ {hasFile && (
+
+
+
+
+ )}
+ >
+ );
+}
diff --git a/frontend/hospital-portal/src/components/upload/RejectionFiles.tsx b/frontend/hospital-portal/src/components/upload/RejectionFiles.tsx
new file mode 100755
index 00000000..c2fbe92a
--- /dev/null
+++ b/frontend/hospital-portal/src/components/upload/RejectionFiles.tsx
@@ -0,0 +1,47 @@
+import { FileRejection } from 'react-dropzone';
+// @mui
+import { alpha } from '@mui/material/styles';
+import { Box, Paper, Typography } from '@mui/material';
+// type
+import { CustomFile } from './type';
+// utils
+import { fData } from '../../utils/formatNumber';
+
+// ----------------------------------------------------------------------
+
+type Props = {
+ fileRejections: FileRejection[];
+};
+
+export default function RejectionFiles({ fileRejections }: Props) {
+ return (
+ alpha(theme.palette.error.main, 0.08),
+ }}
+ >
+ {fileRejections.map(({ file, errors }) => {
+ const { path, size }: CustomFile = file;
+
+ return (
+
+
+ {path} - {fData(size)}
+
+
+ {errors.map((error) => (
+
+ - {error.message}
+
+ ))}
+
+ );
+ })}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/upload/UploadAvatar.tsx b/frontend/hospital-portal/src/components/upload/UploadAvatar.tsx
new file mode 100755
index 00000000..743eceba
--- /dev/null
+++ b/frontend/hospital-portal/src/components/upload/UploadAvatar.tsx
@@ -0,0 +1,114 @@
+import isString from 'lodash/isString';
+import { useDropzone } from 'react-dropzone';
+// @mui
+import { Typography } from '@mui/material';
+import { styled } from '@mui/material/styles';
+// type
+import { UploadProps } from './type';
+//
+import Image from '../Image';
+import Iconify from '../Iconify';
+import RejectionFiles from './RejectionFiles';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled('div')(({ theme }) => ({
+ width: 144,
+ height: 144,
+ margin: 'auto',
+ borderRadius: '50%',
+ padding: theme.spacing(1),
+ border: `1px dashed ${theme.palette.grey[500_32]}`,
+}));
+
+const DropZoneStyle = styled('div')({
+ zIndex: 0,
+ width: '100%',
+ height: '100%',
+ outline: 'none',
+ display: 'flex',
+ overflow: 'hidden',
+ borderRadius: '50%',
+ position: 'relative',
+ alignItems: 'center',
+ justifyContent: 'center',
+ '& > *': { width: '100%', height: '100%' },
+ '&:hover': {
+ cursor: 'pointer',
+ '& .placeholder': {
+ zIndex: 9,
+ },
+ },
+});
+
+const PlaceholderStyle = styled('div')(({ theme }) => ({
+ display: 'flex',
+ position: 'absolute',
+ alignItems: 'center',
+ flexDirection: 'column',
+ justifyContent: 'center',
+ color: theme.palette.text.secondary,
+ backgroundColor: theme.palette.background.neutral,
+ transition: theme.transitions.create('opacity', {
+ easing: theme.transitions.easing.easeInOut,
+ duration: theme.transitions.duration.shorter,
+ }),
+ '&:hover': { opacity: 0.72 },
+}));
+
+// ----------------------------------------------------------------------
+
+export default function UploadAvatar({ error, file, helperText, sx, ...other }: UploadProps) {
+ const { getRootProps, getInputProps, isDragActive, isDragReject, fileRejections } = useDropzone({
+ multiple: false,
+ ...other,
+ });
+
+ return (
+ <>
+
+
+
+
+ {file && (
+
+ )}
+
+
+
+ {file ? 'Update photo' : 'Upload photo'}
+
+
+
+
+ {helperText && helperText}
+
+ {fileRejections.length > 0 && }
+ >
+ );
+}
diff --git a/frontend/hospital-portal/src/components/upload/UploadMultiFile.tsx b/frontend/hospital-portal/src/components/upload/UploadMultiFile.tsx
new file mode 100755
index 00000000..dc2eff4c
--- /dev/null
+++ b/frontend/hospital-portal/src/components/upload/UploadMultiFile.tsx
@@ -0,0 +1,69 @@
+import { useDropzone } from 'react-dropzone';
+// @mui
+import { styled } from '@mui/material/styles';
+import { Box } from '@mui/material';
+// type
+import { UploadMultiFileProps } from './type';
+//
+import BlockContent from './BlockContent';
+import RejectionFiles from './RejectionFiles';
+import MultiFilePreview from './MultiFilePreview';
+
+// ----------------------------------------------------------------------
+
+const DropZoneStyle = styled('div')(({ theme }) => ({
+ outline: 'none',
+ padding: theme.spacing(5, 1),
+ borderRadius: theme.shape.borderRadius,
+ backgroundColor: theme.palette.background.neutral,
+ border: `1px dashed ${theme.palette.grey[500_32]}`,
+ '&:hover': { opacity: 0.72, cursor: 'pointer' },
+}));
+
+// ----------------------------------------------------------------------
+
+export default function UploadMultiFile({
+ error,
+ showPreview = false,
+ files,
+ onRemove,
+ onRemoveAll,
+ helperText,
+ sx,
+ ...other
+}: UploadMultiFileProps) {
+ const { getRootProps, getInputProps, isDragActive, isDragReject, fileRejections } = useDropzone({
+ ...other,
+ });
+
+ return (
+
+
+
+
+
+
+
+ {fileRejections.length > 0 && }
+
+
+
+ {helperText && helperText}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/upload/UploadSingleFile.tsx b/frontend/hospital-portal/src/components/upload/UploadSingleFile.tsx
new file mode 100755
index 00000000..5e32e4b1
--- /dev/null
+++ b/frontend/hospital-portal/src/components/upload/UploadSingleFile.tsx
@@ -0,0 +1,82 @@
+import isString from 'lodash/isString';
+import { useDropzone } from 'react-dropzone';
+// @mui
+import { styled } from '@mui/material/styles';
+import { Box } from '@mui/material';
+// type
+import { UploadProps } from './type';
+//
+import Image from '../Image';
+import RejectionFiles from './RejectionFiles';
+import BlockContent from './BlockContent';
+
+// ----------------------------------------------------------------------
+
+const DropZoneStyle = styled('div')(({ theme }) => ({
+ outline: 'none',
+ overflow: 'hidden',
+ position: 'relative',
+ padding: theme.spacing(5, 1),
+ borderRadius: theme.shape.borderRadius,
+ transition: theme.transitions.create('padding'),
+ backgroundColor: theme.palette.background.neutral,
+ border: `1px dashed ${theme.palette.grey[500_32]}`,
+ '&:hover': { opacity: 0.72, cursor: 'pointer' },
+}));
+
+// ----------------------------------------------------------------------
+
+export default function UploadSingleFile({
+ error = false,
+ file,
+ helperText,
+ sx,
+ ...other
+}: UploadProps) {
+ const { getRootProps, getInputProps, isDragActive, isDragReject, fileRejections } = useDropzone({
+ multiple: false,
+ ...other,
+ });
+
+ return (
+
+
+
+
+
+
+ {file && (
+
+ )}
+
+
+ {fileRejections.length > 0 && }
+
+ {helperText && helperText}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/components/upload/index.ts b/frontend/hospital-portal/src/components/upload/index.ts
new file mode 100755
index 00000000..bd071571
--- /dev/null
+++ b/frontend/hospital-portal/src/components/upload/index.ts
@@ -0,0 +1,5 @@
+export * from './type';
+
+export { default as UploadAvatar } from './UploadAvatar';
+export { default as UploadMultiFile } from './UploadMultiFile';
+export { default as UploadSingleFile } from './UploadSingleFile';
diff --git a/frontend/hospital-portal/src/components/upload/type.ts b/frontend/hospital-portal/src/components/upload/type.ts
new file mode 100755
index 00000000..456c815f
--- /dev/null
+++ b/frontend/hospital-portal/src/components/upload/type.ts
@@ -0,0 +1,29 @@
+import { ReactNode } from 'react';
+import { DropzoneOptions } from 'react-dropzone';
+// @mui
+import { SxProps } from '@mui/material';
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export interface CustomFile extends File {
+ path?: string;
+ preview?: string;
+}
+
+export interface UploadProps extends DropzoneOptions {
+ error?: boolean;
+ file: CustomFile | string | null;
+ helperText?: ReactNode;
+ sx?: SxProps;
+}
+
+export interface UploadMultiFileProps extends DropzoneOptions {
+ error?: boolean;
+ files: (File | string)[];
+ showPreview: boolean;
+ onRemove: (file: File | string) => void;
+ onRemoveAll: VoidFunction;
+ sx?: SxProps;
+ helperText?: ReactNode;
+}
diff --git a/frontend/hospital-portal/src/config.ts b/frontend/hospital-portal/src/config.ts
new file mode 100755
index 00000000..fd47b6cf
--- /dev/null
+++ b/frontend/hospital-portal/src/config.ts
@@ -0,0 +1,44 @@
+import { SettingsValueProps } from './components/settings/type';
+
+
+// API
+// ----------------------------------------------------------------------
+
+export const HOST_API = import.meta.env.VITE_API_URL;
+
+// LAYOUT
+// ----------------------------------------------------------------------
+
+export const HEADER = {
+ MOBILE_HEIGHT: 64,
+ MAIN_DESKTOP_HEIGHT: 88,
+ DASHBOARD_DESKTOP_HEIGHT: 92,
+ DASHBOARD_DESKTOP_OFFSET_HEIGHT: 92 - 32,
+};
+
+export const NAVBAR = {
+ BASE_WIDTH: 260,
+ DASHBOARD_WIDTH: 350,
+ DASHBOARD_COLLAPSE_WIDTH: 88,
+ //
+ DASHBOARD_ITEM_ROOT_HEIGHT: 48,
+ DASHBOARD_ITEM_SUB_HEIGHT: 40,
+ DASHBOARD_ITEM_HORIZONTAL_HEIGHT: 32,
+};
+
+export const ICON = {
+ NAVBAR_ITEM: 22,
+ NAVBAR_ITEM_HORIZONTAL: 20,
+};
+
+// SETTINGS
+// Please remove `localStorage` when you set settings.
+// ----------------------------------------------------------------------
+
+export const defaultSettings: SettingsValueProps = {
+ themeMode: 'light',
+ themeDirection: 'ltr',
+ themeColorPresets: 'blue',
+ themeLayout: 'horizontal',
+ themeStretch: false,
+};
diff --git a/frontend/hospital-portal/src/contexts/CollapseDrawerContext.tsx b/frontend/hospital-portal/src/contexts/CollapseDrawerContext.tsx
new file mode 100755
index 00000000..e6454dbe
--- /dev/null
+++ b/frontend/hospital-portal/src/contexts/CollapseDrawerContext.tsx
@@ -0,0 +1,77 @@
+import { ReactNode, createContext, useState, useEffect } from 'react';
+// hooks
+import useResponsive from '../hooks/useResponsive';
+
+// ----------------------------------------------------------------------
+
+export type CollapseDrawerContextProps = {
+ isCollapse?: boolean;
+ collapseClick: boolean;
+ collapseHover: boolean;
+ onToggleCollapse: VoidFunction;
+ onHoverEnter: VoidFunction;
+ onHoverLeave: VoidFunction;
+};
+
+const initialState: CollapseDrawerContextProps = {
+ collapseClick: false,
+ collapseHover: false,
+ onToggleCollapse: () => {},
+ onHoverEnter: () => {},
+ onHoverLeave: () => {}
+};
+
+const CollapseDrawerContext = createContext(initialState);
+
+type CollapseDrawerProviderProps = {
+ children: ReactNode;
+};
+
+function CollapseDrawerProvider({ children }: CollapseDrawerProviderProps) {
+ const isDesktop = useResponsive('up', 'lg');
+
+ const [collapse, setCollapse] = useState({
+ click: false,
+ hover: false
+ });
+
+ useEffect(() => {
+ if (!isDesktop) {
+ setCollapse({
+ click: false,
+ hover: false
+ });
+ }
+ }, [isDesktop]);
+
+ const handleToggleCollapse = () => {
+ setCollapse({ ...collapse, click: !collapse.click });
+ };
+
+ const handleHoverEnter = () => {
+ if (collapse.click) {
+ setCollapse({ ...collapse, hover: true });
+ }
+ };
+
+ const handleHoverLeave = () => {
+ setCollapse({ ...collapse, hover: false });
+ };
+
+ return (
+
+ {children}
+
+ );
+}
+
+export { CollapseDrawerProvider, CollapseDrawerContext };
diff --git a/frontend/hospital-portal/src/contexts/ConfiguredCorporateContext.tsx b/frontend/hospital-portal/src/contexts/ConfiguredCorporateContext.tsx
new file mode 100644
index 00000000..5fde9420
--- /dev/null
+++ b/frontend/hospital-portal/src/contexts/ConfiguredCorporateContext.tsx
@@ -0,0 +1,49 @@
+import { Corporate } from '@/@types/corporates';
+import axios from '@/utils/axios';
+import { ReactNode, createContext, useState, useEffect } from 'react';
+import { useParams } from 'react-router';
+// hooks
+import useResponsive from '../hooks/useResponsive';
+
+// ----------------------------------------------------------------------
+
+export type ConfiguredCorporateContextProps = {
+ currentCorporate?: Corporate | null;
+};
+
+const initialState: ConfiguredCorporateContextProps = {
+ currentCorporate: null,
+};
+
+const ConfiguredCorporateContext = createContext(initialState);
+
+type ConfiguredCorporateProviderProps = {
+ children: ReactNode;
+};
+
+function ConfiguredCorporateProvider({ children }: ConfiguredCorporateProviderProps) {
+ const { corporate_id } = useParams();
+ const [corporate, setCorporate] = useState(null);
+
+ useEffect(() => {
+ // Load Corporate
+ console.log('calling corporate' + corporate_id);
+
+ axios.get(`corporates/${corporate_id}`)
+ .then((res) => {
+ setCorporate(res.data)
+ })
+ }, []);
+
+ return (
+
+ {children}
+
+ );
+}
+
+export { ConfiguredCorporateProvider, ConfiguredCorporateContext };
diff --git a/frontend/hospital-portal/src/contexts/LaravelAuthContext.tsx b/frontend/hospital-portal/src/contexts/LaravelAuthContext.tsx
new file mode 100755
index 00000000..ae1b19e1
--- /dev/null
+++ b/frontend/hospital-portal/src/contexts/LaravelAuthContext.tsx
@@ -0,0 +1,202 @@
+import { createContext, ReactNode, useEffect, useReducer } from 'react';
+// utils
+import axios from '../utils/axios';
+// import { isValidToken, setSession } from '../utils/jwt';
+import { setSession, getSession, getUser } from '../utils/token';
+// @types
+import { ActionMap, AuthState, AuthUser, JWTContextType } from '../@types/auth';
+// ----------------------------------------------------------------------
+import { Navigate, useLocation } from 'react-router-dom';
+
+enum Types {
+ Initial = 'INITIALIZE',
+ Login = 'LOGIN',
+ Logout = 'LOGOUT',
+ Register = 'REGISTER',
+}
+
+type JWTAuthPayload = {
+ [Types.Initial]: {
+ isAuthenticated: boolean;
+ user: AuthUser;
+ };
+ [Types.Login]: {
+ user: AuthUser;
+ };
+ [Types.Logout]: undefined;
+ [Types.Register]: {
+ user: AuthUser;
+ };
+};
+
+export type JWTActions = ActionMap[keyof ActionMap];
+
+const initialState: AuthState = {
+ isAuthenticated: false,
+ isInitialized: false,
+ user: null,
+};
+
+const JWTReducer = (state: AuthState, action: JWTActions) => {
+ switch (action.type) {
+ case 'INITIALIZE':
+ return {
+ isAuthenticated: action.payload.isAuthenticated,
+ isInitialized: true,
+ user: action.payload.user,
+ };
+ case 'LOGIN':
+ return {
+ ...state,
+ isAuthenticated: true,
+ user: action.payload.user,
+ };
+ case 'LOGOUT':
+ return {
+ ...state,
+ isAuthenticated: false,
+ user: null,
+ };
+
+ case 'REGISTER':
+ return {
+ ...state,
+ isAuthenticated: true,
+ user: action.payload.user,
+ };
+
+ default:
+ return state;
+ }
+};
+
+const AuthContext = createContext(null);
+
+// ----------------------------------------------------------------------
+
+type AuthProviderProps = {
+ children: ReactNode;
+};
+
+function AuthProvider({ children }: AuthProviderProps) {
+ const [state, dispatch] = useReducer(JWTReducer, initialState);
+ let location = useLocation();
+
+ useEffect(() => {
+ const initialize = async () => {
+ try {
+ const accessToken = getSession();
+ if (accessToken) {
+ setSession(accessToken);
+
+ const response = await axios.get('/user');
+ const user = response.data;
+
+ dispatch({
+ type: Types.Initial,
+ payload: {
+ isAuthenticated: true,
+ user,
+ },
+ });
+ } else {
+ dispatch({
+ type: Types.Initial,
+ payload: {
+ isAuthenticated: false,
+ user: null,
+ },
+ });
+ }
+ } catch (err) {
+ dispatch({
+ type: Types.Initial,
+ payload: {
+ isAuthenticated: false,
+ user: null,
+ },
+ });
+ }
+ };
+
+ initialize();
+ }, []);
+
+ const login = async (email: string, password: string) => axios
+ .post('/login', { email, password })
+ .then((response) => {
+ const { user, token } = response.data;
+ setSession(token);
+
+ dispatch({
+ type: Types.Login,
+ payload: {
+ user,
+ }
+ });
+ })
+ .catch(error => {
+ if (error.response.status !== 404) throw error.response
+ if (error.response.status !== 422) throw error.response
+ });
+
+ const register = async (email: string, password: string, firstName: string, lastName: string) => {
+ const response = await axios.post('/api/register', {
+ email,
+ password,
+ firstName,
+ lastName,
+ });
+ const { accessToken, user } = response.data;
+
+ window.localStorage.setItem('accessToken', accessToken);
+ dispatch({
+ type: Types.Register,
+ payload: {
+ user,
+ },
+ });
+ };
+
+ const logout = async () => {
+ setSession(null);
+ dispatch({ type: Types.Logout });
+ };
+
+ return (
+ {children}
+
+ );
+
+ // if (state.isInitialized) {
+ // return (!state.isAuthenticated && location.pathname !== '/auth/login') ?
+ // ()
+ // : false && location.pathname == '/auth/login' ?
+ // ()
+ // : (
+ //
+ // {children}
+ //
+ // );
+ // } else {
+ // return ()
+ // }
+}
+
+export { AuthContext, AuthProvider };
diff --git a/frontend/hospital-portal/src/contexts/SettingsContext.tsx b/frontend/hospital-portal/src/contexts/SettingsContext.tsx
new file mode 100755
index 00000000..9b2591c6
--- /dev/null
+++ b/frontend/hospital-portal/src/contexts/SettingsContext.tsx
@@ -0,0 +1,128 @@
+import { ReactNode, createContext } from 'react';
+// hooks
+import useLocalStorage from '../hooks/useLocalStorage';
+// utils
+import getColorPresets, { colorPresets, defaultPreset } from '../utils/getColorPresets';
+// config
+import { defaultSettings } from '../config';
+// @type
+import {
+ ThemeMode,
+ ThemeLayout,
+ ThemeDirection,
+ ThemeColorPresets,
+ SettingsContextProps,
+} from '../components/settings/type';
+
+// ----------------------------------------------------------------------
+
+const initialState: SettingsContextProps = {
+ ...defaultSettings,
+ onChangeMode: () => {},
+ onToggleMode: () => {},
+ onChangeDirection: () => {},
+ onChangeColor: () => {},
+ onToggleStretch: () => {},
+ onChangeLayout: () => {},
+ onResetSetting: () => {},
+ setColor: defaultPreset,
+ colorOption: [],
+};
+
+const SettingsContext = createContext(initialState);
+
+type SettingsProviderProps = {
+ children: ReactNode;
+};
+
+function SettingsProvider({ children }: SettingsProviderProps) {
+ const [settings, setSettings] = useLocalStorage('settings', {
+ themeMode: initialState.themeMode,
+ themeDirection: initialState.themeDirection,
+ themeColorPresets: initialState.themeColorPresets,
+ themeStretch: initialState.themeStretch,
+ themeLayout: initialState.themeLayout,
+ });
+
+ const onChangeMode = (event: React.ChangeEvent) => {
+ setSettings({
+ ...settings,
+ themeMode: (event.target as HTMLInputElement).value as ThemeMode,
+ });
+ };
+
+ const onToggleMode = () => {
+ setSettings({
+ ...settings,
+ themeMode: settings.themeMode === 'light' ? 'dark' : 'light',
+ });
+ };
+
+ const onChangeDirection = (event: React.ChangeEvent) => {
+ setSettings({
+ ...settings,
+ themeDirection: (event.target as HTMLInputElement).value as ThemeDirection,
+ });
+ };
+
+ const onChangeColor = (event: React.ChangeEvent) => {
+ setSettings({
+ ...settings,
+ themeColorPresets: (event.target as HTMLInputElement).value as ThemeColorPresets,
+ });
+ };
+
+ const onChangeLayout = (event: React.ChangeEvent) => {
+ setSettings({
+ ...settings,
+ themeLayout: (event.target as HTMLInputElement).value as ThemeLayout,
+ });
+ };
+
+ const onToggleStretch = () => {
+ setSettings({
+ ...settings,
+ themeStretch: !settings.themeStretch,
+ });
+ };
+
+ const onResetSetting = () => {
+ setSettings({
+ themeMode: initialState.themeMode,
+ themeLayout: initialState.themeLayout,
+ themeStretch: initialState.themeStretch,
+ themeDirection: initialState.themeDirection,
+ themeColorPresets: initialState.themeColorPresets,
+ });
+ };
+
+ return (
+ ({
+ name: color.name,
+ value: color.main,
+ })),
+ // Stretch
+ onToggleStretch,
+ // Navbar Horizontal
+ onChangeLayout,
+ // Reset Setting
+ onResetSetting,
+ }}
+ >
+ {children}
+
+ );
+}
+
+export { SettingsProvider, SettingsContext };
diff --git a/frontend/hospital-portal/src/guards/AuthGuard.tsx b/frontend/hospital-portal/src/guards/AuthGuard.tsx
new file mode 100755
index 00000000..7e470c7d
--- /dev/null
+++ b/frontend/hospital-portal/src/guards/AuthGuard.tsx
@@ -0,0 +1,38 @@
+import { useState, ReactNode } from 'react';
+import { Navigate, useLocation } from 'react-router-dom';
+// hooks
+import useAuth from '../hooks/useAuth';
+// pages
+import Login from '../pages/auth/Login';
+// components
+import LoadingScreen from '../components/LoadingScreen';
+
+// ----------------------------------------------------------------------
+
+type AuthGuardProps = {
+ children: ReactNode;
+};
+
+export default function AuthGuard({ children }: AuthGuardProps) {
+ const { isAuthenticated, isInitialized } = useAuth();
+ const { pathname } = useLocation();
+ const [requestedLocation, setRequestedLocation] = useState(null);
+
+ if (!isInitialized) {
+ return ;
+ }
+
+ if (!isAuthenticated) {
+ if (pathname !== requestedLocation) {
+ setRequestedLocation(pathname);
+ }
+ return ;
+ }
+
+ if (requestedLocation && pathname !== requestedLocation) {
+ setRequestedLocation(null);
+ return ;
+ }
+
+ return <>{children}>;
+}
diff --git a/frontend/hospital-portal/src/guards/GuestGuard.tsx b/frontend/hospital-portal/src/guards/GuestGuard.tsx
new file mode 100755
index 00000000..feb464cb
--- /dev/null
+++ b/frontend/hospital-portal/src/guards/GuestGuard.tsx
@@ -0,0 +1,22 @@
+import { ReactNode } from 'react';
+import { Navigate } from 'react-router-dom';
+// hooks
+import useAuth from '../hooks/useAuth';
+// routes
+// import { PATH_DASHBOARD } from '../routes/paths';
+
+// ----------------------------------------------------------------------
+
+type GuestGuardProps = {
+ children: ReactNode;
+};
+
+export default function GuestGuard({ children }: GuestGuardProps) {
+ const { isAuthenticated } = useAuth();
+
+ if (isAuthenticated) {
+ return ;
+ }
+
+ return <>{children}>;
+}
diff --git a/frontend/hospital-portal/src/guards/RoleBasedGuard.tsx b/frontend/hospital-portal/src/guards/RoleBasedGuard.tsx
new file mode 100755
index 00000000..ebc6a9fe
--- /dev/null
+++ b/frontend/hospital-portal/src/guards/RoleBasedGuard.tsx
@@ -0,0 +1,32 @@
+import { ReactNode } from 'react';
+import { Container, Alert, AlertTitle } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+type RoleBasedGuardProp = {
+ accessibleRoles: string[];
+ children: ReactNode | string;
+};
+
+const useCurrentRole = () => {
+ // Logic here to get current user role
+ const role = 'admin';
+ return role;
+};
+
+export default function RoleBasedGuard({ accessibleRoles, children }: RoleBasedGuardProp) {
+ const currentRole = useCurrentRole();
+
+ if (!accessibleRoles.includes(currentRole)) {
+ return (
+
+
+ Permission Denied
+ You do not have permission to access this page
+
+
+ );
+ }
+
+ return <>{children}>;
+}
diff --git a/frontend/hospital-portal/src/hooks/useAuth.ts b/frontend/hospital-portal/src/hooks/useAuth.ts
new file mode 100755
index 00000000..f822b680
--- /dev/null
+++ b/frontend/hospital-portal/src/hooks/useAuth.ts
@@ -0,0 +1,18 @@
+import { useContext } from 'react';
+//
+import { AuthContext } from '../contexts/LaravelAuthContext';
+// import { AuthContext } from '../contexts/Auth0Context';
+// import { AuthContext } from '../contexts/FirebaseContext';
+// import { AuthContext } from '../contexts/AwsCognitoContext';
+
+// ----------------------------------------------------------------------
+
+const useAuth = () => {
+ const context = useContext(AuthContext);
+
+ if (!context) throw new Error('Auth context must be use inside AuthProvider');
+
+ return context;
+};
+
+export default useAuth;
diff --git a/frontend/hospital-portal/src/hooks/useCollapseDrawer.ts b/frontend/hospital-portal/src/hooks/useCollapseDrawer.ts
new file mode 100755
index 00000000..29553930
--- /dev/null
+++ b/frontend/hospital-portal/src/hooks/useCollapseDrawer.ts
@@ -0,0 +1,8 @@
+import { useContext } from 'react';
+import { CollapseDrawerContext } from '../contexts/CollapseDrawerContext';
+
+// ----------------------------------------------------------------------
+
+const useCollapseDrawer = () => useContext(CollapseDrawerContext);
+
+export default useCollapseDrawer;
diff --git a/frontend/hospital-portal/src/hooks/useIsMountedRef.ts b/frontend/hospital-portal/src/hooks/useIsMountedRef.ts
new file mode 100755
index 00000000..ddec0834
--- /dev/null
+++ b/frontend/hospital-portal/src/hooks/useIsMountedRef.ts
@@ -0,0 +1,16 @@
+import { useRef, useEffect } from 'react';
+
+// ----------------------------------------------------------------------
+
+export default function useIsMountedRef() {
+ const isMounted = useRef(true);
+
+ useEffect(
+ () => () => {
+ isMounted.current = false;
+ },
+ []
+ );
+
+ return isMounted;
+}
diff --git a/frontend/hospital-portal/src/hooks/useLocalStorage.ts b/frontend/hospital-portal/src/hooks/useLocalStorage.ts
new file mode 100755
index 00000000..eee49ba1
--- /dev/null
+++ b/frontend/hospital-portal/src/hooks/useLocalStorage.ts
@@ -0,0 +1,33 @@
+import { useState, useEffect } from 'react';
+
+// ----------------------------------------------------------------------
+
+export default function useLocalStorage(key: string, defaultValue: ValueType) {
+ const [value, setValue] = useState(() => {
+ const storedValue = localStorage.getItem(key);
+ return storedValue === null ? defaultValue : JSON.parse(storedValue);
+ });
+
+ useEffect(() => {
+ const listener = (e: StorageEvent) => {
+ if (e.storageArea === localStorage && e.key === key) {
+ setValue(e.newValue ? JSON.parse(e.newValue) : e.newValue);
+ }
+ };
+ window.addEventListener('storage', listener);
+
+ return () => {
+ window.removeEventListener('storage', listener);
+ };
+ }, [key, defaultValue]);
+
+ const setValueInLocalStorage = (newValue: ValueType) => {
+ setValue((currentValue: any) => {
+ const result = typeof newValue === 'function' ? newValue(currentValue) : newValue;
+ localStorage.setItem(key, JSON.stringify(result));
+ return result;
+ });
+ };
+
+ return [value, setValueInLocalStorage];
+}
diff --git a/frontend/hospital-portal/src/hooks/useLocales.ts b/frontend/hospital-portal/src/hooks/useLocales.ts
new file mode 100755
index 00000000..b9dc1f2f
--- /dev/null
+++ b/frontend/hospital-portal/src/hooks/useLocales.ts
@@ -0,0 +1,43 @@
+import { useTranslation } from 'react-i18next';
+// @mui
+import { enUS, deDE, frFR } from '@mui/material/locale';
+
+// ----------------------------------------------------------------------
+
+const LANGS = [
+ {
+ label: 'English',
+ value: 'en',
+ systemValue: enUS,
+ icon: 'https://minimal-assets-api.vercel.app/assets/icons/ic_flag_en.svg',
+ },
+ {
+ label: 'German',
+ value: 'de',
+ systemValue: deDE,
+ icon: 'https://minimal-assets-api.vercel.app/assets/icons/ic_flag_de.svg',
+ },
+ {
+ label: 'French',
+ value: 'fr',
+ systemValue: frFR,
+ icon: 'https://minimal-assets-api.vercel.app/assets/icons/ic_flag_fr.svg',
+ },
+];
+
+export default function useLocales() {
+ const { i18n, t: translate } = useTranslation();
+ const langStorage = localStorage.getItem('i18nextLng');
+ const currentLang = LANGS.find((_lang) => _lang.value === langStorage) || LANGS[1];
+
+ const handleChangeLanguage = (newlang: string) => {
+ i18n.changeLanguage(newlang);
+ };
+
+ return {
+ onChangeLang: handleChangeLanguage,
+ translate,
+ currentLang,
+ allLang: LANGS,
+ };
+}
diff --git a/frontend/hospital-portal/src/hooks/useOffSetTop.ts b/frontend/hospital-portal/src/hooks/useOffSetTop.ts
new file mode 100755
index 00000000..895e5413
--- /dev/null
+++ b/frontend/hospital-portal/src/hooks/useOffSetTop.ts
@@ -0,0 +1,26 @@
+import { useState, useEffect } from 'react';
+
+// ----------------------------------------------------------------------
+
+export default function useOffSetTop(top: number) {
+ const [offsetTop, setOffSetTop] = useState(false);
+ const isTop = top || 100;
+
+ useEffect(() => {
+ window.onscroll = () => {
+ if (window.pageYOffset > isTop) {
+ setOffSetTop(true);
+ } else {
+ setOffSetTop(false);
+ }
+ };
+ return () => {
+ window.onscroll = null;
+ };
+ }, [isTop]);
+
+ return offsetTop;
+}
+
+// Usage
+// const offset = useOffSetTop(100);
diff --git a/frontend/hospital-portal/src/hooks/useResponsive.ts b/frontend/hospital-portal/src/hooks/useResponsive.ts
new file mode 100755
index 00000000..43a2ed8c
--- /dev/null
+++ b/frontend/hospital-portal/src/hooks/useResponsive.ts
@@ -0,0 +1,39 @@
+// @mui
+import { Breakpoint } from '@mui/material';
+import { useTheme } from '@mui/material/styles';
+import useMediaQuery from '@mui/material/useMediaQuery';
+
+// ----------------------------------------------------------------------
+
+type Query = 'up' | 'down' | 'between' | 'only';
+type Key = Breakpoint | number;
+type Start = Breakpoint | number;
+type End = Breakpoint | number;
+
+export default function useResponsive(query: Query, key?: Key, start?: Start, end?: End) {
+ const theme = useTheme();
+
+ const mediaUp = useMediaQuery(theme.breakpoints.up(key as Key));
+
+ const mediaDown = useMediaQuery(theme.breakpoints.down(key as Key));
+
+ const mediaBetween = useMediaQuery(theme.breakpoints.between(start as Start, end as End));
+
+ const mediaOnly = useMediaQuery(theme.breakpoints.only(key as Breakpoint));
+
+ if (query === 'up') {
+ return mediaUp;
+ }
+
+ if (query === 'down') {
+ return mediaDown;
+ }
+
+ if (query === 'between') {
+ return mediaBetween;
+ }
+
+ if (query === 'only') {
+ return mediaOnly;
+ }
+}
diff --git a/frontend/hospital-portal/src/hooks/useSettings.ts b/frontend/hospital-portal/src/hooks/useSettings.ts
new file mode 100755
index 00000000..43bb1839
--- /dev/null
+++ b/frontend/hospital-portal/src/hooks/useSettings.ts
@@ -0,0 +1,8 @@
+import { useContext } from 'react';
+import { SettingsContext } from '../contexts/SettingsContext';
+
+// ----------------------------------------------------------------------
+
+const useSettings = () => useContext(SettingsContext);
+
+export default useSettings;
diff --git a/frontend/hospital-portal/src/hooks/useTable.ts b/frontend/hospital-portal/src/hooks/useTable.ts
new file mode 100755
index 00000000..a25ec894
--- /dev/null
+++ b/frontend/hospital-portal/src/hooks/useTable.ts
@@ -0,0 +1,138 @@
+import { useState } from 'react';
+
+// ----------------------------------------------------------------------
+
+export type UseTableProps = {
+ dense: boolean;
+ page: number;
+ setPage: React.Dispatch>;
+ rowsPerPage: number;
+ order: 'asc' | 'desc';
+ orderBy: string;
+ //
+ selected: string[];
+ setSelected: React.Dispatch>;
+ onSelectRow: (id: string) => void;
+ onSelectAllRows: (checked: boolean, newSelecteds: string[]) => void;
+ //
+ onSort: (id: string) => void;
+ onChangePage: (event: unknown, newPage: number) => void;
+ onChangeRowsPerPage: (event: React.ChangeEvent) => void;
+ onChangeDense: (event: React.ChangeEvent) => void;
+};
+
+export type Props = {
+ defaultDense?: boolean;
+ defaultOrder?: 'asc' | 'desc';
+ defaultOrderBy?: string;
+ defaultSelected?: string[];
+ defaultRowsPerPage?: number;
+ defaultCurrentPage?: number;
+};
+
+export default function useTable(props?: Props) {
+ const [dense, setDense] = useState(props?.defaultDense || false);
+
+ const [orderBy, setOrderBy] = useState(props?.defaultOrderBy || 'name');
+
+ const [order, setOrder] = useState<'asc' | 'desc'>(props?.defaultOrder || 'asc');
+
+ const [page, setPage] = useState(props?.defaultCurrentPage || 0);
+
+ const [rowsPerPage, setRowsPerPage] = useState(props?.defaultRowsPerPage || 5);
+
+ const [selected, setSelected] = useState(props?.defaultSelected || []);
+
+ const onSort = (id: string) => {
+ const isAsc = orderBy === id && order === 'asc';
+ if (id !== '') {
+ setOrder(isAsc ? 'desc' : 'asc');
+ setOrderBy(id);
+ }
+ };
+
+ const onSelectRow = (id: string) => {
+ const selectedIndex = selected.indexOf(id);
+
+ let newSelected: string[] = [];
+
+ if (selectedIndex === -1) {
+ newSelected = newSelected.concat(selected, id);
+ } else if (selectedIndex === 0) {
+ newSelected = newSelected.concat(selected.slice(1));
+ } else if (selectedIndex === selected.length - 1) {
+ newSelected = newSelected.concat(selected.slice(0, -1));
+ } else if (selectedIndex > 0) {
+ newSelected = newSelected.concat(
+ selected.slice(0, selectedIndex),
+ selected.slice(selectedIndex + 1)
+ );
+ }
+ setSelected(newSelected);
+ };
+
+ const onSelectAllRows = (checked: boolean, newSelecteds: string[]) => {
+ if (checked) {
+ setSelected(newSelecteds);
+ return;
+ }
+ setSelected([]);
+ };
+
+ const onChangePage = (event: unknown, newPage: number) => {
+ setPage(newPage);
+ };
+
+ const onChangeRowsPerPage = (event: React.ChangeEvent) => {
+ setRowsPerPage(parseInt(event.target.value, 10));
+ setPage(0);
+ };
+
+ const onChangeDense = (event: React.ChangeEvent) => {
+ setDense(event.target.checked);
+ };
+
+ return {
+ dense,
+ order,
+ page,
+ setPage,
+ orderBy,
+ rowsPerPage,
+ //
+ selected,
+ setSelected,
+ onSelectRow,
+ onSelectAllRows,
+ //
+ onSort,
+ onChangePage,
+ onChangeDense,
+ onChangeRowsPerPage,
+ };
+}
+
+// ----------------------------------------------------------------------
+
+export function descendingComparator(a: T, b: T, orderBy: keyof T) {
+ if (b[orderBy] < a[orderBy]) {
+ return -1;
+ }
+ if (b[orderBy] > a[orderBy]) {
+ return 1;
+ }
+ return 0;
+}
+
+export function getComparator(
+ order: 'asc' | 'desc',
+ orderBy: Key
+): (a: { [key in Key]: number | string }, b: { [key in Key]: number | string }) => number {
+ return order === 'desc'
+ ? (a, b) => descendingComparator(a, b, orderBy)
+ : (a, b) => -descendingComparator(a, b, orderBy);
+}
+
+export function emptyRows(page: number, rowsPerPage: number, arrayLength: number) {
+ return page > 0 ? Math.max(0, (1 + page) * rowsPerPage - arrayLength) : 0;
+}
diff --git a/frontend/hospital-portal/src/hooks/useTabs.ts b/frontend/hospital-portal/src/hooks/useTabs.ts
new file mode 100755
index 00000000..2f97b5fd
--- /dev/null
+++ b/frontend/hospital-portal/src/hooks/useTabs.ts
@@ -0,0 +1,15 @@
+import { useState } from 'react';
+
+// ----------------------------------------------------------------------
+
+export default function useTabs(defaultValues?: string) {
+ const [currentTab, setCurrentTab] = useState(defaultValues || '');
+
+ return {
+ currentTab,
+ onChangeTab: (event: React.SyntheticEvent, newValue: any) => {
+ setCurrentTab(newValue);
+ },
+ setCurrentTab,
+ };
+}
diff --git a/frontend/hospital-portal/src/hooks/useToggle.ts b/frontend/hospital-portal/src/hooks/useToggle.ts
new file mode 100755
index 00000000..00c08937
--- /dev/null
+++ b/frontend/hospital-portal/src/hooks/useToggle.ts
@@ -0,0 +1,15 @@
+import { useState } from 'react';
+
+// ----------------------------------------------------------------------
+
+export default function useToggle(defaultChecked?: boolean) {
+ const [toggle, setToggle] = useState(defaultChecked || false);
+
+ return {
+ toggle,
+ onToggle: () => setToggle(!toggle),
+ onOpen: () => setToggle(true),
+ onClose: () => setToggle(false),
+ setToggle,
+ };
+}
diff --git a/frontend/hospital-portal/src/index.tsx b/frontend/hospital-portal/src/index.tsx
new file mode 100755
index 00000000..ee6d44e7
--- /dev/null
+++ b/frontend/hospital-portal/src/index.tsx
@@ -0,0 +1,32 @@
+// scroll bar
+import 'simplebar/src/simplebar.css';
+
+// lazy image
+import 'react-lazy-load-image-component/src/effects/blur.css';
+import 'react-lazy-load-image-component/src/effects/opacity.css';
+import 'react-lazy-load-image-component/src/effects/black-and-white.css';
+
+import ReactDOM from 'react-dom';
+import { BrowserRouter } from 'react-router-dom';
+import { HelmetProvider } from 'react-helmet-async';
+// contexts
+import { SettingsProvider } from './contexts/SettingsContext';
+import { CollapseDrawerProvider } from './contexts/CollapseDrawerContext';
+
+//
+import App from './App';
+
+// ----------------------------------------------------------------------
+
+ReactDOM.render(
+
+
+
+
+
+
+
+
+ ,
+ document.getElementById('root')
+);
diff --git a/frontend/hospital-portal/src/layouts/LogoOnlyLayout.tsx b/frontend/hospital-portal/src/layouts/LogoOnlyLayout.tsx
new file mode 100755
index 00000000..d5e29196
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/LogoOnlyLayout.tsx
@@ -0,0 +1,32 @@
+import { Outlet } from 'react-router-dom';
+// @mui
+import { styled } from '@mui/material/styles';
+// components
+import Logo from '../components/Logo';
+
+// ----------------------------------------------------------------------
+
+const HeaderStyle = styled('header')(({ theme }) => ({
+ top: 0,
+ left: 0,
+ lineHeight: 0,
+ width: '100%',
+ position: 'absolute',
+ padding: theme.spacing(3, 3, 0),
+ [theme.breakpoints.up('sm')]: {
+ padding: theme.spacing(5, 5, 0)
+ }
+}));
+
+// ----------------------------------------------------------------------
+
+export default function LogoOnlyLayout() {
+ return (
+ <>
+
+
+
+
+ >
+ );
+}
diff --git a/frontend/hospital-portal/src/layouts/dashboard/corporate/CorporateConfigLayout.tsx b/frontend/hospital-portal/src/layouts/dashboard/corporate/CorporateConfigLayout.tsx
new file mode 100644
index 00000000..e69de29b
diff --git a/frontend/hospital-portal/src/layouts/dashboard/header/AccountPopover.tsx b/frontend/hospital-portal/src/layouts/dashboard/header/AccountPopover.tsx
new file mode 100755
index 00000000..519a9c3d
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/header/AccountPopover.tsx
@@ -0,0 +1,120 @@
+import { useState } from 'react';
+// @mui
+import { alpha } from '@mui/material/styles';
+import { Box, Divider, Typography, Stack, MenuItem, Avatar } from '@mui/material';
+// components
+import MenuPopover from '../../../components/MenuPopover';
+import { IconButtonAnimate } from '../../../components/animate';
+import { useNavigate } from 'react-router-dom';
+import useAuth from '../../../hooks/useAuth';
+
+// ----------------------------------------------------------------------
+
+const MENU_OPTIONS = [
+ {
+ label: 'Home',
+ linkTo: '/',
+ },
+ {
+ label: 'Profile',
+ linkTo: '/profile',
+ },
+ {
+ label: 'Settings',
+ linkTo: '/',
+ },
+];
+
+// ----------------------------------------------------------------------
+
+export default function AccountPopover() {
+ const [open, setOpen] = useState(null);
+ const navigate = useNavigate();
+ const { logout } = useAuth();
+
+ const handleOpen = (event: React.MouseEvent) => {
+ setOpen(event.currentTarget);
+ };
+
+ const handleClose = () => {
+ setOpen(null);
+ };
+
+ const handleLogout = () => {
+ logout();
+ navigate('/auth/login');
+ };
+
+ return (
+ <>
+ alpha(theme.palette.grey[900], 0.8),
+ },
+ }),
+ }}
+ >
+
+
+
+
+
+
+ Rayan Moran
+
+
+ rayan.moran@gmail.com
+
+
+
+
+
+
+ {MENU_OPTIONS.map((option) => (
+
+ ))}
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/frontend/hospital-portal/src/layouts/dashboard/header/ContactsPopover.tsx b/frontend/hospital-portal/src/layouts/dashboard/header/ContactsPopover.tsx
new file mode 100755
index 00000000..0dc02d5d
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/header/ContactsPopover.tsx
@@ -0,0 +1,92 @@
+import { useState } from 'react';
+// @mui
+import { alpha } from '@mui/material/styles';
+import { Avatar, Typography, ListItemText, ListItemAvatar, MenuItem } from '@mui/material';
+// utils
+import { fToNow } from '../../../utils/formatTime';
+// _mock_
+import { _contacts } from '../../../_mock';
+// components
+import Iconify from '../../../components/Iconify';
+import Scrollbar from '../../../components/Scrollbar';
+import MenuPopover from '../../../components/MenuPopover';
+import BadgeStatus from '../../../components/BadgeStatus';
+import { IconButtonAnimate } from '../../../components/animate';
+
+// ----------------------------------------------------------------------
+
+const ITEM_HEIGHT = 64;
+
+// ----------------------------------------------------------------------
+
+export default function ContactsPopover() {
+ const [open, setOpen] = useState(null);
+
+ const handleOpen = (event: React.MouseEvent) => {
+ setOpen(event.currentTarget);
+ };
+
+ const handleClose = () => {
+ setOpen(null);
+ };
+
+ return (
+ <>
+
+ alpha(theme.palette.primary.main, theme.palette.action.focusOpacity),
+ }),
+ }}
+ >
+
+
+
+
+
+ Contacts ({_contacts.length})
+
+
+
+ {_contacts.map((contact) => (
+
+ ))}
+
+
+ >
+ );
+}
diff --git a/frontend/hospital-portal/src/layouts/dashboard/header/LanguagePopover.tsx b/frontend/hospital-portal/src/layouts/dashboard/header/LanguagePopover.tsx
new file mode 100755
index 00000000..f8bc33e6
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/header/LanguagePopover.tsx
@@ -0,0 +1,87 @@
+import { useState } from 'react';
+// @mui
+import { MenuItem, Stack } from '@mui/material';
+// components
+import Image from '../../../components/Image';
+import MenuPopover from '../../../components/MenuPopover';
+import { IconButtonAnimate } from '../../../components/animate';
+
+// ----------------------------------------------------------------------
+
+const LANGS = [
+ {
+ label: 'English',
+ value: 'en',
+ icon: 'https://minimal-assets-api.vercel.app/assets/icons/ic_flag_en.svg',
+ },
+ {
+ label: 'German',
+ value: 'de',
+ icon: 'https://minimal-assets-api.vercel.app/assets/icons/ic_flag_de.svg',
+ },
+ {
+ label: 'French',
+ value: 'fr',
+ icon: 'https://minimal-assets-api.vercel.app/assets/icons/ic_flag_fr.svg',
+ },
+];
+
+// ----------------------------------------------------------------------
+
+export default function LanguagePopover() {
+ const [open, setOpen] = useState(null);
+
+ const handleOpen = (event: React.MouseEvent) => {
+ setOpen(event.currentTarget);
+ };
+
+ const handleClose = () => {
+ setOpen(null);
+ };
+
+ return (
+ <>
+
+
+
+
+
+
+ {LANGS.map((option) => (
+
+ ))}
+
+
+ >
+ );
+}
diff --git a/frontend/hospital-portal/src/layouts/dashboard/header/NotificationsPopover.tsx b/frontend/hospital-portal/src/layouts/dashboard/header/NotificationsPopover.tsx
new file mode 100755
index 00000000..825c5edc
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/header/NotificationsPopover.tsx
@@ -0,0 +1,241 @@
+import { noCase } from 'change-case';
+import { useState } from 'react';
+// @mui
+import {
+ Box,
+ List,
+ Badge,
+ Button,
+ Avatar,
+ Tooltip,
+ Divider,
+ Typography,
+ ListItemText,
+ ListSubheader,
+ ListItemAvatar,
+ ListItemButton,
+} from '@mui/material';
+// utils
+import { fToNow } from '../../../utils/formatTime';
+// _mock_
+import { _notifications } from '../../../_mock';
+// components
+import Iconify from '../../../components/Iconify';
+import Scrollbar from '../../../components/Scrollbar';
+import MenuPopover from '../../../components/MenuPopover';
+import { IconButtonAnimate } from '../../../components/animate';
+
+// ----------------------------------------------------------------------
+
+export default function NotificationsPopover() {
+ const [notifications, setNotifications] = useState(_notifications);
+
+ const totalUnRead = notifications.filter((item) => item.isUnRead === true).length;
+
+ const [open, setOpen] = useState(null);
+
+ const handleOpen = (event: React.MouseEvent) => {
+ setOpen(event.currentTarget);
+ };
+
+ const handleClose = () => {
+ setOpen(null);
+ };
+
+ const handleMarkAllAsRead = () => {
+ setNotifications(
+ notifications.map((notification) => ({
+ ...notification,
+ isUnRead: false,
+ }))
+ );
+ };
+
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+ Notifications
+
+ You have {totalUnRead} unread messages
+
+
+
+ {totalUnRead > 0 && (
+
+
+
+
+
+ )}
+
+
+
+
+
+
+ New
+
+ }
+ >
+ {notifications.slice(0, 2).map((notification) => (
+
+ ))}
+
+
+
+ Before that
+
+ }
+ >
+ {notifications.slice(2, 5).map((notification) => (
+
+ ))}
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
+
+// ----------------------------------------------------------------------
+
+type NotificationItemProps = {
+ id: string;
+ title: string;
+ description: string;
+ avatar: string | null;
+ type: string;
+ createdAt: Date;
+ isUnRead: boolean;
+};
+
+function NotificationItem({ notification }: { notification: NotificationItemProps }) {
+ const { avatar, title } = renderContent(notification);
+
+ return (
+
+
+ {avatar}
+
+
+
+ {fToNow(notification.createdAt)}
+
+ }
+ />
+
+ );
+}
+
+// ----------------------------------------------------------------------
+
+function renderContent(notification: NotificationItemProps) {
+ const title = (
+
+ {notification.title}
+
+ {noCase(notification.description)}
+
+
+ );
+
+ if (notification.type === 'order_placed') {
+ return {
+ avatar: (
+
+ ),
+ title,
+ };
+ }
+ if (notification.type === 'order_shipped') {
+ return {
+ avatar: (
+
+ ),
+ title,
+ };
+ }
+ if (notification.type === 'mail') {
+ return {
+ avatar: (
+
+ ),
+ title,
+ };
+ }
+ if (notification.type === 'chat_message') {
+ return {
+ avatar: (
+
+ ),
+ title,
+ };
+ }
+ return {
+ avatar: notification.avatar ?
: null,
+ title,
+ };
+}
diff --git a/frontend/hospital-portal/src/layouts/dashboard/header/Searchbar.tsx b/frontend/hospital-portal/src/layouts/dashboard/header/Searchbar.tsx
new file mode 100755
index 00000000..2b89f4bb
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/header/Searchbar.tsx
@@ -0,0 +1,81 @@
+import { useState } from 'react';
+// @mui
+import { styled } from '@mui/material/styles';
+import { Input, Slide, Button, InputAdornment, ClickAwayListener } from '@mui/material';
+// utils
+import cssStyles from '../../../utils/cssStyles';
+// components
+import Iconify from '../../../components/Iconify';
+import { IconButtonAnimate } from '../../../components/animate';
+
+// ----------------------------------------------------------------------
+
+const APPBAR_MOBILE = 64;
+const APPBAR_DESKTOP = 92;
+
+const SearchbarStyle = styled('div')(({ theme }) => ({
+ ...cssStyles(theme).bgBlur(),
+ top: 0,
+ left: 0,
+ zIndex: 99,
+ width: '100%',
+ display: 'flex',
+ position: 'absolute',
+ alignItems: 'center',
+ height: APPBAR_MOBILE,
+ padding: theme.spacing(0, 3),
+ boxShadow: theme.customShadows.z8,
+ [theme.breakpoints.up('md')]: {
+ height: APPBAR_DESKTOP,
+ padding: theme.spacing(0, 5),
+ },
+}));
+
+// ----------------------------------------------------------------------
+
+export default function Searchbar() {
+ const [isOpen, setOpen] = useState(false);
+
+ const handleOpen = () => {
+ setOpen((prev) => !prev);
+ };
+
+ const handleClose = () => {
+ setOpen(false);
+ };
+
+ return (
+
+
+ {!isOpen && (
+
+
+
+ )}
+
+
+
+
+
+
+ }
+ sx={{ mr: 1, fontWeight: 'fontWeightBold' }}
+ />
+
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/layouts/dashboard/header/index.tsx b/frontend/hospital-portal/src/layouts/dashboard/header/index.tsx
new file mode 100755
index 00000000..f39781e7
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/header/index.tsx
@@ -0,0 +1,103 @@
+// @mui
+import { styled } from '@mui/material/styles';
+import { Box, Stack, AppBar, Toolbar } from '@mui/material';
+// hooks
+import useOffSetTop from '../../../hooks/useOffSetTop';
+import useResponsive from '../../../hooks/useResponsive';
+// utils
+import cssStyles from '../../../utils/cssStyles';
+// config
+import { HEADER, NAVBAR } from '../../../config';
+// components
+import Logo from '../../../components/Logo';
+import Iconify from '../../../components/Iconify';
+import { IconButtonAnimate } from '../../../components/animate';
+//
+import Searchbar from './Searchbar';
+import AccountPopover from './AccountPopover';
+import LanguagePopover from './LanguagePopover';
+import ContactsPopover from './ContactsPopover';
+import NotificationsPopover from './NotificationsPopover';
+
+// ----------------------------------------------------------------------
+
+type RootStyleProps = {
+ isCollapse: boolean;
+ isOffset: boolean;
+ verticalLayout: boolean;
+};
+
+const RootStyle = styled(AppBar, {
+ shouldForwardProp: (prop) =>
+ prop !== 'isCollapse' && prop !== 'isOffset' && prop !== 'verticalLayout',
+})(({ isCollapse, isOffset, verticalLayout, theme }) => ({
+ ...cssStyles(theme).bgBlur(),
+ boxShadow: 'none',
+ height: HEADER.MOBILE_HEIGHT,
+ zIndex: theme.zIndex.appBar + 1,
+ transition: theme.transitions.create(['width', 'height'], {
+ duration: theme.transitions.duration.shorter,
+ }),
+ [theme.breakpoints.up('lg')]: {
+ height: HEADER.DASHBOARD_DESKTOP_HEIGHT,
+ width: `calc(100% - ${NAVBAR.DASHBOARD_WIDTH + 1}px)`,
+ ...(isCollapse && {
+ width: `calc(100% - ${NAVBAR.DASHBOARD_COLLAPSE_WIDTH}px)`,
+ }),
+ ...(isOffset && {
+ height: HEADER.DASHBOARD_DESKTOP_OFFSET_HEIGHT,
+ }),
+ ...(verticalLayout && {
+ width: '100%',
+ height: HEADER.DASHBOARD_DESKTOP_OFFSET_HEIGHT,
+ backgroundColor: theme.palette.background.default,
+ }),
+ },
+}));
+
+// ----------------------------------------------------------------------
+
+type Props = {
+ onOpenSidebar: VoidFunction;
+ isCollapse?: boolean;
+ verticalLayout?: boolean;
+};
+
+export default function DashboardHeader({
+ onOpenSidebar,
+ isCollapse = false,
+ verticalLayout = false,
+}: Props) {
+ const isOffset = useOffSetTop(HEADER.DASHBOARD_DESKTOP_HEIGHT) && !verticalLayout;
+
+ const isDesktop = useResponsive('up', 'lg');
+
+ return (
+
+
+ {isDesktop && verticalLayout && }
+
+ {!isDesktop && (
+
+
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/layouts/dashboard/index.tsx b/frontend/hospital-portal/src/layouts/dashboard/index.tsx
new file mode 100755
index 00000000..6a30c399
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/index.tsx
@@ -0,0 +1,113 @@
+import { useState } from 'react';
+import { Outlet } from 'react-router-dom';
+// @mui
+import { styled } from '@mui/material/styles';
+import { Box } from '@mui/material';
+// hooks
+import useSettings from '../../hooks/useSettings';
+import useResponsive from '../../hooks/useResponsive';
+import useCollapseDrawer from '../../hooks/useCollapseDrawer';
+// config
+import { HEADER, NAVBAR } from '../../config';
+//
+import DashboardHeader from './header';
+import NavbarVertical from './navbar/NavbarVertical';
+import NavbarHorizontal from './navbar/NavbarHorizontal';
+
+// ----------------------------------------------------------------------
+
+type MainStyleProps = {
+ collapseClick: boolean;
+};
+
+const MainStyle = styled('main', {
+ shouldForwardProp: (prop) => prop !== 'collapseClick',
+})(({ collapseClick, theme }) => ({
+ flexGrow: 1,
+ paddingTop: HEADER.MOBILE_HEIGHT + 24,
+ paddingBottom: HEADER.MOBILE_HEIGHT + 24,
+ [theme.breakpoints.up('lg')]: {
+ paddingLeft: 16,
+ paddingRight: 16,
+ paddingTop: HEADER.DASHBOARD_DESKTOP_HEIGHT + 24,
+ paddingBottom: HEADER.DASHBOARD_DESKTOP_HEIGHT + 24,
+ width: `calc(100% - ${NAVBAR.DASHBOARD_WIDTH}px)`,
+ transition: theme.transitions.create('margin-left', {
+ duration: theme.transitions.duration.shorter,
+ }),
+ ...(collapseClick && {
+ marginLeft: NAVBAR.DASHBOARD_COLLAPSE_WIDTH,
+ }),
+ },
+}));
+
+// ----------------------------------------------------------------------
+
+export default function DashboardLayout() {
+ const { collapseClick, isCollapse } = useCollapseDrawer();
+
+ const { themeLayout } = useSettings();
+
+ const isDesktop = useResponsive('up', 'lg');
+
+ const [open, setOpen] = useState(false);
+
+ const verticalLayout = themeLayout === 'vertical';
+
+ if (verticalLayout) {
+ return (
+ <>
+ setOpen(true)} verticalLayout={verticalLayout} />
+
+ {isDesktop ? (
+
+ ) : (
+ setOpen(false)} />
+ )}
+
+
+
+
+ >
+ );
+ }
+
+ return (
+
+ setOpen(true)} />
+
+ setOpen(false)} />
+
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/layouts/dashboard/navbar/CollapseButton.tsx b/frontend/hospital-portal/src/layouts/dashboard/navbar/CollapseButton.tsx
new file mode 100755
index 00000000..9b28056d
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/navbar/CollapseButton.tsx
@@ -0,0 +1,49 @@
+// @mui
+import { Box } from '@mui/material';
+// components
+import { IconButtonAnimate } from '../../../components/animate';
+
+// ----------------------------------------------------------------------
+
+type Props = {
+ onToggleCollapse: VoidFunction;
+ collapseClick: boolean;
+};
+
+export default function CollapseButton({ onToggleCollapse, collapseClick }: Props) {
+ return (
+
+
+ theme.transitions.create('transform', {
+ duration: theme.transitions.duration.shorter,
+ }),
+ ...(collapseClick && {
+ transform: 'rotate(180deg)',
+ }),
+ }}
+ >
+ {icon}
+
+
+ );
+}
+
+// ----------------------------------------------------------------------
+
+const icon = (
+
+);
diff --git a/frontend/hospital-portal/src/layouts/dashboard/navbar/NavConfig.tsx b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavConfig.tsx
new file mode 100755
index 00000000..03e1c4b3
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavConfig.tsx
@@ -0,0 +1,33 @@
+// components
+import SvgIconStyle from '../../../components/SvgIconStyle';
+
+// ----------------------------------------------------------------------
+
+const getIcon = (name: string) => (
+
+);
+
+const ICONS = {
+ user: getIcon('ic_user'),
+ ecommerce: getIcon('ic_ecommerce'),
+ analytics: getIcon('ic_analytics'),
+ dashboard: getIcon('ic_dashboard'),
+ hospital: getIcon('ic_banking'),
+};
+
+const navConfig = [
+ // GENERAL
+ // ----------------------------------------------------------------------
+ {
+ items: [{ title: 'Dashboard', path: '/dashboard', icon: ICONS.dashboard }],
+ },
+
+ // Membership
+ // ----------------------------------------------------------------------
+ {
+ // subheader: 'DOCTORS & HOSPITALS',
+ items: [],
+ },
+];
+
+export default navConfig;
diff --git a/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarAccount.tsx b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarAccount.tsx
new file mode 100755
index 00000000..8e72ad90
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarAccount.tsx
@@ -0,0 +1,62 @@
+// @mui
+import { styled } from '@mui/material/styles';
+import { Box, Link, Typography, Avatar } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled('div')(({ theme }) => ({
+ display: 'flex',
+ alignItems: 'center',
+ padding: theme.spacing(2, 2.5),
+ borderRadius: Number(theme.shape.borderRadius) * 1.5,
+ backgroundColor: theme.palette.grey[500_12],
+ transition: theme.transitions.create('opacity', {
+ duration: theme.transitions.duration.shorter,
+ }),
+}));
+
+// ----------------------------------------------------------------------
+
+type Props = {
+ isCollapse: boolean | undefined;
+};
+
+export default function NavbarAccount({ isCollapse }: Props) {
+ return (
+
+
+
+
+
+ theme.transitions.create('width', {
+ duration: theme.transitions.duration.shorter,
+ }),
+ ...(isCollapse && {
+ ml: 0,
+ width: 0,
+ }),
+ }}
+ >
+
+ Rayan Moran
+
+
+ user
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarDocs.tsx b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarDocs.tsx
new file mode 100755
index 00000000..35c8503f
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarDocs.tsx
@@ -0,0 +1,29 @@
+// @mui
+import { Stack, Button, Typography } from '@mui/material';
+// assets
+import { DocIllustration } from '../../../assets';
+
+// ----------------------------------------------------------------------
+
+export default function NavbarDocs() {
+ return (
+
+
+
+ {/*
+
+ Hi, Rayan Moran
+
+
+ Need help?
+
Please check our docs
+
+
+
+ */}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarHorizontal.tsx b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarHorizontal.tsx
new file mode 100755
index 00000000..4fd9ff5b
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarHorizontal.tsx
@@ -0,0 +1,40 @@
+import { memo } from 'react';
+// @mui
+import { styled } from '@mui/material/styles';
+import { Container, AppBar } from '@mui/material';
+// config
+import { HEADER } from '../../../config';
+// components
+import { NavSectionHorizontal } from '../../../components/nav-section';
+//
+import navConfig from './NavConfig';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled(AppBar)(({ theme }) => ({
+ transition: theme.transitions.create('top', {
+ easing: theme.transitions.easing.easeInOut,
+ duration: theme.transitions.duration.shorter,
+ }),
+ width: '100%',
+ position: 'fixed',
+ zIndex: theme.zIndex.appBar,
+ padding: theme.spacing(1, 0),
+ boxShadow: theme.customShadows.z8,
+ top: HEADER.DASHBOARD_DESKTOP_OFFSET_HEIGHT,
+ backgroundColor: theme.palette.background.default,
+}));
+
+// ----------------------------------------------------------------------
+
+function NavbarHorizontal() {
+ return (
+
+
+
+
+
+ );
+}
+
+export default memo(NavbarHorizontal);
diff --git a/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarVertical.tsx b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarVertical.tsx
new file mode 100755
index 00000000..a356edf3
--- /dev/null
+++ b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarVertical.tsx
@@ -0,0 +1,151 @@
+import { useEffect } from 'react';
+import { useLocation } from 'react-router-dom';
+// @mui
+import { styled, useTheme } from '@mui/material/styles';
+import { Box, Stack, Drawer, Typography } from '@mui/material';
+// hooks
+import useResponsive from '../../../hooks/useResponsive';
+import useCollapseDrawer from '../../../hooks/useCollapseDrawer';
+// utils
+import cssStyles from '../../../utils/cssStyles';
+// config
+import { NAVBAR } from '../../../config';
+// components
+import Logo from '../../../components/Logo';
+import Scrollbar from '../../../components/Scrollbar';
+import { NavSectionVertical } from '../../../components/nav-section';
+//
+import navConfig from './NavConfig';
+import NavbarDocs from './NavbarDocs';
+import NavbarAccount from './NavbarAccount';
+import CollapseButton from './CollapseButton';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled('div')(({ theme }) => ({
+ [theme.breakpoints.up('lg')]: {
+ flexShrink: 0,
+ transition: theme.transitions.create('width', {
+ duration: theme.transitions.duration.shorter,
+ }),
+ },
+}));
+
+// ----------------------------------------------------------------------
+
+type Props = {
+ isOpenSidebar: boolean;
+ onCloseSidebar: VoidFunction;
+};
+
+export default function NavbarVertical({ isOpenSidebar, onCloseSidebar }: Props) {
+ const theme = useTheme();
+
+ const { pathname } = useLocation();
+
+ const isDesktop = useResponsive('up', 'lg');
+
+ const { isCollapse, collapseClick, collapseHover, onToggleCollapse, onHoverEnter, onHoverLeave } =
+ useCollapseDrawer();
+
+ useEffect(() => {
+ if (isOpenSidebar) {
+ onCloseSidebar();
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [pathname]);
+
+ const renderContent = (
+
+
+ {isDesktop && !isCollapse ? (
+
+
+
+ PRIME CENTER
+
+
+ )
+ : (
+
+
+
+ )}
+
+
+
+
+
+
+
+
+ {!isCollapse && }
+
+ );
+
+ return (
+
+ {!isDesktop && (
+
+ {renderContent}
+
+ )}
+
+ {isDesktop && (
+
+ theme.transitions.create('width', {
+ duration: theme.transitions.duration.standard,
+ }),
+ ...(isCollapse && {
+ width: NAVBAR.DASHBOARD_COLLAPSE_WIDTH,
+ }),
+ ...(collapseHover && {
+ ...cssStyles(theme).bgBlur(),
+ boxShadow: (theme) => theme.customShadows.z24,
+ }),
+ },
+ }}
+ >
+ {renderContent}
+
+ )}
+
+ );
+}
diff --git a/frontend/hospital-portal/src/pages/Dashboard.tsx b/frontend/hospital-portal/src/pages/Dashboard.tsx
new file mode 100755
index 00000000..96a89fb0
--- /dev/null
+++ b/frontend/hospital-portal/src/pages/Dashboard.tsx
@@ -0,0 +1,67 @@
+// @mui
+import { Button, Container, Grid, styled, Typography, Card, Stack } from '@mui/material';
+// hooks
+import useSettings from '../hooks/useSettings';
+// components
+import Page from '../components/Page';
+import axios from '../utils/axios';
+import useAuth from '../hooks/useAuth';
+import SomethingUsage from '../sections/dashboard/SomethingUsage';
+import { fCurrency } from '../utils/formatNumber';
+
+// ----------------------------------------------------------------------
+
+export default function Dashboard() {
+ const { themeStretch } = useSettings();
+
+ const { logout } = useAuth();
+
+ const loadSomething = () => {
+ axios.get('/user')
+ };
+
+ const DangerCard = styled(Card)(({ theme }) => ({
+ boxShadow: 'none',
+ padding: theme.spacing(3),
+ color: theme.palette.error.main,
+ backgroundColor: theme.palette.error.lighter,
+ }));
+
+ const SuccessCard = styled(Card)(({ theme }) => ({
+ boxShadow: 'none',
+ padding: theme.spacing(3),
+ color: theme.palette.success.darker,
+ backgroundColor: theme.palette.success.lighter,
+ }));
+
+ return (
+
+
+
+ Dashboard
+
+
+
+
+
+
+
+
+
+ This Month Usages
+ {fCurrency(15000000)} (57)
+
+
+
+
+
+ Remaining Balance Estimation
+ November 2022
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/pages/Page404.tsx b/frontend/hospital-portal/src/pages/Page404.tsx
new file mode 100755
index 00000000..5b78d2fe
--- /dev/null
+++ b/frontend/hospital-portal/src/pages/Page404.tsx
@@ -0,0 +1,52 @@
+import { m } from 'framer-motion';
+import { Link as RouterLink } from 'react-router-dom';
+// @mui
+import { styled } from '@mui/material/styles';
+import { Box, Button, Typography, Container } from '@mui/material';
+// components
+import Page from '../components/Page';
+import { MotionContainer, varBounce } from '../components/animate';
+// assets
+import { PageNotFoundIllustration } from '../assets';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled('div')(({ theme }) => ({
+ display: 'flex',
+ minHeight: '100%',
+ alignItems: 'center',
+ paddingTop: theme.spacing(15),
+ paddingBottom: theme.spacing(10),
+}));
+
+// ----------------------------------------------------------------------
+
+export default function Page404() {
+ return (
+
+
+
+
+
+
+ Sorry, page not found!
+
+
+
+ Sorry, we couldn’t find the page you’re looking for. Perhaps you’ve mistyped the URL?
+ Be sure to check your spelling.
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/pages/auth/ForgetPassword.tsx b/frontend/hospital-portal/src/pages/auth/ForgetPassword.tsx
new file mode 100755
index 00000000..3a7285c9
--- /dev/null
+++ b/frontend/hospital-portal/src/pages/auth/ForgetPassword.tsx
@@ -0,0 +1,61 @@
+import { Link as RouterLink } from 'react-router-dom';
+// @mui
+import { styled } from '@mui/material/styles';
+import { Box, Button, Link, Container, Typography } from '@mui/material';
+// layouts
+import LogoOnlyLayout from '../../layouts/LogoOnlyLayout';
+// routes
+import { PATH_AUTH } from '../../routes/paths';
+// components
+import Page from '../../components/Page';
+import Iconify from '../../components/Iconify';
+// sections
+import { ForgetPasswordForm } from '../../sections/auth/forget-password';
+import { useSearchParams } from 'react-router-dom';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled('div')(({ theme }) => ({
+ display: 'flex',
+ height: '100%',
+ alignItems: 'center',
+ padding: theme.spacing(12, 0),
+}));
+
+// ----------------------------------------------------------------------
+
+export default function ForgetPassword() {
+ const [searchParams, setSearchParams] = useSearchParams();
+ const token = searchParams.get('token');
+
+ return (
+
+
+
+
+
+
+ }
+ sx={{ mb: 3 }}
+ >
+ Back
+
+
+
+
+ Please enter your new password.
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/pages/auth/Login.tsx b/frontend/hospital-portal/src/pages/auth/Login.tsx
new file mode 100755
index 00000000..81eb278c
--- /dev/null
+++ b/frontend/hospital-portal/src/pages/auth/Login.tsx
@@ -0,0 +1,170 @@
+import { capitalCase } from "change-case";
+import { Link as RouterLink } from "react-router-dom";
+// @mui
+import { styled } from "@mui/material/styles";
+import {
+ Box,
+ Card,
+ Stack,
+ Link,
+ Alert,
+ Tooltip,
+ Container,
+ Typography,
+} from "@mui/material";
+// routes
+import { PATH_AUTH } from "../../routes/paths";
+// hooks
+import useAuth from "../../hooks/useAuth";
+import useResponsive from "../../hooks/useResponsive";
+// components
+import Page from "../../components/Page";
+import Logo from "../../components/Logo";
+import Image from "../../components/Image";
+// sections
+import { LoginForm } from "../../sections/auth/login";
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled("div")(({ theme }) => ({
+ [theme.breakpoints.up("md")]: {
+ display: "flex",
+ },
+}));
+
+const HeaderStyle = styled("header")(({ theme }) => ({
+ top: 0,
+ zIndex: 9,
+ lineHeight: 0,
+ width: "100%",
+ display: "flex",
+ alignItems: "center",
+ position: "absolute",
+ padding: theme.spacing(3),
+ justifyContent: "space-between",
+ [theme.breakpoints.up("md")]: {
+ alignItems: "flex-start",
+ padding: theme.spacing(7, 5, 0, 7),
+ },
+}));
+
+const SectionStyle = styled(Card)(({ theme }) => ({
+ width: "100%",
+ maxWidth: 464,
+ display: "flex",
+ flexDirection: "column",
+ justifyContent: "center",
+ margin: theme.spacing(2, 0, 2, 2),
+}));
+
+const ContentStyle = styled("div")(({ theme }) => ({
+ maxWidth: 480,
+ margin: "auto",
+ display: "flex",
+ minHeight: "100vh",
+ flexDirection: "column",
+ justifyContent: "center",
+ padding: theme.spacing(12, 0),
+}));
+
+// ----------------------------------------------------------------------
+
+export default function Login() {
+ const { method } = useAuth();
+
+ const smUp = useResponsive("up", "sm");
+
+ const mdUp = useResponsive("up", "md");
+
+ return (
+
+
+
+
+ {smUp && (
+
+ Has problem with your account? {""}
+ {
+ window.location.href =
+ "mailto:admin@linksehat.com";
+ e.preventDefault();
+ }}
+ >
+ Contact Us
+
+
+ )}
+
+
+ {/* {mdUp && (
+
+
+ Hi, Welcome Back
+
+
+
+ )} */}
+
+
+
+
+
+
+ Sign in to LinkSehat
+
+
+ Enter your details below.
+
+
+
+
+ <>
+
+ >
+
+
+
+
+
+ {false && !smUp && (
+
+ Don’t have an account?{" "}
+
+ Get started
+
+
+ )}
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/pages/auth/Register.tsx b/frontend/hospital-portal/src/pages/auth/Register.tsx
new file mode 100755
index 00000000..89a364d3
--- /dev/null
+++ b/frontend/hospital-portal/src/pages/auth/Register.tsx
@@ -0,0 +1,148 @@
+import { capitalCase } from 'change-case';
+import { Link as RouterLink } from 'react-router-dom';
+// @mui
+import { styled } from '@mui/material/styles';
+import { Box, Card, Link, Container, Typography, Tooltip } from '@mui/material';
+// hooks
+import useAuth from '../../hooks/useAuth';
+import useResponsive from '../../hooks/useResponsive';
+// routes
+import { PATH_AUTH } from '../../routes/paths';
+// components
+import Page from '../../components/Page';
+import Logo from '../../components/Logo';
+import Image from '../../components/Image';
+// sections
+import { RegisterForm } from '../../sections/auth/register';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled('div')(({ theme }) => ({
+ [theme.breakpoints.up('md')]: {
+ display: 'flex',
+ },
+}));
+
+const HeaderStyle = styled('header')(({ theme }) => ({
+ top: 0,
+ zIndex: 9,
+ lineHeight: 0,
+ width: '100%',
+ display: 'flex',
+ alignItems: 'center',
+ position: 'absolute',
+ padding: theme.spacing(3),
+ justifyContent: 'space-between',
+ [theme.breakpoints.up('md')]: {
+ alignItems: 'flex-start',
+ padding: theme.spacing(7, 5, 0, 7),
+ },
+}));
+
+const SectionStyle = styled(Card)(({ theme }) => ({
+ width: '100%',
+ maxWidth: 464,
+ display: 'flex',
+ flexDirection: 'column',
+ justifyContent: 'center',
+ margin: theme.spacing(2, 0, 2, 2),
+}));
+
+const ContentStyle = styled('div')(({ theme }) => ({
+ maxWidth: 480,
+ margin: 'auto',
+ display: 'flex',
+ minHeight: '100vh',
+ flexDirection: 'column',
+ justifyContent: 'center',
+ padding: theme.spacing(12, 0),
+}));
+
+// ----------------------------------------------------------------------
+
+export default function Register() {
+ const { method } = useAuth();
+
+ const smUp = useResponsive('up', 'sm');
+
+ const mdUp = useResponsive('up', 'md');
+
+ return (
+
+
+
+
+ {smUp && (
+
+ Already have an account? {''}
+
+ Login
+
+
+ )}
+
+
+ {mdUp && (
+
+
+ Manage the job more effectively with Minimal
+
+
+
+ )}
+
+
+
+
+
+
+ Get started absolutely free.
+
+
+ Free forever. No credit card needed.
+
+
+
+ <>
+
+ >
+
+
+
+
+
+
+ By registering, I agree to Minimal
+
+ Terms of Service
+
+ {''}and{''}
+
+ Privacy Policy
+
+ .
+
+
+ {!smUp && (
+
+ Already have an account?{' '}
+
+ Login
+
+
+ )}
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/pages/auth/ResetPassword.tsx b/frontend/hospital-portal/src/pages/auth/ResetPassword.tsx
new file mode 100755
index 00000000..c10b1782
--- /dev/null
+++ b/frontend/hospital-portal/src/pages/auth/ResetPassword.tsx
@@ -0,0 +1,98 @@
+import { useState } from 'react';
+import { Link as RouterLink } from 'react-router-dom';
+// @mui
+import { styled } from '@mui/material/styles';
+import { Box, Button, Container, Typography } from '@mui/material';
+// layouts
+import LogoOnlyLayout from '../../layouts/LogoOnlyLayout';
+// routes
+import { PATH_AUTH } from '../../routes/paths';
+// components
+import Page from '../../components/Page';
+// sections
+import { ResetPasswordForm } from '../../sections/auth/reset-password';
+// assets
+import { SentIcon } from '../../assets';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled('div')(({ theme }) => ({
+ display: 'flex',
+ minHeight: '100%',
+ alignItems: 'center',
+ justifyContent: 'center',
+ padding: theme.spacing(12, 0),
+}));
+
+// ----------------------------------------------------------------------
+
+export default function ResetPassword() {
+ const [email, setEmail] = useState('');
+
+ const [sent, setSent] = useState(false);
+
+ return (
+
+
+
+
+
+
+ {!sent ? (
+ <>
+
+ Forgot your password?
+
+
+
+ Please enter the email address associated with your account and We will email you
+ a link to reset your password.
+
+
+ setSent(true)}
+ onGetEmail={(value) => setEmail(value)}
+ />
+
+
+ >
+ ) : (
+
+
+
+
+ Request sent successfully
+
+
+
+ We have sent a confirmation email to
+ {email}
+
+ Please check your email.
+
+
+
+
+ )}
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/pages/auth/VerifyCode.tsx b/frontend/hospital-portal/src/pages/auth/VerifyCode.tsx
new file mode 100755
index 00000000..1ca75352
--- /dev/null
+++ b/frontend/hospital-portal/src/pages/auth/VerifyCode.tsx
@@ -0,0 +1,67 @@
+import { Link as RouterLink } from 'react-router-dom';
+// @mui
+import { styled } from '@mui/material/styles';
+import { Box, Button, Link, Container, Typography } from '@mui/material';
+// layouts
+import LogoOnlyLayout from '../../layouts/LogoOnlyLayout';
+// routes
+import { PATH_AUTH } from '../../routes/paths';
+// components
+import Page from '../../components/Page';
+import Iconify from '../../components/Iconify';
+// sections
+import { VerifyCodeForm } from '../../sections/auth/verify-code';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled('div')(({ theme }) => ({
+ display: 'flex',
+ height: '100%',
+ alignItems: 'center',
+ padding: theme.spacing(12, 0),
+}));
+
+// ----------------------------------------------------------------------
+
+export default function VerifyCode() {
+ return (
+
+
+
+
+
+
+ }
+ sx={{ mb: 3 }}
+ >
+ Back
+
+
+
+ Please check your email!
+
+
+ We have emailed a 6-digit confirmation code to acb@domain, please enter the code in
+ below box to verify your email.
+
+
+
+
+
+
+
+ Don’t have a code?
+ {}}>
+ Resend code
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/react-app-env.d.ts b/frontend/hospital-portal/src/react-app-env.d.ts
new file mode 100755
index 00000000..e69de29b
diff --git a/frontend/hospital-portal/src/routes/index.tsx b/frontend/hospital-portal/src/routes/index.tsx
new file mode 100755
index 00000000..5ecc6c21
--- /dev/null
+++ b/frontend/hospital-portal/src/routes/index.tsx
@@ -0,0 +1,100 @@
+import { Suspense, lazy, ElementType } from 'react';
+import { Navigate, useRoutes, useLocation } from 'react-router-dom';
+// layouts
+import DashboardLayout from '../layouts/dashboard';
+import LogoOnlyLayout from '../layouts/LogoOnlyLayout';
+// components
+import LoadingScreen from '../components/LoadingScreen';
+import GuestGuard from '../guards/GuestGuard';
+import { RegisterForm } from '../sections/auth/register';
+import Register from '../pages/auth/Register';
+import VerifyCode from '../pages/auth/VerifyCode';
+import { AuthProvider } from '../contexts/LaravelAuthContext';
+import AuthGuard from '../guards/AuthGuard';
+
+// ----------------------------------------------------------------------
+
+const Loadable = (Component: ElementType) => (props: any) => {
+ // eslint-disable-next-line react-hooks/rules-of-hooks
+ const { pathname } = useLocation();
+
+ return (
+ }>
+
+
+ );
+};
+
+export default function Router() {
+ return useRoutes([
+ {
+ path: 'auth',
+ children: [
+ {
+ path: 'login',
+ element: (
+
+
+
+
+
+ ),
+ },
+ {
+ path: 'register',
+ element: (
+
+
+
+
+
+ ),
+ },
+ // { path: 'login-unprotected', element: },
+ // { path: 'register-unprotected', element: },
+ { path: 'reset-password', element: },
+ { path: 'forget-password', element: },
+ // { path: 'verify', element: },
+ ],
+ },
+ // {
+ // path: '/',
+ // element: ,
+ // },
+ {
+ path: '/',
+ element: (
+
+
+
+
+
+ ),
+ children: [
+ { element: , index: true },
+ {
+ path: 'dashboard',
+ element: ,
+ },
+ ],
+ },
+
+ {
+ path: '*',
+ element: ,
+ children: [
+ { path: '404', element: },
+ { path: '*', element: },
+ ],
+ },
+ { path: '*', element: },
+ ]);
+}
+
+const Login = Loadable(lazy(() => import('../pages/auth/Login')));
+const ResetPassword = Loadable(lazy(() => import('../pages/auth/ResetPassword')));
+const ForgetPassword = Loadable(lazy(() => import('../pages/auth/ForgetPassword')));
+
+// Dashboard
+const Dashboard = Loadable(lazy(() => import('../pages/Dashboard')));
+const NotFound = Loadable(lazy(() => import('../pages/Page404')));
diff --git a/frontend/hospital-portal/src/routes/paths.ts b/frontend/hospital-portal/src/routes/paths.ts
new file mode 100755
index 00000000..07f3aa11
--- /dev/null
+++ b/frontend/hospital-portal/src/routes/paths.ts
@@ -0,0 +1,16 @@
+function path(root: string, sublink: string) {
+ return `${root}${sublink}`;
+}
+
+const ROOTS_AUTH = '/auth';
+const ROOTS_DASHBOARD = '/dashboard';
+
+export const PATH_AUTH = {
+ root: ROOTS_AUTH,
+ login: path(ROOTS_AUTH, '/login'),
+ register: path(ROOTS_AUTH, '/register'),
+ loginUnprotected: path(ROOTS_AUTH, '/login-unprotected'),
+ registerUnprotected: path(ROOTS_AUTH, '/register-unprotected'),
+ verify: path(ROOTS_AUTH, '/verify'),
+ resetPassword: path(ROOTS_AUTH, '/reset-password'),
+};
diff --git a/frontend/hospital-portal/src/sections/auth/AuthFirebaseSocial.tsx b/frontend/hospital-portal/src/sections/auth/AuthFirebaseSocial.tsx
new file mode 100755
index 00000000..8e6d33ed
--- /dev/null
+++ b/frontend/hospital-portal/src/sections/auth/AuthFirebaseSocial.tsx
@@ -0,0 +1,38 @@
+// @mui
+import { Grid, Button, Divider, Typography } from '@mui/material';
+// components
+import Iconify from '../../components/Iconify';
+
+// ----------------------------------------------------------------------
+
+export default function AuthFirebaseSocial() {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OR
+
+
+ >
+ );
+}
diff --git a/frontend/hospital-portal/src/sections/auth/forget-password/ForgetPasswordForm.tsx b/frontend/hospital-portal/src/sections/auth/forget-password/ForgetPasswordForm.tsx
new file mode 100755
index 00000000..2b761f04
--- /dev/null
+++ b/frontend/hospital-portal/src/sections/auth/forget-password/ForgetPasswordForm.tsx
@@ -0,0 +1,117 @@
+import * as Yup from 'yup';
+// form
+import { yupResolver } from '@hookform/resolvers/yup';
+import { useForm } from 'react-hook-form';
+import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
+import { Link as RouterLink, useNavigate } from 'react-router-dom';
+
+// @mui
+import { Alert, IconButton, InputAdornment, Stack, Typography } from '@mui/material';
+import { LoadingButton } from '@mui/lab';
+// hooks
+import useIsMountedRef from '../../../hooks/useIsMountedRef';
+// components
+import { FormProvider, RHFTextField } from '../../../components/hook-form';
+import axios from '../../../utils/axios';
+import Iconify from '../../../components/Iconify';
+
+// ----------------------------------------------------------------------
+
+type FormValuesProps = {
+ email: string;
+ afterSubmit?: string;
+};
+
+type Props = {
+ token: string;
+};
+
+export default function ForgetPasswordForm({ token }: Props) {
+ const isMountedRef = useIsMountedRef();
+ const navigate = useNavigate();
+
+ const [showPasswordNew, setShowPasswordNew] = useState(false);
+ const [showPasswordConfirmNew, setShowPasswordConfirmNew] = useState(false);
+ const ResetPasswordSchema = Yup.object().shape({});
+
+ const methods = useForm({
+ resolver: yupResolver(ResetPasswordSchema),
+ // defaultValues: { email: 'demo@minimals.cc' },
+ });
+
+ const {
+ handleSubmit,
+ setError,
+ formState: { errors, isSubmitting },
+ } = methods;
+
+ const onSubmit = async (data: FormValuesProps) => {
+ try {
+ await axios.post('/forget-password', { ...data, token });
+ console.log(data);
+
+ // await new Promise((resolve) => setTimeout(resolve, 500));
+ await new Promise((resolve) => setTimeout(resolve, 500));
+
+ if (isMountedRef.current) {
+ navigate('/auth/login', { replace: true });
+ }
+ } catch (error) {
+ console.log(error.response.data);
+ if (isMountedRef.current) {
+ setError('afterSubmit', { ...error, message: error.response.data.message });
+ }
+ }
+ };
+
+ return (
+
+
+ {!!errors.afterSubmit && {errors.afterSubmit.message}}
+ Kata Sandi Baru
+
+ setShowPasswordNew(!showPasswordNew)} edge="end">
+
+
+
+ ),
+ }}
+ />
+ Konfirmasi Kata Sandi
+
+ setShowPasswordConfirmNew(!showPasswordConfirmNew)}
+ edge="end"
+ >
+
+
+
+ ),
+ }}
+ />
+
+
+ Reset Password
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/sections/auth/forget-password/index.ts b/frontend/hospital-portal/src/sections/auth/forget-password/index.ts
new file mode 100755
index 00000000..d119c42b
--- /dev/null
+++ b/frontend/hospital-portal/src/sections/auth/forget-password/index.ts
@@ -0,0 +1 @@
+export { default as ForgetPasswordForm } from './ForgetPasswordForm';
diff --git a/frontend/hospital-portal/src/sections/auth/login/LoginForm.tsx b/frontend/hospital-portal/src/sections/auth/login/LoginForm.tsx
new file mode 100755
index 00000000..929d871d
--- /dev/null
+++ b/frontend/hospital-portal/src/sections/auth/login/LoginForm.tsx
@@ -0,0 +1,117 @@
+import * as Yup from 'yup';
+import { useState } from 'react';
+import { Link as RouterLink, useNavigate } from 'react-router-dom';
+// form
+import { useForm } from 'react-hook-form';
+import { yupResolver } from '@hookform/resolvers/yup';
+// @mui
+import { Link, Stack, Alert, IconButton, InputAdornment } from '@mui/material';
+import { LoadingButton } from '@mui/lab';
+// routes
+import { PATH_AUTH } from '../../../routes/paths';
+// hooks
+import useAuth from '../../../hooks/useAuth';
+import useIsMountedRef from '../../../hooks/useIsMountedRef';
+// components
+import Iconify from '../../../components/Iconify';
+import { FormProvider, RHFTextField, RHFCheckbox } from '../../../components/hook-form';
+
+// ----------------------------------------------------------------------
+
+type FormValuesProps = {
+ email: string;
+ password: string;
+ remember: boolean;
+ afterSubmit?: string;
+};
+
+export default function LoginForm() {
+ const { login } = useAuth();
+ const navigate = useNavigate();
+
+ const isMountedRef = useIsMountedRef();
+
+ const [showPassword, setShowPassword] = useState(false);
+
+ const LoginSchema = Yup.object().shape({
+ email: Yup.string().email('Email must be a valid email address').required('Email is required'),
+ password: Yup.string().required('Password is required'),
+ });
+
+ const defaultValues = {
+ email: 'admin@linksehat.dev',
+ password: 'password',
+ remember: true,
+ };
+
+ const methods = useForm({
+ resolver: yupResolver(LoginSchema),
+ defaultValues,
+ });
+
+ const {
+ reset,
+ setError,
+ handleSubmit,
+ formState: { errors, isSubmitting },
+ } = methods;
+
+ const onSubmit = async (data: FormValuesProps) => {
+ try {
+ const loginResult = await login(data.email, data.password);
+
+ navigate('/dashboard');
+ } catch (error) {
+ console.error(error);
+
+ reset();
+
+ if (isMountedRef.current) {
+ setError('afterSubmit', { ...error, message: error.data.message });
+ }
+ }
+ };
+
+ return (
+
+
+ Email : admin@linksehat.dev & Password : password
+ {!!errors.afterSubmit && {errors.afterSubmit.message}}
+
+
+
+
+ setShowPassword(!showPassword)} edge="end">
+
+
+
+ ),
+ }}
+ />
+
+
+
+
+
+ Forgot password?
+
+
+
+
+ Login
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/sections/auth/login/index.ts b/frontend/hospital-portal/src/sections/auth/login/index.ts
new file mode 100755
index 00000000..5c49358d
--- /dev/null
+++ b/frontend/hospital-portal/src/sections/auth/login/index.ts
@@ -0,0 +1 @@
+export { default as LoginForm } from './LoginForm';
diff --git a/frontend/hospital-portal/src/sections/auth/register/RegisterForm.tsx b/frontend/hospital-portal/src/sections/auth/register/RegisterForm.tsx
new file mode 100755
index 00000000..6646de5e
--- /dev/null
+++ b/frontend/hospital-portal/src/sections/auth/register/RegisterForm.tsx
@@ -0,0 +1,110 @@
+import * as Yup from 'yup';
+import { useState } from 'react';
+// form
+import { useForm } from 'react-hook-form';
+import { yupResolver } from '@hookform/resolvers/yup';
+// @mui
+import { Stack, IconButton, InputAdornment, Alert } from '@mui/material';
+import { LoadingButton } from '@mui/lab';
+// hooks
+import useAuth from '../../../hooks/useAuth';
+import useIsMountedRef from '../../../hooks/useIsMountedRef';
+// components
+import Iconify from '../../../components/Iconify';
+import { FormProvider, RHFTextField } from '../../../components/hook-form';
+
+// ----------------------------------------------------------------------
+
+type FormValuesProps = {
+ email: string;
+ password: string;
+ firstName: string;
+ lastName: string;
+ afterSubmit?: string;
+};
+
+export default function RegisterForm() {
+ const { register } = useAuth();
+
+ const isMountedRef = useIsMountedRef();
+
+ const [showPassword, setShowPassword] = useState(false);
+
+ const RegisterSchema = Yup.object().shape({
+ firstName: Yup.string().required('First name required'),
+ lastName: Yup.string().required('Last name required'),
+ email: Yup.string().email('Email must be a valid email address').required('Email is required'),
+ password: Yup.string().required('Password is required'),
+ });
+
+ const defaultValues = {
+ firstName: '',
+ lastName: '',
+ email: '',
+ password: '',
+ };
+
+ const methods = useForm({
+ resolver: yupResolver(RegisterSchema),
+ defaultValues,
+ });
+
+ const {
+ reset,
+ setError,
+ handleSubmit,
+ formState: { errors, isSubmitting },
+ } = methods;
+
+ const onSubmit = async (data: FormValuesProps) => {
+ try {
+ await register(data.email, data.password, data.firstName, data.lastName);
+ } catch (error) {
+ console.error(error);
+ reset();
+ if (isMountedRef.current) {
+ setError('afterSubmit', { ...error, message: error.message });
+ }
+ }
+ };
+
+ return (
+
+
+ {!!errors.afterSubmit && {errors.afterSubmit.message}}
+
+
+
+
+
+
+
+
+
+ setShowPassword(!showPassword)}>
+
+
+
+ ),
+ }}
+ />
+
+
+ Register
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/sections/auth/register/index.ts b/frontend/hospital-portal/src/sections/auth/register/index.ts
new file mode 100755
index 00000000..fa2e7cdd
--- /dev/null
+++ b/frontend/hospital-portal/src/sections/auth/register/index.ts
@@ -0,0 +1 @@
+export { default as RegisterForm } from './RegisterForm';
diff --git a/frontend/hospital-portal/src/sections/auth/reset-password/ResetPasswordForm.tsx b/frontend/hospital-portal/src/sections/auth/reset-password/ResetPasswordForm.tsx
new file mode 100755
index 00000000..552100d2
--- /dev/null
+++ b/frontend/hospital-portal/src/sections/auth/reset-password/ResetPasswordForm.tsx
@@ -0,0 +1,81 @@
+import * as Yup from 'yup';
+// form
+import { yupResolver } from '@hookform/resolvers/yup';
+import { useForm } from 'react-hook-form';
+// @mui
+import { Alert, Stack } from '@mui/material';
+import { LoadingButton } from '@mui/lab';
+// hooks
+import useIsMountedRef from '../../../hooks/useIsMountedRef';
+// components
+import { FormProvider, RHFTextField } from '../../../components/hook-form';
+import axios from '../../../utils/axios';
+
+// ----------------------------------------------------------------------
+
+type FormValuesProps = {
+ email: string;
+ afterSubmit?: string;
+};
+
+type Props = {
+ onSent: VoidFunction;
+ onGetEmail: (value: string) => void;
+};
+
+export default function ResetPasswordForm({ onSent, onGetEmail }: Props) {
+ const isMountedRef = useIsMountedRef();
+
+ const ResetPasswordSchema = Yup.object().shape({
+ email: Yup.string().email('Email must be a valid email address').required('Email is required'),
+ });
+
+ const methods = useForm({
+ resolver: yupResolver(ResetPasswordSchema),
+ // defaultValues: { email: 'demo@minimals.cc' },
+ });
+
+ const {
+ handleSubmit,
+ setError,
+ formState: { errors, isSubmitting },
+ } = methods;
+
+ const onSubmit = async (data: FormValuesProps) => {
+ try {
+ await axios.post('/verify-email', data);
+ console.log(data);
+
+ // await new Promise((resolve) => setTimeout(resolve, 500));
+ await new Promise((resolve) => setTimeout(resolve, 500));
+ if (isMountedRef.current) {
+ onSent();
+ onGetEmail(data.email);
+ }
+ } catch (error) {
+ console.log(error.response.data);
+ if (isMountedRef.current) {
+ setError('afterSubmit', { ...error, message: error.response.data.message });
+ }
+ }
+ };
+
+ return (
+
+
+ {!!errors.afterSubmit && {errors.afterSubmit.message}}
+
+
+
+ Reset Password
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/sections/auth/reset-password/index.ts b/frontend/hospital-portal/src/sections/auth/reset-password/index.ts
new file mode 100755
index 00000000..296ab36a
--- /dev/null
+++ b/frontend/hospital-portal/src/sections/auth/reset-password/index.ts
@@ -0,0 +1 @@
+export { default as ResetPasswordForm } from './ResetPasswordForm';
diff --git a/frontend/hospital-portal/src/sections/auth/verify-code/VerifyCodeForm.tsx b/frontend/hospital-portal/src/sections/auth/verify-code/VerifyCodeForm.tsx
new file mode 100755
index 00000000..7f0492e2
--- /dev/null
+++ b/frontend/hospital-portal/src/sections/auth/verify-code/VerifyCodeForm.tsx
@@ -0,0 +1,161 @@
+import * as Yup from 'yup';
+import { useSnackbar } from 'notistack';
+import { useNavigate } from 'react-router-dom';
+import { useEffect } from 'react';
+// form
+import { useForm, Controller } from 'react-hook-form';
+import { yupResolver } from '@hookform/resolvers/yup';
+// @mui
+import { OutlinedInput, Stack } from '@mui/material';
+import { LoadingButton } from '@mui/lab';
+// routes
+// import { PATH_DASHBOARD } from '../../../routes/paths';
+
+// ----------------------------------------------------------------------
+
+type FormValuesProps = {
+ code1: string;
+ code2: string;
+ code3: string;
+ code4: string;
+ code5: string;
+ code6: string;
+};
+
+type ValueNames = 'code1' | 'code2' | 'code3' | 'code4' | 'code5' | 'code6';
+
+export default function VerifyCodeForm() {
+ const navigate = useNavigate();
+
+ const { enqueueSnackbar } = useSnackbar();
+
+ const VerifyCodeSchema = Yup.object().shape({
+ code1: Yup.string().required('Code is required'),
+ code2: Yup.string().required('Code is required'),
+ code3: Yup.string().required('Code is required'),
+ code4: Yup.string().required('Code is required'),
+ code5: Yup.string().required('Code is required'),
+ code6: Yup.string().required('Code is required'),
+ });
+
+ const defaultValues = {
+ code1: '',
+ code2: '',
+ code3: '',
+ code4: '',
+ code5: '',
+ code6: '',
+ };
+
+ const {
+ watch,
+ control,
+ setValue,
+ handleSubmit,
+ formState: { isSubmitting, isValid },
+ } = useForm({
+ mode: 'onBlur',
+ resolver: yupResolver(VerifyCodeSchema),
+ defaultValues,
+ });
+
+ const values = watch();
+
+ useEffect(() => {
+ document.addEventListener('paste', handlePasteClipboard);
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, []);
+
+ const onSubmit = async (data: FormValuesProps) => {
+ try {
+ await new Promise((resolve) => setTimeout(resolve, 500));
+ console.log('code:', Object.values(data).join(''));
+
+ enqueueSnackbar('Verify success!', { variant: 'success' });
+
+ navigate('/dashboard', { replace: true });
+ } catch (error) {
+ console.error(error);
+ }
+ };
+
+ const handlePasteClipboard = (event: ClipboardEvent) => {
+ let data: string | string[] = event?.clipboardData?.getData('Text') || '';
+
+ data = data.split('');
+
+ [].forEach.call(document.querySelectorAll('#field-code'), (node: any, index) => {
+ node.value = data[index];
+ const fieldIndex = `code${index + 1}`;
+ setValue(fieldIndex as ValueNames, data[index]);
+ });
+ };
+
+ const handleChangeWithNextField = (
+ event: React.ChangeEvent,
+ handleChange: (event: React.ChangeEvent) => void
+ ) => {
+ const { maxLength, value, name } = event.target;
+ const fieldIndex = name.replace('code', '');
+
+ const fieldIntIndex = Number(fieldIndex);
+
+ if (value.length >= maxLength) {
+ if (fieldIntIndex < 6) {
+ const nextfield = document.querySelector(`input[name=code${fieldIntIndex + 1}]`);
+
+ if (nextfield !== null) {
+ (nextfield as HTMLElement).focus();
+ }
+ }
+ }
+
+ handleChange(event);
+ };
+
+ return (
+
+ );
+}
diff --git a/frontend/hospital-portal/src/sections/auth/verify-code/index.ts b/frontend/hospital-portal/src/sections/auth/verify-code/index.ts
new file mode 100755
index 00000000..6844e2d9
--- /dev/null
+++ b/frontend/hospital-portal/src/sections/auth/verify-code/index.ts
@@ -0,0 +1 @@
+export { default as VerifyCodeForm } from './VerifyCodeForm';
diff --git a/frontend/hospital-portal/src/sections/dashboard/SomethingUsage.tsx b/frontend/hospital-portal/src/sections/dashboard/SomethingUsage.tsx
new file mode 100755
index 00000000..4fbaafc3
--- /dev/null
+++ b/frontend/hospital-portal/src/sections/dashboard/SomethingUsage.tsx
@@ -0,0 +1,80 @@
+import merge from 'lodash/merge';
+import ReactApexChart from 'react-apexcharts';
+// @mui
+import { styled } from '@mui/material/styles';
+import { Card, Typography, Stack } from '@mui/material';
+// utils
+import { fCurrency, fPercent } from '../../utils/formatNumber';
+// components
+import Iconify from '../../components/Iconify';
+import BaseOptionChart from '../../components/chart/BaseOptionChart';
+
+// ----------------------------------------------------------------------
+
+const RootStyle = styled(Card)(({ theme }) => ({
+ boxShadow: 'none',
+ padding: theme.spacing(3),
+ color: theme.palette.primary.darker,
+ backgroundColor: theme.palette.primary.lighter,
+}));
+
+// ----------------------------------------------------------------------
+
+const INITIAL = 500000000
+const TOTAL = 257907000;
+const PERCENT = -3;
+const CHART_DATA = [{ data: [100, 99, 99, 85, 74, 57, 54, 51] }];
+
+export default function SomethingUsage() {
+ const chartOptions = merge(BaseOptionChart(), {
+ chart: { sparkline: { enabled: true } },
+ xaxis: { labels: { show: true } },
+ yaxis: { labels: { show: false } },
+ stroke: { width: 4 },
+ legend: { show: false },
+ grid: { show: false },
+ tooltip: {
+ marker: { show: false },
+ y: {
+ formatter: (seriesName: string) => (seriesName) + "%",
+ title: {
+ formatter: () => '',
+ },
+ },
+ },
+ fill: { gradient: { opacityFrom: 0, opacityTo: 0 } },
+ });
+
+ return (
+
+
+
+
+ {fCurrency(INITIAL)}
+
+ Remaining Balance
+ {fCurrency(TOTAL)}
+
+
+
+
+ = 0 ? 'eva:trending-up-fill' : 'eva:trending-down-fill'}
+ />
+
+ {PERCENT > 0 && '+'}
+ {fPercent(PERCENT)}
+
+
+
+ than last month
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/theme/breakpoints.ts b/frontend/hospital-portal/src/theme/breakpoints.ts
new file mode 100755
index 00000000..1aaee1f9
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/breakpoints.ts
@@ -0,0 +1,13 @@
+// ----------------------------------------------------------------------
+
+const breakpoints = {
+ values: {
+ xs: 0,
+ sm: 600,
+ md: 900,
+ lg: 1200,
+ xl: 1536
+ }
+};
+
+export default breakpoints;
diff --git a/frontend/hospital-portal/src/theme/index.tsx b/frontend/hospital-portal/src/theme/index.tsx
new file mode 100755
index 00000000..d340fe8c
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/index.tsx
@@ -0,0 +1,53 @@
+import { useMemo, ReactNode } from 'react';
+// @mui
+import { CssBaseline } from '@mui/material';
+import {
+ createTheme,
+ ThemeOptions,
+ ThemeProvider as MUIThemeProvider,
+ StyledEngineProvider,
+} from '@mui/material/styles';
+// hooks
+import useSettings from '../hooks/useSettings';
+//
+import palette from './palette';
+import typography from './typography';
+import breakpoints from './breakpoints';
+import componentsOverride from './overrides';
+import shadows, { customShadows } from './shadows';
+
+// ----------------------------------------------------------------------
+
+type Props = {
+ children: ReactNode;
+};
+
+export default function ThemeProvider({ children }: Props) {
+ const { themeMode, themeDirection } = useSettings();
+ const isLight = themeMode === 'light';
+
+ const themeOptions: ThemeOptions = useMemo(
+ () => ({
+ palette: isLight ? palette.light : palette.dark,
+ typography,
+ breakpoints,
+ shape: { borderRadius: 8 },
+ direction: themeDirection,
+ shadows: isLight ? shadows.light : shadows.dark,
+ customShadows: isLight ? customShadows.light : customShadows.dark,
+ }),
+ [isLight, themeDirection]
+ );
+
+ const theme = createTheme(themeOptions);
+ theme.components = componentsOverride(theme);
+
+ return (
+
+
+
+ {children}
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Accordion.ts b/frontend/hospital-portal/src/theme/overrides/Accordion.ts
new file mode 100755
index 00000000..6e46bd12
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Accordion.ts
@@ -0,0 +1,39 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Accordion(theme: Theme) {
+ return {
+ MuiAccordion: {
+ styleOverrides: {
+ root: {
+ '&.Mui-expanded': {
+ boxShadow: theme.customShadows.z8,
+ borderRadius: theme.shape.borderRadius
+ },
+ '&.Mui-disabled': {
+ backgroundColor: 'transparent'
+ }
+ }
+ }
+ },
+ MuiAccordionSummary: {
+ styleOverrides: {
+ root: {
+ paddingLeft: theme.spacing(2),
+ paddingRight: theme.spacing(1),
+ '&.Mui-disabled': {
+ opacity: 1,
+ color: theme.palette.action.disabled,
+ '& .MuiTypography-root': {
+ color: 'inherit'
+ }
+ }
+ },
+ expandIconWrapper: {
+ color: 'inherit'
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Alert.tsx b/frontend/hospital-portal/src/theme/overrides/Alert.tsx
new file mode 100755
index 00000000..ed49a220
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Alert.tsx
@@ -0,0 +1,74 @@
+// @mui
+import { Theme } from '@mui/material/styles';
+// theme
+import { ColorSchema } from '../palette';
+//
+import { ErrorIcon, InfoIcon, SuccessIcon, WarningIcon } from './CustomIcons';
+
+// ----------------------------------------------------------------------
+
+export default function Alert(theme: Theme) {
+ const isLight = theme.palette.mode === 'light';
+
+ const standardStyle = (color: ColorSchema) => ({
+ color: theme.palette[color][isLight ? 'darker' : 'lighter'],
+ backgroundColor: theme.palette[color][isLight ? 'lighter' : 'darker'],
+ '& .MuiAlert-icon': {
+ color: theme.palette[color][isLight ? 'main' : 'light'],
+ },
+ });
+
+ const filledStyle = (color: ColorSchema) => ({
+ color: theme.palette[color].contrastText,
+ });
+
+ const outlinedStyle = (color: ColorSchema) => ({
+ color: theme.palette[color][isLight ? 'darker' : 'lighter'],
+ border: `solid 1px ${theme.palette[color][isLight ? 'light' : 'dark']}`,
+ backgroundColor: theme.palette[color][isLight ? 'lighter' : 'darker'],
+ '& .MuiAlert-icon': {
+ color: theme.palette[color][isLight ? 'main' : 'light'],
+ },
+ });
+
+ return {
+ MuiAlert: {
+ defaultProps: {
+ iconMapping: {
+ info: ,
+ success: ,
+ warning: ,
+ error: ,
+ },
+ },
+
+ styleOverrides: {
+ message: {
+ '& .MuiAlertTitle-root': {
+ marginBottom: theme.spacing(0.5),
+ },
+ },
+ action: {
+ '& button:not(:first-of-type)': {
+ marginLeft: theme.spacing(1),
+ },
+ },
+
+ standardInfo: standardStyle('info'),
+ standardSuccess: standardStyle('success'),
+ standardWarning: standardStyle('warning'),
+ standardError: standardStyle('error'),
+
+ filledInfo: filledStyle('info'),
+ filledSuccess: filledStyle('success'),
+ filledWarning: filledStyle('warning'),
+ filledError: filledStyle('error'),
+
+ outlinedInfo: outlinedStyle('info'),
+ outlinedSuccess: outlinedStyle('success'),
+ outlinedWarning: outlinedStyle('warning'),
+ outlinedError: outlinedStyle('error'),
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Autocomplete.ts b/frontend/hospital-portal/src/theme/overrides/Autocomplete.ts
new file mode 100755
index 00000000..683d19a7
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Autocomplete.ts
@@ -0,0 +1,23 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Autocomplete(theme: Theme) {
+ return {
+ MuiAutocomplete: {
+ styleOverrides: {
+ paper: {
+ boxShadow: theme.customShadows.dropdown,
+ },
+ listbox: {
+ padding: theme.spacing(0, 1),
+ '& .MuiAutocomplete-option': {
+ padding: theme.spacing(1),
+ margin: theme.spacing(1, 0),
+ borderRadius: theme.shape.borderRadius,
+ },
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Avatar.ts b/frontend/hospital-portal/src/theme/overrides/Avatar.ts
new file mode 100755
index 00000000..5385f366
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Avatar.ts
@@ -0,0 +1,29 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Avatar(theme: Theme) {
+ return {
+ MuiAvatar: {
+ styleOverrides: {
+ colorDefault: {
+ color: theme.palette.text.secondary,
+ backgroundColor: theme.palette.grey[400]
+ }
+ }
+ },
+ MuiAvatarGroup: {
+ styleOverrides: {
+ avatar: {
+ fontSize: 16,
+ fontWeight: theme.typography.fontWeightMedium,
+ '&:first-of-type': {
+ fontSize: 14,
+ color: theme.palette.primary.main,
+ backgroundColor: theme.palette.primary.lighter
+ }
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Backdrop.ts b/frontend/hospital-portal/src/theme/overrides/Backdrop.ts
new file mode 100755
index 00000000..18df98ec
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Backdrop.ts
@@ -0,0 +1,26 @@
+import { alpha, Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Backdrop(theme: Theme) {
+ const varLow = alpha(theme.palette.grey[900], 0.48);
+ const varHigh = alpha(theme.palette.grey[900], 1);
+
+ return {
+ MuiBackdrop: {
+ styleOverrides: {
+ root: {
+ background: [
+ `rgb(22,28,36)`,
+ `-moz-linear-gradient(75deg, ${varLow} 0%, ${varHigh} 100%)`,
+ `-webkit-linear-gradient(75deg, ${varLow} 0%, ${varHigh} 100%)`,
+ `linear-gradient(75deg, ${varLow} 0%, ${varHigh} 100%)`
+ ],
+ '&.MuiBackdrop-invisible': {
+ background: 'transparent'
+ }
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Badge.ts b/frontend/hospital-portal/src/theme/overrides/Badge.ts
new file mode 100755
index 00000000..b177c25a
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Badge.ts
@@ -0,0 +1,17 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Badge(theme: Theme) {
+ return {
+ MuiBadge: {
+ styleOverrides: {
+ dot: {
+ width: 10,
+ height: 10,
+ borderRadius: '50%'
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Breadcrumbs.ts b/frontend/hospital-portal/src/theme/overrides/Breadcrumbs.ts
new file mode 100755
index 00000000..34c75f79
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Breadcrumbs.ts
@@ -0,0 +1,16 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Breadcrumbs(theme: Theme) {
+ return {
+ MuiBreadcrumbs: {
+ styleOverrides: {
+ separator: {
+ marginLeft: theme.spacing(2),
+ marginRight: theme.spacing(2)
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Button.ts b/frontend/hospital-portal/src/theme/overrides/Button.ts
new file mode 100755
index 00000000..f0c542ae
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Button.ts
@@ -0,0 +1,58 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Button(theme: Theme) {
+ return {
+ MuiButton: {
+ styleOverrides: {
+ root: {
+ '&:hover': {
+ boxShadow: 'none',
+ },
+ },
+ sizeLarge: {
+ height: 48,
+ },
+ // contained
+ containedInherit: {
+ color: theme.palette.grey[800],
+ boxShadow: theme.customShadows.z8,
+ '&:hover': {
+ backgroundColor: theme.palette.grey[400],
+ },
+ },
+ containedPrimary: {
+ boxShadow: theme.customShadows.primary,
+ },
+ containedSecondary: {
+ boxShadow: theme.customShadows.secondary,
+ },
+ containedInfo: {
+ boxShadow: theme.customShadows.info,
+ },
+ containedSuccess: {
+ boxShadow: theme.customShadows.success,
+ },
+ containedWarning: {
+ boxShadow: theme.customShadows.warning,
+ },
+ containedError: {
+ boxShadow: theme.customShadows.error,
+ },
+ // outlined
+ outlinedInherit: {
+ border: `1px solid ${theme.palette.grey[500_32]}`,
+ '&:hover': {
+ backgroundColor: theme.palette.action.hover,
+ },
+ },
+ textInherit: {
+ '&:hover': {
+ backgroundColor: theme.palette.action.hover,
+ },
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/ButtonGroup.ts b/frontend/hospital-portal/src/theme/overrides/ButtonGroup.ts
new file mode 100755
index 00000000..55dc1b2c
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/ButtonGroup.ts
@@ -0,0 +1,51 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function ButtonGroup(theme: Theme) {
+ const styleContained = (
+ color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'
+ ) => ({
+ props: { variant: 'contained', color },
+ style: { boxShadow: theme.customShadows[color] }
+ });
+
+ return {
+ MuiButtonGroup: {
+ variants: [
+ {
+ props: { variant: 'contained', color: 'inherit' },
+ style: { boxShadow: theme.customShadows.z8 }
+ },
+ styleContained('primary'),
+ styleContained('secondary'),
+ styleContained('info'),
+ styleContained('success'),
+ styleContained('warning'),
+ styleContained('error'),
+
+ {
+ props: { disabled: true },
+ style: {
+ boxShadow: 'none',
+ '& .MuiButtonGroup-grouped.Mui-disabled': {
+ color: theme.palette.action.disabled,
+ borderColor: `${theme.palette.action.disabledBackground} !important`,
+ '&.MuiButton-contained': {
+ backgroundColor: theme.palette.action.disabledBackground
+ }
+ }
+ }
+ }
+ ],
+
+ styleOverrides: {
+ root: {
+ '&:hover': {
+ boxShadow: 'none'
+ }
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Card.ts b/frontend/hospital-portal/src/theme/overrides/Card.ts
new file mode 100755
index 00000000..cc2c9552
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Card.ts
@@ -0,0 +1,36 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Card(theme: Theme) {
+ return {
+ MuiCard: {
+ styleOverrides: {
+ root: {
+ position: 'relative',
+ boxShadow: theme.customShadows.card,
+ borderRadius: Number(theme.shape.borderRadius) * 2,
+ zIndex: 0, // Fix Safari overflow: hidden with border radius
+ },
+ },
+ },
+ MuiCardHeader: {
+ defaultProps: {
+ titleTypographyProps: { variant: 'h6' },
+ subheaderTypographyProps: { variant: 'body2', marginTop: theme.spacing(0.5) },
+ },
+ styleOverrides: {
+ root: {
+ padding: theme.spacing(3, 3, 0),
+ },
+ },
+ },
+ MuiCardContent: {
+ styleOverrides: {
+ root: {
+ padding: theme.spacing(3),
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Checkbox.tsx b/frontend/hospital-portal/src/theme/overrides/Checkbox.tsx
new file mode 100755
index 00000000..fe974b1b
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Checkbox.tsx
@@ -0,0 +1,40 @@
+import { Theme } from '@mui/material/styles';
+//
+import { CheckboxIcon, CheckboxCheckedIcon, CheckboxIndeterminateIcon } from './CustomIcons';
+
+// ----------------------------------------------------------------------
+
+export default function Checkbox(theme: Theme) {
+ return {
+ MuiCheckbox: {
+ defaultProps: {
+ icon: ,
+ checkedIcon: ,
+ indeterminateIcon: ,
+ },
+
+ styleOverrides: {
+ root: {
+ padding: theme.spacing(1),
+ '&.Mui-checked.Mui-disabled, &.Mui-disabled': {
+ color: theme.palette.action.disabled,
+ },
+ '& .MuiSvgIcon-fontSizeMedium': {
+ width: 24,
+ height: 24,
+ },
+ '& .MuiSvgIcon-fontSizeSmall': {
+ width: 20,
+ height: 20,
+ },
+ svg: {
+ fontSize: 24,
+ '&[font-size=small]': {
+ fontSize: 20,
+ },
+ },
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Chip.tsx b/frontend/hospital-portal/src/theme/overrides/Chip.tsx
new file mode 100755
index 00000000..20cdf405
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Chip.tsx
@@ -0,0 +1,49 @@
+import { Theme } from '@mui/material/styles';
+//
+import { CloseIcon } from './CustomIcons';
+
+// ----------------------------------------------------------------------
+
+export default function Chip(theme: Theme) {
+ return {
+ MuiChip: {
+ defaultProps: {
+ deleteIcon: ,
+ },
+
+ styleOverrides: {
+ colorDefault: {
+ '& .MuiChip-avatarMedium, .MuiChip-avatarSmall': {
+ color: theme.palette.text.secondary,
+ },
+ },
+ outlined: {
+ borderColor: theme.palette.grey[500_32],
+ '&.MuiChip-colorPrimary': {
+ borderColor: theme.palette.primary.main,
+ },
+ '&.MuiChip-colorSecondary': {
+ borderColor: theme.palette.secondary.main,
+ },
+ },
+ //
+ avatarColorInfo: {
+ color: theme.palette.info.contrastText,
+ backgroundColor: theme.palette.info.dark,
+ },
+ avatarColorSuccess: {
+ color: theme.palette.success.contrastText,
+ backgroundColor: theme.palette.success.dark,
+ },
+ avatarColorWarning: {
+ color: theme.palette.warning.contrastText,
+ backgroundColor: theme.palette.warning.dark,
+ },
+ avatarColorError: {
+ color: theme.palette.error.contrastText,
+ backgroundColor: theme.palette.error.dark,
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/ControlLabel.ts b/frontend/hospital-portal/src/theme/overrides/ControlLabel.ts
new file mode 100755
index 00000000..61c3871e
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/ControlLabel.ts
@@ -0,0 +1,29 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function ControlLabel(theme: Theme) {
+ return {
+ MuiFormControlLabel: {
+ styleOverrides: {
+ label: {
+ ...theme.typography.body2
+ }
+ }
+ },
+ MuiFormHelperText: {
+ styleOverrides: {
+ root: {
+ marginTop: theme.spacing(1)
+ }
+ }
+ },
+ MuiFormLabel: {
+ styleOverrides: {
+ root: {
+ color: theme.palette.text.disabled
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/CssBaseline.ts b/frontend/hospital-portal/src/theme/overrides/CssBaseline.ts
new file mode 100755
index 00000000..c2ffff10
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/CssBaseline.ts
@@ -0,0 +1,47 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function CssBaseline(theme: Theme) {
+ return {
+ MuiCssBaseline: {
+ styleOverrides: {
+ '*': {
+ margin: 0,
+ padding: 0,
+ boxSizing: 'border-box',
+ },
+ html: {
+ width: '100%',
+ height: '100%',
+ WebkitOverflowScrolling: 'touch',
+ },
+ body: {
+ width: '100%',
+ height: '100%',
+ },
+ '#root': {
+ width: '100%',
+ height: '100%',
+ },
+ input: {
+ '&[type=number]': {
+ MozAppearance: 'textfield',
+ '&::-webkit-outer-spin-button': {
+ margin: 0,
+ WebkitAppearance: 'none',
+ },
+ '&::-webkit-inner-spin-button': {
+ margin: 0,
+ WebkitAppearance: 'none',
+ },
+ },
+ },
+ img: {
+ display: 'block',
+ maxWidth: '100%',
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/CustomIcons.tsx b/frontend/hospital-portal/src/theme/overrides/CustomIcons.tsx
new file mode 100755
index 00000000..9229688d
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/CustomIcons.tsx
@@ -0,0 +1,122 @@
+// @mui
+import { SvgIcon, SvgIconProps } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+// CloseIcon
+export function CloseIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
+
+// StarIcon
+export function StarIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
+
+// Using for Alert
+export function InfoIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
+
+export function WarningIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
+
+export function SuccessIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
+
+export function ErrorIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
+
+// Using for Checkbox
+export function CheckboxIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
+
+export function CheckboxCheckedIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
+
+export function CheckboxIndeterminateIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
+
+// Using for Select Input
+export function InputSelectIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
+
+// Using for TreeView
+export function TreeViewCollapseIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
+
+export function TreeViewExpandIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
+
+export function TreeViewEndIcon(props: SvgIconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/DataGrid.ts b/frontend/hospital-portal/src/theme/overrides/DataGrid.ts
new file mode 100755
index 00000000..bf2c8b60
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/DataGrid.ts
@@ -0,0 +1,101 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function DataGrid(theme: Theme) {
+ return {
+ MuiDataGrid: {
+ styleOverrides: {
+ root: {
+ borderRadius: 0,
+ border: `1px solid transparent`,
+ '& .MuiTablePagination-root': {
+ borderTop: 0,
+ },
+ '& .MuiDataGrid-toolbarContainer': {
+ padding: theme.spacing(2),
+ backgroundColor: theme.palette.background.neutral,
+ '& .MuiButton-root': {
+ marginRight: theme.spacing(1.5),
+ color: theme.palette.text.primary,
+ '&:hover': {
+ backgroundColor: theme.palette.action.hover,
+ },
+ },
+ },
+ '& .MuiDataGrid-cell, .MuiDataGrid-columnsContainer': {
+ borderBottom: `1px solid ${theme.palette.divider}`,
+ },
+ '& .MuiDataGrid-columnSeparator': {
+ color: theme.palette.divider,
+ },
+ '& .MuiDataGrid-columnHeader[data-field="__check__"]': {
+ padding: 0,
+ },
+ },
+ },
+ },
+ MuiGridMenu: {
+ styleOverrides: {
+ root: {
+ '& .MuiDataGrid-gridMenuList': {
+ boxShadow: theme.customShadows.z20,
+ borderRadius: theme.shape.borderRadius,
+ },
+ '& .MuiMenuItem-root': {
+ ...theme.typography.body2,
+ },
+ },
+ },
+ },
+ MuiGridFilterForm: {
+ styleOverrides: {
+ root: {
+ padding: theme.spacing(1.5, 0),
+ '& .MuiFormControl-root': {
+ margin: theme.spacing(0, 0.5),
+ },
+ '& .MuiInput-root': {
+ marginTop: theme.spacing(3),
+ '&::before, &::after': {
+ display: 'none',
+ },
+ '& .MuiNativeSelect-select, .MuiInput-input': {
+ ...theme.typography.body2,
+ padding: theme.spacing(0.75, 1),
+ borderRadius: theme.shape.borderRadius,
+ backgroundColor: theme.palette.background.neutral,
+ },
+ '& .MuiSvgIcon-root': {
+ right: 4,
+ },
+ },
+ },
+ },
+ },
+ MuiGridPanelFooter: {
+ styleOverrides: {
+ root: {
+ padding: theme.spacing(2),
+ justifyContent: 'flex-end',
+ '& .MuiButton-root': {
+ '&:first-of-type': {
+ marginRight: theme.spacing(1.5),
+ color: theme.palette.text.primary,
+ '&:hover': {
+ backgroundColor: theme.palette.action.hover,
+ },
+ },
+ '&:last-of-type': {
+ color: theme.palette.common.white,
+ backgroundColor: theme.palette.primary.main,
+ '&:hover': {
+ backgroundColor: theme.palette.primary.dark,
+ },
+ },
+ },
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Dialog.ts b/frontend/hospital-portal/src/theme/overrides/Dialog.ts
new file mode 100755
index 00000000..f2fec198
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Dialog.ts
@@ -0,0 +1,60 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Dialog(theme: Theme) {
+ return {
+ MuiDialog: {
+ styleOverrides: {
+ paper: {
+ boxShadow: theme.customShadows.dialog,
+ '&.MuiPaper-rounded': {
+ borderRadius: Number(theme.shape.borderRadius) * 2,
+ },
+ '&.MuiDialog-paperFullScreen': {
+ borderRadius: 0,
+ },
+ '&.MuiDialog-paper .MuiDialogActions-root': {
+ padding: theme.spacing(3),
+ },
+ '@media (max-width: 600px)': {
+ margin: theme.spacing(2),
+ },
+ '@media (max-width: 663.95px)': {
+ '&.MuiDialog-paperWidthSm.MuiDialog-paperScrollBody': {
+ maxWidth: '100%',
+ },
+ },
+ },
+ paperFullWidth: {
+ width: '100%',
+ },
+ },
+ },
+ MuiDialogTitle: {
+ styleOverrides: {
+ root: {
+ padding: theme.spacing(3, 3, 0),
+ },
+ },
+ },
+ MuiDialogContent: {
+ styleOverrides: {
+ root: {
+ borderTop: 0,
+ borderBottom: 0,
+ padding: theme.spacing(3),
+ },
+ },
+ },
+ MuiDialogActions: {
+ styleOverrides: {
+ root: {
+ '& > :not(:first-of-type)': {
+ marginLeft: theme.spacing(1.5),
+ },
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Drawer.ts b/frontend/hospital-portal/src/theme/overrides/Drawer.ts
new file mode 100755
index 00000000..50051716
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Drawer.ts
@@ -0,0 +1,30 @@
+import { alpha, Theme } from '@mui/material';
+
+// ----------------------------------------------------------------------
+
+export default function Drawer(theme: Theme) {
+ const isLight = theme.palette.mode === 'light';
+
+ return {
+ MuiDrawer: {
+ styleOverrides: {
+ modal: {
+ '&[role="presentation"]': {
+ '& .MuiDrawer-paperAnchorLeft': {
+ boxShadow: `8px 24px 24px 12px ${alpha(
+ theme.palette.grey[900],
+ isLight ? 0.16 : 0.48
+ )}`
+ },
+ '& .MuiDrawer-paperAnchorRight': {
+ boxShadow: `-8px 24px 24px 12px ${alpha(
+ theme.palette.grey[900],
+ isLight ? 0.16 : 0.48
+ )}`
+ }
+ }
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Fab.ts b/frontend/hospital-portal/src/theme/overrides/Fab.ts
new file mode 100755
index 00000000..3570b629
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Fab.ts
@@ -0,0 +1,40 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Fab(theme: Theme) {
+ return {
+ MuiFab: {
+ defaultProps: {
+ color: 'primary'
+ },
+
+ styleOverrides: {
+ root: {
+ boxShadow: theme.customShadows.z8,
+ '&:hover': {
+ boxShadow: 'none',
+ backgroundColor: theme.palette.grey[400]
+ }
+ },
+ primary: {
+ boxShadow: theme.customShadows.primary,
+ '&:hover': {
+ backgroundColor: theme.palette.primary.dark
+ }
+ },
+ secondary: {
+ boxShadow: theme.customShadows.secondary,
+ '&:hover': {
+ backgroundColor: theme.palette.secondary.dark
+ }
+ },
+ extended: {
+ '& svg': {
+ marginRight: theme.spacing(1)
+ }
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Input.ts b/frontend/hospital-portal/src/theme/overrides/Input.ts
new file mode 100755
index 00000000..c45d18ec
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Input.ts
@@ -0,0 +1,67 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Input(theme: Theme) {
+ return {
+ MuiInputBase: {
+ styleOverrides: {
+ root: {
+ '&.Mui-disabled': {
+ '& svg': { color: theme.palette.text.disabled },
+ },
+ },
+ input: {
+ '&::placeholder': {
+ opacity: 1,
+ color: theme.palette.text.disabled,
+ },
+ },
+ },
+ },
+ MuiInput: {
+ styleOverrides: {
+ underline: {
+ '&:before': {
+ borderBottomColor: theme.palette.grey[500_56],
+ },
+ },
+ },
+ },
+ MuiFilledInput: {
+ styleOverrides: {
+ root: {
+ backgroundColor: theme.palette.grey[500_12],
+ '&:hover': {
+ backgroundColor: theme.palette.grey[500_16],
+ },
+ '&.Mui-focused': {
+ backgroundColor: theme.palette.action.focus,
+ },
+ '&.Mui-disabled': {
+ backgroundColor: theme.palette.action.disabledBackground,
+ },
+ },
+ underline: {
+ '&:before': {
+ borderBottomColor: theme.palette.grey[500_56],
+ },
+ },
+ },
+ },
+ MuiOutlinedInput: {
+ styleOverrides: {
+ root: {
+ '& .MuiOutlinedInput-notchedOutline': {
+ borderColor: theme.palette.grey[500_32],
+ },
+ '&.Mui-disabled': {
+ '& .MuiOutlinedInput-notchedOutline': {
+ borderColor: theme.palette.action.disabledBackground,
+ },
+ },
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Link.ts b/frontend/hospital-portal/src/theme/overrides/Link.ts
new file mode 100755
index 00000000..5a262e7b
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Link.ts
@@ -0,0 +1,13 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Link(theme: Theme) {
+ return {
+ MuiLink: {
+ defaultProps: {
+ underline: 'hover',
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/List.ts b/frontend/hospital-portal/src/theme/overrides/List.ts
new file mode 100755
index 00000000..4f4d4f3d
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/List.ts
@@ -0,0 +1,37 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function List(theme: Theme) {
+ return {
+ MuiListItemIcon: {
+ styleOverrides: {
+ root: {
+ color: 'inherit',
+ minWidth: 'auto',
+ marginRight: theme.spacing(2),
+ },
+ },
+ },
+ MuiListItemAvatar: {
+ styleOverrides: {
+ root: {
+ minWidth: 'auto',
+ marginRight: theme.spacing(2),
+ },
+ },
+ },
+ MuiListItemText: {
+ styleOverrides: {
+ root: {
+ marginTop: 0,
+ marginBottom: 0,
+ },
+ multiline: {
+ marginTop: 0,
+ marginBottom: 0,
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/LoadingButton.ts b/frontend/hospital-portal/src/theme/overrides/LoadingButton.ts
new file mode 100755
index 00000000..85de6c7a
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/LoadingButton.ts
@@ -0,0 +1,22 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function LoadingButton(theme: Theme) {
+ return {
+ MuiLoadingButton: {
+ styleOverrides: {
+ root: {
+ '&.MuiButton-text': {
+ '& .MuiLoadingButton-startIconPendingStart': {
+ marginLeft: 0
+ },
+ '& .MuiLoadingButton-endIconPendingEnd': {
+ marginRight: 0
+ }
+ }
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Menu.ts b/frontend/hospital-portal/src/theme/overrides/Menu.ts
new file mode 100755
index 00000000..c31da410
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Menu.ts
@@ -0,0 +1,20 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Menu(theme: Theme) {
+ return {
+ MuiMenuItem: {
+ styleOverrides: {
+ root: {
+ '&.Mui-selected': {
+ backgroundColor: theme.palette.action.selected,
+ '&:hover': {
+ backgroundColor: theme.palette.action.hover
+ }
+ }
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Pagination.ts b/frontend/hospital-portal/src/theme/overrides/Pagination.ts
new file mode 100755
index 00000000..5f1dbdf7
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Pagination.ts
@@ -0,0 +1,35 @@
+import { alpha, Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Pagination(theme: Theme) {
+ return {
+ MuiPaginationItem: {
+ styleOverrides: {
+ root: {
+ '&.Mui-selected': {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ },
+ textPrimary: {
+ '&.Mui-selected': {
+ color: theme.palette.primary.main,
+ backgroundColor: alpha(theme.palette.primary.main, 0.08),
+ '&:hover, &.Mui-focusVisible': {
+ backgroundColor: `${alpha(theme.palette.primary.main, 0.24)} !important`,
+ },
+ },
+ },
+ outlined: {
+ border: `1px solid ${theme.palette.grey[500_32]}`,
+ },
+ outlinedPrimary: {
+ '&.Mui-selected': {
+ backgroundColor: alpha(theme.palette.primary.main, 0.08),
+ border: `1px solid ${alpha(theme.palette.primary.main, 0.24)}`,
+ },
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Paper.ts b/frontend/hospital-portal/src/theme/overrides/Paper.ts
new file mode 100755
index 00000000..b461a59b
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Paper.ts
@@ -0,0 +1,26 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Paper(theme: Theme) {
+ return {
+ MuiPaper: {
+ defaultProps: {
+ elevation: 0,
+ },
+
+ variants: [
+ {
+ props: { variant: 'outlined' },
+ style: { borderColor: theme.palette.grey[500_12] },
+ },
+ ],
+
+ styleOverrides: {
+ root: {
+ backgroundImage: 'none',
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Popover.ts b/frontend/hospital-portal/src/theme/overrides/Popover.ts
new file mode 100755
index 00000000..d7d63ed5
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Popover.ts
@@ -0,0 +1,16 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Popover(theme: Theme) {
+ return {
+ MuiPopover: {
+ styleOverrides: {
+ paper: {
+ boxShadow: theme.customShadows.dropdown,
+ borderRadius: Number(theme.shape.borderRadius) * 1.5,
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Progress.ts b/frontend/hospital-portal/src/theme/overrides/Progress.ts
new file mode 100755
index 00000000..7085abc5
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Progress.ts
@@ -0,0 +1,27 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Progress(theme: Theme) {
+ const isLight = theme.palette.mode === 'light';
+
+ return {
+ MuiLinearProgress: {
+ styleOverrides: {
+ root: {
+ borderRadius: 4,
+ overflow: 'hidden'
+ },
+ bar: {
+ borderRadius: 4
+ },
+ colorPrimary: {
+ backgroundColor: theme.palette.primary[isLight ? 'lighter' : 'darker']
+ },
+ buffer: {
+ backgroundColor: 'transparent'
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Radio.ts b/frontend/hospital-portal/src/theme/overrides/Radio.ts
new file mode 100755
index 00000000..9f697bb2
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Radio.ts
@@ -0,0 +1,21 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Radio(theme: Theme) {
+ return {
+ MuiRadio: {
+ styleOverrides: {
+ root: {
+ padding: theme.spacing(1),
+ svg: {
+ fontSize: 24,
+ '&[font-size=small]': {
+ fontSize: 20
+ }
+ }
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Rating.tsx b/frontend/hospital-portal/src/theme/overrides/Rating.tsx
new file mode 100755
index 00000000..766db9d1
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Rating.tsx
@@ -0,0 +1,30 @@
+import { Theme } from '@mui/material/styles';
+//
+import { StarIcon } from './CustomIcons';
+
+// ----------------------------------------------------------------------
+
+const ICON_SMALL = { width: 20, height: 20 };
+const ICON_LARGE = { width: 28, height: 28 };
+
+export default function Rating(theme: Theme) {
+ return {
+ MuiRating: {
+ defaultProps: {
+ emptyIcon: ,
+ icon: ,
+ },
+
+ styleOverrides: {
+ root: {
+ '&.Mui-disabled': {
+ opacity: 0.48,
+ },
+ },
+ iconEmpty: { color: theme.palette.grey[500_48] },
+ sizeSmall: { '& svg': { ...ICON_SMALL } },
+ sizeLarge: { '& svg': { ...ICON_LARGE } },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Select.tsx b/frontend/hospital-portal/src/theme/overrides/Select.tsx
new file mode 100755
index 00000000..dcc18673
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Select.tsx
@@ -0,0 +1,16 @@
+import { Theme } from '@mui/material/styles';
+//
+//
+import { InputSelectIcon } from './CustomIcons';
+
+// ----------------------------------------------------------------------
+
+export default function Select(theme: Theme) {
+ return {
+ MuiSelect: {
+ defaultProps: {
+ IconComponent: InputSelectIcon,
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Skeleton.ts b/frontend/hospital-portal/src/theme/overrides/Skeleton.ts
new file mode 100755
index 00000000..665fbcf8
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Skeleton.ts
@@ -0,0 +1,19 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Skeleton(theme: Theme) {
+ return {
+ MuiSkeleton: {
+ defaultProps: {
+ animation: 'wave'
+ },
+
+ styleOverrides: {
+ root: {
+ backgroundColor: theme.palette.background.neutral
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Slider.ts b/frontend/hospital-portal/src/theme/overrides/Slider.ts
new file mode 100755
index 00000000..fb1bb0f8
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Slider.ts
@@ -0,0 +1,31 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Slider(theme: Theme) {
+ const isLight = theme.palette.mode === 'light';
+
+ return {
+ MuiSlider: {
+ defaultProps: {
+ size: 'small'
+ },
+
+ styleOverrides: {
+ root: {
+ '&.Mui-disabled': {
+ color: theme.palette.action.disabled
+ }
+ },
+ markLabel: {
+ fontSize: 13,
+ color: theme.palette.text.disabled
+ },
+ valueLabel: {
+ borderRadius: 8,
+ backgroundColor: theme.palette.grey[isLight ? 800 : 700]
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Stepper.ts b/frontend/hospital-portal/src/theme/overrides/Stepper.ts
new file mode 100755
index 00000000..27b09819
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Stepper.ts
@@ -0,0 +1,15 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Stepper(theme: Theme) {
+ return {
+ MuiStepConnector: {
+ styleOverrides: {
+ line: {
+ borderColor: theme.palette.divider
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/SvgIcon.ts b/frontend/hospital-portal/src/theme/overrides/SvgIcon.ts
new file mode 100755
index 00000000..42fc6710
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/SvgIcon.ts
@@ -0,0 +1,22 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function SvgIcon(theme: Theme) {
+ return {
+ MuiSvgIcon: {
+ styleOverrides: {
+ fontSizeSmall: {
+ width: 20,
+ height: 20,
+ fontSize: 'inherit'
+ },
+ fontSizeLarge: {
+ width: 32,
+ height: 32,
+ fontSize: 'inherit'
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Switch.ts b/frontend/hospital-portal/src/theme/overrides/Switch.ts
new file mode 100755
index 00000000..7fbba85e
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Switch.ts
@@ -0,0 +1,35 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Switch(theme: Theme) {
+ const isLight = theme.palette.mode === 'light';
+
+ return {
+ MuiSwitch: {
+ styleOverrides: {
+ thumb: {
+ boxShadow: theme.customShadows.z1
+ },
+ track: {
+ opacity: 1,
+ backgroundColor: theme.palette.grey[500]
+ },
+ switchBase: {
+ left: 0,
+ right: 'auto',
+ '&:not(:.Mui-checked)': {
+ color: theme.palette.grey[isLight ? 100 : 300]
+ },
+ '&.Mui-checked.Mui-disabled, &.Mui-disabled': {
+ color: theme.palette.grey[isLight ? 400 : 600]
+ },
+ '&.Mui-disabled+.MuiSwitch-track': {
+ opacity: 1,
+ backgroundColor: `${theme.palette.action.disabledBackground} !important`
+ }
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Table.ts b/frontend/hospital-portal/src/theme/overrides/Table.ts
new file mode 100755
index 00000000..0b8a6f9d
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Table.ts
@@ -0,0 +1,75 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Table(theme: Theme) {
+ return {
+ MuiTableRow: {
+ styleOverrides: {
+ root: {
+ '&.Mui-selected': {
+ backgroundColor: theme.palette.action.selected,
+ '&:hover': {
+ backgroundColor: theme.palette.action.hover,
+ },
+ },
+ },
+ },
+ },
+ MuiTableCell: {
+ styleOverrides: {
+ root: {
+ borderBottom: 'none',
+ },
+ head: {
+ color: theme.palette.text.secondary,
+ backgroundColor: theme.palette.background.neutral,
+ '&:first-of-type': {
+ paddingLeft: theme.spacing(3),
+ borderTopLeftRadius: theme.shape.borderRadius,
+ borderBottomLeftRadius: theme.shape.borderRadius,
+ boxShadow: `inset 8px 0 0 ${theme.palette.background.paper}`,
+ },
+ '&:last-of-type': {
+ paddingRight: theme.spacing(3),
+ borderTopRightRadius: theme.shape.borderRadius,
+ borderBottomRightRadius: theme.shape.borderRadius,
+ boxShadow: `inset -8px 0 0 ${theme.palette.background.paper}`,
+ },
+ },
+ stickyHeader: {
+ backgroundColor: theme.palette.background.paper,
+ backgroundImage: `linear-gradient(to bottom, ${theme.palette.background.neutral} 0%, ${theme.palette.background.neutral} 100%)`,
+ },
+ body: {
+ '&:first-of-type': {
+ paddingLeft: theme.spacing(3),
+ },
+ '&:last-of-type': {
+ paddingRight: theme.spacing(3),
+ },
+ },
+ },
+ },
+ MuiTablePagination: {
+ styleOverrides: {
+ root: {
+ borderTop: `solid 1px ${theme.palette.divider}`,
+ },
+ toolbar: {
+ height: 64,
+ },
+ select: {
+ '&:focus': {
+ borderRadius: theme.shape.borderRadius,
+ },
+ },
+ selectIcon: {
+ width: 20,
+ height: 20,
+ marginTop: -4,
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Tabs.ts b/frontend/hospital-portal/src/theme/overrides/Tabs.ts
new file mode 100755
index 00000000..97beeeb7
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Tabs.ts
@@ -0,0 +1,58 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Tabs(theme: Theme) {
+ return {
+ MuiTab: {
+ styleOverrides: {
+ root: {
+ padding: 0,
+ fontWeight: theme.typography.fontWeightMedium,
+ borderTopLeftRadius: theme.shape.borderRadius,
+ borderTopRightRadius: theme.shape.borderRadius,
+ '&.Mui-selected': {
+ color: theme.palette.text.primary
+ },
+ '&:not(:last-of-type)': {
+ marginRight: theme.spacing(5)
+ },
+ '@media (min-width: 600px)': {
+ minWidth: 48
+ }
+ },
+ labelIcon: {
+ minHeight: 48,
+ flexDirection: 'row',
+ '& > *:first-of-type': {
+ marginBottom: 0,
+ marginRight: theme.spacing(1)
+ }
+ },
+ wrapper: {
+ flexDirection: 'row',
+ whiteSpace: 'nowrap'
+ },
+ textColorInherit: {
+ opacity: 1,
+ color: theme.palette.text.secondary
+ }
+ }
+ },
+ MuiTabPanel: {
+ styleOverrides: {
+ root: {
+ padding: 0
+ }
+ }
+ },
+ MuiTabScrollButton: {
+ styleOverrides: {
+ root: {
+ width: 48,
+ borderRadius: '50%'
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Timeline.ts b/frontend/hospital-portal/src/theme/overrides/Timeline.ts
new file mode 100755
index 00000000..487ecffd
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Timeline.ts
@@ -0,0 +1,23 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Timeline(theme: Theme) {
+ return {
+ MuiTimelineDot: {
+ styleOverrides: {
+ root: {
+ boxShadow: 'none'
+ }
+ }
+ },
+
+ MuiTimelineConnector: {
+ styleOverrides: {
+ root: {
+ backgroundColor: theme.palette.divider
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/ToggleButton.ts b/frontend/hospital-portal/src/theme/overrides/ToggleButton.ts
new file mode 100755
index 00000000..4906a4d4
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/ToggleButton.ts
@@ -0,0 +1,55 @@
+import { Theme, alpha } from '@mui/material/styles';
+//
+import { ColorSchema } from '../palette';
+
+// ----------------------------------------------------------------------
+
+export default function ToggleButton(theme: Theme) {
+ const style = (color: ColorSchema) => ({
+ props: { color },
+ style: {
+ '&:hover': {
+ borderColor: alpha(theme.palette[color].main, 0.48),
+ backgroundColor: alpha(theme.palette[color].main, theme.palette.action.hoverOpacity),
+ },
+ '&.Mui-selected': {
+ borderColor: alpha(theme.palette[color].main, 0.48),
+ },
+ },
+ });
+
+ return {
+ MuiToggleButton: {
+ variants: [
+ {
+ props: { color: 'standard' },
+ style: {
+ '&.Mui-selected': {
+ backgroundColor: theme.palette.action.selected,
+ },
+ },
+ },
+ style('primary'),
+ style('secondary'),
+ style('info'),
+ style('success'),
+ style('warning'),
+ style('error'),
+ ],
+ },
+ MuiToggleButtonGroup: {
+ styleOverrides: {
+ root: {
+ borderRadius: theme.shape.borderRadius,
+ backgroundColor: theme.palette.background.paper,
+ border: `solid 1px ${theme.palette.grey[500_12]}`,
+ '& .MuiToggleButton-root': {
+ margin: 4,
+ borderColor: 'transparent !important',
+ borderRadius: `${theme.shape.borderRadius}px !important`,
+ },
+ },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Tooltip.ts b/frontend/hospital-portal/src/theme/overrides/Tooltip.ts
new file mode 100755
index 00000000..e8f5f21f
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Tooltip.ts
@@ -0,0 +1,20 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Tooltip(theme: Theme) {
+ const isLight = theme.palette.mode === 'light';
+
+ return {
+ MuiTooltip: {
+ styleOverrides: {
+ tooltip: {
+ backgroundColor: theme.palette.grey[isLight ? 800 : 700]
+ },
+ arrow: {
+ color: theme.palette.grey[isLight ? 800 : 700]
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/TreeView.tsx b/frontend/hospital-portal/src/theme/overrides/TreeView.tsx
new file mode 100755
index 00000000..543b9e6a
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/TreeView.tsx
@@ -0,0 +1,23 @@
+import { Theme } from '@mui/material/styles';
+//
+import { TreeViewCollapseIcon, TreeViewExpandIcon, TreeViewEndIcon } from './CustomIcons';
+
+// ----------------------------------------------------------------------
+
+export default function TreeView(theme: Theme) {
+ return {
+ MuiTreeView: {
+ defaultProps: {
+ defaultCollapseIcon: ,
+ defaultExpandIcon: ,
+ defaultEndIcon: ,
+ },
+ },
+ MuiTreeItem: {
+ styleOverrides: {
+ label: { ...theme.typography.body2 },
+ iconContainer: { width: 'auto' },
+ },
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/Typography.ts b/frontend/hospital-portal/src/theme/overrides/Typography.ts
new file mode 100755
index 00000000..00f47d9c
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/Typography.ts
@@ -0,0 +1,18 @@
+import { Theme } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+export default function Typography(theme: Theme) {
+ return {
+ MuiTypography: {
+ styleOverrides: {
+ paragraph: {
+ marginBottom: theme.spacing(2)
+ },
+ gutterBottom: {
+ marginBottom: theme.spacing(1)
+ }
+ }
+ }
+ };
+}
diff --git a/frontend/hospital-portal/src/theme/overrides/index.ts b/frontend/hospital-portal/src/theme/overrides/index.ts
new file mode 100755
index 00000000..87bf370b
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/overrides/index.ts
@@ -0,0 +1,93 @@
+import { Theme } from '@mui/material/styles';
+//
+import Fab from './Fab';
+import Card from './Card';
+import Chip from './Chip';
+import Tabs from './Tabs';
+import Menu from './Menu';
+import Link from './Link';
+import Lists from './List';
+import Table from './Table';
+import Alert from './Alert';
+import Badge from './Badge';
+import Paper from './Paper';
+import Input from './Input';
+import Radio from './Radio';
+import Drawer from './Drawer';
+import Dialog from './Dialog';
+import Avatar from './Avatar';
+import Rating from './Rating';
+import Slider from './Slider';
+import Button from './Button';
+import Switch from './Switch';
+import Select from './Select';
+import SvgIcon from './SvgIcon';
+import Tooltip from './Tooltip';
+import Popover from './Popover';
+import Stepper from './Stepper';
+import DataGrid from './DataGrid';
+import Skeleton from './Skeleton';
+import Backdrop from './Backdrop';
+import Progress from './Progress';
+import Timeline from './Timeline';
+import TreeView from './TreeView';
+import Checkbox from './Checkbox';
+import Accordion from './Accordion';
+import Typography from './Typography';
+import Pagination from './Pagination';
+import Breadcrumbs from './Breadcrumbs';
+import ButtonGroup from './ButtonGroup';
+import CssBaseline from './CssBaseline';
+import Autocomplete from './Autocomplete';
+import ToggleButton from './ToggleButton';
+import ControlLabel from './ControlLabel';
+import LoadingButton from './LoadingButton';
+
+// ----------------------------------------------------------------------
+
+export default function ComponentsOverrides(theme: Theme) {
+ return Object.assign(
+ Fab(theme),
+ Tabs(theme),
+ Chip(theme),
+ Card(theme),
+ Menu(theme),
+ Link(theme),
+ Input(theme),
+ Radio(theme),
+ Badge(theme),
+ Lists(theme),
+ Table(theme),
+ Paper(theme),
+ Alert(theme),
+ Switch(theme),
+ Select(theme),
+ Button(theme),
+ Rating(theme),
+ Dialog(theme),
+ Avatar(theme),
+ Slider(theme),
+ Drawer(theme),
+ Stepper(theme),
+ Tooltip(theme),
+ Popover(theme),
+ SvgIcon(theme),
+ Checkbox(theme),
+ DataGrid(theme),
+ Skeleton(theme),
+ Timeline(theme),
+ TreeView(theme),
+ Backdrop(theme),
+ Progress(theme),
+ Accordion(theme),
+ Typography(theme),
+ Pagination(theme),
+ ButtonGroup(theme),
+ Breadcrumbs(theme),
+ CssBaseline(theme),
+ Autocomplete(theme),
+ ControlLabel(theme),
+ ToggleButton(theme),
+ LoadingButton(theme)
+ );
+}
diff --git a/frontend/hospital-portal/src/theme/palette.ts b/frontend/hospital-portal/src/theme/palette.ts
new file mode 100755
index 00000000..cc7367af
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/palette.ts
@@ -0,0 +1,184 @@
+import { alpha } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+function createGradient(color1: string, color2: string) {
+ return `linear-gradient(to bottom, ${color1}, ${color2})`;
+}
+
+export type ColorSchema = 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error';
+
+interface GradientsPaletteOptions {
+ primary: string;
+ info: string;
+ success: string;
+ warning: string;
+ error: string;
+}
+
+interface ChartPaletteOptions {
+ violet: string[];
+ blue: string[];
+ green: string[];
+ yellow: string[];
+ red: string[];
+}
+
+declare module '@mui/material/styles/createPalette' {
+ interface TypeBackground {
+ neutral: string;
+ }
+ interface SimplePaletteColorOptions {
+ lighter: string;
+ darker: string;
+ }
+ interface PaletteColor {
+ lighter: string;
+ darker: string;
+ }
+ interface Palette {
+ gradients: GradientsPaletteOptions;
+ chart: ChartPaletteOptions;
+ }
+ interface PaletteOptions {
+ gradients: GradientsPaletteOptions;
+ chart: ChartPaletteOptions;
+ }
+}
+
+declare module '@mui/material' {
+ interface Color {
+ 0: string;
+ 500_8: string;
+ 500_12: string;
+ 500_16: string;
+ 500_24: string;
+ 500_32: string;
+ 500_48: string;
+ 500_56: string;
+ 500_80: string;
+ }
+}
+
+// SETUP COLORS
+const PRIMARY = {
+ lighter: '#C8FACD',
+ light: '#5BE584',
+ main: '#00AB55',
+ dark: '#007B55',
+ darker: '#005249',
+};
+const SECONDARY = {
+ lighter: '#D6E4FF',
+ light: '#84A9FF',
+ main: '#3366FF',
+ dark: '#1939B7',
+ darker: '#091A7A',
+};
+const INFO = {
+ lighter: '#D0F2FF',
+ light: '#74CAFF',
+ main: '#1890FF',
+ dark: '#0C53B7',
+ darker: '#04297A',
+};
+const SUCCESS = {
+ lighter: '#E9FCD4',
+ light: '#AAF27F',
+ main: '#54D62C',
+ dark: '#229A16',
+ darker: '#08660D',
+};
+const WARNING = {
+ lighter: '#FFF7CD',
+ light: '#FFE16A',
+ main: '#FFC107',
+ dark: '#B78103',
+ darker: '#7A4F01',
+};
+const ERROR = {
+ lighter: '#FFE7D9',
+ light: '#FFA48D',
+ main: '#FF4842',
+ dark: '#B72136',
+ darker: '#7A0C2E',
+};
+
+const GREY = {
+ 0: '#FFFFFF',
+ 100: '#F9FAFB',
+ 200: '#F4F6F8',
+ 300: '#DFE3E8',
+ 400: '#C4CDD5',
+ 500: '#919EAB',
+ 600: '#637381',
+ 700: '#454F5B',
+ 800: '#212B36',
+ 900: '#161C24',
+ 500_8: alpha('#919EAB', 0.08),
+ 500_12: alpha('#919EAB', 0.12),
+ 500_16: alpha('#919EAB', 0.16),
+ 500_24: alpha('#919EAB', 0.24),
+ 500_32: alpha('#919EAB', 0.32),
+ 500_48: alpha('#919EAB', 0.48),
+ 500_56: alpha('#919EAB', 0.56),
+ 500_80: alpha('#919EAB', 0.8),
+};
+
+const GRADIENTS = {
+ primary: createGradient(PRIMARY.light, PRIMARY.main),
+ info: createGradient(INFO.light, INFO.main),
+ success: createGradient(SUCCESS.light, SUCCESS.main),
+ warning: createGradient(WARNING.light, WARNING.main),
+ error: createGradient(ERROR.light, ERROR.main),
+};
+
+const CHART_COLORS = {
+ violet: ['#826AF9', '#9E86FF', '#D0AEFF', '#F7D2FF'],
+ blue: ['#2D99FF', '#83CFFF', '#A5F3FF', '#CCFAFF'],
+ green: ['#2CD9C5', '#60F1C8', '#A4F7CC', '#C0F2DC'],
+ yellow: ['#FFE700', '#FFEF5A', '#FFF7AE', '#FFF3D6'],
+ red: ['#FF6C40', '#FF8F6D', '#FFBD98', '#FFF2D4'],
+};
+
+const COMMON = {
+ common: { black: '#000', white: '#fff' },
+ primary: { ...PRIMARY, contrastText: '#fff' },
+ secondary: { ...SECONDARY, contrastText: '#fff' },
+ info: { ...INFO, contrastText: '#fff' },
+ success: { ...SUCCESS, contrastText: GREY[800] },
+ warning: { ...WARNING, contrastText: GREY[800] },
+ error: { ...ERROR, contrastText: '#fff' },
+ grey: GREY,
+ gradients: GRADIENTS,
+ chart: CHART_COLORS,
+ divider: GREY[500_24],
+ action: {
+ hover: GREY[500_8],
+ selected: GREY[500_16],
+ disabled: GREY[500_80],
+ disabledBackground: GREY[500_24],
+ focus: GREY[500_24],
+ hoverOpacity: 0.08,
+ disabledOpacity: 0.48,
+ },
+};
+
+const palette = {
+ light: {
+ ...COMMON,
+ mode: 'light',
+ text: { primary: GREY[800], secondary: GREY[600], disabled: GREY[500] },
+ background: { paper: '#fff', default: '#fff', neutral: GREY[200] },
+ action: { active: GREY[600], ...COMMON.action },
+ },
+ dark: {
+ ...COMMON,
+ mode: 'dark',
+ text: { primary: '#fff', secondary: GREY[500], disabled: GREY[600] },
+ background: { paper: GREY[800], default: GREY[900], neutral: GREY[500_16] },
+ action: { active: GREY[500], ...COMMON.action },
+ },
+} as const;
+
+export default palette;
diff --git a/frontend/hospital-portal/src/theme/shadows.ts b/frontend/hospital-portal/src/theme/shadows.ts
new file mode 100755
index 00000000..9f4a6330
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/shadows.ts
@@ -0,0 +1,110 @@
+// @mui
+import { alpha } from '@mui/material/styles';
+import { Shadows } from '@mui/material/styles/shadows';
+//
+import palette from './palette';
+
+// ----------------------------------------------------------------------
+
+interface CustomShadowOptions {
+ z1: string;
+ z8: string;
+ z12: string;
+ z16: string;
+ z20: string;
+ z24: string;
+ //
+ primary: string;
+ secondary: string;
+ info: string;
+ success: string;
+ warning: string;
+ error: string;
+ //
+ card: string;
+ dialog: string;
+ dropdown: string;
+}
+
+declare module '@mui/material/styles' {
+ interface Theme {
+ customShadows: CustomShadowOptions;
+ }
+ interface ThemeOptions {
+ customShadows?: CustomShadowOptions;
+ }
+}
+
+const LIGHT_MODE = palette.light.grey[500];
+const DARK_MODE = '#000000';
+
+const createShadow = (color: string): Shadows => {
+ const transparent1 = alpha(color, 0.2);
+ const transparent2 = alpha(color, 0.14);
+ const transparent3 = alpha(color, 0.12);
+ return [
+ 'none',
+ `0px 2px 1px -1px ${transparent1},0px 1px 1px 0px ${transparent2},0px 1px 3px 0px ${transparent3}`,
+ `0px 3px 1px -2px ${transparent1},0px 2px 2px 0px ${transparent2},0px 1px 5px 0px ${transparent3}`,
+ `0px 3px 3px -2px ${transparent1},0px 3px 4px 0px ${transparent2},0px 1px 8px 0px ${transparent3}`,
+ `0px 2px 4px -1px ${transparent1},0px 4px 5px 0px ${transparent2},0px 1px 10px 0px ${transparent3}`,
+ `0px 3px 5px -1px ${transparent1},0px 5px 8px 0px ${transparent2},0px 1px 14px 0px ${transparent3}`,
+ `0px 3px 5px -1px ${transparent1},0px 6px 10px 0px ${transparent2},0px 1px 18px 0px ${transparent3}`,
+ `0px 4px 5px -2px ${transparent1},0px 7px 10px 1px ${transparent2},0px 2px 16px 1px ${transparent3}`,
+ `0px 5px 5px -3px ${transparent1},0px 8px 10px 1px ${transparent2},0px 3px 14px 2px ${transparent3}`,
+ `0px 5px 6px -3px ${transparent1},0px 9px 12px 1px ${transparent2},0px 3px 16px 2px ${transparent3}`,
+ `0px 6px 6px -3px ${transparent1},0px 10px 14px 1px ${transparent2},0px 4px 18px 3px ${transparent3}`,
+ `0px 6px 7px -4px ${transparent1},0px 11px 15px 1px ${transparent2},0px 4px 20px 3px ${transparent3}`,
+ `0px 7px 8px -4px ${transparent1},0px 12px 17px 2px ${transparent2},0px 5px 22px 4px ${transparent3}`,
+ `0px 7px 8px -4px ${transparent1},0px 13px 19px 2px ${transparent2},0px 5px 24px 4px ${transparent3}`,
+ `0px 7px 9px -4px ${transparent1},0px 14px 21px 2px ${transparent2},0px 5px 26px 4px ${transparent3}`,
+ `0px 8px 9px -5px ${transparent1},0px 15px 22px 2px ${transparent2},0px 6px 28px 5px ${transparent3}`,
+ `0px 8px 10px -5px ${transparent1},0px 16px 24px 2px ${transparent2},0px 6px 30px 5px ${transparent3}`,
+ `0px 8px 11px -5px ${transparent1},0px 17px 26px 2px ${transparent2},0px 6px 32px 5px ${transparent3}`,
+ `0px 9px 11px -5px ${transparent1},0px 18px 28px 2px ${transparent2},0px 7px 34px 6px ${transparent3}`,
+ `0px 9px 12px -6px ${transparent1},0px 19px 29px 2px ${transparent2},0px 7px 36px 6px ${transparent3}`,
+ `0px 10px 13px -6px ${transparent1},0px 20px 31px 3px ${transparent2},0px 8px 38px 7px ${transparent3}`,
+ `0px 10px 13px -6px ${transparent1},0px 21px 33px 3px ${transparent2},0px 8px 40px 7px ${transparent3}`,
+ `0px 10px 14px -6px ${transparent1},0px 22px 35px 3px ${transparent2},0px 8px 42px 7px ${transparent3}`,
+ `0px 11px 14px -7px ${transparent1},0px 23px 36px 3px ${transparent2},0px 9px 44px 8px ${transparent3}`,
+ `0px 11px 15px -7px ${transparent1},0px 24px 38px 3px ${transparent2},0px 9px 46px 8px ${transparent3}`,
+ ];
+};
+
+const createCustomShadow = (color: string) => {
+ const transparent = alpha(color, 0.16);
+ return {
+ z1: `0 1px 2px 0 ${transparent}`,
+ z8: `0 8px 16px 0 ${transparent}`,
+ z12: `0 12px 24px -4px ${transparent}`,
+ z16: `0 16px 32px -4px ${transparent}`,
+ z20: `0 20px 40px -4px ${transparent}`,
+ z24: `0 24px 48px 0 ${transparent}`,
+ //
+ primary: `0 8px 16px 0 ${alpha(palette.light.primary.main, 0.24)}`,
+ info: `0 8px 16px 0 ${alpha(palette.light.info.main, 0.24)}`,
+ secondary: `0 8px 16px 0 ${alpha(palette.light.secondary.main, 0.24)}`,
+ success: `0 8px 16px 0 ${alpha(palette.light.success.main, 0.24)}`,
+ warning: `0 8px 16px 0 ${alpha(palette.light.warning.main, 0.24)}`,
+ error: `0 8px 16px 0 ${alpha(palette.light.error.main, 0.24)}`,
+ //
+ card: `0 0 2px 0 ${alpha(color, 0.2)}, 0 12px 24px -4px ${alpha(color, 0.12)}`,
+ dialog: `-40px 40px 80px -8px ${alpha(palette.light.common.black, 0.24)}`,
+ dropdown: `0 0 2px 0 ${alpha(color, 0.24)}, -20px 20px 40px -4px ${alpha(color, 0.24)}`,
+ };
+};
+
+export const customShadows = {
+ light: createCustomShadow(LIGHT_MODE),
+ dark: createCustomShadow(DARK_MODE),
+};
+
+const shadows: {
+ light: Shadows;
+ dark: Shadows;
+} = {
+ light: createShadow(LIGHT_MODE),
+ dark: createShadow(DARK_MODE),
+};
+
+export default shadows;
diff --git a/frontend/hospital-portal/src/theme/typography.ts b/frontend/hospital-portal/src/theme/typography.ts
new file mode 100755
index 00000000..1fc2ab2d
--- /dev/null
+++ b/frontend/hospital-portal/src/theme/typography.ts
@@ -0,0 +1,86 @@
+import { pxToRem, responsiveFontSizes } from '../utils/getFontValue';
+
+// ----------------------------------------------------------------------
+
+const FONT_PRIMARY = 'Public Sans, sans-serif'; // Google Font
+// const FONT_SECONDARY = 'CircularStd, sans-serif'; // Local Font
+
+const typography = {
+ fontFamily: FONT_PRIMARY,
+ fontWeightRegular: 400,
+ fontWeightMedium: 600,
+ fontWeightBold: 700,
+ h1: {
+ fontWeight: 700,
+ lineHeight: 80 / 64,
+ fontSize: pxToRem(40),
+ letterSpacing: 2,
+ ...responsiveFontSizes({ sm: 52, md: 58, lg: 64 }),
+ },
+ h2: {
+ fontWeight: 700,
+ lineHeight: 64 / 48,
+ fontSize: pxToRem(32),
+ ...responsiveFontSizes({ sm: 40, md: 44, lg: 48 }),
+ },
+ h3: {
+ fontWeight: 700,
+ lineHeight: 1.5,
+ fontSize: pxToRem(24),
+ ...responsiveFontSizes({ sm: 26, md: 30, lg: 32 }),
+ },
+ h4: {
+ fontWeight: 700,
+ lineHeight: 1.5,
+ fontSize: pxToRem(20),
+ ...responsiveFontSizes({ sm: 20, md: 24, lg: 24 }),
+ },
+ h5: {
+ fontWeight: 700,
+ lineHeight: 1.5,
+ fontSize: pxToRem(18),
+ ...responsiveFontSizes({ sm: 19, md: 20, lg: 20 }),
+ },
+ h6: {
+ fontWeight: 700,
+ lineHeight: 28 / 18,
+ fontSize: pxToRem(17),
+ ...responsiveFontSizes({ sm: 18, md: 18, lg: 18 }),
+ },
+ subtitle1: {
+ fontWeight: 600,
+ lineHeight: 1.5,
+ fontSize: pxToRem(16),
+ },
+ subtitle2: {
+ fontWeight: 600,
+ lineHeight: 22 / 14,
+ fontSize: pxToRem(14),
+ },
+ body1: {
+ lineHeight: 1.5,
+ fontSize: pxToRem(16),
+ },
+ body2: {
+ lineHeight: 22 / 14,
+ fontSize: pxToRem(14),
+ },
+ caption: {
+ lineHeight: 1.5,
+ fontSize: pxToRem(12),
+ },
+ overline: {
+ fontWeight: 700,
+ lineHeight: 1.5,
+ fontSize: pxToRem(12),
+ textTransform: 'uppercase',
+ },
+ button: {
+ fontWeight: 700,
+ lineHeight: 24 / 14,
+ fontSize: pxToRem(14),
+ textTransform: 'capitalize',
+ },
+} as const;
+
+export default typography;
diff --git a/frontend/hospital-portal/src/utils/axios.ts b/frontend/hospital-portal/src/utils/axios.ts
new file mode 100755
index 00000000..bc8294a7
--- /dev/null
+++ b/frontend/hospital-portal/src/utils/axios.ts
@@ -0,0 +1,27 @@
+import { default as defaultAxios } from 'axios';
+// config
+import { HOST_API } from '../config';
+
+import { getSession } from './token';
+
+// ----------------------------------------------------------------------
+
+const token = getSession();
+
+const axios = defaultAxios.create({
+ baseURL: HOST_API,
+ // headers: {
+ // 'X-Requested-With': 'XMLHttpRequest',
+ // },
+ // withCredentials: true,
+ // headers: {
+ // Authorization: `Bearer ${token}`
+ // }
+});
+
+axios.interceptors.response.use(
+ (response) => response,
+ (error) => Promise.reject((error) || 'Something went wrong')
+);
+
+export default axios;
diff --git a/frontend/hospital-portal/src/utils/cssStyles.ts b/frontend/hospital-portal/src/utils/cssStyles.ts
new file mode 100755
index 00000000..c0b95932
--- /dev/null
+++ b/frontend/hospital-portal/src/utils/cssStyles.ts
@@ -0,0 +1,70 @@
+import { Theme, alpha } from '@mui/material/styles';
+
+// ----------------------------------------------------------------------
+
+type BackgroundBlurProps = {
+ blur?: number;
+ opacity?: number;
+ color?: string;
+};
+
+type BackgroundGradientProps = {
+ direction?: string;
+ startColor?: string;
+ endColor?: string;
+};
+
+interface BackgroundImageProps extends BackgroundGradientProps {
+ url?: string;
+}
+
+function getDirection(value = 'bottom') {
+ return {
+ top: 'to top',
+ right: 'to right',
+ bottom: 'to bottom',
+ left: 'to left',
+ }[value];
+}
+
+// ----------------------------------------------------------------------
+
+export default function cssStyles(theme?: Theme) {
+ return {
+ bgBlur: (props?: BackgroundBlurProps) => {
+ const color = props?.color || theme?.palette.background.default || '#000000';
+
+ const blur = props?.blur || 6;
+ const opacity = props?.opacity || 0.8;
+
+ return {
+ backdropFilter: `blur(${blur}px)`,
+ WebkitBackdropFilter: `blur(${blur}px)`, // Fix on Mobile
+ backgroundColor: alpha(color, opacity),
+ };
+ },
+ bgGradient: (props?: BackgroundGradientProps) => {
+ const direction = getDirection(props?.direction);
+ const startColor = props?.startColor || `${alpha('#000000', 0)} 0%`;
+ const endColor = props?.endColor || '#000000 75%';
+
+ return {
+ background: `linear-gradient(${direction}, ${startColor}, ${endColor});`,
+ };
+ },
+ bgImage: (props?: BackgroundImageProps) => {
+ const url =
+ props?.url || 'https://minimal-assets-api.vercel.app/assets/images/bg_gradient.jpg';
+ const direction = getDirection(props?.direction);
+ const startColor = props?.startColor || alpha(theme?.palette.grey[900] || '#000000', 0.88);
+ const endColor = props?.endColor || alpha(theme?.palette.grey[900] || '#000000', 0.88);
+
+ return {
+ background: `linear-gradient(${direction}, ${startColor}, ${endColor}), url(${url})`,
+ backgroundSize: 'cover',
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ };
+ },
+ };
+}
diff --git a/frontend/hospital-portal/src/utils/formatNumber.ts b/frontend/hospital-portal/src/utils/formatNumber.ts
new file mode 100755
index 00000000..353c0299
--- /dev/null
+++ b/frontend/hospital-portal/src/utils/formatNumber.ts
@@ -0,0 +1,45 @@
+import numeral from 'numeral';
+
+// ----------------------------------------------------------------------
+// load a locale
+numeral.register('locale', 'id', {
+ delimiters: {
+ thousands: '.',
+ decimal: ','
+ },
+ abbreviations: {
+ thousand: 'k',
+ million: 'm',
+ billion: 'b',
+ trillion: 't'
+ },
+ ordinal : function (number: number) {
+ return number === 1 ? 'er' : 'ème';
+ },
+ currency: {
+ symbol: 'Rp '
+ }
+});
+
+// switch between locales
+numeral.locale('id');
+
+export function fCurrency(number: string | number) {
+ return numeral(number).format('$0,0');
+}
+
+export function fPercent(number: number) {
+ return numeral(number / 100).format('0.0%');
+}
+
+export function fNumber(number: string | number) {
+ return numeral(number).format();
+}
+
+export function fShortenNumber(number: string | number) {
+ return numeral(number).format('0.00a').replace('.00', '');
+}
+
+export function fData(number: string | number) {
+ return numeral(number).format('0.0 b');
+}
diff --git a/frontend/hospital-portal/src/utils/formatString.ts b/frontend/hospital-portal/src/utils/formatString.ts
new file mode 100755
index 00000000..5589c2f4
--- /dev/null
+++ b/frontend/hospital-portal/src/utils/formatString.ts
@@ -0,0 +1,11 @@
+export function clearTag(htmlString: string | undefined) {
+ return htmlString?.replace(/(<([^>]+)>)/gi, "");
+}
+
+export function limitString(anyString: string | undefined, limit: number = 50) {
+ return anyString?.substring(0, limit)
+}
+
+export function makeExcerpt(htmlString: string | undefined, limit: number = 50) {
+ return limitString(clearTag(htmlString ?? ''), limit);
+}
diff --git a/frontend/hospital-portal/src/utils/formatTime.ts b/frontend/hospital-portal/src/utils/formatTime.ts
new file mode 100755
index 00000000..203b5933
--- /dev/null
+++ b/frontend/hospital-portal/src/utils/formatTime.ts
@@ -0,0 +1,30 @@
+import { format, getTime, formatDistanceToNow } from 'date-fns';
+
+// ----------------------------------------------------------------------
+
+export function fDate(date: Date | string | number) {
+ return format(new Date(date), 'dd MMMM yyyy');
+}
+
+export function fDateTime(date: Date | string | number) {
+ return format(new Date(date), 'dd MMM yyyy p');
+}
+
+export function fTimestamp(date: Date | string | number) {
+ return getTime(new Date(date));
+}
+
+export function fDateTimeSuffix(date: Date | string | number) {
+ return format(new Date(date), 'dd/MM/yyyy hh:mm p');
+}
+
+export function fToNow(date: Date | string | number) {
+ return formatDistanceToNow(new Date(date), {
+ addSuffix: true
+ });
+}
+
+
+export function fPostFormat(date: Date | string | number) {
+ return format(new Date(date), 'yyyy-MM-dd HH:mm:ss');
+}
diff --git a/frontend/hospital-portal/src/utils/getColorPresets.ts b/frontend/hospital-portal/src/utils/getColorPresets.ts
new file mode 100755
index 00000000..30c7fcbe
--- /dev/null
+++ b/frontend/hospital-portal/src/utils/getColorPresets.ts
@@ -0,0 +1,82 @@
+// theme
+import palette from '../theme/palette';
+// @type
+import { ThemeColorPresets } from '../components/settings/type';
+
+// ----------------------------------------------------------------------
+
+export const colorPresets = [
+ // DEFAULT
+ {
+ name: 'default',
+ ...palette.light.primary,
+ },
+ // PURPLE
+ {
+ name: 'purple',
+ lighter: '#EBD6FD',
+ light: '#B985F4',
+ main: '#7635dc',
+ dark: '#431A9E',
+ darker: '#200A69',
+ contrastText: '#fff',
+ },
+ // CYAN
+ {
+ name: 'cyan',
+ lighter: '#D1FFFC',
+ light: '#76F2FF',
+ main: '#1CCAFF',
+ dark: '#0E77B7',
+ darker: '#053D7A',
+ contrastText: palette.light.grey[800],
+ },
+ // BLUE
+ {
+ name: 'blue',
+ lighter: '#D1E9FC',
+ light: '#76B0F1',
+ main: '#2065D1',
+ dark: '#103996',
+ darker: '#061B64',
+ contrastText: '#fff',
+ },
+ // ORANGE
+ {
+ name: 'orange',
+ lighter: '#FEF4D4',
+ light: '#FED680',
+ main: '#fda92d',
+ dark: '#B66816',
+ darker: '#793908',
+ contrastText: palette.light.grey[800],
+ },
+ // RED
+ {
+ name: 'red',
+ lighter: '#FFE3D5',
+ light: '#FFC1AC',
+ main: '#FF3030',
+ dark: '#B71833',
+ darker: '#7A0930',
+ contrastText: '#fff',
+ },
+];
+
+export const defaultPreset = colorPresets[0];
+export const purplePreset = colorPresets[1];
+export const cyanPreset = colorPresets[2];
+export const bluePreset = colorPresets[3];
+export const orangePreset = colorPresets[4];
+export const redPreset = colorPresets[5];
+
+export default function getColorPresets(presetsKey: ThemeColorPresets) {
+ return {
+ purple: purplePreset,
+ cyan: cyanPreset,
+ blue: bluePreset,
+ orange: orangePreset,
+ red: redPreset,
+ default: defaultPreset,
+ }[presetsKey];
+}
diff --git a/frontend/hospital-portal/src/utils/getFontValue.ts b/frontend/hospital-portal/src/utils/getFontValue.ts
new file mode 100755
index 00000000..1971e56d
--- /dev/null
+++ b/frontend/hospital-portal/src/utils/getFontValue.ts
@@ -0,0 +1,72 @@
+// @mui
+import { useTheme } from '@mui/material/styles';
+import { Variant } from '@mui/material/styles/createTypography';
+// hooks
+import useResponsive from '../hooks/useResponsive';
+
+// ----------------------------------------------------------------------
+
+export default function GetFontValue(variant: Variant) {
+ const theme = useTheme();
+ const breakpoints = useWidth();
+
+ const key = theme.breakpoints.up(breakpoints === 'xl' ? 'lg' : breakpoints);
+
+ const hasResponsive =
+ variant === 'h1' ||
+ variant === 'h2' ||
+ variant === 'h3' ||
+ variant === 'h4' ||
+ variant === 'h5' ||
+ variant === 'h6';
+
+ const getFont: any =
+ hasResponsive && theme.typography[variant][key]
+ ? theme.typography[variant][key]
+ : theme.typography[variant];
+
+ const fontSize = remToPx(getFont.fontSize);
+ const lineHeight = Number(theme.typography[variant].lineHeight) * fontSize;
+ const { fontWeight, letterSpacing } = theme.typography[variant];
+
+ return { fontSize, lineHeight, fontWeight, letterSpacing };
+}
+
+// ----------------------------------------------------------------------
+
+export function remToPx(value: string) {
+ return Math.round(parseFloat(value) * 16);
+}
+
+export function pxToRem(value: number) {
+ return `${value / 16}rem`;
+}
+
+export function responsiveFontSizes({ sm, md, lg }: { sm: number; md: number; lg: number }) {
+ return {
+ '@media (min-width:600px)': {
+ fontSize: pxToRem(sm),
+ },
+ '@media (min-width:900px)': {
+ fontSize: pxToRem(md),
+ },
+ '@media (min-width:1200px)': {
+ fontSize: pxToRem(lg),
+ },
+ };
+}
+
+// ----------------------------------------------------------------------
+
+function useWidth() {
+ const theme = useTheme();
+ const keys = [...theme.breakpoints.keys].reverse();
+ return (
+ // @ts-ignore not sure what is this
+ keys.reduce((output, key) => {
+ // eslint-disable-next-line react-hooks/rules-of-hooks
+ const matches = useResponsive('up', key);
+ return !output && matches ? key : output;
+ }, null) || 'xs'
+ );
+}
diff --git a/frontend/hospital-portal/src/utils/token.ts b/frontend/hospital-portal/src/utils/token.ts
new file mode 100755
index 00000000..db33ff36
--- /dev/null
+++ b/frontend/hospital-portal/src/utils/token.ts
@@ -0,0 +1,52 @@
+import axios from './axios';
+
+// ----------------------------------------------------------------------
+
+// const isValidToken = (accessToken: string) => {
+// if (!accessToken) {
+// return false;
+// }
+// const decoded = jwtDecode<{ exp: number }>(accessToken);
+// const currentTime = Date.now() / 1000;
+
+// return decoded.exp > currentTime;
+// };
+
+// const handleTokenExpired = () => {
+// let expiredTimer;
+
+// window.clearTimeout(expiredTimer);
+// const currentTime = Date.now();
+// const timeLeft = exp * 1000 - currentTime;
+// console.log(timeLeft);
+// expiredTimer = window.setTimeout(() => {
+// console.log('expired');
+// // You can do what ever you want here, like show a notification
+// }, timeLeft);
+// };
+
+const setSession = (accessToken: string | null) => {
+ if (accessToken) {
+ localStorage.setItem('accessToken', accessToken);
+ axios.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
+ // This function below will handle when token is expired
+ // const { exp } = jwtDecode(accessToken);
+ // handleTokenExpired(exp);
+ } else {
+ localStorage.removeItem('accessToken');
+ delete axios.defaults.headers.common.Authorization;
+ }
+};
+
+const setUser = (user: any) => {
+ if (user) {
+ localStorage.setItem('user', user);
+ } else {
+ localStorage.removeItem('user');
+ }
+};
+
+const getSession = () => window.localStorage.getItem('accessToken')
+const getUser = () => window.localStorage.getItem('user')
+
+export { setSession, getSession, setUser, getUser };
diff --git a/frontend/hospital-portal/tsconfig.json b/frontend/hospital-portal/tsconfig.json
new file mode 100755
index 00000000..843bc48b
--- /dev/null
+++ b/frontend/hospital-portal/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "ESNext",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "types": ["vite/client", "vite-plugin-svgr/client"],
+ "allowJs": false,
+ "skipLibCheck": false,
+ "esModuleInterop": false,
+ "allowSyntheticDefaultImports": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noFallthroughCasesInSwitch": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "jsx": "react-jsx",
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ },
+ "include": ["src"],
+ "references": [{ "path": "./tsconfig.json" }]
+}
diff --git a/frontend/hospital-portal/vite.config.ts b/frontend/hospital-portal/vite.config.ts
new file mode 100755
index 00000000..557fde33
--- /dev/null
+++ b/frontend/hospital-portal/vite.config.ts
@@ -0,0 +1,27 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react'
+import svgrPlugin from 'vite-plugin-svgr'
+import { VitePWA } from 'vite-plugin-pwa'
+import path from 'path'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ // This changes the out put dir from dist to build
+ // comment this out if that isn't relevant for your project
+ build: {
+ outDir: 'build',
+ },
+ plugins: [
+ react(),
+ VitePWA({}),
+ svgrPlugin({
+ svgrOptions: {
+ icon: true,
+ // ...svgr options (https://react-svgr.com/docs/options/)
+ },
+ }),
+ ],
+ resolve: {
+ alias: [{ find: '@', replacement: path.resolve(__dirname, 'src') }],
+ }
+})
diff --git a/frontend/hospital-portal/yarn.lock b/frontend/hospital-portal/yarn.lock
new file mode 100755
index 00000000..b8a6a3c4
--- /dev/null
+++ b/frontend/hospital-portal/yarn.lock
@@ -0,0 +1,5227 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@ampproject/remapping@^2.1.0":
+ "integrity" "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg=="
+ "resolved" "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz"
+ "version" "2.1.2"
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.0"
+
+"@apideck/better-ajv-errors@^0.3.1":
+ "integrity" "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg=="
+ "resolved" "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz"
+ "version" "0.3.3"
+ dependencies:
+ "json-schema" "^0.4.0"
+ "jsonpointer" "^5.0.0"
+ "leven" "^3.1.0"
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.18.6":
+ "integrity" "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q=="
+ "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/highlight" "^7.18.6"
+
+"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.20.0":
+ "integrity" "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ=="
+ "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz"
+ "version" "7.20.1"
+
+"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.1", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.16.0", "@babel/core@^7.17.10", "@babel/core@^7.18.9", "@babel/core@^7.19.6", "@babel/core@^7.4.0-0", "@babel/core@>=7.11.0":
+ "integrity" "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g=="
+ "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz"
+ "version" "7.20.2"
+ dependencies:
+ "@ampproject/remapping" "^2.1.0"
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.20.2"
+ "@babel/helper-compilation-targets" "^7.20.0"
+ "@babel/helper-module-transforms" "^7.20.2"
+ "@babel/helpers" "^7.20.1"
+ "@babel/parser" "^7.20.2"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.20.1"
+ "@babel/types" "^7.20.2"
+ "convert-source-map" "^1.7.0"
+ "debug" "^4.1.0"
+ "gensync" "^1.0.0-beta.2"
+ "json5" "^2.2.1"
+ "semver" "^6.3.0"
+
+"@babel/eslint-parser@^7.16.3", "@babel/eslint-parser@^7.18.9":
+ "integrity" "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ=="
+ "resolved" "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz"
+ "version" "7.19.1"
+ dependencies:
+ "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1"
+ "eslint-visitor-keys" "^2.1.0"
+ "semver" "^6.3.0"
+
+"@babel/generator@^7.20.1", "@babel/generator@^7.20.2":
+ "integrity" "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA=="
+ "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz"
+ "version" "7.20.4"
+ dependencies:
+ "@babel/types" "^7.20.2"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ "jsesc" "^2.5.1"
+
+"@babel/helper-annotate-as-pure@^7.16.7", "@babel/helper-annotate-as-pure@^7.18.6":
+ "integrity" "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7":
+ "integrity" "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-explode-assignable-expression" "^7.16.7"
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.20.0":
+ "integrity" "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz"
+ "version" "7.20.0"
+ dependencies:
+ "@babel/compat-data" "^7.20.0"
+ "@babel/helper-validator-option" "^7.18.6"
+ "browserslist" "^4.21.3"
+ "semver" "^6.3.0"
+
+"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.1", "@babel/helper-create-class-features-plugin@^7.17.6":
+ "integrity" "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz"
+ "version" "7.17.6"
+ 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-member-expression-to-functions" "^7.16.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@^7.16.7":
+ "integrity" "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz"
+ "version" "7.17.0"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "regexpu-core" "^5.0.1"
+
+"@babel/helper-define-polyfill-provider@^0.3.1":
+ "integrity" "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz"
+ "version" "0.3.1"
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.13.0"
+ "@babel/helper-module-imports" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/traverse" "^7.13.0"
+ "debug" "^4.1.1"
+ "lodash.debounce" "^4.0.8"
+ "resolve" "^1.14.2"
+ "semver" "^6.1.2"
+
+"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.9":
+ "integrity" "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz"
+ "version" "7.18.9"
+
+"@babel/helper-explode-assignable-expression@^7.16.7":
+ "integrity" "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.19.0":
+ "integrity" "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz"
+ "version" "7.19.0"
+ dependencies:
+ "@babel/template" "^7.18.10"
+ "@babel/types" "^7.19.0"
+
+"@babel/helper-hoist-variables@^7.16.7", "@babel/helper-hoist-variables@^7.18.6":
+ "integrity" "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-member-expression-to-functions@^7.16.7":
+ "integrity" "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6":
+ "integrity" "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.20.2":
+ "integrity" "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz"
+ "version" "7.20.2"
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-simple-access" "^7.20.2"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.20.1"
+ "@babel/types" "^7.20.2"
+
+"@babel/helper-optimise-call-expression@^7.16.7":
+ "integrity" "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+ "integrity" "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz"
+ "version" "7.20.2"
+
+"@babel/helper-remap-async-to-generator@^7.16.8":
+ "integrity" "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz"
+ "version" "7.16.8"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-wrap-function" "^7.16.8"
+ "@babel/types" "^7.16.8"
+
+"@babel/helper-replace-supers@^7.16.7":
+ "integrity" "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz"
+ "version" "7.16.7"
+ 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"
+
+"@babel/helper-simple-access@^7.16.7", "@babel/helper-simple-access@^7.20.2":
+ "integrity" "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz"
+ "version" "7.20.2"
+ dependencies:
+ "@babel/types" "^7.20.2"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.16.0":
+ "integrity" "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz"
+ "version" "7.16.0"
+ dependencies:
+ "@babel/types" "^7.16.0"
+
+"@babel/helper-split-export-declaration@^7.16.7", "@babel/helper-split-export-declaration@^7.18.6":
+ "integrity" "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-string-parser@^7.19.4":
+ "integrity" "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz"
+ "version" "7.19.4"
+
+"@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
+ "integrity" "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz"
+ "version" "7.19.1"
+
+"@babel/helper-validator-option@^7.16.7", "@babel/helper-validator-option@^7.18.6":
+ "integrity" "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz"
+ "version" "7.18.6"
+
+"@babel/helper-wrap-function@^7.16.8":
+ "integrity" "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz"
+ "version" "7.16.8"
+ dependencies:
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.16.8"
+ "@babel/types" "^7.16.8"
+
+"@babel/helpers@^7.20.1":
+ "integrity" "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg=="
+ "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz"
+ "version" "7.20.1"
+ dependencies:
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.20.1"
+ "@babel/types" "^7.20.0"
+
+"@babel/highlight@^7.18.6":
+ "integrity" "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g=="
+ "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.18.6"
+ "chalk" "^2.0.0"
+ "js-tokens" "^4.0.0"
+
+"@babel/parser@^7.1.0", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2":
+ "integrity" "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg=="
+ "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz"
+ "version" "7.20.3"
+
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7":
+ "integrity" "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg=="
+ "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"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7":
+ "integrity" "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw=="
+ "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"
+ "version" "7.16.7"
+ 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"
+
+"@babel/plugin-proposal-async-generator-functions@^7.16.8":
+ "integrity" "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz"
+ "version" "7.16.8"
+ 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"
+
+"@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.16.7":
+ "integrity" "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-proposal-class-static-block@^7.16.7":
+ "integrity" "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz"
+ "version" "7.17.6"
+ 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"
+
+"@babel/plugin-proposal-decorators@^7.16.4":
+ "integrity" "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz"
+ "version" "7.17.2"
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.17.1"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-replace-supers" "^7.16.7"
+ "@babel/plugin-syntax-decorators" "^7.17.0"
+ "charcodes" "^0.2.0"
+
+"@babel/plugin-proposal-dynamic-import@^7.16.7":
+ "integrity" "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+
+"@babel/plugin-proposal-export-namespace-from@^7.16.7":
+ "integrity" "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
+"@babel/plugin-proposal-json-strings@^7.16.7":
+ "integrity" "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+
+"@babel/plugin-proposal-logical-assignment-operators@^7.16.7":
+ "integrity" "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7":
+ "integrity" "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
+"@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.16.7":
+ "integrity" "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+"@babel/plugin-proposal-object-rest-spread@^7.16.7":
+ "integrity" "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz"
+ "version" "7.17.3"
+ 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"
+
+"@babel/plugin-proposal-optional-catch-binding@^7.16.7":
+ "integrity" "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+
+"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.16.7":
+ "integrity" "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz"
+ "version" "7.16.7"
+ 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"
+
+"@babel/plugin-proposal-private-methods@^7.16.0", "@babel/plugin-proposal-private-methods@^7.16.11":
+ "integrity" "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz"
+ "version" "7.16.11"
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.16.10"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-proposal-private-property-in-object@^7.16.7":
+ "integrity" "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz"
+ "version" "7.16.7"
+ 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"
+
+"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+ "integrity" "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-syntax-async-generators@^7.8.4":
+ "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz"
+ "version" "7.8.4"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.12.13":
+ "integrity" "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz"
+ "version" "7.12.13"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-class-static-block@^7.14.5":
+ "integrity" "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz"
+ "version" "7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-decorators@^7.17.0":
+ "integrity" "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz"
+ "version" "7.17.0"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-syntax-dynamic-import@^7.8.3":
+ "integrity" "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-export-namespace-from@^7.8.3":
+ "integrity" "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+"@babel/plugin-syntax-flow@^7.14.5", "@babel/plugin-syntax-flow@^7.16.7", "@babel/plugin-syntax-flow@^7.18.6":
+ "integrity" "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-syntax-json-strings@^7.8.3":
+ "integrity" "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-jsx@^7.17.12", "@babel/plugin-syntax-jsx@^7.18.6":
+ "integrity" "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+ "integrity" "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz"
+ "version" "7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+ "integrity" "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-numeric-separator@^7.10.4":
+ "integrity" "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz"
+ "version" "7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.8.3":
+ "integrity" "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+ "integrity" "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.8.3":
+ "integrity" "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-private-property-in-object@^7.14.5":
+ "integrity" "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz"
+ "version" "7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-top-level-await@^7.14.5":
+ "integrity" "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz"
+ "version" "7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-typescript@^7.16.7":
+ "integrity" "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-arrow-functions@^7.16.7":
+ "integrity" "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-async-to-generator@^7.16.8":
+ "integrity" "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz"
+ "version" "7.16.8"
+ dependencies:
+ "@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@^7.16.7":
+ "integrity" "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-block-scoping@^7.16.7":
+ "integrity" "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-classes@^7.16.7":
+ "integrity" "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz"
+ "version" "7.16.7"
+ 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"
+
+"@babel/plugin-transform-computed-properties@^7.16.7":
+ "integrity" "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-destructuring@^7.16.7":
+ "integrity" "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz"
+ "version" "7.17.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4":
+ "integrity" "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-duplicate-keys@^7.16.7":
+ "integrity" "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-exponentiation-operator@^7.16.7":
+ "integrity" "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-flow-strip-types@^7.16.0":
+ "integrity" "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-flow" "^7.16.7"
+
+"@babel/plugin-transform-for-of@^7.16.7":
+ "integrity" "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-function-name@^7.16.7":
+ "integrity" "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@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@^7.16.7":
+ "integrity" "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-member-expression-literals@^7.16.7":
+ "integrity" "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-modules-amd@^7.16.7":
+ "integrity" "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@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@^7.16.8":
+ "integrity" "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz"
+ "version" "7.16.8"
+ dependencies:
+ "@babel/helper-module-transforms" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-simple-access" "^7.16.7"
+ "babel-plugin-dynamic-import-node" "^2.3.3"
+
+"@babel/plugin-transform-modules-systemjs@^7.16.7":
+ "integrity" "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.16.7"
+ "@babel/helper-module-transforms" "^7.16.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@^7.16.7":
+ "integrity" "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-module-transforms" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8":
+ "integrity" "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz"
+ "version" "7.16.8"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+
+"@babel/plugin-transform-new-target@^7.16.7":
+ "integrity" "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-object-super@^7.16.7":
+ "integrity" "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-replace-supers" "^7.16.7"
+
+"@babel/plugin-transform-parameters@^7.16.7":
+ "integrity" "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-property-literals@^7.16.7":
+ "integrity" "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.16.7":
+ "integrity" "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-react-jsx-development@^7.16.7":
+ "integrity" "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/plugin-transform-react-jsx" "^7.16.7"
+
+"@babel/plugin-transform-react-jsx-self@^7.16.7":
+ "integrity" "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-react-jsx-source@^7.16.7":
+ "integrity" "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz"
+ "version" "7.19.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.19.0"
+
+"@babel/plugin-transform-react-jsx@^7.14.9", "@babel/plugin-transform-react-jsx@^7.16.7", "@babel/plugin-transform-react-jsx@^7.17.3", "@babel/plugin-transform-react-jsx@^7.18.6":
+ "integrity" "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz"
+ "version" "7.19.0"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/plugin-syntax-jsx" "^7.18.6"
+ "@babel/types" "^7.19.0"
+
+"@babel/plugin-transform-react-pure-annotations@^7.16.7":
+ "integrity" "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-regenerator@^7.16.7":
+ "integrity" "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "regenerator-transform" "^0.14.2"
+
+"@babel/plugin-transform-reserved-words@^7.16.7":
+ "integrity" "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-runtime@^7.16.4":
+ "integrity" "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz"
+ "version" "7.17.0"
+ 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"
+
+"@babel/plugin-transform-shorthand-properties@^7.16.7":
+ "integrity" "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-spread@^7.16.7":
+ "integrity" "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+
+"@babel/plugin-transform-sticky-regex@^7.16.7":
+ "integrity" "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-template-literals@^7.16.7":
+ "integrity" "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-typeof-symbol@^7.16.7":
+ "integrity" "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-typescript@^7.16.7":
+ "integrity" "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz"
+ "version" "7.16.8"
+ dependencies:
+ "@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@^7.16.7":
+ "integrity" "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-unicode-regex@^7.16.7":
+ "integrity" "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.16.4":
+ "integrity" "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g=="
+ "resolved" "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz"
+ "version" "7.16.11"
+ 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"
+
+"@babel/preset-modules@^0.1.5":
+ "integrity" "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA=="
+ "resolved" "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz"
+ "version" "0.1.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
+ "@babel/plugin-transform-dotall-regex" "^7.4.4"
+ "@babel/types" "^7.4.4"
+ "esutils" "^2.0.2"
+
+"@babel/preset-react@^7.16.0":
+ "integrity" "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA=="
+ "resolved" "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz"
+ "version" "7.16.7"
+ 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"
+
+"@babel/preset-typescript@^7.16.0":
+ "integrity" "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ=="
+ "resolved" "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz"
+ "version" "7.16.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-validator-option" "^7.16.7"
+ "@babel/plugin-transform-typescript" "^7.16.7"
+
+"@babel/runtime-corejs3@^7.10.2":
+ "integrity" "sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg=="
+ "resolved" "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz"
+ "version" "7.17.2"
+ dependencies:
+ "core-js-pure" "^3.20.2"
+ "regenerator-runtime" "^0.13.4"
+
+"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.18.9", "@babel/runtime@^7.19.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
+ "integrity" "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg=="
+ "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz"
+ "version" "7.20.1"
+ dependencies:
+ "regenerator-runtime" "^0.13.10"
+
+"@babel/template@^7.16.7", "@babel/template@^7.18.10":
+ "integrity" "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA=="
+ "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz"
+ "version" "7.18.10"
+ dependencies:
+ "@babel/code-frame" "^7.18.6"
+ "@babel/parser" "^7.18.10"
+ "@babel/types" "^7.18.10"
+
+"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.20.1":
+ "integrity" "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA=="
+ "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz"
+ "version" "7.20.1"
+ dependencies:
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.20.1"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/parser" "^7.20.1"
+ "@babel/types" "^7.20.0"
+ "debug" "^4.1.0"
+ "globals" "^11.1.0"
+
+"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.4.4":
+ "integrity" "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog=="
+ "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz"
+ "version" "7.20.2"
+ dependencies:
+ "@babel/helper-string-parser" "^7.19.4"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ "to-fast-properties" "^2.0.0"
+
+"@date-io/core@^2.14.0", "@date-io/core@^2.16.0":
+ "integrity" "sha512-DYmSzkr+jToahwWrsiRA2/pzMEtz9Bq1euJwoOuYwuwIYXnZFtHajY2E6a1VNVDc9jP8YUXK1BvnZH9mmT19Zg=="
+ "resolved" "https://registry.npmjs.org/@date-io/core/-/core-2.16.0.tgz"
+ "version" "2.16.0"
+
+"@date-io/date-fns@^2.11.0", "@date-io/date-fns@^2.14.0":
+ "integrity" "sha512-bfm5FJjucqlrnQcXDVU5RD+nlGmL3iWgkHTq3uAZWVIuBu6dDmGa3m8a6zo2VQQpu8ambq9H22UyUpn7590joA=="
+ "resolved" "https://registry.npmjs.org/@date-io/date-fns/-/date-fns-2.16.0.tgz"
+ "version" "2.16.0"
+ dependencies:
+ "@date-io/core" "^2.16.0"
+
+"@date-io/dayjs@^2.11.0", "@date-io/dayjs@^2.14.0":
+ "integrity" "sha512-y5qKyX2j/HG3zMvIxTobYZRGnd1FUW2olZLS0vTj7bEkBQkjd2RO7/FEwDY03Z1geVGlXKnzIATEVBVaGzV4Iw=="
+ "resolved" "https://registry.npmjs.org/@date-io/dayjs/-/dayjs-2.16.0.tgz"
+ "version" "2.16.0"
+ dependencies:
+ "@date-io/core" "^2.16.0"
+
+"@date-io/luxon@^2.11.1", "@date-io/luxon@^2.14.0":
+ "integrity" "sha512-aeYp5K9PSHV28946pC+9UKUi/xMMYoaGelrpDibZSgHu2VWHXrr7zWLEr+pMPThSs5vt8Ei365PO+84pCm37WQ=="
+ "resolved" "https://registry.npmjs.org/@date-io/luxon/-/luxon-2.16.1.tgz"
+ "version" "2.16.1"
+ dependencies:
+ "@date-io/core" "^2.16.0"
+
+"@date-io/moment@^2.11.0", "@date-io/moment@^2.14.0":
+ "integrity" "sha512-JkxldQxUqZBfZtsaCcCMkm/dmytdyq5pS1RxshCQ4fHhsvP5A7gSqPD22QbVXMcJydi3d3v1Y8BQdUKEuGACZQ=="
+ "resolved" "https://registry.npmjs.org/@date-io/moment/-/moment-2.16.1.tgz"
+ "version" "2.16.1"
+ dependencies:
+ "@date-io/core" "^2.16.0"
+
+"@emotion/babel-plugin@^11.10.5":
+ "integrity" "sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA=="
+ "resolved" "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz"
+ "version" "11.10.5"
+ dependencies:
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/plugin-syntax-jsx" "^7.17.12"
+ "@babel/runtime" "^7.18.3"
+ "@emotion/hash" "^0.9.0"
+ "@emotion/memoize" "^0.8.0"
+ "@emotion/serialize" "^1.1.1"
+ "babel-plugin-macros" "^3.1.0"
+ "convert-source-map" "^1.5.0"
+ "escape-string-regexp" "^4.0.0"
+ "find-root" "^1.1.0"
+ "source-map" "^0.5.7"
+ "stylis" "4.1.3"
+
+"@emotion/cache@^11.10.3", "@emotion/cache@^11.10.5", "@emotion/cache@^11.9.3":
+ "integrity" "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA=="
+ "resolved" "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz"
+ "version" "11.10.5"
+ dependencies:
+ "@emotion/memoize" "^0.8.0"
+ "@emotion/sheet" "^1.2.1"
+ "@emotion/utils" "^1.2.0"
+ "@emotion/weak-memoize" "^0.3.0"
+ "stylis" "4.1.3"
+
+"@emotion/hash@^0.9.0":
+ "integrity" "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ=="
+ "resolved" "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz"
+ "version" "0.9.0"
+
+"@emotion/is-prop-valid@^0.8.2":
+ "integrity" "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA=="
+ "resolved" "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz"
+ "version" "0.8.8"
+ dependencies:
+ "@emotion/memoize" "0.7.4"
+
+"@emotion/is-prop-valid@^1.1.2", "@emotion/is-prop-valid@^1.2.0":
+ "integrity" "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg=="
+ "resolved" "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz"
+ "version" "1.2.0"
+ dependencies:
+ "@emotion/memoize" "^0.8.0"
+
+"@emotion/memoize@^0.8.0":
+ "integrity" "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA=="
+ "resolved" "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz"
+ "version" "0.8.0"
+
+"@emotion/memoize@0.7.4":
+ "integrity" "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw=="
+ "resolved" "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz"
+ "version" "0.7.4"
+
+"@emotion/react@^11.0.0-rc.0", "@emotion/react@^11.4.1", "@emotion/react@^11.5.0", "@emotion/react@^11.9.0", "@emotion/react@^11.9.3":
+ "integrity" "sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A=="
+ "resolved" "https://registry.npmjs.org/@emotion/react/-/react-11.10.5.tgz"
+ "version" "11.10.5"
+ dependencies:
+ "@babel/runtime" "^7.18.3"
+ "@emotion/babel-plugin" "^11.10.5"
+ "@emotion/cache" "^11.10.5"
+ "@emotion/serialize" "^1.1.1"
+ "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0"
+ "@emotion/utils" "^1.2.0"
+ "@emotion/weak-memoize" "^0.3.0"
+ "hoist-non-react-statics" "^3.3.1"
+
+"@emotion/serialize@^1.1.1":
+ "integrity" "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA=="
+ "resolved" "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz"
+ "version" "1.1.1"
+ dependencies:
+ "@emotion/hash" "^0.9.0"
+ "@emotion/memoize" "^0.8.0"
+ "@emotion/unitless" "^0.8.0"
+ "@emotion/utils" "^1.2.0"
+ "csstype" "^3.0.2"
+
+"@emotion/sheet@^1.2.1":
+ "integrity" "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA=="
+ "resolved" "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz"
+ "version" "1.2.1"
+
+"@emotion/styled@^11.3.0", "@emotion/styled@^11.8.1", "@emotion/styled@^11.9.3":
+ "integrity" "sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw=="
+ "resolved" "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.5.tgz"
+ "version" "11.10.5"
+ dependencies:
+ "@babel/runtime" "^7.18.3"
+ "@emotion/babel-plugin" "^11.10.5"
+ "@emotion/is-prop-valid" "^1.2.0"
+ "@emotion/serialize" "^1.1.1"
+ "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0"
+ "@emotion/utils" "^1.2.0"
+
+"@emotion/unitless@^0.8.0":
+ "integrity" "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw=="
+ "resolved" "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz"
+ "version" "0.8.0"
+
+"@emotion/use-insertion-effect-with-fallbacks@^1.0.0":
+ "integrity" "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A=="
+ "resolved" "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz"
+ "version" "1.0.0"
+
+"@emotion/utils@^1.2.0":
+ "integrity" "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw=="
+ "resolved" "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz"
+ "version" "1.2.0"
+
+"@emotion/weak-memoize@^0.3.0":
+ "integrity" "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg=="
+ "resolved" "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz"
+ "version" "0.3.0"
+
+"@eslint/eslintrc@^1.3.3":
+ "integrity" "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg=="
+ "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz"
+ "version" "1.3.3"
+ dependencies:
+ "ajv" "^6.12.4"
+ "debug" "^4.3.2"
+ "espree" "^9.4.0"
+ "globals" "^13.15.0"
+ "ignore" "^5.2.0"
+ "import-fresh" "^3.2.1"
+ "js-yaml" "^4.1.0"
+ "minimatch" "^3.1.2"
+ "strip-json-comments" "^3.1.1"
+
+"@hookform/resolvers@^2.9.6":
+ "integrity" "sha512-JIL1DgJIlH9yuxcNGtyhsWX/PgNltz+5Gr6+8SX9fhXc/hPbEIk6wPI82nhgvp3uUb6ZfAM5mqg/x7KR7NAb+A=="
+ "resolved" "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-2.9.10.tgz"
+ "version" "2.9.10"
+
+"@humanwhocodes/config-array@^0.11.6":
+ "integrity" "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw=="
+ "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz"
+ "version" "0.11.7"
+ dependencies:
+ "@humanwhocodes/object-schema" "^1.2.1"
+ "debug" "^4.1.1"
+ "minimatch" "^3.0.5"
+
+"@humanwhocodes/module-importer@^1.0.1":
+ "integrity" "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="
+ "resolved" "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz"
+ "version" "1.0.1"
+
+"@humanwhocodes/object-schema@^1.2.1":
+ "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
+ "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
+ "version" "1.2.1"
+
+"@iconify/react@^3.2.2":
+ "integrity" "sha512-z3+Jno3VcJzgNHsN5mEvYMsgCkOZkydqdIwOxjXh45+i2Vs9RGH68Y52vt39izwFSfuYUXhaW+1u7m7+IhCn/g=="
+ "resolved" "https://registry.npmjs.org/@iconify/react/-/react-3.2.2.tgz"
+ "version" "3.2.2"
+
+"@jridgewell/gen-mapping@^0.3.2":
+ "integrity" "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A=="
+ "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz"
+ "version" "0.3.2"
+ dependencies:
+ "@jridgewell/set-array" "^1.0.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+"@jridgewell/resolve-uri@3.1.0":
+ "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
+ "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz"
+ "version" "3.1.0"
+
+"@jridgewell/set-array@^1.0.1":
+ "integrity" "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
+ "resolved" "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz"
+ "version" "1.1.2"
+
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@1.4.14":
+ "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
+ "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
+ "version" "1.4.14"
+
+"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.9":
+ "integrity" "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g=="
+ "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz"
+ "version" "0.3.17"
+ dependencies:
+ "@jridgewell/resolve-uri" "3.1.0"
+ "@jridgewell/sourcemap-codec" "1.4.14"
+
+"@juggle/resize-observer@^3.3.1":
+ "integrity" "sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw=="
+ "resolved" "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.3.1.tgz"
+ "version" "3.3.1"
+
+"@motionone/animation@^10.12.0":
+ "integrity" "sha512-h+1sdyBP8vbxEBW5gPFDnj+m2DCqdlAuf2g6Iafb1lcMnqjsRXWlPw1AXgvUMXmreyhqmPbJqoNfIKdytampRQ=="
+ "resolved" "https://registry.npmjs.org/@motionone/animation/-/animation-10.14.0.tgz"
+ "version" "10.14.0"
+ dependencies:
+ "@motionone/easing" "^10.14.0"
+ "@motionone/types" "^10.14.0"
+ "@motionone/utils" "^10.14.0"
+ "tslib" "^2.3.1"
+
+"@motionone/dom@10.12.0":
+ "integrity" "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw=="
+ "resolved" "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz"
+ "version" "10.12.0"
+ dependencies:
+ "@motionone/animation" "^10.12.0"
+ "@motionone/generators" "^10.12.0"
+ "@motionone/types" "^10.12.0"
+ "@motionone/utils" "^10.12.0"
+ "hey-listen" "^1.0.8"
+ "tslib" "^2.3.1"
+
+"@motionone/easing@^10.14.0":
+ "integrity" "sha512-2vUBdH9uWTlRbuErhcsMmt1jvMTTqvGmn9fHq8FleFDXBlHFs5jZzHJT9iw+4kR1h6a4SZQuCf72b9ji92qNYA=="
+ "resolved" "https://registry.npmjs.org/@motionone/easing/-/easing-10.14.0.tgz"
+ "version" "10.14.0"
+ dependencies:
+ "@motionone/utils" "^10.14.0"
+ "tslib" "^2.3.1"
+
+"@motionone/generators@^10.12.0":
+ "integrity" "sha512-6kRHezoFfIjFN7pPpaxmkdZXD36tQNcyJe3nwVqwJ+ZfC0e3rFmszR8kp9DEVFs9QL/akWjuGPSLBI1tvz+Vjg=="
+ "resolved" "https://registry.npmjs.org/@motionone/generators/-/generators-10.14.0.tgz"
+ "version" "10.14.0"
+ dependencies:
+ "@motionone/types" "^10.14.0"
+ "@motionone/utils" "^10.14.0"
+ "tslib" "^2.3.1"
+
+"@motionone/types@^10.12.0", "@motionone/types@^10.14.0":
+ "integrity" "sha512-3bNWyYBHtVd27KncnJLhksMFQ5o2MSdk1cA/IZqsHtA9DnRM1SYgN01CTcJ8Iw8pCXF5Ocp34tyAjY7WRpOJJQ=="
+ "resolved" "https://registry.npmjs.org/@motionone/types/-/types-10.14.0.tgz"
+ "version" "10.14.0"
+
+"@motionone/utils@^10.12.0", "@motionone/utils@^10.14.0":
+ "integrity" "sha512-sLWBLPzRqkxmOTRzSaD3LFQXCPHvDzyHJ1a3VP9PRzBxyVd2pv51/gMOsdAcxQ9n+MIeGJnxzXBYplUHKj4jkw=="
+ "resolved" "https://registry.npmjs.org/@motionone/utils/-/utils-10.14.0.tgz"
+ "version" "10.14.0"
+ dependencies:
+ "@motionone/types" "^10.14.0"
+ "hey-listen" "^1.0.8"
+ "tslib" "^2.3.1"
+
+"@mui/base@5.0.0-alpha.105":
+ "integrity" "sha512-4IPBcJQIgVVXQvN6DQMoCHed52GBtwSqYs0jD0dDcMR3o76AodQtpEeWFz3p7mJoc6f/IHBl9U6jEfL1r/kM4g=="
+ "resolved" "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.105.tgz"
+ "version" "5.0.0-alpha.105"
+ dependencies:
+ "@babel/runtime" "^7.19.0"
+ "@emotion/is-prop-valid" "^1.2.0"
+ "@mui/types" "^7.2.0"
+ "@mui/utils" "^5.10.9"
+ "@popperjs/core" "^2.11.6"
+ "clsx" "^1.2.1"
+ "prop-types" "^15.8.1"
+ "react-is" "^18.2.0"
+
+"@mui/base@5.0.0-alpha.79":
+ "integrity" "sha512-/lZLF027BkiEjM8MIYoeS/FEhTKf+41ePU9SOijMGrCin1Y0Igucw+IHa1fF8HXD7wDbFKqHuso3J1jMG8wyNw=="
+ "resolved" "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.79.tgz"
+ "version" "5.0.0-alpha.79"
+ dependencies:
+ "@babel/runtime" "^7.17.2"
+ "@emotion/is-prop-valid" "^1.1.2"
+ "@mui/types" "^7.1.3"
+ "@mui/utils" "^5.6.1"
+ "@popperjs/core" "^2.11.5"
+ "clsx" "^1.1.1"
+ "prop-types" "^15.7.2"
+ "react-is" "^17.0.2"
+
+"@mui/core-downloads-tracker@^5.10.13":
+ "integrity" "sha512-zWkWPV/SaNdsIdxAWiuVGZ+Ue3BkfSIlU/BFIrJmuUcwiIa7gQsbI/DOpj1KzLvqZhdEe2wC1aG4nCHfzgc1Hg=="
+ "resolved" "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.13.tgz"
+ "version" "5.10.13"
+
+"@mui/icons-material@^5.8.4":
+ "integrity" "sha512-sqClXdEM39WKQJOQ0ZCPTptaZgqwibhj2EFV9N0v7BU1PO8y4OcX/a2wIQHn4fNuDjIZktJIBrmU23h7aqlGgg=="
+ "resolved" "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.9.tgz"
+ "version" "5.10.9"
+ dependencies:
+ "@babel/runtime" "^7.19.0"
+
+"@mui/lab@5.0.0-alpha.80":
+ "integrity" "sha512-td5Ak0Hx+EzVN9MJqBlZJ6BKFGjTrHyNjXncjSHTvp8Z9p157AlOA/Sf7r+RyqyVzOzBfv4S37i9ShFTzSK61Q=="
+ "resolved" "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.80.tgz"
+ "version" "5.0.0-alpha.80"
+ dependencies:
+ "@babel/runtime" "^7.17.2"
+ "@mui/base" "5.0.0-alpha.79"
+ "@mui/system" "^5.6.4"
+ "@mui/utils" "^5.6.1"
+ "@mui/x-date-pickers" "5.0.0-alpha.0"
+ "clsx" "^1.1.1"
+ "prop-types" "^15.7.2"
+ "react-is" "^17.0.2"
+ "react-transition-group" "^4.4.2"
+ "rifm" "^0.12.1"
+
+"@mui/material@^5.0.0", "@mui/material@^5.2.3", "@mui/material@^5.4.1", "@mui/material@^5.9.1":
+ "integrity" "sha512-TkkT1rNc0/hhL4/+zv4gYcA6egNWBH/1Tz+azoTnQIUdZ32fgwFI2pFX2KVJNTt30xnLznxDWtTv7ilmJQ52xw=="
+ "resolved" "https://registry.npmjs.org/@mui/material/-/material-5.10.13.tgz"
+ "version" "5.10.13"
+ dependencies:
+ "@babel/runtime" "^7.19.0"
+ "@mui/base" "5.0.0-alpha.105"
+ "@mui/core-downloads-tracker" "^5.10.13"
+ "@mui/system" "^5.10.13"
+ "@mui/types" "^7.2.0"
+ "@mui/utils" "^5.10.9"
+ "@types/react-transition-group" "^4.4.5"
+ "clsx" "^1.2.1"
+ "csstype" "^3.1.1"
+ "prop-types" "^15.8.1"
+ "react-is" "^18.2.0"
+ "react-transition-group" "^4.4.5"
+
+"@mui/private-theming@^5.10.9":
+ "integrity" "sha512-BN7/CnsVPVyBaQpDTij4uV2xGYHHHhOgpdxeYLlIu+TqnsVM7wUeF+37kXvHovxM6xmL5qoaVUD98gDC0IZnHg=="
+ "resolved" "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.9.tgz"
+ "version" "5.10.9"
+ dependencies:
+ "@babel/runtime" "^7.19.0"
+ "@mui/utils" "^5.10.9"
+ "prop-types" "^15.8.1"
+
+"@mui/styled-engine@^5.10.8":
+ "integrity" "sha512-w+y8WI18EJV6zM/q41ug19cE70JTeO6sWFsQ7tgePQFpy6ToCVPh0YLrtqxUZXSoMStW5FMw0t9fHTFAqPbngw=="
+ "resolved" "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.8.tgz"
+ "version" "5.10.8"
+ dependencies:
+ "@babel/runtime" "^7.19.0"
+ "@emotion/cache" "^11.10.3"
+ "csstype" "^3.1.1"
+ "prop-types" "^15.8.1"
+
+"@mui/system@^5.10.13", "@mui/system@^5.2.3", "@mui/system@^5.4.1", "@mui/system@^5.6.4", "@mui/system@^5.9.1":
+ "integrity" "sha512-Xzx26Asu5fVlm0ucm+gnJmeX4Y1isrpVDvqxX4yJaOT7Fzmd8Lfq9ih3QMfZajns5LMtUiOuCQlVFRtUG5IY7A=="
+ "resolved" "https://registry.npmjs.org/@mui/system/-/system-5.10.13.tgz"
+ "version" "5.10.13"
+ dependencies:
+ "@babel/runtime" "^7.19.0"
+ "@mui/private-theming" "^5.10.9"
+ "@mui/styled-engine" "^5.10.8"
+ "@mui/types" "^7.2.0"
+ "@mui/utils" "^5.10.9"
+ "clsx" "^1.2.1"
+ "csstype" "^3.1.1"
+ "prop-types" "^15.8.1"
+
+"@mui/types@^7.1.3", "@mui/types@^7.2.0":
+ "integrity" "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA=="
+ "resolved" "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz"
+ "version" "7.2.0"
+
+"@mui/utils@^5.10.3", "@mui/utils@^5.10.9", "@mui/utils@^5.2.3", "@mui/utils@^5.4.1", "@mui/utils@^5.6.1":
+ "integrity" "sha512-2tdHWrq3+WCy+G6TIIaFx3cg7PorXZ71P375ExuX61od1NOAJP1mK90VxQ8N4aqnj2vmO3AQDkV4oV2Ktvt4bA=="
+ "resolved" "https://registry.npmjs.org/@mui/utils/-/utils-5.10.9.tgz"
+ "version" "5.10.9"
+ dependencies:
+ "@babel/runtime" "^7.19.0"
+ "@types/prop-types" "^15.7.5"
+ "@types/react-is" "^16.7.1 || ^17.0.0"
+ "prop-types" "^15.8.1"
+ "react-is" "^18.2.0"
+
+"@mui/x-data-grid@^5.14.0":
+ "integrity" "sha512-x0987WrcfuMUZpAGOl3a/Qh5ctDHyLDII1zNpm1zfAw1CgqaPTtwebUvGhtl0XguiKJuNW26kayqixjRcyaFJQ=="
+ "resolved" "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-5.17.10.tgz"
+ "version" "5.17.10"
+ dependencies:
+ "@babel/runtime" "^7.18.9"
+ "@mui/utils" "^5.10.3"
+ "clsx" "^1.2.1"
+ "prop-types" "^15.8.1"
+ "reselect" "^4.1.6"
+
+"@mui/x-date-pickers@5.0.0-alpha.0":
+ "integrity" "sha512-JTzTaNSWbxNi8KDUJjHCH6im0YlIEv88gPoKhGm7s6xCGT1q6FtMp/oQ40nhfwrJ73nkM5G1JXRIzI/yfsHXQQ=="
+ "resolved" "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-5.0.0-alpha.0.tgz"
+ "version" "5.0.0-alpha.0"
+ dependencies:
+ "@date-io/date-fns" "^2.11.0"
+ "@date-io/dayjs" "^2.11.0"
+ "@date-io/luxon" "^2.11.1"
+ "@date-io/moment" "^2.11.0"
+ "@mui/utils" "^5.2.3"
+ "clsx" "^1.1.1"
+ "prop-types" "^15.7.2"
+ "react-transition-group" "^4.4.2"
+ "rifm" "^0.12.1"
+
+"@mui/x-date-pickers@5.0.0-beta.2":
+ "integrity" "sha512-UEXQ2tmhosklAQwOUtwQBI2WngSdp5Q8vYqsmvxNJxuXYuM/DawdQBwyfFyK7jx5wf/RTsniG1e12hqii3wPYg=="
+ "resolved" "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-5.0.0-beta.2.tgz"
+ "version" "5.0.0-beta.2"
+ dependencies:
+ "@babel/runtime" "^7.18.6"
+ "@date-io/core" "^2.14.0"
+ "@date-io/date-fns" "^2.14.0"
+ "@date-io/dayjs" "^2.14.0"
+ "@date-io/luxon" "^2.14.0"
+ "@date-io/moment" "^2.14.0"
+ "@mui/utils" "^5.4.1"
+ "@types/react-transition-group" "^4.4.5"
+ "clsx" "^1.2.1"
+ "prop-types" "^15.7.2"
+ "react-transition-group" "^4.4.2"
+ "rifm" "^0.12.1"
+
+"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1":
+ "integrity" "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg=="
+ "resolved" "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz"
+ "version" "5.1.1-v1"
+ dependencies:
+ "eslint-scope" "5.1.1"
+
+"@nodelib/fs.scandir@2.1.5":
+ "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="
+ "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
+ "version" "2.1.5"
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
+ "run-parallel" "^1.1.9"
+
+"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
+ "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
+ "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
+ "version" "2.0.5"
+
+"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
+ "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="
+ "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
+ "version" "1.2.8"
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.5"
+ "fastq" "^1.6.0"
+
+"@popperjs/core@^2.11.5", "@popperjs/core@^2.11.6":
+ "integrity" "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw=="
+ "resolved" "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz"
+ "version" "2.11.6"
+
+"@remix-run/router@1.0.3":
+ "integrity" "sha512-ceuyTSs7PZ/tQqi19YZNBc5X7kj1f8p+4DIyrcIYFY9h+hd1OKm4RqtiWldR9eGEvIiJfsqwM4BsuCtRIuEw6Q=="
+ "resolved" "https://registry.npmjs.org/@remix-run/router/-/router-1.0.3.tgz"
+ "version" "1.0.3"
+
+"@rollup/plugin-babel@^5.2.0":
+ "integrity" "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q=="
+ "resolved" "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz"
+ "version" "5.3.1"
+ dependencies:
+ "@babel/helper-module-imports" "^7.10.4"
+ "@rollup/pluginutils" "^3.1.0"
+
+"@rollup/plugin-node-resolve@^11.2.1":
+ "integrity" "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg=="
+ "resolved" "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz"
+ "version" "11.2.1"
+ 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"
+
+"@rollup/plugin-replace@^2.4.1":
+ "integrity" "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg=="
+ "resolved" "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz"
+ "version" "2.4.2"
+ dependencies:
+ "@rollup/pluginutils" "^3.1.0"
+ "magic-string" "^0.25.7"
+
+"@rollup/pluginutils@^3.1.0":
+ "integrity" "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg=="
+ "resolved" "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz"
+ "version" "3.1.0"
+ dependencies:
+ "@types/estree" "0.0.39"
+ "estree-walker" "^1.0.1"
+ "picomatch" "^2.2.2"
+
+"@rollup/pluginutils@^4.2.1":
+ "integrity" "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ=="
+ "resolved" "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz"
+ "version" "4.2.1"
+ dependencies:
+ "estree-walker" "^2.0.1"
+ "picomatch" "^2.2.2"
+
+"@rollup/pluginutils@^5.0.0":
+ "integrity" "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA=="
+ "resolved" "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz"
+ "version" "5.0.2"
+ dependencies:
+ "@types/estree" "^1.0.0"
+ "estree-walker" "^2.0.2"
+ "picomatch" "^2.3.1"
+
+"@rushstack/eslint-patch@^1.1.0":
+ "integrity" "sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A=="
+ "resolved" "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz"
+ "version" "1.1.0"
+
+"@surma/rollup-plugin-off-main-thread@^2.2.3":
+ "integrity" "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ=="
+ "resolved" "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz"
+ "version" "2.2.3"
+ dependencies:
+ "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@^6.5.1":
+ "integrity" "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ=="
+ "resolved" "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz"
+ "version" "6.5.1"
+
+"@svgr/babel-plugin-remove-jsx-attribute@*":
+ "integrity" "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg=="
+ "resolved" "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz"
+ "version" "5.4.0"
+
+"@svgr/babel-plugin-remove-jsx-empty-expression@*":
+ "integrity" "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA=="
+ "resolved" "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz"
+ "version" "5.0.1"
+
+"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.1":
+ "integrity" "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg=="
+ "resolved" "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz"
+ "version" "6.5.1"
+
+"@svgr/babel-plugin-svg-dynamic-title@^6.5.1":
+ "integrity" "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw=="
+ "resolved" "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz"
+ "version" "6.5.1"
+
+"@svgr/babel-plugin-svg-em-dimensions@^6.5.1":
+ "integrity" "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA=="
+ "resolved" "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz"
+ "version" "6.5.1"
+
+"@svgr/babel-plugin-transform-react-native-svg@^6.5.1":
+ "integrity" "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg=="
+ "resolved" "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz"
+ "version" "6.5.1"
+
+"@svgr/babel-plugin-transform-svg-component@^6.5.1":
+ "integrity" "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ=="
+ "resolved" "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz"
+ "version" "6.5.1"
+
+"@svgr/babel-preset@^6.5.1":
+ "integrity" "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw=="
+ "resolved" "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz"
+ "version" "6.5.1"
+ dependencies:
+ "@svgr/babel-plugin-add-jsx-attribute" "^6.5.1"
+ "@svgr/babel-plugin-remove-jsx-attribute" "*"
+ "@svgr/babel-plugin-remove-jsx-empty-expression" "*"
+ "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.1"
+ "@svgr/babel-plugin-svg-dynamic-title" "^6.5.1"
+ "@svgr/babel-plugin-svg-em-dimensions" "^6.5.1"
+ "@svgr/babel-plugin-transform-react-native-svg" "^6.5.1"
+ "@svgr/babel-plugin-transform-svg-component" "^6.5.1"
+
+"@svgr/core@^6.0.0", "@svgr/core@^6.4.0":
+ "integrity" "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw=="
+ "resolved" "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz"
+ "version" "6.5.1"
+ dependencies:
+ "@babel/core" "^7.19.6"
+ "@svgr/babel-preset" "^6.5.1"
+ "@svgr/plugin-jsx" "^6.5.1"
+ "camelcase" "^6.2.0"
+ "cosmiconfig" "^7.0.1"
+
+"@svgr/hast-util-to-babel-ast@^6.5.1":
+ "integrity" "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw=="
+ "resolved" "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz"
+ "version" "6.5.1"
+ dependencies:
+ "@babel/types" "^7.20.0"
+ "entities" "^4.4.0"
+
+"@svgr/plugin-jsx@^6.5.1":
+ "integrity" "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw=="
+ "resolved" "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz"
+ "version" "6.5.1"
+ dependencies:
+ "@babel/core" "^7.19.6"
+ "@svgr/babel-preset" "^6.5.1"
+ "@svgr/hast-util-to-babel-ast" "^6.5.1"
+ "svg-parser" "^2.0.4"
+
+"@types/babel__core@^7.1.9":
+ "integrity" "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ=="
+ "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz"
+ "version" "7.1.18"
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+"@types/babel__generator@*":
+ "integrity" "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg=="
+ "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz"
+ "version" "7.6.4"
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+"@types/babel__template@*":
+ "integrity" "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g=="
+ "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz"
+ "version" "7.4.1"
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+"@types/babel__traverse@*":
+ "integrity" "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA=="
+ "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz"
+ "version" "7.14.2"
+ dependencies:
+ "@babel/types" "^7.3.0"
+
+"@types/estree@^1.0.0":
+ "integrity" "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ=="
+ "resolved" "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz"
+ "version" "1.0.0"
+
+"@types/estree@0.0.39":
+ "integrity" "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="
+ "resolved" "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz"
+ "version" "0.0.39"
+
+"@types/json-schema@^7.0.9":
+ "integrity" "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ=="
+ "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz"
+ "version" "7.0.9"
+
+"@types/json5@^0.0.29":
+ "integrity" "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
+ "resolved" "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"
+ "version" "0.0.29"
+
+"@types/lodash@^4.14.175", "@types/lodash@^4.14.182":
+ "integrity" "sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w=="
+ "resolved" "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.188.tgz"
+ "version" "4.14.188"
+
+"@types/node@*", "@types/node@>= 14":
+ "integrity" "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ=="
+ "resolved" "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz"
+ "version" "17.0.21"
+
+"@types/nprogress@^0.2.0":
+ "integrity" "sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A=="
+ "resolved" "https://registry.npmjs.org/@types/nprogress/-/nprogress-0.2.0.tgz"
+ "version" "0.2.0"
+
+"@types/parse-json@^4.0.0":
+ "integrity" "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
+ "resolved" "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"
+ "version" "4.0.0"
+
+"@types/prop-types@*", "@types/prop-types@^15.7.5":
+ "integrity" "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz"
+ "version" "15.7.5"
+
+"@types/quill@^1.3.10":
+ "integrity" "sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw=="
+ "resolved" "https://registry.npmjs.org/@types/quill/-/quill-1.3.10.tgz"
+ "version" "1.3.10"
+ dependencies:
+ "parchment" "^1.1.2"
+
+"@types/react-dom@^17.0.17":
+ "integrity" "sha512-rLVtIfbwyur2iFKykP2w0pl/1unw26b5td16d5xMgp7/yjTHomkyxPYChFoCr/FtEX1lN9wY6lFj1qvKdS5kDw=="
+ "resolved" "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.18.tgz"
+ "version" "17.0.18"
+ dependencies:
+ "@types/react" "^17"
+
+"@types/react-is@^16.7.1 || ^17.0.0":
+ "integrity" "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw=="
+ "resolved" "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz"
+ "version" "17.0.3"
+ dependencies:
+ "@types/react" "*"
+
+"@types/react-lazy-load-image-component@^1.5.2":
+ "integrity" "sha512-4NLJsMJVrMv18FuMIkUUBVj/PH9A+BvLKrZC75EWiEFn1IsMrZHgL1tVKw5QBfoa0Qjz6SkWIzEvwcyZ8PgnIg=="
+ "resolved" "https://registry.npmjs.org/@types/react-lazy-load-image-component/-/react-lazy-load-image-component-1.5.2.tgz"
+ "version" "1.5.2"
+ dependencies:
+ "@types/react" "*"
+ "csstype" "^3.0.2"
+
+"@types/react-transition-group@^4.4.5":
+ "integrity" "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA=="
+ "resolved" "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz"
+ "version" "4.4.5"
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*", "@types/react@^17", "@types/react@^17.0.0 || ^18.0.0", "@types/react@^17.0.47":
+ "integrity" "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A=="
+ "resolved" "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz"
+ "version" "17.0.52"
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ "csstype" "^3.0.2"
+
+"@types/resolve@1.17.1":
+ "integrity" "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw=="
+ "resolved" "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz"
+ "version" "1.17.1"
+ dependencies:
+ "@types/node" "*"
+
+"@types/scheduler@*":
+ "integrity" "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
+ "resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz"
+ "version" "0.16.2"
+
+"@types/semver@^7.3.12":
+ "integrity" "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw=="
+ "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz"
+ "version" "7.3.13"
+
+"@types/stylis@^4.0.2":
+ "integrity" "sha512-wtckGuk1eXUlUz0Qb1eXHG37Z7HWT2GfMdqRf8F/ifddTwadSS9Jwsqi4qtXk7cP7MtoyGVIHPElFCLc6HItbg=="
+ "resolved" "https://registry.npmjs.org/@types/stylis/-/stylis-4.0.2.tgz"
+ "version" "4.0.2"
+
+"@types/trusted-types@^2.0.2":
+ "integrity" "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg=="
+ "resolved" "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz"
+ "version" "2.0.2"
+
+"@typescript-eslint/eslint-plugin@^4.0.0 || ^5.0.0", "@typescript-eslint/eslint-plugin@^5.0.0", "@typescript-eslint/eslint-plugin@^5.30.7", "@typescript-eslint/eslint-plugin@^5.5.0":
+ "integrity" "sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.42.1.tgz"
+ "version" "5.42.1"
+ dependencies:
+ "@typescript-eslint/scope-manager" "5.42.1"
+ "@typescript-eslint/type-utils" "5.42.1"
+ "@typescript-eslint/utils" "5.42.1"
+ "debug" "^4.3.4"
+ "ignore" "^5.2.0"
+ "natural-compare-lite" "^1.4.0"
+ "regexpp" "^3.2.0"
+ "semver" "^7.3.7"
+ "tsutils" "^3.21.0"
+
+"@typescript-eslint/experimental-utils@^5.0.0":
+ "integrity" "sha512-4bEa8WrS5DdzJq43smPH12ys4AOoCxVu2xjYGXQR4DnNyM8pqNzCr28zodf38Jc4bxWdniSEKKC1bQaccXGq5Q=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.12.1.tgz"
+ "version" "5.12.1"
+ dependencies:
+ "@typescript-eslint/utils" "5.12.1"
+
+"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.30.7", "@typescript-eslint/parser@^5.5.0":
+ "integrity" "sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.42.1.tgz"
+ "version" "5.42.1"
+ dependencies:
+ "@typescript-eslint/scope-manager" "5.42.1"
+ "@typescript-eslint/types" "5.42.1"
+ "@typescript-eslint/typescript-estree" "5.42.1"
+ "debug" "^4.3.4"
+
+"@typescript-eslint/scope-manager@5.12.1":
+ "integrity" "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz"
+ "version" "5.12.1"
+ dependencies:
+ "@typescript-eslint/types" "5.12.1"
+ "@typescript-eslint/visitor-keys" "5.12.1"
+
+"@typescript-eslint/scope-manager@5.42.1":
+ "integrity" "sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.1.tgz"
+ "version" "5.42.1"
+ dependencies:
+ "@typescript-eslint/types" "5.42.1"
+ "@typescript-eslint/visitor-keys" "5.42.1"
+
+"@typescript-eslint/type-utils@5.42.1":
+ "integrity" "sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.42.1.tgz"
+ "version" "5.42.1"
+ dependencies:
+ "@typescript-eslint/typescript-estree" "5.42.1"
+ "@typescript-eslint/utils" "5.42.1"
+ "debug" "^4.3.4"
+ "tsutils" "^3.21.0"
+
+"@typescript-eslint/types@5.12.1":
+ "integrity" "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz"
+ "version" "5.12.1"
+
+"@typescript-eslint/types@5.42.1":
+ "integrity" "sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.1.tgz"
+ "version" "5.42.1"
+
+"@typescript-eslint/typescript-estree@5.12.1":
+ "integrity" "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz"
+ "version" "5.12.1"
+ dependencies:
+ "@typescript-eslint/types" "5.12.1"
+ "@typescript-eslint/visitor-keys" "5.12.1"
+ "debug" "^4.3.2"
+ "globby" "^11.0.4"
+ "is-glob" "^4.0.3"
+ "semver" "^7.3.5"
+ "tsutils" "^3.21.0"
+
+"@typescript-eslint/typescript-estree@5.42.1":
+ "integrity" "sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.1.tgz"
+ "version" "5.42.1"
+ dependencies:
+ "@typescript-eslint/types" "5.42.1"
+ "@typescript-eslint/visitor-keys" "5.42.1"
+ "debug" "^4.3.4"
+ "globby" "^11.1.0"
+ "is-glob" "^4.0.3"
+ "semver" "^7.3.7"
+ "tsutils" "^3.21.0"
+
+"@typescript-eslint/utils@^5.10.2", "@typescript-eslint/utils@5.12.1":
+ "integrity" "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz"
+ "version" "5.12.1"
+ dependencies:
+ "@types/json-schema" "^7.0.9"
+ "@typescript-eslint/scope-manager" "5.12.1"
+ "@typescript-eslint/types" "5.12.1"
+ "@typescript-eslint/typescript-estree" "5.12.1"
+ "eslint-scope" "^5.1.1"
+ "eslint-utils" "^3.0.0"
+
+"@typescript-eslint/utils@5.42.1":
+ "integrity" "sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.42.1.tgz"
+ "version" "5.42.1"
+ dependencies:
+ "@types/json-schema" "^7.0.9"
+ "@types/semver" "^7.3.12"
+ "@typescript-eslint/scope-manager" "5.42.1"
+ "@typescript-eslint/types" "5.42.1"
+ "@typescript-eslint/typescript-estree" "5.42.1"
+ "eslint-scope" "^5.1.1"
+ "eslint-utils" "^3.0.0"
+ "semver" "^7.3.7"
+
+"@typescript-eslint/visitor-keys@5.12.1":
+ "integrity" "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz"
+ "version" "5.12.1"
+ dependencies:
+ "@typescript-eslint/types" "5.12.1"
+ "eslint-visitor-keys" "^3.0.0"
+
+"@typescript-eslint/visitor-keys@5.42.1":
+ "integrity" "sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.1.tgz"
+ "version" "5.42.1"
+ dependencies:
+ "@typescript-eslint/types" "5.42.1"
+ "eslint-visitor-keys" "^3.3.0"
+
+"@vitejs/plugin-react@^1.3.2":
+ "integrity" "sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA=="
+ "resolved" "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz"
+ "version" "1.3.2"
+ dependencies:
+ "@babel/core" "^7.17.10"
+ "@babel/plugin-transform-react-jsx" "^7.17.3"
+ "@babel/plugin-transform-react-jsx-development" "^7.16.7"
+ "@babel/plugin-transform-react-jsx-self" "^7.16.7"
+ "@babel/plugin-transform-react-jsx-source" "^7.16.7"
+ "@rollup/pluginutils" "^4.2.1"
+ "react-refresh" "^0.13.0"
+ "resolve" "^1.22.0"
+
+"acorn-jsx@^5.3.2":
+ "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
+ "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
+ "version" "5.3.2"
+
+"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8.5.0", "acorn@^8.8.0":
+ "integrity" "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA=="
+ "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz"
+ "version" "8.8.1"
+
+"ajv@^6.10.0", "ajv@^6.12.4", "ajv@>=8":
+ "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="
+ "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
+ "version" "6.12.6"
+ dependencies:
+ "fast-deep-equal" "^3.1.1"
+ "fast-json-stable-stringify" "^2.0.0"
+ "json-schema-traverse" "^0.4.1"
+ "uri-js" "^4.2.2"
+
+"ajv@^8.6.0":
+ "integrity" "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg=="
+ "resolved" "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz"
+ "version" "8.11.0"
+ dependencies:
+ "fast-deep-equal" "^3.1.1"
+ "json-schema-traverse" "^1.0.0"
+ "require-from-string" "^2.0.2"
+ "uri-js" "^4.2.2"
+
+"ansi-regex@^5.0.1":
+ "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
+ "version" "5.0.1"
+
+"ansi-styles@^3.2.1":
+ "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
+ "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
+ "version" "3.2.1"
+ dependencies:
+ "color-convert" "^1.9.0"
+
+"ansi-styles@^4.1.0":
+ "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="
+ "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
+ "version" "4.3.0"
+ dependencies:
+ "color-convert" "^2.0.1"
+
+"apexcharts@^3.18.0", "apexcharts@^3.35.5":
+ "integrity" "sha512-8/FXEs0ohXMff07Gv28XjhPwEJphIUdq2/wii/pcvi54Tw6z1mjrV8ydN8rlWi/ve8BAPBefJkLmRWv7UOBsLw=="
+ "resolved" "https://registry.npmjs.org/apexcharts/-/apexcharts-3.36.3.tgz"
+ "version" "3.36.3"
+ 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"
+
+"argparse@^2.0.1":
+ "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
+ "version" "2.0.1"
+
+"aria-query@^4.2.2":
+ "integrity" "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA=="
+ "resolved" "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz"
+ "version" "4.2.2"
+ dependencies:
+ "@babel/runtime" "^7.10.2"
+ "@babel/runtime-corejs3" "^7.10.2"
+
+"array-includes@^3.1.3", "array-includes@^3.1.4", "array-includes@^3.1.5":
+ "integrity" "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw=="
+ "resolved" "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz"
+ "version" "3.1.6"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+ "get-intrinsic" "^1.1.3"
+ "is-string" "^1.0.7"
+
+"array-union@^2.1.0":
+ "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
+ "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
+ "version" "2.1.0"
+
+"array.prototype.flat@^1.2.5":
+ "integrity" "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg=="
+ "resolved" "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz"
+ "version" "1.2.5"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.3"
+ "es-abstract" "^1.19.0"
+
+"array.prototype.flatmap@^1.3.0":
+ "integrity" "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ=="
+ "resolved" "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz"
+ "version" "1.3.1"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+ "es-shim-unscopables" "^1.0.0"
+
+"ast-types-flow@^0.0.7":
+ "integrity" "sha1-9wtzXGvKGlycItmCw+Oef+ujva0="
+ "resolved" "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz"
+ "version" "0.0.7"
+
+"async@0.9.x":
+ "integrity" "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
+ "resolved" "https://registry.npmjs.org/async/-/async-0.9.2.tgz"
+ "version" "0.9.2"
+
+"asynckit@^0.4.0":
+ "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
+ "version" "0.4.0"
+
+"at-least-node@^1.0.0":
+ "integrity" "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
+ "resolved" "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz"
+ "version" "1.0.0"
+
+"attr-accept@^2.2.2":
+ "integrity" "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg=="
+ "resolved" "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz"
+ "version" "2.2.2"
+
+"axe-core@^4.3.5":
+ "integrity" "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw=="
+ "resolved" "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz"
+ "version" "4.4.1"
+
+"axios@^0.27.2":
+ "integrity" "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ=="
+ "resolved" "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz"
+ "version" "0.27.2"
+ dependencies:
+ "follow-redirects" "^1.14.9"
+ "form-data" "^4.0.0"
+
+"axobject-query@^2.2.0":
+ "integrity" "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA=="
+ "resolved" "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz"
+ "version" "2.2.0"
+
+"babel-plugin-dynamic-import-node@^2.3.3":
+ "integrity" "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz"
+ "version" "2.3.3"
+ dependencies:
+ "object.assign" "^4.1.0"
+
+"babel-plugin-macros@^3.1.0":
+ "integrity" "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz"
+ "version" "3.1.0"
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ "cosmiconfig" "^7.0.0"
+ "resolve" "^1.19.0"
+
+"babel-plugin-polyfill-corejs2@^0.3.0":
+ "integrity" "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz"
+ "version" "0.3.1"
+ dependencies:
+ "@babel/compat-data" "^7.13.11"
+ "@babel/helper-define-polyfill-provider" "^0.3.1"
+ "semver" "^6.1.1"
+
+"babel-plugin-polyfill-corejs3@^0.5.0":
+ "integrity" "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz"
+ "version" "0.5.2"
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.1"
+ "core-js-compat" "^3.21.0"
+
+"babel-plugin-polyfill-regenerator@^0.3.0":
+ "integrity" "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz"
+ "version" "0.3.1"
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.1"
+
+"babel-plugin-transform-react-remove-prop-types@^0.4.24":
+ "integrity" "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz"
+ "version" "0.4.24"
+
+"babel-preset-react-app@^10.0.1":
+ "integrity" "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg=="
+ "resolved" "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz"
+ "version" "10.0.1"
+ 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"
+
+"balanced-match@^1.0.0":
+ "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
+ "version" "1.0.2"
+
+"brace-expansion@^1.1.7":
+ "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
+ "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
+ "version" "1.1.11"
+ dependencies:
+ "balanced-match" "^1.0.0"
+ "concat-map" "0.0.1"
+
+"braces@^3.0.1":
+ "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A=="
+ "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
+ "version" "3.0.2"
+ dependencies:
+ "fill-range" "^7.0.1"
+
+"browserslist@^4.19.1", "browserslist@^4.21.3", "browserslist@>= 4.21.0":
+ "integrity" "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw=="
+ "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz"
+ "version" "4.21.4"
+ dependencies:
+ "caniuse-lite" "^1.0.30001400"
+ "electron-to-chromium" "^1.4.251"
+ "node-releases" "^2.0.6"
+ "update-browserslist-db" "^1.0.9"
+
+"buffer-from@^1.0.0":
+ "integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
+ "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"
+ "version" "1.1.2"
+
+"builtin-modules@^3.1.0":
+ "integrity" "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA=="
+ "resolved" "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz"
+ "version" "3.2.0"
+
+"call-bind@^1.0.0", "call-bind@^1.0.2":
+ "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="
+ "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "function-bind" "^1.1.1"
+ "get-intrinsic" "^1.0.2"
+
+"callsites@^3.0.0":
+ "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+ "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
+ "version" "3.1.0"
+
+"camel-case@^4.1.2":
+ "integrity" "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw=="
+ "resolved" "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz"
+ "version" "4.1.2"
+ dependencies:
+ "pascal-case" "^3.1.2"
+ "tslib" "^2.0.3"
+
+"camelcase@^6.2.0":
+ "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
+ "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
+ "version" "6.3.0"
+
+"can-use-dom@^0.1.0":
+ "integrity" "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo="
+ "resolved" "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz"
+ "version" "0.1.0"
+
+"caniuse-lite@^1.0.30001400":
+ "integrity" "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ=="
+ "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz"
+ "version" "1.0.30001431"
+
+"capital-case@^1.0.4":
+ "integrity" "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A=="
+ "resolved" "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz"
+ "version" "1.0.4"
+ dependencies:
+ "no-case" "^3.0.4"
+ "tslib" "^2.0.3"
+ "upper-case-first" "^2.0.2"
+
+"chalk@^2.0.0", "chalk@^2.4.2":
+ "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="
+ "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
+ "version" "2.4.2"
+ dependencies:
+ "ansi-styles" "^3.2.1"
+ "escape-string-regexp" "^1.0.5"
+ "supports-color" "^5.3.0"
+
+"chalk@^4.0.0":
+ "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="
+ "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
+ "version" "4.1.2"
+ dependencies:
+ "ansi-styles" "^4.1.0"
+ "supports-color" "^7.1.0"
+
+"change-case@^4.1.2":
+ "integrity" "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A=="
+ "resolved" "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz"
+ "version" "4.1.2"
+ dependencies:
+ "camel-case" "^4.1.2"
+ "capital-case" "^1.0.4"
+ "constant-case" "^3.0.4"
+ "dot-case" "^3.0.4"
+ "header-case" "^2.0.4"
+ "no-case" "^3.0.4"
+ "param-case" "^3.0.4"
+ "pascal-case" "^3.1.2"
+ "path-case" "^3.0.4"
+ "sentence-case" "^3.0.4"
+ "snake-case" "^3.0.4"
+ "tslib" "^2.0.3"
+
+"charcodes@^0.2.0":
+ "integrity" "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ=="
+ "resolved" "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz"
+ "version" "0.2.0"
+
+"clone@^2.1.1":
+ "integrity" "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="
+ "resolved" "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz"
+ "version" "2.1.2"
+
+"clsx@^1.1.0", "clsx@^1.1.1", "clsx@^1.2.1":
+ "integrity" "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg=="
+ "resolved" "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz"
+ "version" "1.2.1"
+
+"color-convert@^1.9.0":
+ "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
+ "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
+ "version" "1.9.3"
+ dependencies:
+ "color-name" "1.1.3"
+
+"color-convert@^2.0.1":
+ "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="
+ "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
+ "version" "2.0.1"
+ dependencies:
+ "color-name" "~1.1.4"
+
+"color-name@~1.1.4":
+ "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
+ "version" "1.1.4"
+
+"color-name@1.1.3":
+ "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+ "version" "1.1.3"
+
+"combined-stream@^1.0.8":
+ "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
+ "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
+ "version" "1.0.8"
+ dependencies:
+ "delayed-stream" "~1.0.0"
+
+"commander@^2.20.0":
+ "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
+ "version" "2.20.3"
+
+"common-tags@^1.8.0":
+ "integrity" "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA=="
+ "resolved" "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz"
+ "version" "1.8.2"
+
+"concat-map@0.0.1":
+ "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ "version" "0.0.1"
+
+"confusing-browser-globals@^1.0.10", "confusing-browser-globals@^1.0.11":
+ "integrity" "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA=="
+ "resolved" "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz"
+ "version" "1.0.11"
+
+"constant-case@^3.0.4":
+ "integrity" "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ=="
+ "resolved" "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz"
+ "version" "3.0.4"
+ dependencies:
+ "no-case" "^3.0.4"
+ "tslib" "^2.0.3"
+ "upper-case" "^2.0.2"
+
+"convert-source-map@^1.5.0", "convert-source-map@^1.7.0":
+ "integrity" "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA=="
+ "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz"
+ "version" "1.8.0"
+ dependencies:
+ "safe-buffer" "~5.1.1"
+
+"core-js-compat@^3.20.2", "core-js-compat@^3.21.0":
+ "integrity" "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g=="
+ "resolved" "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz"
+ "version" "3.21.1"
+ dependencies:
+ "browserslist" "^4.19.1"
+ "semver" "7.0.0"
+
+"core-js-pure@^3.20.2":
+ "integrity" "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ=="
+ "resolved" "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz"
+ "version" "3.21.1"
+
+"core-js@^3.0.1":
+ "integrity" "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig=="
+ "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz"
+ "version" "3.21.1"
+
+"cosmiconfig@^7.0.0":
+ "integrity" "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ=="
+ "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz"
+ "version" "7.0.1"
+ 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"
+
+"cosmiconfig@^7.0.1":
+ "integrity" "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ=="
+ "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz"
+ "version" "7.0.1"
+ 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"
+
+"cross-spawn@^7.0.2":
+ "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="
+ "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
+ "version" "7.0.3"
+ dependencies:
+ "path-key" "^3.1.0"
+ "shebang-command" "^2.0.0"
+ "which" "^2.0.1"
+
+"crypto-random-string@^2.0.0":
+ "integrity" "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
+ "resolved" "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz"
+ "version" "2.0.0"
+
+"cssjanus@^2.0.1":
+ "integrity" "sha512-kAijbny3GmdOi9k+QT6DGIXqFvL96aksNlGr4Rhk9qXDZYWUojU4bRc3IHWxdaLNOqgEZHuXoe5Wl2l7dxLW5g=="
+ "resolved" "https://registry.npmjs.org/cssjanus/-/cssjanus-2.1.0.tgz"
+ "version" "2.1.0"
+
+"csstype@^3.0.10", "csstype@^3.0.2", "csstype@^3.1.0", "csstype@^3.1.1":
+ "integrity" "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
+ "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz"
+ "version" "3.1.1"
+
+"damerau-levenshtein@^1.0.7":
+ "integrity" "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
+ "resolved" "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz"
+ "version" "1.0.8"
+
+"date-fns@^2.0.0", "date-fns@^2.25.0", "date-fns@^2.29.1":
+ "integrity" "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA=="
+ "resolved" "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz"
+ "version" "2.29.3"
+
+"debug@^2.6.9":
+ "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
+ "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
+ "version" "2.6.9"
+ dependencies:
+ "ms" "2.0.0"
+
+"debug@^3.2.7":
+ "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="
+ "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
+ "version" "3.2.7"
+ dependencies:
+ "ms" "^2.1.1"
+
+"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4":
+ "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
+ "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
+ "version" "4.3.4"
+ dependencies:
+ "ms" "2.1.2"
+
+"deep-equal@^1.0.1":
+ "integrity" "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g=="
+ "resolved" "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz"
+ "version" "1.1.1"
+ dependencies:
+ "is-arguments" "^1.0.4"
+ "is-date-object" "^1.0.1"
+ "is-regex" "^1.0.4"
+ "object-is" "^1.0.1"
+ "object-keys" "^1.1.1"
+ "regexp.prototype.flags" "^1.2.0"
+
+"deep-is@^0.1.3":
+ "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
+ "version" "0.1.4"
+
+"deepmerge@^4.2.2":
+ "integrity" "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
+ "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz"
+ "version" "4.2.2"
+
+"define-properties@^1.1.3", "define-properties@^1.1.4":
+ "integrity" "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA=="
+ "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz"
+ "version" "1.1.4"
+ dependencies:
+ "has-property-descriptors" "^1.0.0"
+ "object-keys" "^1.1.1"
+
+"delayed-stream@~1.0.0":
+ "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ "version" "1.0.0"
+
+"dir-glob@^3.0.1":
+ "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="
+ "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"
+ "version" "3.0.1"
+ dependencies:
+ "path-type" "^4.0.0"
+
+"doctrine@^2.1.0":
+ "integrity" "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="
+ "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz"
+ "version" "2.1.0"
+ dependencies:
+ "esutils" "^2.0.2"
+
+"doctrine@^3.0.0":
+ "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="
+ "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "esutils" "^2.0.2"
+
+"dom-helpers@^5.0.1":
+ "integrity" "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA=="
+ "resolved" "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz"
+ "version" "5.2.1"
+ dependencies:
+ "@babel/runtime" "^7.8.7"
+ "csstype" "^3.0.2"
+
+"dot-case@^3.0.4":
+ "integrity" "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w=="
+ "resolved" "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz"
+ "version" "3.0.4"
+ dependencies:
+ "no-case" "^3.0.4"
+ "tslib" "^2.0.3"
+
+"ejs@^3.1.6":
+ "integrity" "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw=="
+ "resolved" "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz"
+ "version" "3.1.6"
+ dependencies:
+ "jake" "^10.6.1"
+
+"electron-to-chromium@^1.4.251":
+ "integrity" "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA=="
+ "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz"
+ "version" "1.4.284"
+
+"emoji-regex@^9.2.2":
+ "integrity" "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
+ "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz"
+ "version" "9.2.2"
+
+"entities@^4.4.0":
+ "integrity" "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA=="
+ "resolved" "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz"
+ "version" "4.4.0"
+
+"error-ex@^1.3.1":
+ "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="
+ "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
+ "version" "1.3.2"
+ dependencies:
+ "is-arrayish" "^0.2.1"
+
+"es-abstract@^1.19.0", "es-abstract@^1.19.1", "es-abstract@^1.20.4":
+ "integrity" "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA=="
+ "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz"
+ "version" "1.20.4"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "es-to-primitive" "^1.2.1"
+ "function-bind" "^1.1.1"
+ "function.prototype.name" "^1.1.5"
+ "get-intrinsic" "^1.1.3"
+ "get-symbol-description" "^1.0.0"
+ "has" "^1.0.3"
+ "has-property-descriptors" "^1.0.0"
+ "has-symbols" "^1.0.3"
+ "internal-slot" "^1.0.3"
+ "is-callable" "^1.2.7"
+ "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.2"
+ "object-keys" "^1.1.1"
+ "object.assign" "^4.1.4"
+ "regexp.prototype.flags" "^1.4.3"
+ "safe-regex-test" "^1.0.0"
+ "string.prototype.trimend" "^1.0.5"
+ "string.prototype.trimstart" "^1.0.5"
+ "unbox-primitive" "^1.0.2"
+
+"es-shim-unscopables@^1.0.0":
+ "integrity" "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w=="
+ "resolved" "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "has" "^1.0.3"
+
+"es-to-primitive@^1.2.1":
+ "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=="
+ "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"
+ "version" "1.2.1"
+ dependencies:
+ "is-callable" "^1.1.4"
+ "is-date-object" "^1.0.1"
+ "is-symbol" "^1.0.2"
+
+"esbuild-linux-64@0.15.13":
+ "integrity" "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A=="
+ "resolved" "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz"
+ "version" "0.15.13"
+
+"esbuild@^0.15.9":
+ "integrity" "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ=="
+ "resolved" "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz"
+ "version" "0.15.13"
+ optionalDependencies:
+ "@esbuild/android-arm" "0.15.13"
+ "@esbuild/linux-loong64" "0.15.13"
+ "esbuild-android-64" "0.15.13"
+ "esbuild-android-arm64" "0.15.13"
+ "esbuild-darwin-64" "0.15.13"
+ "esbuild-darwin-arm64" "0.15.13"
+ "esbuild-freebsd-64" "0.15.13"
+ "esbuild-freebsd-arm64" "0.15.13"
+ "esbuild-linux-32" "0.15.13"
+ "esbuild-linux-64" "0.15.13"
+ "esbuild-linux-arm" "0.15.13"
+ "esbuild-linux-arm64" "0.15.13"
+ "esbuild-linux-mips64le" "0.15.13"
+ "esbuild-linux-ppc64le" "0.15.13"
+ "esbuild-linux-riscv64" "0.15.13"
+ "esbuild-linux-s390x" "0.15.13"
+ "esbuild-netbsd-64" "0.15.13"
+ "esbuild-openbsd-64" "0.15.13"
+ "esbuild-sunos-64" "0.15.13"
+ "esbuild-windows-32" "0.15.13"
+ "esbuild-windows-64" "0.15.13"
+ "esbuild-windows-arm64" "0.15.13"
+
+"escalade@^3.1.1":
+ "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
+ "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
+ "version" "3.1.1"
+
+"escape-string-regexp@^1.0.5":
+ "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
+ "version" "1.0.5"
+
+"escape-string-regexp@^4.0.0":
+ "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
+ "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
+ "version" "4.0.0"
+
+"eslint-config-airbnb-base@^15.0.0":
+ "integrity" "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig=="
+ "resolved" "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz"
+ "version" "15.0.0"
+ dependencies:
+ "confusing-browser-globals" "^1.0.10"
+ "object.assign" "^4.1.2"
+ "object.entries" "^1.1.5"
+ "semver" "^6.3.0"
+
+"eslint-config-airbnb-typescript@^16.2.0":
+ "integrity" "sha512-OUaMPZpTOZGKd5tXOjJ9PRU4iYNW/Z5DoHIynjsVK/FpkWdiY5+nxQW6TiJAlLwVI1l53xUOrnlZWtVBVQzuWA=="
+ "resolved" "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-16.2.0.tgz"
+ "version" "16.2.0"
+ dependencies:
+ "eslint-config-airbnb-base" "^15.0.0"
+
+"eslint-config-airbnb@19.0.4":
+ "integrity" "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew=="
+ "resolved" "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz"
+ "version" "19.0.4"
+ dependencies:
+ "eslint-config-airbnb-base" "^15.0.0"
+ "object.assign" "^4.1.2"
+ "object.entries" "^1.1.5"
+
+"eslint-config-prettier@^8.5.0":
+ "integrity" "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q=="
+ "resolved" "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz"
+ "version" "8.5.0"
+
+"eslint-config-react-app@7.0.0":
+ "integrity" "sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g=="
+ "resolved" "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.0.tgz"
+ "version" "7.0.0"
+ 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"
+
+"eslint-import-resolver-node@^0.3.6":
+ "integrity" "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw=="
+ "resolved" "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz"
+ "version" "0.3.6"
+ dependencies:
+ "debug" "^3.2.7"
+ "resolve" "^1.20.0"
+
+"eslint-import-resolver-typescript@^2.7.1":
+ "integrity" "sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ=="
+ "resolved" "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz"
+ "version" "2.7.1"
+ dependencies:
+ "debug" "^4.3.4"
+ "glob" "^7.2.0"
+ "is-glob" "^4.0.3"
+ "resolve" "^1.22.0"
+ "tsconfig-paths" "^3.14.1"
+
+"eslint-module-utils@^2.7.3":
+ "integrity" "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ=="
+ "resolved" "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz"
+ "version" "2.7.3"
+ dependencies:
+ "debug" "^3.2.7"
+ "find-up" "^2.1.0"
+
+"eslint-plugin-flowtype@^8.0.3":
+ "integrity" "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz"
+ "version" "8.0.3"
+ dependencies:
+ "lodash" "^4.17.21"
+ "string-natural-compare" "^3.0.1"
+
+"eslint-plugin-import@*", "eslint-plugin-import@^2.25.2", "eslint-plugin-import@^2.25.3", "eslint-plugin-import@^2.26.0":
+ "integrity" "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz"
+ "version" "2.26.0"
+ 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"
+
+"eslint-plugin-jest@^25.3.0":
+ "integrity" "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz"
+ "version" "25.7.0"
+ dependencies:
+ "@typescript-eslint/experimental-utils" "^5.0.0"
+
+"eslint-plugin-jsx-a11y@^6.5.1", "eslint-plugin-jsx-a11y@6.5.1":
+ "integrity" "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz"
+ "version" "6.5.1"
+ 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"
+
+"eslint-plugin-prettier@^4.2.1":
+ "integrity" "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz"
+ "version" "4.2.1"
+ dependencies:
+ "prettier-linter-helpers" "^1.0.0"
+
+"eslint-plugin-react-hooks@^4.3.0", "eslint-plugin-react-hooks@4.3.0":
+ "integrity" "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz"
+ "version" "4.3.0"
+
+"eslint-plugin-react@^7.27.1", "eslint-plugin-react@^7.28.0", "eslint-plugin-react@^7.30.1":
+ "integrity" "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz"
+ "version" "7.31.10"
+ dependencies:
+ "array-includes" "^3.1.5"
+ "array.prototype.flatmap" "^1.3.0"
+ "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.1"
+ "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.7"
+
+"eslint-plugin-testing-library@^5.0.1":
+ "integrity" "sha512-0j355vJpJCE/2g+aayIgJRUB6jBVqpD5ztMLGcadR1PgrgGPnPxN1HJuOAsAAwiMo27GwRnpJB8KOQzyNuNZrw=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.0.5.tgz"
+ "version" "5.0.5"
+ dependencies:
+ "@typescript-eslint/utils" "^5.10.2"
+
+"eslint-scope@^5.1.1", "eslint-scope@5.1.1":
+ "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="
+ "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz"
+ "version" "5.1.1"
+ dependencies:
+ "esrecurse" "^4.3.0"
+ "estraverse" "^4.1.1"
+
+"eslint-scope@^7.1.1":
+ "integrity" "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw=="
+ "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz"
+ "version" "7.1.1"
+ dependencies:
+ "esrecurse" "^4.3.0"
+ "estraverse" "^5.2.0"
+
+"eslint-utils@^3.0.0":
+ "integrity" "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA=="
+ "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "eslint-visitor-keys" "^2.0.0"
+
+"eslint-visitor-keys@^2.0.0", "eslint-visitor-keys@^2.1.0":
+ "integrity" "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
+ "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
+ "version" "2.1.0"
+
+"eslint-visitor-keys@^3.0.0":
+ "integrity" "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA=="
+ "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz"
+ "version" "3.3.0"
+
+"eslint-visitor-keys@^3.3.0":
+ "integrity" "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA=="
+ "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz"
+ "version" "3.3.0"
+
+"eslint@*", "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^7.32.0 || ^8.2.0", "eslint@^7.5.0 || ^8.0.0", "eslint@^8.0.0", "eslint@^8.1.0", "eslint@^8.20.0", "eslint@>=5", "eslint@>=7.0.0", "eslint@>=7.28.0":
+ "integrity" "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ=="
+ "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz"
+ "version" "8.27.0"
+ dependencies:
+ "@eslint/eslintrc" "^1.3.3"
+ "@humanwhocodes/config-array" "^0.11.6"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@nodelib/fs.walk" "^1.2.8"
+ "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.4.0"
+ "esquery" "^1.4.0"
+ "esutils" "^2.0.2"
+ "fast-deep-equal" "^3.1.3"
+ "file-entry-cache" "^6.0.1"
+ "find-up" "^5.0.0"
+ "glob-parent" "^6.0.2"
+ "globals" "^13.15.0"
+ "grapheme-splitter" "^1.0.4"
+ "ignore" "^5.2.0"
+ "import-fresh" "^3.0.0"
+ "imurmurhash" "^0.1.4"
+ "is-glob" "^4.0.0"
+ "is-path-inside" "^3.0.3"
+ "js-sdsl" "^4.1.4"
+ "js-yaml" "^4.1.0"
+ "json-stable-stringify-without-jsonify" "^1.0.1"
+ "levn" "^0.4.1"
+ "lodash.merge" "^4.6.2"
+ "minimatch" "^3.1.2"
+ "natural-compare" "^1.4.0"
+ "optionator" "^0.9.1"
+ "regexpp" "^3.2.0"
+ "strip-ansi" "^6.0.1"
+ "strip-json-comments" "^3.1.0"
+ "text-table" "^0.2.0"
+
+"espree@^9.4.0":
+ "integrity" "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg=="
+ "resolved" "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz"
+ "version" "9.4.1"
+ dependencies:
+ "acorn" "^8.8.0"
+ "acorn-jsx" "^5.3.2"
+ "eslint-visitor-keys" "^3.3.0"
+
+"esquery@^1.4.0":
+ "integrity" "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w=="
+ "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz"
+ "version" "1.4.0"
+ dependencies:
+ "estraverse" "^5.1.0"
+
+"esrecurse@^4.3.0":
+ "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="
+ "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
+ "version" "4.3.0"
+ dependencies:
+ "estraverse" "^5.2.0"
+
+"estraverse@^4.1.1":
+ "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"
+ "version" "4.3.0"
+
+"estraverse@^5.1.0", "estraverse@^5.2.0", "estraverse@^5.3.0":
+ "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
+ "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
+ "version" "5.3.0"
+
+"estree-walker@^1.0.1":
+ "integrity" "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg=="
+ "resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz"
+ "version" "1.0.1"
+
+"estree-walker@^2.0.1":
+ "integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ "resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz"
+ "version" "2.0.2"
+
+"estree-walker@^2.0.2":
+ "integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ "resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz"
+ "version" "2.0.2"
+
+"esutils@^2.0.2":
+ "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+ "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
+ "version" "2.0.3"
+
+"eventemitter3@^2.0.3":
+ "integrity" "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg=="
+ "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz"
+ "version" "2.0.3"
+
+"extend@^3.0.2":
+ "integrity" "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ "resolved" "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"
+ "version" "3.0.2"
+
+"fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3":
+ "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
+ "version" "3.1.3"
+
+"fast-diff@^1.1.2":
+ "integrity" "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w=="
+ "resolved" "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz"
+ "version" "1.2.0"
+
+"fast-diff@1.1.2":
+ "integrity" "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig=="
+ "resolved" "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz"
+ "version" "1.1.2"
+
+"fast-glob@^3.2.11", "fast-glob@^3.2.9":
+ "integrity" "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew=="
+ "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz"
+ "version" "3.2.11"
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ "glob-parent" "^5.1.2"
+ "merge2" "^1.3.0"
+ "micromatch" "^4.0.4"
+
+"fast-json-stable-stringify@^2.0.0", "fast-json-stable-stringify@^2.1.0":
+ "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
+ "version" "2.1.0"
+
+"fast-levenshtein@^2.0.6":
+ "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
+ "version" "2.0.6"
+
+"fastq@^1.6.0":
+ "integrity" "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw=="
+ "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz"
+ "version" "1.13.0"
+ dependencies:
+ "reusify" "^1.0.4"
+
+"file-entry-cache@^6.0.1":
+ "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg=="
+ "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
+ "version" "6.0.1"
+ dependencies:
+ "flat-cache" "^3.0.4"
+
+"file-selector@^0.6.0":
+ "integrity" "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw=="
+ "resolved" "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz"
+ "version" "0.6.0"
+ dependencies:
+ "tslib" "^2.4.0"
+
+"filelist@^1.0.1":
+ "integrity" "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ=="
+ "resolved" "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "minimatch" "^3.0.4"
+
+"fill-range@^7.0.1":
+ "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="
+ "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
+ "version" "7.0.1"
+ dependencies:
+ "to-regex-range" "^5.0.1"
+
+"find-root@^1.1.0":
+ "integrity" "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="
+ "resolved" "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz"
+ "version" "1.1.0"
+
+"find-up@^2.1.0":
+ "integrity" "sha1-RdG35QbHF93UgndaK3eSCjwMV6c="
+ "resolved" "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz"
+ "version" "2.1.0"
+ dependencies:
+ "locate-path" "^2.0.0"
+
+"find-up@^5.0.0":
+ "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="
+ "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
+ "version" "5.0.0"
+ dependencies:
+ "locate-path" "^6.0.0"
+ "path-exists" "^4.0.0"
+
+"flat-cache@^3.0.4":
+ "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg=="
+ "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
+ "version" "3.0.4"
+ dependencies:
+ "flatted" "^3.1.0"
+ "rimraf" "^3.0.2"
+
+"flatted@^3.1.0":
+ "integrity" "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg=="
+ "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz"
+ "version" "3.2.5"
+
+"follow-redirects@^1.14.9":
+ "integrity" "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
+ "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz"
+ "version" "1.14.9"
+
+"form-data@^4.0.0":
+ "integrity" "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww=="
+ "resolved" "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz"
+ "version" "4.0.0"
+ dependencies:
+ "asynckit" "^0.4.0"
+ "combined-stream" "^1.0.8"
+ "mime-types" "^2.1.12"
+
+"framer-motion@^6.5.1":
+ "integrity" "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw=="
+ "resolved" "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz"
+ "version" "6.5.1"
+ dependencies:
+ "@motionone/dom" "10.12.0"
+ "framesync" "6.0.1"
+ "hey-listen" "^1.0.8"
+ "popmotion" "11.0.3"
+ "style-value-types" "5.0.0"
+ "tslib" "^2.1.0"
+ optionalDependencies:
+ "@emotion/is-prop-valid" "^0.8.2"
+
+"framesync@6.0.1":
+ "integrity" "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA=="
+ "resolved" "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz"
+ "version" "6.0.1"
+ dependencies:
+ "tslib" "^2.1.0"
+
+"fs-extra@^9.0.1":
+ "integrity" "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="
+ "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz"
+ "version" "9.1.0"
+ dependencies:
+ "at-least-node" "^1.0.0"
+ "graceful-fs" "^4.2.0"
+ "jsonfile" "^6.0.1"
+ "universalify" "^2.0.0"
+
+"fs.realpath@^1.0.0":
+ "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+ "version" "1.0.0"
+
+"function-bind@^1.1.1":
+ "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
+ "version" "1.1.1"
+
+"function.prototype.name@^1.1.5":
+ "integrity" "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA=="
+ "resolved" "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz"
+ "version" "1.1.5"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.3"
+ "es-abstract" "^1.19.0"
+ "functions-have-names" "^1.2.2"
+
+"functions-have-names@^1.2.2":
+ "integrity" "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
+ "resolved" "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
+ "version" "1.2.3"
+
+"gensync@^1.0.0-beta.2":
+ "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
+ "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
+ "version" "1.0.0-beta.2"
+
+"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.0", "get-intrinsic@^1.1.1", "get-intrinsic@^1.1.3":
+ "integrity" "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A=="
+ "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz"
+ "version" "1.1.3"
+ dependencies:
+ "function-bind" "^1.1.1"
+ "has" "^1.0.3"
+ "has-symbols" "^1.0.3"
+
+"get-own-enumerable-property-symbols@^3.0.0":
+ "integrity" "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g=="
+ "resolved" "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz"
+ "version" "3.0.2"
+
+"get-symbol-description@^1.0.0":
+ "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw=="
+ "resolved" "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "get-intrinsic" "^1.1.1"
+
+"glob-parent@^5.1.2":
+ "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
+ "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
+ "version" "5.1.2"
+ dependencies:
+ "is-glob" "^4.0.1"
+
+"glob-parent@^6.0.2":
+ "integrity" "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="
+ "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
+ "version" "6.0.2"
+ dependencies:
+ "is-glob" "^4.0.3"
+
+"glob@^7.1.3", "glob@^7.1.6", "glob@^7.2.0":
+ "integrity" "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q=="
+ "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz"
+ "version" "7.2.0"
+ 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"
+
+"globals@^11.1.0":
+ "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
+ "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
+ "version" "11.12.0"
+
+"globals@^13.15.0":
+ "integrity" "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw=="
+ "resolved" "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz"
+ "version" "13.17.0"
+ dependencies:
+ "type-fest" "^0.20.2"
+
+"globby@^11.0.4", "globby@^11.1.0":
+ "integrity" "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="
+ "resolved" "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz"
+ "version" "11.1.0"
+ 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"
+
+"goober@^2.0.33":
+ "integrity" "sha512-5SS2lmxbhqH0u9ABEWq7WPU69a4i2pYcHeCxqaNq6Cw3mnrF0ghWNM4tEGid4dKy8XNIAUbuThuozDHHKJVh3A=="
+ "resolved" "https://registry.npmjs.org/goober/-/goober-2.1.11.tgz"
+ "version" "2.1.11"
+
+"graceful-fs@^4.1.6", "graceful-fs@^4.2.0":
+ "integrity" "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ=="
+ "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz"
+ "version" "4.2.9"
+
+"grapheme-splitter@^1.0.4":
+ "integrity" "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ=="
+ "resolved" "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz"
+ "version" "1.0.4"
+
+"has-bigints@^1.0.1", "has-bigints@^1.0.2":
+ "integrity" "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
+ "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz"
+ "version" "1.0.2"
+
+"has-flag@^3.0.0":
+ "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
+ "version" "3.0.0"
+
+"has-flag@^4.0.0":
+ "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
+ "version" "4.0.0"
+
+"has-property-descriptors@^1.0.0":
+ "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ=="
+ "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "get-intrinsic" "^1.1.1"
+
+"has-symbols@^1.0.2", "has-symbols@^1.0.3":
+ "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+ "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
+ "version" "1.0.3"
+
+"has-tostringtag@^1.0.0":
+ "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ=="
+ "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "has-symbols" "^1.0.2"
+
+"has@^1.0.3":
+ "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
+ "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
+ "version" "1.0.3"
+ dependencies:
+ "function-bind" "^1.1.1"
+
+"header-case@^2.0.4":
+ "integrity" "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q=="
+ "resolved" "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz"
+ "version" "2.0.4"
+ dependencies:
+ "capital-case" "^1.0.4"
+ "tslib" "^2.0.3"
+
+"hey-listen@^1.0.8":
+ "integrity" "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="
+ "resolved" "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz"
+ "version" "1.0.8"
+
+"highlight.js@^11.6.0":
+ "integrity" "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw=="
+ "resolved" "https://registry.npmjs.org/highlight.js/-/highlight.js-11.6.0.tgz"
+ "version" "11.6.0"
+
+"history@^5.3.0":
+ "integrity" "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ=="
+ "resolved" "https://registry.npmjs.org/history/-/history-5.3.0.tgz"
+ "version" "5.3.0"
+ dependencies:
+ "@babel/runtime" "^7.7.6"
+
+"hoist-non-react-statics@^3.3.1":
+ "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw=="
+ "resolved" "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz"
+ "version" "3.3.2"
+ dependencies:
+ "react-is" "^16.7.0"
+
+"idb@^7.0.1":
+ "integrity" "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ=="
+ "resolved" "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz"
+ "version" "7.1.1"
+
+"ignore@^5.2.0":
+ "integrity" "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ=="
+ "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz"
+ "version" "5.2.0"
+
+"import-fresh@^3.0.0", "import-fresh@^3.2.1":
+ "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw=="
+ "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
+ "version" "3.3.0"
+ dependencies:
+ "parent-module" "^1.0.0"
+ "resolve-from" "^4.0.0"
+
+"imurmurhash@^0.1.4":
+ "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
+ "version" "0.1.4"
+
+"inflight@^1.0.4":
+ "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk="
+ "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
+ "version" "1.0.6"
+ dependencies:
+ "once" "^1.3.0"
+ "wrappy" "1"
+
+"inherits@2":
+ "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
+ "version" "2.0.4"
+
+"internal-slot@^1.0.3":
+ "integrity" "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA=="
+ "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz"
+ "version" "1.0.3"
+ dependencies:
+ "get-intrinsic" "^1.1.0"
+ "has" "^1.0.3"
+ "side-channel" "^1.0.4"
+
+"invariant@^2.2.4":
+ "integrity" "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="
+ "resolved" "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz"
+ "version" "2.2.4"
+ dependencies:
+ "loose-envify" "^1.0.0"
+
+"is-arguments@^1.0.4":
+ "integrity" "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA=="
+ "resolved" "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz"
+ "version" "1.1.1"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "has-tostringtag" "^1.0.0"
+
+"is-arrayish@^0.2.1":
+ "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
+ "version" "0.2.1"
+
+"is-bigint@^1.0.1":
+ "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg=="
+ "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz"
+ "version" "1.0.4"
+ dependencies:
+ "has-bigints" "^1.0.1"
+
+"is-boolean-object@^1.1.0":
+ "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA=="
+ "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz"
+ "version" "1.1.2"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "has-tostringtag" "^1.0.0"
+
+"is-callable@^1.1.4", "is-callable@^1.2.7":
+ "integrity" "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
+ "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz"
+ "version" "1.2.7"
+
+"is-core-module@^2.2.0", "is-core-module@^2.8.1", "is-core-module@^2.9.0":
+ "integrity" "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw=="
+ "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz"
+ "version" "2.11.0"
+ dependencies:
+ "has" "^1.0.3"
+
+"is-date-object@^1.0.1":
+ "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ=="
+ "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz"
+ "version" "1.0.5"
+ dependencies:
+ "has-tostringtag" "^1.0.0"
+
+"is-extglob@^2.1.1":
+ "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
+ "version" "2.1.1"
+
+"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3":
+ "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="
+ "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
+ "version" "4.0.3"
+ dependencies:
+ "is-extglob" "^2.1.1"
+
+"is-module@^1.0.0":
+ "integrity" "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE="
+ "resolved" "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz"
+ "version" "1.0.0"
+
+"is-negative-zero@^2.0.2":
+ "integrity" "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
+ "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz"
+ "version" "2.0.2"
+
+"is-number-object@^1.0.4":
+ "integrity" "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ=="
+ "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz"
+ "version" "1.0.7"
+ dependencies:
+ "has-tostringtag" "^1.0.0"
+
+"is-number@^7.0.0":
+ "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
+ "version" "7.0.0"
+
+"is-obj@^1.0.1":
+ "integrity" "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
+ "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz"
+ "version" "1.0.1"
+
+"is-path-inside@^3.0.3":
+ "integrity" "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
+ "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz"
+ "version" "3.0.3"
+
+"is-regex@^1.0.4", "is-regex@^1.1.4":
+ "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg=="
+ "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz"
+ "version" "1.1.4"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "has-tostringtag" "^1.0.0"
+
+"is-regexp@^1.0.0":
+ "integrity" "sha1-/S2INUXEa6xaYz57mgnof6LLUGk="
+ "resolved" "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz"
+ "version" "1.0.0"
+
+"is-shared-array-buffer@^1.0.2":
+ "integrity" "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA=="
+ "resolved" "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "call-bind" "^1.0.2"
+
+"is-stream@^2.0.0":
+ "integrity" "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
+ "version" "2.0.1"
+
+"is-string@^1.0.5", "is-string@^1.0.7":
+ "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg=="
+ "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz"
+ "version" "1.0.7"
+ dependencies:
+ "has-tostringtag" "^1.0.0"
+
+"is-symbol@^1.0.2", "is-symbol@^1.0.3":
+ "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg=="
+ "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz"
+ "version" "1.0.4"
+ dependencies:
+ "has-symbols" "^1.0.2"
+
+"is-weakref@^1.0.2":
+ "integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ=="
+ "resolved" "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "call-bind" "^1.0.2"
+
+"isexe@^2.0.0":
+ "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
+ "version" "2.0.0"
+
+"jake@^10.6.1":
+ "integrity" "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A=="
+ "resolved" "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz"
+ "version" "10.8.2"
+ dependencies:
+ "async" "0.9.x"
+ "chalk" "^2.4.2"
+ "filelist" "^1.0.1"
+ "minimatch" "^3.0.4"
+
+"jest-worker@^26.2.1":
+ "integrity" "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ=="
+ "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz"
+ "version" "26.6.2"
+ dependencies:
+ "@types/node" "*"
+ "merge-stream" "^2.0.0"
+ "supports-color" "^7.0.0"
+
+"js-sdsl@^4.1.4":
+ "integrity" "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q=="
+ "resolved" "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz"
+ "version" "4.1.5"
+
+"js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0":
+ "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
+ "version" "4.0.0"
+
+"js-yaml@^4.1.0":
+ "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="
+ "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
+ "version" "4.1.0"
+ dependencies:
+ "argparse" "^2.0.1"
+
+"jsesc@^2.5.1":
+ "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
+ "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
+ "version" "2.5.2"
+
+"jsesc@~0.5.0":
+ "integrity" "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
+ "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"
+ "version" "0.5.0"
+
+"json-parse-even-better-errors@^2.3.0":
+ "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+ "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
+ "version" "2.3.1"
+
+"json-schema-traverse@^0.4.1":
+ "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
+ "version" "0.4.1"
+
+"json-schema-traverse@^1.0.0":
+ "integrity" "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz"
+ "version" "1.0.0"
+
+"json-schema@^0.4.0":
+ "integrity" "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
+ "resolved" "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz"
+ "version" "0.4.0"
+
+"json-stable-stringify-without-jsonify@^1.0.1":
+ "integrity" "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+ "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
+ "version" "1.0.1"
+
+"json5@^1.0.1":
+ "integrity" "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow=="
+ "resolved" "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz"
+ "version" "1.0.1"
+ dependencies:
+ "minimist" "^1.2.0"
+
+"json5@^2.2.0", "json5@^2.2.1":
+ "integrity" "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA=="
+ "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz"
+ "version" "2.2.1"
+
+"jsonfile@^6.0.1":
+ "integrity" "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ=="
+ "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz"
+ "version" "6.1.0"
+ dependencies:
+ "universalify" "^2.0.0"
+ optionalDependencies:
+ "graceful-fs" "^4.1.6"
+
+"jsonpointer@^5.0.0":
+ "integrity" "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg=="
+ "resolved" "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz"
+ "version" "5.0.0"
+
+"jsx-ast-utils@^2.4.1 || ^3.0.0", "jsx-ast-utils@^3.2.1":
+ "integrity" "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA=="
+ "resolved" "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz"
+ "version" "3.2.1"
+ dependencies:
+ "array-includes" "^3.1.3"
+ "object.assign" "^4.1.2"
+
+"jsx-runtime@^1.2.0":
+ "integrity" "sha512-iCxmRTlUAWmXwHZxN0JSx/T7eRi0SkKAskE0lp+j4W1mzdNp49ja/9QI2ZmlggPM95RqnDw5ioYjw0EcvpIClw=="
+ "resolved" "https://registry.npmjs.org/jsx-runtime/-/jsx-runtime-1.2.0.tgz"
+ "version" "1.2.0"
+ dependencies:
+ "object-assign" "^3.0.0"
+
+"language-subtag-registry@~0.3.2":
+ "integrity" "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg=="
+ "resolved" "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz"
+ "version" "0.3.21"
+
+"language-tags@^1.0.5":
+ "integrity" "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo="
+ "resolved" "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz"
+ "version" "1.0.5"
+ dependencies:
+ "language-subtag-registry" "~0.3.2"
+
+"leven@^3.1.0":
+ "integrity" "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
+ "resolved" "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz"
+ "version" "3.1.0"
+
+"levn@^0.4.1":
+ "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="
+ "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
+ "version" "0.4.1"
+ dependencies:
+ "prelude-ls" "^1.2.1"
+ "type-check" "~0.4.0"
+
+"lines-and-columns@^1.1.6":
+ "integrity" "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
+ "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
+ "version" "1.2.4"
+
+"locate-path@^2.0.0":
+ "integrity" "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4="
+ "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "p-locate" "^2.0.0"
+ "path-exists" "^3.0.0"
+
+"locate-path@^6.0.0":
+ "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="
+ "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
+ "version" "6.0.0"
+ dependencies:
+ "p-locate" "^5.0.0"
+
+"lodash-es@^4.17.21":
+ "integrity" "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ "resolved" "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
+ "version" "4.17.21"
+
+"lodash.debounce@^4.0.8":
+ "integrity" "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
+ "resolved" "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz"
+ "version" "4.0.8"
+
+"lodash.memoize@^4.1.2":
+ "integrity" "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
+ "resolved" "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz"
+ "version" "4.1.2"
+
+"lodash.merge@^4.6.2":
+ "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
+ "version" "4.6.2"
+
+"lodash.sortby@^4.7.0":
+ "integrity" "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
+ "resolved" "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz"
+ "version" "4.7.0"
+
+"lodash.throttle@^4.1.1":
+ "integrity" "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
+ "resolved" "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz"
+ "version" "4.1.1"
+
+"lodash@^4.17.20", "lodash@^4.17.21", "lodash@^4.17.4":
+ "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
+ "version" "4.17.21"
+
+"loose-envify@^1.0.0", "loose-envify@^1.1.0", "loose-envify@^1.4.0":
+ "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="
+ "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
+ "version" "1.4.0"
+ dependencies:
+ "js-tokens" "^3.0.0 || ^4.0.0"
+
+"lower-case@^2.0.2":
+ "integrity" "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg=="
+ "resolved" "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz"
+ "version" "2.0.2"
+ dependencies:
+ "tslib" "^2.0.3"
+
+"lru-cache@^6.0.0":
+ "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="
+ "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
+ "version" "6.0.0"
+ dependencies:
+ "yallist" "^4.0.0"
+
+"magic-string@^0.25.0", "magic-string@^0.25.7":
+ "integrity" "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA=="
+ "resolved" "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz"
+ "version" "0.25.7"
+ dependencies:
+ "sourcemap-codec" "^1.4.4"
+
+"merge-stream@^2.0.0":
+ "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
+ "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
+ "version" "2.0.0"
+
+"merge2@^1.3.0", "merge2@^1.4.1":
+ "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
+ "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
+ "version" "1.4.1"
+
+"micromatch@^4.0.4":
+ "integrity" "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg=="
+ "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz"
+ "version" "4.0.4"
+ dependencies:
+ "braces" "^3.0.1"
+ "picomatch" "^2.2.3"
+
+"mime-db@1.51.0":
+ "integrity" "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g=="
+ "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz"
+ "version" "1.51.0"
+
+"mime-types@^2.1.12":
+ "integrity" "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A=="
+ "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz"
+ "version" "2.1.34"
+ dependencies:
+ "mime-db" "1.51.0"
+
+"minimatch@^3.0.4", "minimatch@^3.0.5", "minimatch@^3.1.2":
+ "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="
+ "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
+ "version" "3.1.2"
+ dependencies:
+ "brace-expansion" "^1.1.7"
+
+"minimist@^1.2.0", "minimist@^1.2.6":
+ "integrity" "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="
+ "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz"
+ "version" "1.2.7"
+
+"ms@^2.1.1", "ms@2.1.2":
+ "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
+ "version" "2.1.2"
+
+"ms@2.0.0":
+ "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+ "version" "2.0.0"
+
+"nanoclone@^0.2.1":
+ "integrity" "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA=="
+ "resolved" "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz"
+ "version" "0.2.1"
+
+"nanoid@^3.3.4":
+ "integrity" "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+ "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"
+ "version" "3.3.4"
+
+"natural-compare-lite@^1.4.0":
+ "integrity" "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g=="
+ "resolved" "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz"
+ "version" "1.4.0"
+
+"natural-compare@^1.4.0":
+ "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
+ "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
+ "version" "1.4.0"
+
+"no-case@^3.0.4":
+ "integrity" "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg=="
+ "resolved" "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz"
+ "version" "3.0.4"
+ dependencies:
+ "lower-case" "^2.0.2"
+ "tslib" "^2.0.3"
+
+"node-releases@^2.0.6":
+ "integrity" "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
+ "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz"
+ "version" "2.0.6"
+
+"notistack@^3.0.0-alpha.7":
+ "integrity" "sha512-QfiVC1On1Zfs1UADxgRRhcVhAWveD3lBUKhDwx0GdXoSKii0UARz0tfJyIwwOxy5Lr+DOeAHz8Mvl1GwpeVnQQ=="
+ "resolved" "https://registry.npmjs.org/notistack/-/notistack-3.0.0-alpha.11.tgz"
+ "version" "3.0.0-alpha.11"
+ dependencies:
+ "clsx" "^1.1.0"
+ "goober" "^2.0.33"
+
+"nprogress@^0.2.0":
+ "integrity" "sha1-y480xTIT2JVyP8urkH6UIq28r7E="
+ "resolved" "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz"
+ "version" "0.2.0"
+
+"numeral@^2.0.6":
+ "integrity" "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA=="
+ "resolved" "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz"
+ "version" "2.0.6"
+
+"object-assign@^3.0.0":
+ "integrity" "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ=="
+ "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz"
+ "version" "3.0.0"
+
+"object-assign@^4.1.1":
+ "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ "version" "4.1.1"
+
+"object-inspect@^1.12.2", "object-inspect@^1.9.0":
+ "integrity" "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
+ "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz"
+ "version" "1.12.2"
+
+"object-is@^1.0.1":
+ "integrity" "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw=="
+ "resolved" "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz"
+ "version" "1.1.5"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.3"
+
+"object-keys@^1.1.1":
+ "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
+ "version" "1.1.1"
+
+"object.assign@^4.1.0", "object.assign@^4.1.2", "object.assign@^4.1.4":
+ "integrity" "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ=="
+ "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz"
+ "version" "4.1.4"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "has-symbols" "^1.0.3"
+ "object-keys" "^1.1.1"
+
+"object.entries@^1.1.5":
+ "integrity" "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g=="
+ "resolved" "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz"
+ "version" "1.1.5"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.3"
+ "es-abstract" "^1.19.1"
+
+"object.fromentries@^2.0.5":
+ "integrity" "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw=="
+ "resolved" "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz"
+ "version" "2.0.5"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.3"
+ "es-abstract" "^1.19.1"
+
+"object.hasown@^1.1.1":
+ "integrity" "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw=="
+ "resolved" "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz"
+ "version" "1.1.2"
+ dependencies:
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+
+"object.values@^1.1.5":
+ "integrity" "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg=="
+ "resolved" "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz"
+ "version" "1.1.5"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.3"
+ "es-abstract" "^1.19.1"
+
+"once@^1.3.0":
+ "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E="
+ "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ "version" "1.4.0"
+ dependencies:
+ "wrappy" "1"
+
+"optionator@^0.9.1":
+ "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw=="
+ "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz"
+ "version" "0.9.1"
+ 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"
+
+"p-limit@^1.1.0":
+ "integrity" "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q=="
+ "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz"
+ "version" "1.3.0"
+ dependencies:
+ "p-try" "^1.0.0"
+
+"p-limit@^3.0.2":
+ "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="
+ "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
+ "version" "3.1.0"
+ dependencies:
+ "yocto-queue" "^0.1.0"
+
+"p-locate@^2.0.0":
+ "integrity" "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM="
+ "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "p-limit" "^1.1.0"
+
+"p-locate@^5.0.0":
+ "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="
+ "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"
+ "version" "5.0.0"
+ dependencies:
+ "p-limit" "^3.0.2"
+
+"p-try@^1.0.0":
+ "integrity" "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
+ "resolved" "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz"
+ "version" "1.0.0"
+
+"param-case@^3.0.4":
+ "integrity" "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A=="
+ "resolved" "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz"
+ "version" "3.0.4"
+ dependencies:
+ "dot-case" "^3.0.4"
+ "tslib" "^2.0.3"
+
+"parchment@^1.1.2", "parchment@^1.1.4":
+ "integrity" "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg=="
+ "resolved" "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz"
+ "version" "1.1.4"
+
+"parent-module@^1.0.0":
+ "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="
+ "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
+ "version" "1.0.1"
+ dependencies:
+ "callsites" "^3.0.0"
+
+"parse-json@^5.0.0":
+ "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="
+ "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz"
+ "version" "5.2.0"
+ 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"
+
+"pascal-case@^3.1.2":
+ "integrity" "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g=="
+ "resolved" "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz"
+ "version" "3.1.2"
+ dependencies:
+ "no-case" "^3.0.4"
+ "tslib" "^2.0.3"
+
+"path-case@^3.0.4":
+ "integrity" "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg=="
+ "resolved" "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz"
+ "version" "3.0.4"
+ dependencies:
+ "dot-case" "^3.0.4"
+ "tslib" "^2.0.3"
+
+"path-exists@^3.0.0":
+ "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
+ "version" "3.0.0"
+
+"path-exists@^4.0.0":
+ "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+ "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
+ "version" "4.0.0"
+
+"path-is-absolute@^1.0.0":
+ "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ "version" "1.0.1"
+
+"path-key@^3.1.0":
+ "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+ "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
+ "version" "3.1.1"
+
+"path-parse@^1.0.6", "path-parse@^1.0.7":
+ "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
+ "version" "1.0.7"
+
+"path-type@^4.0.0":
+ "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+ "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
+ "version" "4.0.0"
+
+"picocolors@^1.0.0":
+ "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
+ "version" "1.0.0"
+
+"picomatch@^2.2.2", "picomatch@^2.2.3", "picomatch@^2.3.1":
+ "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+ "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
+ "version" "2.3.1"
+
+"popmotion@11.0.3":
+ "integrity" "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA=="
+ "resolved" "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz"
+ "version" "11.0.3"
+ dependencies:
+ "framesync" "6.0.1"
+ "hey-listen" "^1.0.8"
+ "style-value-types" "5.0.0"
+ "tslib" "^2.1.0"
+
+"postcss@^8.4.18":
+ "integrity" "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA=="
+ "resolved" "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz"
+ "version" "8.4.18"
+ dependencies:
+ "nanoid" "^3.3.4"
+ "picocolors" "^1.0.0"
+ "source-map-js" "^1.0.2"
+
+"prelude-ls@^1.2.1":
+ "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
+ "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
+ "version" "1.2.1"
+
+"prettier-linter-helpers@^1.0.0":
+ "integrity" "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w=="
+ "resolved" "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "fast-diff" "^1.1.2"
+
+"prettier@^2.7.1", "prettier@>=2.0.0":
+ "integrity" "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g=="
+ "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz"
+ "version" "2.7.1"
+
+"pretty-bytes@^5.3.0":
+ "integrity" "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg=="
+ "resolved" "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz"
+ "version" "5.6.0"
+
+"pretty-bytes@^6.0.0":
+ "integrity" "sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg=="
+ "resolved" "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.0.0.tgz"
+ "version" "6.0.0"
+
+"prop-types@^15.5.7", "prop-types@^15.6.1", "prop-types@^15.6.2", "prop-types@^15.7.2", "prop-types@^15.8.1":
+ "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="
+ "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
+ "version" "15.8.1"
+ dependencies:
+ "loose-envify" "^1.4.0"
+ "object-assign" "^4.1.1"
+ "react-is" "^16.13.1"
+
+"property-expr@^2.0.4":
+ "integrity" "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA=="
+ "resolved" "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz"
+ "version" "2.0.5"
+
+"punycode@^2.1.0":
+ "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
+ "version" "2.1.1"
+
+"queue-microtask@^1.2.2":
+ "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
+ "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
+ "version" "1.2.3"
+
+"quill-delta@^3.6.2":
+ "integrity" "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg=="
+ "resolved" "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz"
+ "version" "3.6.3"
+ dependencies:
+ "deep-equal" "^1.0.1"
+ "extend" "^3.0.2"
+ "fast-diff" "1.1.2"
+
+"quill@^1.3.7":
+ "integrity" "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g=="
+ "resolved" "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz"
+ "version" "1.3.7"
+ dependencies:
+ "clone" "^2.1.1"
+ "deep-equal" "^1.0.1"
+ "eventemitter3" "^2.0.3"
+ "extend" "^3.0.2"
+ "parchment" "^1.1.4"
+ "quill-delta" "^3.6.2"
+
+"randombytes@^2.1.0":
+ "integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="
+ "resolved" "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz"
+ "version" "2.1.0"
+ dependencies:
+ "safe-buffer" "^5.1.0"
+
+"react-apexcharts@^1.4.0":
+ "integrity" "sha512-DrcMV4aAMrUG+n6412yzyATWEyCDWlpPBBhVbpzBC4PDeuYU6iF84SmExbck+jx5MUm4U5PM3/T307Mc3kzc9Q=="
+ "resolved" "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.4.0.tgz"
+ "version" "1.4.0"
+ dependencies:
+ "prop-types" "^15.5.7"
+
+"react-dom@^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0 || ^18.0.0", "react-dom@^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x", "react-dom@^16 || ^17", "react-dom@^16.6.0 || ^17.0.0 || ^18.0.0", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", "react-dom@^17.0.0 || ^18.0.0", "react-dom@^17.0.2", "react-dom@^17.0.2 || ^18.0.0", "react-dom@>=16.6.0", "react-dom@>=16.8", "react-dom@>=16.8 || ^17.0.0 || ^18.0.0":
+ "integrity" "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA=="
+ "resolved" "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz"
+ "version" "17.0.2"
+ dependencies:
+ "loose-envify" "^1.1.0"
+ "object-assign" "^4.1.1"
+ "scheduler" "^0.20.2"
+
+"react-dropzone@^14.2.2":
+ "integrity" "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug=="
+ "resolved" "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz"
+ "version" "14.2.3"
+ dependencies:
+ "attr-accept" "^2.2.2"
+ "file-selector" "^0.6.0"
+ "prop-types" "^15.8.1"
+
+"react-fast-compare@^3.2.0":
+ "integrity" "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA=="
+ "resolved" "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz"
+ "version" "3.2.0"
+
+"react-helmet-async@^1.3.0":
+ "integrity" "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg=="
+ "resolved" "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz"
+ "version" "1.3.0"
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ "invariant" "^2.2.4"
+ "prop-types" "^15.7.2"
+ "react-fast-compare" "^3.2.0"
+ "shallowequal" "^1.1.0"
+
+"react-hook-form@^7.0.0", "react-hook-form@^7.33.1":
+ "integrity" "sha512-MiF9PCILN5KulhSGbnjohMiTOrB47GerDTichMNP0y2cPUu1GTRFqbunOxCE9N1499YTLMV/ne4gFzqCp1rxrQ=="
+ "resolved" "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.39.1.tgz"
+ "version" "7.39.1"
+
+"react-intersection-observer@^8.34.0":
+ "integrity" "sha512-TYKh52Zc0Uptp5/b4N91XydfSGKubEhgZRtcg1rhTKABXijc4Sdr1uTp5lJ8TN27jwUsdXxjHXtHa0kPj704sw=="
+ "resolved" "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-8.34.0.tgz"
+ "version" "8.34.0"
+
+"react-is@^16.13.1":
+ "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
+ "version" "16.13.1"
+
+"react-is@^16.7.0":
+ "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
+ "version" "16.13.1"
+
+"react-is@^17.0.2":
+ "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
+ "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
+ "version" "17.0.2"
+
+"react-is@^18.2.0":
+ "integrity" "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ "resolved" "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
+ "version" "18.2.0"
+
+"react-lazy-load-image-component@^1.5.5":
+ "integrity" "sha512-M0jeJtOlTHgThOfgYM9krSqYbR6ShxROy/KVankwbw9/amPKG1t5GSGN1sei6Cyu8+QJVuyAUvQ+LFtCVTTlKw=="
+ "resolved" "https://registry.npmjs.org/react-lazy-load-image-component/-/react-lazy-load-image-component-1.5.6.tgz"
+ "version" "1.5.6"
+ dependencies:
+ "lodash.debounce" "^4.0.8"
+ "lodash.throttle" "^4.1.1"
+
+"react-quill@2.0.0-beta.4":
+ "integrity" "sha512-KyAHvAlPjP4xLElKZJefMth91Z6FbbXRvq9OSu6xN3KBaoasLP9p+3dcxg4Ywr4tBlpMGXcPszYSAgd5CpJ45Q=="
+ "resolved" "https://registry.npmjs.org/react-quill/-/react-quill-2.0.0-beta.4.tgz"
+ "version" "2.0.0-beta.4"
+ dependencies:
+ "@types/quill" "^1.3.10"
+ "lodash" "^4.17.4"
+ "quill" "^1.3.7"
+
+"react-refresh@^0.13.0":
+ "integrity" "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg=="
+ "resolved" "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz"
+ "version" "0.13.0"
+
+"react-router-dom@^6.3.0":
+ "integrity" "sha512-MiaYQU8CwVCaOfJdYvt84KQNjT78VF0TJrA17SIQgNHRvLnXDJO6qsFqq8F/zzB1BWZjCFIrQpu4QxcshitziQ=="
+ "resolved" "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.3.tgz"
+ "version" "6.4.3"
+ dependencies:
+ "@remix-run/router" "1.0.3"
+ "react-router" "6.4.3"
+
+"react-router@^6.3.0", "react-router@6.4.3":
+ "integrity" "sha512-BT6DoGn6aV1FVP5yfODMOiieakp3z46P1Fk0RNzJMACzE7C339sFuHebfvWtnB4pzBvXXkHP2vscJzWRuUjTtA=="
+ "resolved" "https://registry.npmjs.org/react-router/-/react-router-6.4.3.tgz"
+ "version" "6.4.3"
+ dependencies:
+ "@remix-run/router" "1.0.3"
+
+"react-transition-group@^4.4.2", "react-transition-group@^4.4.5":
+ "integrity" "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g=="
+ "resolved" "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz"
+ "version" "4.4.5"
+ dependencies:
+ "@babel/runtime" "^7.5.5"
+ "dom-helpers" "^5.0.1"
+ "loose-envify" "^1.4.0"
+ "prop-types" "^15.6.2"
+
+"react@^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0 || ^18.0.0", "react@^15.0.0 || ^16.0.0 || ^17.0.0|| ^18.0.0", "react@^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x", "react@^16 || ^17", "react@^16.6.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17 || ^18", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^17.0.0 || ^18.0.0", "react@^17.0.2", "react@^17.0.2 || ^18.0.0", "react@>= 16.8 || 18.0.0", "react@>=0.13", "react@>=16", "react@>=16.6.0", "react@>=16.8", "react@>=16.8 || ^17.0.0 || ^18.0.0", "react@>=16.8.0", "react@17.0.2":
+ "integrity" "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA=="
+ "resolved" "https://registry.npmjs.org/react/-/react-17.0.2.tgz"
+ "version" "17.0.2"
+ dependencies:
+ "loose-envify" "^1.1.0"
+ "object-assign" "^4.1.1"
+
+"regenerate-unicode-properties@^10.0.1":
+ "integrity" "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw=="
+ "resolved" "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz"
+ "version" "10.0.1"
+ dependencies:
+ "regenerate" "^1.4.2"
+
+"regenerate@^1.4.2":
+ "integrity" "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
+ "resolved" "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz"
+ "version" "1.4.2"
+
+"regenerator-runtime@^0.13.10", "regenerator-runtime@^0.13.4":
+ "integrity" "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw=="
+ "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz"
+ "version" "0.13.10"
+
+"regenerator-transform@^0.14.2":
+ "integrity" "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw=="
+ "resolved" "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz"
+ "version" "0.14.5"
+ dependencies:
+ "@babel/runtime" "^7.8.4"
+
+"regexp.prototype.flags@^1.2.0", "regexp.prototype.flags@^1.4.3":
+ "integrity" "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA=="
+ "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz"
+ "version" "1.4.3"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.3"
+ "functions-have-names" "^1.2.2"
+
+"regexpp@^3.2.0":
+ "integrity" "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg=="
+ "resolved" "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz"
+ "version" "3.2.0"
+
+"regexpu-core@^5.0.1":
+ "integrity" "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw=="
+ "resolved" "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz"
+ "version" "5.0.1"
+ 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"
+
+"regjsgen@^0.6.0":
+ "integrity" "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA=="
+ "resolved" "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz"
+ "version" "0.6.0"
+
+"regjsparser@^0.8.2":
+ "integrity" "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA=="
+ "resolved" "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz"
+ "version" "0.8.4"
+ dependencies:
+ "jsesc" "~0.5.0"
+
+"require-from-string@^2.0.2":
+ "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
+ "resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz"
+ "version" "2.0.2"
+
+"reselect@^4.1.6":
+ "integrity" "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A=="
+ "resolved" "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz"
+ "version" "4.1.7"
+
+"resolve-from@^4.0.0":
+ "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
+ "version" "4.0.0"
+
+"resolve@^1.14.2", "resolve@^1.19.0", "resolve@^1.20.0", "resolve@^1.22.0", "resolve@^1.22.1":
+ "integrity" "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw=="
+ "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz"
+ "version" "1.22.1"
+ dependencies:
+ "is-core-module" "^2.9.0"
+ "path-parse" "^1.0.7"
+ "supports-preserve-symlinks-flag" "^1.0.0"
+
+"resolve@^2.0.0-next.3":
+ "integrity" "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q=="
+ "resolved" "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz"
+ "version" "2.0.0-next.3"
+ dependencies:
+ "is-core-module" "^2.2.0"
+ "path-parse" "^1.0.6"
+
+"reusify@^1.0.4":
+ "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
+ "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
+ "version" "1.0.4"
+
+"rifm@^0.12.1":
+ "integrity" "sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg=="
+ "resolved" "https://registry.npmjs.org/rifm/-/rifm-0.12.1.tgz"
+ "version" "0.12.1"
+
+"rimraf@^3.0.2":
+ "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="
+ "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
+ "version" "3.0.2"
+ dependencies:
+ "glob" "^7.1.3"
+
+"rollup-plugin-terser@^7.0.0":
+ "integrity" "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ=="
+ "resolved" "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz"
+ "version" "7.0.2"
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "jest-worker" "^26.2.1"
+ "serialize-javascript" "^4.0.0"
+ "terser" "^5.0.0"
+
+"rollup@^1.20.0 || ^2.0.0", "rollup@^1.20.0||^2.0.0", "rollup@^1.20.0||^2.0.0||^3.0.0", "rollup@^2.0.0", "rollup@^2.43.1", "rollup@^2.75.7", "rollup@^2.79.1":
+ "integrity" "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw=="
+ "resolved" "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz"
+ "version" "2.79.1"
+ optionalDependencies:
+ "fsevents" "~2.3.2"
+
+"run-parallel@^1.1.9":
+ "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="
+ "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
+ "version" "1.2.0"
+ dependencies:
+ "queue-microtask" "^1.2.2"
+
+"safe-buffer@^5.1.0", "safe-buffer@~5.1.1":
+ "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
+ "version" "5.1.2"
+
+"safe-regex-test@^1.0.0":
+ "integrity" "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA=="
+ "resolved" "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "get-intrinsic" "^1.1.3"
+ "is-regex" "^1.1.4"
+
+"scheduler@^0.20.2":
+ "integrity" "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ=="
+ "resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz"
+ "version" "0.20.2"
+ dependencies:
+ "loose-envify" "^1.1.0"
+ "object-assign" "^4.1.1"
+
+"semver@^6.1.1", "semver@^6.1.2", "semver@^6.3.0":
+ "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
+ "version" "6.3.0"
+
+"semver@^7.3.5":
+ "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ=="
+ "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz"
+ "version" "7.3.5"
+ dependencies:
+ "lru-cache" "^6.0.0"
+
+"semver@^7.3.7":
+ "integrity" "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A=="
+ "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz"
+ "version" "7.3.8"
+ dependencies:
+ "lru-cache" "^6.0.0"
+
+"semver@7.0.0":
+ "integrity" "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A=="
+ "resolved" "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz"
+ "version" "7.0.0"
+
+"sentence-case@^3.0.4":
+ "integrity" "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg=="
+ "resolved" "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz"
+ "version" "3.0.4"
+ dependencies:
+ "no-case" "^3.0.4"
+ "tslib" "^2.0.3"
+ "upper-case-first" "^2.0.2"
+
+"serialize-javascript@^4.0.0":
+ "integrity" "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw=="
+ "resolved" "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz"
+ "version" "4.0.0"
+ dependencies:
+ "randombytes" "^2.1.0"
+
+"shallowequal@^1.1.0":
+ "integrity" "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+ "resolved" "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz"
+ "version" "1.1.0"
+
+"shebang-command@^2.0.0":
+ "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="
+ "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "shebang-regex" "^3.0.0"
+
+"shebang-regex@^3.0.0":
+ "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+ "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
+ "version" "3.0.0"
+
+"side-channel@^1.0.4":
+ "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw=="
+ "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
+ "version" "1.0.4"
+ dependencies:
+ "call-bind" "^1.0.0"
+ "get-intrinsic" "^1.0.2"
+ "object-inspect" "^1.9.0"
+
+"simplebar-react@^2.4.1":
+ "integrity" "sha512-Ep8gqAUZAS5IC2lT5RE4t1ZFUIVACqbrSRQvFV9a6NbVUzXzOMnc4P82Hl8Ak77AnPQvmgUwZS7aUKLyBoMAcg=="
+ "resolved" "https://registry.npmjs.org/simplebar-react/-/simplebar-react-2.4.3.tgz"
+ "version" "2.4.3"
+ dependencies:
+ "prop-types" "^15.6.1"
+ "simplebar" "^5.3.9"
+
+"simplebar@^5.3.8", "simplebar@^5.3.9":
+ "integrity" "sha512-1vIIpjDvY9sVH14e0LGeiCiTFU3ILqAghzO6OI9axeG+mvU/vMSrvXeAXkBolqFFz3XYaY8n5ahH9MeP3sp2Ag=="
+ "resolved" "https://registry.npmjs.org/simplebar/-/simplebar-5.3.9.tgz"
+ "version" "5.3.9"
+ dependencies:
+ "@juggle/resize-observer" "^3.3.1"
+ "can-use-dom" "^0.1.0"
+ "core-js" "^3.0.1"
+ "lodash.debounce" "^4.0.8"
+ "lodash.memoize" "^4.1.2"
+ "lodash.throttle" "^4.1.1"
+
+"slash@^3.0.0":
+ "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
+ "version" "3.0.0"
+
+"snake-case@^3.0.4":
+ "integrity" "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg=="
+ "resolved" "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz"
+ "version" "3.0.4"
+ dependencies:
+ "dot-case" "^3.0.4"
+ "tslib" "^2.0.3"
+
+"source-map-js@^1.0.2":
+ "integrity" "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+ "resolved" "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
+ "version" "1.0.2"
+
+"source-map-support@~0.5.20":
+ "integrity" "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="
+ "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz"
+ "version" "0.5.21"
+ dependencies:
+ "buffer-from" "^1.0.0"
+ "source-map" "^0.6.0"
+
+"source-map@^0.5.7":
+ "integrity" "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
+ "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
+ "version" "0.5.7"
+
+"source-map@^0.6.0":
+ "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
+ "version" "0.6.1"
+
+"source-map@^0.8.0-beta.0":
+ "integrity" "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA=="
+ "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz"
+ "version" "0.8.0-beta.0"
+ dependencies:
+ "whatwg-url" "^7.0.0"
+
+"source-map@~0.7.2":
+ "integrity" "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
+ "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz"
+ "version" "0.7.3"
+
+"sourcemap-codec@^1.4.4":
+ "integrity" "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
+ "resolved" "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz"
+ "version" "1.4.8"
+
+"string-natural-compare@^3.0.1":
+ "integrity" "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw=="
+ "resolved" "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz"
+ "version" "3.0.1"
+
+"string.prototype.matchall@^4.0.6", "string.prototype.matchall@^4.0.7":
+ "integrity" "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg=="
+ "resolved" "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz"
+ "version" "4.0.8"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+ "get-intrinsic" "^1.1.3"
+ "has-symbols" "^1.0.3"
+ "internal-slot" "^1.0.3"
+ "regexp.prototype.flags" "^1.4.3"
+ "side-channel" "^1.0.4"
+
+"string.prototype.trimend@^1.0.5":
+ "integrity" "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ=="
+ "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz"
+ "version" "1.0.6"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+
+"string.prototype.trimstart@^1.0.5":
+ "integrity" "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA=="
+ "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz"
+ "version" "1.0.6"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+
+"stringify-object@^3.3.0":
+ "integrity" "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw=="
+ "resolved" "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz"
+ "version" "3.3.0"
+ dependencies:
+ "get-own-enumerable-property-symbols" "^3.0.0"
+ "is-obj" "^1.0.1"
+ "is-regexp" "^1.0.0"
+
+"strip-ansi@^6.0.1":
+ "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="
+ "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
+ "version" "6.0.1"
+ dependencies:
+ "ansi-regex" "^5.0.1"
+
+"strip-bom@^3.0.0":
+ "integrity" "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="
+ "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
+ "version" "3.0.0"
+
+"strip-comments@^2.0.1":
+ "integrity" "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw=="
+ "resolved" "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz"
+ "version" "2.0.1"
+
+"strip-json-comments@^3.1.0", "strip-json-comments@^3.1.1":
+ "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
+ "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
+ "version" "3.1.1"
+
+"style-value-types@5.0.0":
+ "integrity" "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA=="
+ "resolved" "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz"
+ "version" "5.0.0"
+ dependencies:
+ "hey-listen" "^1.0.8"
+ "tslib" "^2.1.0"
+
+"stylis-plugin-rtl@^2.1.1":
+ "integrity" "sha512-q6xIkri6fBufIO/sV55md2CbgS5c6gg9EhSVATtHHCdOnbN/jcI0u3lYhNVeuI65c4lQPo67g8xmq5jrREvzlg=="
+ "resolved" "https://registry.npmjs.org/stylis-plugin-rtl/-/stylis-plugin-rtl-2.1.1.tgz"
+ "version" "2.1.1"
+ dependencies:
+ "cssjanus" "^2.0.1"
+
+"stylis@^4.1.1", "stylis@4.1.3", "stylis@4.x":
+ "integrity" "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA=="
+ "resolved" "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz"
+ "version" "4.1.3"
+
+"supports-color@^5.3.0":
+ "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="
+ "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
+ "version" "5.5.0"
+ dependencies:
+ "has-flag" "^3.0.0"
+
+"supports-color@^7.0.0":
+ "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="
+ "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
+ "version" "7.2.0"
+ dependencies:
+ "has-flag" "^4.0.0"
+
+"supports-color@^7.1.0":
+ "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="
+ "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
+ "version" "7.2.0"
+ dependencies:
+ "has-flag" "^4.0.0"
+
+"supports-preserve-symlinks-flag@^1.0.0":
+ "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
+ "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
+ "version" "1.0.0"
+
+"svg-parser@^2.0.4":
+ "integrity" "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ=="
+ "resolved" "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz"
+ "version" "2.0.4"
+
+"svg.draggable.js@^2.2.2":
+ "integrity" "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw=="
+ "resolved" "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz"
+ "version" "2.2.2"
+ dependencies:
+ "svg.js" "^2.0.1"
+
+"svg.easing.js@^2.0.0":
+ "integrity" "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA=="
+ "resolved" "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "svg.js" ">=2.3.x"
+
+"svg.filter.js@^2.0.2":
+ "integrity" "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw=="
+ "resolved" "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz"
+ "version" "2.0.2"
+ dependencies:
+ "svg.js" "^2.2.5"
+
+"svg.js@^2.0.1", "svg.js@^2.2.5", "svg.js@^2.4.0", "svg.js@^2.6.5", "svg.js@>=2.3.x":
+ "integrity" "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA=="
+ "resolved" "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz"
+ "version" "2.7.1"
+
+"svg.pathmorphing.js@^0.1.3":
+ "integrity" "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww=="
+ "resolved" "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz"
+ "version" "0.1.3"
+ dependencies:
+ "svg.js" "^2.4.0"
+
+"svg.resize.js@^1.4.3":
+ "integrity" "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw=="
+ "resolved" "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz"
+ "version" "1.4.3"
+ dependencies:
+ "svg.js" "^2.6.5"
+ "svg.select.js" "^2.1.2"
+
+"svg.select.js@^2.1.2":
+ "integrity" "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ=="
+ "resolved" "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz"
+ "version" "2.1.2"
+ dependencies:
+ "svg.js" "^2.2.5"
+
+"svg.select.js@^3.0.1":
+ "integrity" "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw=="
+ "resolved" "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz"
+ "version" "3.0.1"
+ dependencies:
+ "svg.js" "^2.6.5"
+
+"temp-dir@^2.0.0":
+ "integrity" "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg=="
+ "resolved" "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz"
+ "version" "2.0.0"
+
+"tempy@^0.6.0":
+ "integrity" "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw=="
+ "resolved" "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz"
+ "version" "0.6.0"
+ dependencies:
+ "is-stream" "^2.0.0"
+ "temp-dir" "^2.0.0"
+ "type-fest" "^0.16.0"
+ "unique-string" "^2.0.0"
+
+"terser@^5.0.0", "terser@^5.4.0":
+ "integrity" "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A=="
+ "resolved" "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz"
+ "version" "5.11.0"
+ dependencies:
+ "acorn" "^8.5.0"
+ "commander" "^2.20.0"
+ "source-map" "~0.7.2"
+ "source-map-support" "~0.5.20"
+
+"text-table@^0.2.0":
+ "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
+ "version" "0.2.0"
+
+"to-fast-properties@^2.0.0":
+ "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
+ "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
+ "version" "2.0.0"
+
+"to-regex-range@^5.0.1":
+ "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
+ "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
+ "version" "5.0.1"
+ dependencies:
+ "is-number" "^7.0.0"
+
+"toposort@^2.0.2":
+ "integrity" "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg=="
+ "resolved" "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz"
+ "version" "2.0.2"
+
+"tr46@^1.0.1":
+ "integrity" "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA=="
+ "resolved" "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz"
+ "version" "1.0.1"
+ dependencies:
+ "punycode" "^2.1.0"
+
+"tsconfig-paths@^3.14.1":
+ "integrity" "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ=="
+ "resolved" "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz"
+ "version" "3.14.1"
+ dependencies:
+ "@types/json5" "^0.0.29"
+ "json5" "^1.0.1"
+ "minimist" "^1.2.6"
+ "strip-bom" "^3.0.0"
+
+"tslib@^1.8.1":
+ "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
+ "version" "1.14.1"
+
+"tslib@^2.0.3", "tslib@^2.1.0", "tslib@^2.3.1", "tslib@^2.4.0":
+ "integrity" "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
+ "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz"
+ "version" "2.4.1"
+
+"tsutils@^3.21.0":
+ "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA=="
+ "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz"
+ "version" "3.21.0"
+ dependencies:
+ "tslib" "^1.8.1"
+
+"type-check@^0.4.0", "type-check@~0.4.0":
+ "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="
+ "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
+ "version" "0.4.0"
+ dependencies:
+ "prelude-ls" "^1.2.1"
+
+"type-fest@^0.16.0":
+ "integrity" "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg=="
+ "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz"
+ "version" "0.16.0"
+
+"type-fest@^0.20.2":
+ "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
+ "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
+ "version" "0.20.2"
+
+"typescript@^4.7.4", "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":
+ "integrity" "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ=="
+ "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz"
+ "version" "4.8.4"
+
+"unbox-primitive@^1.0.2":
+ "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw=="
+ "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "has-bigints" "^1.0.2"
+ "has-symbols" "^1.0.3"
+ "which-boxed-primitive" "^1.0.2"
+
+"unicode-canonical-property-names-ecmascript@^2.0.0":
+ "integrity" "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ=="
+ "resolved" "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz"
+ "version" "2.0.0"
+
+"unicode-match-property-ecmascript@^2.0.0":
+ "integrity" "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q=="
+ "resolved" "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "unicode-canonical-property-names-ecmascript" "^2.0.0"
+ "unicode-property-aliases-ecmascript" "^2.0.0"
+
+"unicode-match-property-value-ecmascript@^2.0.0":
+ "integrity" "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw=="
+ "resolved" "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz"
+ "version" "2.0.0"
+
+"unicode-property-aliases-ecmascript@^2.0.0":
+ "integrity" "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ=="
+ "resolved" "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz"
+ "version" "2.0.0"
+
+"unique-string@^2.0.0":
+ "integrity" "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg=="
+ "resolved" "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "crypto-random-string" "^2.0.0"
+
+"universalify@^2.0.0":
+ "integrity" "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
+ "resolved" "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz"
+ "version" "2.0.0"
+
+"upath@^1.2.0":
+ "integrity" "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
+ "resolved" "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz"
+ "version" "1.2.0"
+
+"update-browserslist-db@^1.0.9":
+ "integrity" "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ=="
+ "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz"
+ "version" "1.0.10"
+ dependencies:
+ "escalade" "^3.1.1"
+ "picocolors" "^1.0.0"
+
+"upper-case-first@^2.0.2":
+ "integrity" "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg=="
+ "resolved" "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz"
+ "version" "2.0.2"
+ dependencies:
+ "tslib" "^2.0.3"
+
+"upper-case@^2.0.2":
+ "integrity" "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg=="
+ "resolved" "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz"
+ "version" "2.0.2"
+ dependencies:
+ "tslib" "^2.0.3"
+
+"uri-js@^4.2.2":
+ "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="
+ "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
+ "version" "4.4.1"
+ dependencies:
+ "punycode" "^2.1.0"
+
+"vite-plugin-pwa@^0.12.3":
+ "integrity" "sha512-pSiFHmnJGMQJJL8aJzQ8SaraZBSBPMGvGUkCNzheIq9UQCEk/eP3UmANNmS9eupuhIpTK8AdxTOHcaMcAqAbCA=="
+ "resolved" "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.12.8.tgz"
+ "version" "0.12.8"
+ dependencies:
+ "debug" "^4.3.4"
+ "fast-glob" "^3.2.11"
+ "pretty-bytes" "^6.0.0"
+ "rollup" "^2.75.7"
+ "workbox-build" "^6.5.3"
+ "workbox-window" "^6.5.3"
+
+"vite-plugin-svgr@^2.2.1":
+ "integrity" "sha512-u8Ac27uZmDHTVGawpAhvLMJMuzbGeZGhe61TGeHoRQLxVhmQfIYCefa0iLbjC0ui1zFo6XZnS8EkzPITCYp85g=="
+ "resolved" "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-2.2.2.tgz"
+ "version" "2.2.2"
+ dependencies:
+ "@rollup/pluginutils" "^5.0.0"
+ "@svgr/core" "^6.4.0"
+
+"vite@^2.0.0 || ^3.0.0-0", "vite@^2.6.0 || 3", "vite@^3.0.4":
+ "integrity" "sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ=="
+ "resolved" "https://registry.npmjs.org/vite/-/vite-3.2.3.tgz"
+ "version" "3.2.3"
+ dependencies:
+ "esbuild" "^0.15.9"
+ "postcss" "^8.4.18"
+ "resolve" "^1.22.1"
+ "rollup" "^2.79.1"
+ optionalDependencies:
+ "fsevents" "~2.3.2"
+
+"webidl-conversions@^4.0.2":
+ "integrity" "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
+ "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz"
+ "version" "4.0.2"
+
+"whatwg-url@^7.0.0":
+ "integrity" "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg=="
+ "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz"
+ "version" "7.1.0"
+ dependencies:
+ "lodash.sortby" "^4.7.0"
+ "tr46" "^1.0.1"
+ "webidl-conversions" "^4.0.2"
+
+"which-boxed-primitive@^1.0.2":
+ "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg=="
+ "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "is-bigint" "^1.0.1"
+ "is-boolean-object" "^1.1.0"
+ "is-number-object" "^1.0.4"
+ "is-string" "^1.0.5"
+ "is-symbol" "^1.0.3"
+
+"which@^2.0.1":
+ "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="
+ "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
+ "version" "2.0.2"
+ dependencies:
+ "isexe" "^2.0.0"
+
+"word-wrap@^1.2.3":
+ "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
+ "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
+ "version" "1.2.3"
+
+"workbox-background-sync@6.5.4":
+ "integrity" "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g=="
+ "resolved" "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "idb" "^7.0.1"
+ "workbox-core" "6.5.4"
+
+"workbox-broadcast-update@6.5.4":
+ "integrity" "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw=="
+ "resolved" "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "workbox-core" "6.5.4"
+
+"workbox-build@^6.5.3":
+ "integrity" "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA=="
+ "resolved" "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz"
+ "version" "6.5.4"
+ 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.4"
+ "workbox-broadcast-update" "6.5.4"
+ "workbox-cacheable-response" "6.5.4"
+ "workbox-core" "6.5.4"
+ "workbox-expiration" "6.5.4"
+ "workbox-google-analytics" "6.5.4"
+ "workbox-navigation-preload" "6.5.4"
+ "workbox-precaching" "6.5.4"
+ "workbox-range-requests" "6.5.4"
+ "workbox-recipes" "6.5.4"
+ "workbox-routing" "6.5.4"
+ "workbox-strategies" "6.5.4"
+ "workbox-streams" "6.5.4"
+ "workbox-sw" "6.5.4"
+ "workbox-window" "6.5.4"
+
+"workbox-cacheable-response@6.5.4":
+ "integrity" "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug=="
+ "resolved" "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "workbox-core" "6.5.4"
+
+"workbox-core@6.5.4":
+ "integrity" "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q=="
+ "resolved" "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz"
+ "version" "6.5.4"
+
+"workbox-expiration@6.5.4":
+ "integrity" "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ=="
+ "resolved" "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "idb" "^7.0.1"
+ "workbox-core" "6.5.4"
+
+"workbox-google-analytics@6.5.4":
+ "integrity" "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg=="
+ "resolved" "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "workbox-background-sync" "6.5.4"
+ "workbox-core" "6.5.4"
+ "workbox-routing" "6.5.4"
+ "workbox-strategies" "6.5.4"
+
+"workbox-navigation-preload@6.5.4":
+ "integrity" "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng=="
+ "resolved" "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "workbox-core" "6.5.4"
+
+"workbox-precaching@6.5.4":
+ "integrity" "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg=="
+ "resolved" "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "workbox-core" "6.5.4"
+ "workbox-routing" "6.5.4"
+ "workbox-strategies" "6.5.4"
+
+"workbox-range-requests@6.5.4":
+ "integrity" "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg=="
+ "resolved" "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "workbox-core" "6.5.4"
+
+"workbox-recipes@6.5.4":
+ "integrity" "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA=="
+ "resolved" "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "workbox-cacheable-response" "6.5.4"
+ "workbox-core" "6.5.4"
+ "workbox-expiration" "6.5.4"
+ "workbox-precaching" "6.5.4"
+ "workbox-routing" "6.5.4"
+ "workbox-strategies" "6.5.4"
+
+"workbox-routing@6.5.4":
+ "integrity" "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg=="
+ "resolved" "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "workbox-core" "6.5.4"
+
+"workbox-strategies@6.5.4":
+ "integrity" "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw=="
+ "resolved" "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "workbox-core" "6.5.4"
+
+"workbox-streams@6.5.4":
+ "integrity" "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg=="
+ "resolved" "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "workbox-core" "6.5.4"
+ "workbox-routing" "6.5.4"
+
+"workbox-sw@6.5.4":
+ "integrity" "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA=="
+ "resolved" "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz"
+ "version" "6.5.4"
+
+"workbox-window@^6.5.3", "workbox-window@6.5.4":
+ "integrity" "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug=="
+ "resolved" "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz"
+ "version" "6.5.4"
+ dependencies:
+ "@types/trusted-types" "^2.0.2"
+ "workbox-core" "6.5.4"
+
+"wrappy@1":
+ "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ "version" "1.0.2"
+
+"yallist@^4.0.0":
+ "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
+ "version" "4.0.0"
+
+"yaml@^1.10.0":
+ "integrity" "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
+ "resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
+ "version" "1.10.2"
+
+"yocto-queue@^0.1.0":
+ "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
+ "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
+ "version" "0.1.0"
+
+"yup@^0.32.11":
+ "integrity" "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg=="
+ "resolved" "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz"
+ "version" "0.32.11"
+ 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"
diff --git a/modules_statuses.json b/modules_statuses.json
index b9809f6d..7b056576 100755
--- a/modules_statuses.json
+++ b/modules_statuses.json
@@ -1,5 +1,6 @@
{
"Internal": true,
"Client": true,
- "Linksehat": true
+ "Linksehat": true,
+ "HospitalPortal": true
}
\ No newline at end of file