├── .env.example ├── src ├── vite-env.d.ts ├── constants │ ├── colors.ts │ └── urls.ts ├── assets │ ├── baby_1.gif │ ├── baby_2.gif │ ├── baby_3.gif │ ├── baby_4.png │ └── react.svg ├── views │ ├── ErrorPage.tsx │ ├── index.tsx │ ├── WrappedPage.tsx │ └── products │ │ ├── EditPage.tsx │ │ └── ViewPage.tsx ├── context │ └── index.ts ├── services │ ├── index.ts │ ├── globalService.ts │ └── productService.ts ├── index.css ├── actionTypes │ ├── index.ts │ ├── globalTypes.ts │ └── productTypes.ts ├── sagas │ ├── index.ts │ ├── globalSaga.ts │ └── productSaga.ts ├── components │ ├── RoundButton.tsx │ └── Overlay.tsx ├── reducers │ ├── index.ts │ ├── globalReducer.ts │ └── productReducer.ts ├── types │ └── index.ts ├── store │ └── index.ts ├── main.tsx └── layouts │ └── DashboardLayout.tsx ├── postcss.config.js ├── .prettierrc.json ├── vite.config.ts ├── tsconfig.node.json ├── tailwind.config.js ├── .gitignore ├── index.html ├── .eslintrc.cjs ├── README.md ├── tsconfig.json ├── public └── vite.svg ├── package.json └── pnpm-lock.yaml /.env.example: -------------------------------------------------------------------------------- 1 | VITE_APP_ID = 1 2 | VITE_GOOGLE_MAP_API_KEY = -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/constants/colors.ts: -------------------------------------------------------------------------------- 1 | export const PrimaryColor = '#272e71' 2 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /src/assets/baby_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inapeace0/react-redux-saga-tailwindcss-typescript/HEAD/src/assets/baby_1.gif -------------------------------------------------------------------------------- /src/assets/baby_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inapeace0/react-redux-saga-tailwindcss-typescript/HEAD/src/assets/baby_2.gif -------------------------------------------------------------------------------- /src/assets/baby_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inapeace0/react-redux-saga-tailwindcss-typescript/HEAD/src/assets/baby_3.gif -------------------------------------------------------------------------------- /src/assets/baby_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inapeace0/react-redux-saga-tailwindcss-typescript/HEAD/src/assets/baby_4.png -------------------------------------------------------------------------------- /src/views/ErrorPage.tsx: -------------------------------------------------------------------------------- 1 | export default function ErrorPage() { 2 | return ( 3 | <> 4 |

404 Not Found

5 | 6 | ) 7 | } 8 | -------------------------------------------------------------------------------- /src/context/index.ts: -------------------------------------------------------------------------------- 1 | import { createContext } from 'react' 2 | import { PrimaryColor } from '@/constants/colors' 3 | 4 | export const ThemeContext = createContext(PrimaryColor) 5 | -------------------------------------------------------------------------------- /src/views/index.tsx: -------------------------------------------------------------------------------- 1 | const RootPage = () => { 2 | return ( 3 | <> 4 |

Welcome to be here - Dashboard

5 | 6 | ) 7 | } 8 | 9 | export default RootPage 10 | -------------------------------------------------------------------------------- /src/services/index.ts: -------------------------------------------------------------------------------- 1 | import * as globalService from './globalService' 2 | import * as productService from './productService' 3 | 4 | export default { 5 | ...globalService, 6 | ...productService, 7 | } 8 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "tabWidth": 3, 4 | "printWidth": 100, 5 | "singleQuote": true, 6 | "trailingComma": "all", 7 | "jsxSingleQuote": true, 8 | "bracketSpacing": true 9 | } -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | body { 6 | background-color: #ddd; 7 | } 8 | 9 | h1 { 10 | font-weight: bold; 11 | font-size: 1.5em; 12 | } 13 | -------------------------------------------------------------------------------- /src/actionTypes/index.ts: -------------------------------------------------------------------------------- 1 | import globalTypes from './globalTypes' 2 | import ProductTypes from './productTypes' 3 | 4 | const Types = { 5 | ...globalTypes, 6 | ...ProductTypes, 7 | } 8 | 9 | export default Types 10 | -------------------------------------------------------------------------------- /src/views/WrappedPage.tsx: -------------------------------------------------------------------------------- 1 | import DashboardLayout from '../layouts/DashboardLayout' 2 | 3 | export default function WrappedPage({ element }: { element: React.ReactNode }) { 4 | return {element} 5 | } 6 | -------------------------------------------------------------------------------- /src/sagas/index.ts: -------------------------------------------------------------------------------- 1 | import { all } from 'redux-saga/effects' 2 | import GlobalSaga from './globalSaga' 3 | import productSaga from './productSaga' 4 | 5 | export default function* rootSaga() { 6 | yield all([GlobalSaga(), productSaga()]) 7 | } 8 | -------------------------------------------------------------------------------- /src/services/globalService.ts: -------------------------------------------------------------------------------- 1 | import { GET_APP_CONFIGURATION } from '@/constants/urls' 2 | 3 | export const getAppConfiguration = (id: number) => { 4 | return fetch(GET_APP_CONFIGURATION + id, { method: 'GET' }).then((res) => res.json()) 5 | } 6 | -------------------------------------------------------------------------------- /src/constants/urls.ts: -------------------------------------------------------------------------------- 1 | export const BASE_URL = 'https://api-test.innoloft.com/' 2 | 3 | export const GET_PRODUCT = BASE_URL + 'product/' 4 | export const GET_APP_CONFIGURATION = BASE_URL + 'configuration/' 5 | export const GET_TRL_LIST = BASE_URL + 'trl/' 6 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import tsconfigPaths from 'vite-tsconfig-paths' 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [react(), tsconfigPaths()], 8 | }) 9 | -------------------------------------------------------------------------------- /src/actionTypes/globalTypes.ts: -------------------------------------------------------------------------------- 1 | const Types = { 2 | GET_APP_CONFIGURATION: 'GET_APP_CONFIGURATION', 3 | GET_APP_CONFIGURATION_SUCCESS: 'GET_APP_CONFIGURATION_SUCCESS', 4 | GET_APP_CONFIGURATION_FAILURE: 'GET_APP_CONFIGURATION_FAILURE', 5 | } 6 | 7 | export default Types 8 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /src/components/RoundButton.tsx: -------------------------------------------------------------------------------- 1 | const RoundButton = ({ children, color }: { children: string; color: string }) => ( 2 | 5 | ) 6 | 7 | export default RoundButton 8 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: [ 4 | "./index.html", 5 | "./src/**/*.{js,ts,jsx,tsx}", 6 | ], 7 | theme: { 8 | extend: { 9 | flex: { 10 | '3': '3 3 0%' 11 | } 12 | }, 13 | }, 14 | plugins: [], 15 | } -------------------------------------------------------------------------------- /src/reducers/index.ts: -------------------------------------------------------------------------------- 1 | import { combineReducers } from 'redux' 2 | import globalReducer from './globalReducer' 3 | import productReducer from './productReducer' 4 | 5 | const rootReducer = combineReducers({ 6 | global: globalReducer, 7 | product: productReducer, 8 | }) 9 | 10 | export default rootReducer 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | 26 | # Env 27 | .env 28 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | INNOLOFT BLOG 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { browser: true, es2020: true }, 3 | extends: [ 4 | 'eslint:recommended', 5 | 'plugin:@typescript-eslint/recommended', 6 | 'plugin:react-hooks/recommended', 7 | ], 8 | parser: '@typescript-eslint/parser', 9 | parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, 10 | plugins: ['react-refresh'], 11 | rules: { 12 | 'react-refresh/only-export-components': 'warn', 13 | '@typescript-eslint/no-explicit-any': 'off' 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /src/services/productService.ts: -------------------------------------------------------------------------------- 1 | import { GET_PRODUCT, GET_TRL_LIST } from '@/constants/urls' 2 | 3 | export const getProduct = (id: number) => { 4 | return fetch(GET_PRODUCT + id, { method: 'GET' }).then((res) => res.json()) 5 | } 6 | 7 | export const updateProduct = (id: number) => { 8 | return fetch(GET_PRODUCT + id, { method: 'PUT' }).then((res) => res.json()) 9 | } 10 | 11 | export const getTrlList = () => { 12 | return fetch(GET_TRL_LIST, { method: 'GET' }).then((res) => res.json()) 13 | } 14 | -------------------------------------------------------------------------------- /src/actionTypes/productTypes.ts: -------------------------------------------------------------------------------- 1 | const Types = { 2 | GET_PRODUCT: 'GET_PRODUCT', 3 | GET_PRODUCT_SUCCESS: 'GET_PRODUCT_SUCCESS', 4 | GET_PRODUCT_FAILURE: 'GET_PRODUCT_FAILURE', 5 | 6 | UPDATE_PRODUCT: 'UPDATE_PRODUCT', 7 | UPDATE_PRODUCT_SUCCESS: 'UPDATE_PRODUCT_SUCCESS', 8 | UPDATE_PRODUCT_FAILURE: 'UPDATE_PRODUCT_FAILURE', 9 | 10 | GET_TRL_LIST: 'GET_TRL_LIST', 11 | GET_TRL_LIST_SUCCESS: 'GET_TRL_LIST_SUCCESS', 12 | GET_TRL_LIST_FAILURE: 'GET_TRL_LIST_FAILURE', 13 | } 14 | 15 | export default Types 16 | -------------------------------------------------------------------------------- /src/types/index.ts: -------------------------------------------------------------------------------- 1 | export interface ActionType { 2 | type: string 3 | payload?: any 4 | error?: null | string 5 | } 6 | 7 | export interface globalState { 8 | loading: boolean 9 | id: number 10 | logo: string 11 | mainColor: string 12 | hasUserSection: boolean 13 | } 14 | 15 | // interface Product { 16 | 17 | // } 18 | 19 | export interface productState { 20 | loading: boolean 21 | product: any 22 | error: null | string 23 | trls: string[] 24 | } 25 | 26 | export interface RootState { 27 | global: globalState 28 | product: productState 29 | } 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Project Architecture 2 | 3 | ### What are the main skills? 4 | 5 | ⚽ React.js
6 | ⚾ Redux + Saga
7 | 🥎 Tailwind CSS
8 | 🏀 Typescript
9 | 🏐 Vite
10 | 11 | ### Problem 12 | https://github.com/innoloft/Frontend-Application 13 | 14 | ### Solution 15 | 16 | 🛠 How to run in local 17 | 18 | ``` 19 | npm run dev 20 | ``` 21 | 22 | 🛠 How to link the code 23 | 24 | ``` 25 | npm run lint 26 | ``` 27 | 28 | 🛠 How to check the format of code 29 | 30 | ``` 31 | npm run format:check 32 | ``` 33 | 34 | 🛠 How to format the code 35 | 36 | ``` 37 | npm run format 38 | ``` 39 | 40 | 🛠 How to build 41 | 42 | ``` 43 | npm run build 44 | ``` -------------------------------------------------------------------------------- /src/store/index.ts: -------------------------------------------------------------------------------- 1 | import { createStore, applyMiddleware, compose } from 'redux' 2 | import createSagaMiddleware from 'redux-saga' 3 | import rootReducer from '@/reducers/index' 4 | import rootSagas from '@/sagas/index' 5 | 6 | // Create sagas middleware 7 | const sagaMiddleware = createSagaMiddleware() 8 | const composeEnhancers = 9 | typeof window === 'object' && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ 10 | ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({}) 11 | : compose 12 | 13 | export default function configureStore() { 14 | const store = createStore(rootReducer, composeEnhancers(applyMiddleware(sagaMiddleware))) 15 | // Running sagas 16 | sagaMiddleware.run(rootSagas) 17 | return store 18 | } 19 | -------------------------------------------------------------------------------- /src/components/Overlay.tsx: -------------------------------------------------------------------------------- 1 | import { useMemo } from 'react' 2 | 3 | import babyImage1 from '@/assets/baby_1.gif' 4 | import babyImage2 from '@/assets/baby_2.gif' 5 | import babyImage3 from '@/assets/baby_3.gif' 6 | import babyImage4 from '@/assets/baby_4.png' 7 | 8 | const random = (length: number) => Math.floor(Math.random() * length) 9 | const Overlay = () => { 10 | const images = [babyImage1, babyImage2, babyImage3, babyImage4] 11 | 12 | const index = useMemo(() => random(images.length), [images.length]) 13 | 14 | return ( 15 |
16 | 17 |
18 |
19 | ) 20 | } 21 | 22 | export default Overlay 23 | -------------------------------------------------------------------------------- /src/sagas/globalSaga.ts: -------------------------------------------------------------------------------- 1 | import { all, call, put, takeLatest, Effect } from 'redux-saga/effects' 2 | import Types from '@/actionTypes/index' 3 | import API from '@/services/index' 4 | import { ActionType } from '@/types/index' 5 | 6 | const { getAppConfiguration } = API 7 | 8 | function* GetAppConfiguration(action: ActionType): Generator { 9 | try { 10 | const res = yield call(getAppConfiguration, action.payload) 11 | if (res) { 12 | yield put({ 13 | type: Types.GET_APP_CONFIGURATION_SUCCESS, 14 | payload: res, 15 | }) 16 | } 17 | } catch (error) { 18 | yield put({ 19 | type: Types.GET_APP_CONFIGURATION_FAILURE, 20 | error: 'Network Connection Failed', 21 | }) 22 | } 23 | } 24 | 25 | function* watchRequest() { 26 | yield takeLatest(Types.GET_APP_CONFIGURATION, GetAppConfiguration) 27 | } 28 | 29 | export default function* sagas() { 30 | yield all([watchRequest()]) 31 | } 32 | -------------------------------------------------------------------------------- /src/reducers/globalReducer.ts: -------------------------------------------------------------------------------- 1 | import Types from '@/actionTypes/index' 2 | import { ActionType } from '@/types/index' 3 | import { globalState } from '@/types/index' 4 | 5 | const initialState: globalState = { 6 | loading: false, 7 | id: 1, 8 | logo: 'https://img.innoloft.de/logo.svg', 9 | mainColor: '#272e71', 10 | hasUserSection: true, 11 | } 12 | 13 | const productReducer = (state = initialState, action: ActionType) => { 14 | switch (action.type) { 15 | case Types.GET_APP_CONFIGURATION: 16 | return { 17 | ...state, 18 | loading: true, 19 | } 20 | case Types.GET_APP_CONFIGURATION_SUCCESS: 21 | return { 22 | ...state, 23 | ...action.payload, 24 | loading: false, 25 | } 26 | case Types.GET_APP_CONFIGURATION_FAILURE: 27 | return { 28 | ...state, 29 | loading: false, 30 | error: action.error, 31 | } 32 | default: 33 | return state 34 | } 35 | } 36 | 37 | export default productReducer 38 | -------------------------------------------------------------------------------- /src/reducers/productReducer.ts: -------------------------------------------------------------------------------- 1 | import Types from '@/actionTypes/index' 2 | import { ActionType } from '@/types/index' 3 | import { productState } from '@/types/index' 4 | 5 | const initialState: productState = { 6 | loading: false, 7 | product: null, 8 | error: null, 9 | trls: [], 10 | } 11 | 12 | const productReducer = (state = initialState, action: ActionType) => { 13 | switch (action.type) { 14 | case Types.GET_PRODUCT: 15 | return { 16 | ...state, 17 | loading: true, 18 | } 19 | case Types.GET_PRODUCT_SUCCESS: 20 | return { 21 | ...state, 22 | product: action.payload, 23 | loading: false, 24 | } 25 | case Types.GET_PRODUCT_FAILURE: 26 | return { 27 | ...state, 28 | loading: false, 29 | error: action.error, 30 | } 31 | case Types.GET_TRL_LIST_SUCCESS: 32 | return { 33 | ...state, 34 | trls: action.payload, 35 | } 36 | default: 37 | return state 38 | } 39 | } 40 | 41 | export default productReducer 42 | -------------------------------------------------------------------------------- /src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import { Provider } from 'react-redux' 4 | import './index.css' 5 | 6 | import Root from './views' 7 | import ViewProductPage from './views/products/ViewPage' 8 | import EditProductPage from './views/products/EditPage' 9 | import WrappedPage from './views/WrappedPage' 10 | 11 | import configureStore from './store' 12 | const store = configureStore() 13 | 14 | import { createBrowserRouter, RouterProvider } from 'react-router-dom' 15 | 16 | const router = createBrowserRouter([ 17 | { 18 | path: '/', 19 | element: } />, 20 | }, 21 | { 22 | path: 'product/:id', 23 | element: } />, 24 | }, 25 | { 26 | path: 'product/:id/edit', 27 | element: } />, 28 | }, 29 | ]) 30 | 31 | ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( 32 | 33 | 34 | 35 | 36 | , 37 | ) 38 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 | "module": "ESNext", 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "noEmit": true, 15 | "jsx": "react-jsx", 16 | 17 | /* Linting */ 18 | "strict": true, 19 | "noUnusedLocals": true, 20 | "noUnusedParameters": true, 21 | "noFallthroughCasesInSwitch": true, 22 | 23 | "baseUrl": "./", 24 | "paths": { 25 | "@/actionTypes/*": ["src/actionTypes/*"], 26 | "@/assets/*": ["./src/assets/*"], 27 | "@/components/*": ["./src/components/*"], 28 | "@/constants/*": ["./src/constants/*"], 29 | "@/layouts/*": ["./src/layouts/*"], 30 | "@/reducers/*": ["./src/reducers/*"], 31 | "@/sagas/*": ["./src/sagas/*"], 32 | "@/services/*": ["./src/services/*"], 33 | "@/views/*": ["./src/views/*"], 34 | "@/types/*": ["./src/types/*"], 35 | "@/context/*": ["./src/context/*"] 36 | } 37 | }, 38 | "include": ["src"], 39 | "references": [{ "path": "./tsconfig.node.json" }] 40 | } 41 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-redux-tailwindcss-typescript", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0", 10 | "preview": "vite preview", 11 | "format:check": "prettier --check src/**/*.{js,jsx,ts,tsx,css,md,json}", 12 | "format": "prettier --write src/**/*.{js,jsx,ts,tsx,css,md,json}" 13 | }, 14 | "dependencies": { 15 | "@types/google-map-react": "^2.1.7", 16 | "google-map-react": "^2.2.1", 17 | "html-react-parser": "^4.0.0", 18 | "react": "^18.2.0", 19 | "react-dom": "^18.2.0", 20 | "react-quill": "^2.0.0", 21 | "react-redux": "^8.1.1", 22 | "react-router-dom": "^6.14.1", 23 | "redux": "^4.2.1", 24 | "redux-saga": "^1.2.3", 25 | "vite-tsconfig-paths": "^4.2.0" 26 | }, 27 | "devDependencies": { 28 | "@types/react": "^18.0.37", 29 | "@types/react-dom": "^18.0.11", 30 | "@typescript-eslint/eslint-plugin": "^5.59.0", 31 | "@typescript-eslint/parser": "^5.59.0", 32 | "@vitejs/plugin-react": "^4.0.0", 33 | "autoprefixer": "^10.4.14", 34 | "eslint": "^8.38.0", 35 | "eslint-plugin-react-hooks": "^4.6.0", 36 | "eslint-plugin-react-refresh": "^0.3.4", 37 | "postcss": "^8.4.24", 38 | "prettier": "^2.8.8", 39 | "tailwindcss": "^3.3.2", 40 | "typescript": "^5.0.2", 41 | "vite": "^4.3.9" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/sagas/productSaga.ts: -------------------------------------------------------------------------------- 1 | import { all, call, put, takeLatest, Effect } from 'redux-saga/effects' 2 | import Types from '@/actionTypes/index' 3 | import API from '@/services/index' 4 | import { ActionType } from '@/types/index' 5 | 6 | const { getProduct, getTrlList } = API 7 | 8 | function* GetProduct(action: ActionType): Generator { 9 | try { 10 | const res = yield call(getProduct, action.payload) 11 | if (res) { 12 | yield put({ 13 | type: Types.GET_PRODUCT_SUCCESS, 14 | payload: res, 15 | }) 16 | } 17 | } catch (error) { 18 | yield put({ 19 | type: Types.GET_PRODUCT_FAILURE, 20 | error: 'Network Connection Failed', 21 | }) 22 | } 23 | } 24 | 25 | function* UpdateProduct(action: ActionType): Generator { 26 | try { 27 | const res = yield call(getProduct, action.payload) 28 | if (res) { 29 | yield put({ 30 | type: Types.GET_PRODUCT_SUCCESS, 31 | payload: res, 32 | }) 33 | } 34 | } catch (error) { 35 | yield put({ 36 | type: Types.GET_PRODUCT_FAILURE, 37 | error: 'Network Connection Failed', 38 | }) 39 | } 40 | } 41 | 42 | function* GetTrlList(): Generator { 43 | try { 44 | const res = yield call(getTrlList) 45 | if (res) { 46 | yield put({ 47 | type: Types.GET_TRL_LIST_SUCCESS, 48 | payload: res, 49 | }) 50 | } 51 | } catch (error) { 52 | yield put({ 53 | type: Types.GET_TRL_LIST_FAILURE, 54 | error: 'Network Connection Failed', 55 | }) 56 | } 57 | } 58 | 59 | function* watchRequest() { 60 | yield takeLatest(Types.GET_PRODUCT, GetProduct) 61 | yield takeLatest(Types.UPDATE_PRODUCT, UpdateProduct) 62 | yield takeLatest(Types.GET_TRL_LIST, GetTrlList) 63 | } 64 | 65 | export default function* sagas() { 66 | yield all([watchRequest()]) 67 | } 68 | -------------------------------------------------------------------------------- /src/layouts/DashboardLayout.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useMemo } from 'react' 2 | import { Link } from 'react-router-dom' 3 | import { useSelector, useDispatch } from 'react-redux' 4 | 5 | import Types from '@/actionTypes/index' 6 | 7 | import { ThemeContext } from '@/context/index' 8 | 9 | import { RootState } from '@/types/index' 10 | 11 | import Overlay from '@/components/Overlay' 12 | 13 | const APP_ID = import.meta.env.VITE_APP_ID === undefined ? '1' : import.meta.env.VITE_APP_ID 14 | 15 | export default function DashboardLayout({ children }: { children: React.ReactNode }) { 16 | const dispatch = useDispatch() 17 | 18 | const { id, mainColor, hasUserSection, logo, loading } = useSelector( 19 | (state: RootState) => state.global, 20 | ) 21 | 22 | const theme = useMemo(() => mainColor, [mainColor]) 23 | 24 | useEffect(() => { 25 | if (id != APP_ID) dispatch({ type: Types.GET_APP_CONFIGURATION, payload: APP_ID }) 26 | // eslint-disable-next-line react-hooks/exhaustive-deps 27 | }, []) 28 | 29 | return ( 30 | 31 | {loading ? ( 32 | 33 | ) : ( 34 |
35 |
39 |
40 | 41 | logo 42 | 43 |
44 |
45 | {hasUserSection &&
} 46 |
47 |
48 |
49 |
50 |
    51 |
  • 52 | Home 53 |
  • 54 |
  • 55 | Product 56 |
  • 57 |
58 |
59 |
{children}
60 |
61 |
62 | )} 63 |
64 | ) 65 | } 66 | -------------------------------------------------------------------------------- /src/views/products/EditPage.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from 'react' 2 | import { useSelector, useDispatch } from 'react-redux' 3 | import { useParams } from 'react-router-dom' 4 | import ReactQuill from 'react-quill' 5 | import 'react-quill/dist/quill.snow.css' 6 | 7 | import { productState } from '@/types/index' 8 | 9 | import Types from '@/actionTypes/index' 10 | 11 | import Overlay from '@/components/Overlay' 12 | 13 | const EditProductPage = () => { 14 | const dispatch = useDispatch() 15 | const { id } = useParams() 16 | const { loading, product, trls } = useSelector((state: productState) => state.product) 17 | const [value, setValue] = useState(product ? product.description : '') 18 | const [title, setTitle] = useState(product ? product.name : '') 19 | 20 | useEffect(() => { 21 | dispatch({ 22 | type: Types.GET_PRODUCT, 23 | payload: id, 24 | }) 25 | dispatch({ 26 | type: Types.GET_TRL_LIST, 27 | }) 28 | // eslint-disable-next-line react-hooks/exhaustive-deps 29 | }, []) 30 | 31 | useEffect(() => { 32 | setValue(product ? product.description : '') 33 | setTitle(product ? product.name : '') 34 | }, [product]) 35 | 36 | return ( 37 | <> 38 | {loading ? ( 39 | 40 | ) : ( 41 | product && ( 42 |
43 |
44 | product_picture 49 |
50 |
51 | setTitle(e.target.value)} 56 | className='w-full border-2 border-gray-300 rounded-sm p-1' 57 | /> 58 |
59 |
60 | 61 |
62 |
63 | 70 |
71 |
72 | ) 73 | )} 74 | 75 | ) 76 | } 77 | 78 | export default EditProductPage 79 | -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/views/products/ViewPage.tsx: -------------------------------------------------------------------------------- 1 | import { useSelector, useDispatch } from 'react-redux' 2 | import { useEffect, useContext, useMemo } from 'react' 3 | import parse from 'html-react-parser' 4 | import { Link } from 'react-router-dom' 5 | import GoogleMapReact from 'google-map-react' 6 | 7 | import Types from '@/actionTypes/index' 8 | import { productState } from '@/types/index' 9 | 10 | import RoundButton from '@/components/RoundButton' 11 | 12 | import { ThemeContext } from '@/context/index' 13 | 14 | import Overlay from '@/components/Overlay' 15 | 16 | const Tag = ({ children }: { children: string }) => ( 17 | {children} 18 | ) 19 | 20 | interface ModelType { 21 | id: number 22 | name: string 23 | } 24 | 25 | const GOOGLE_API_KEY = import.meta.env.VITE_GOOGLE_MAP_API_KEY 26 | 27 | export default function ViewProduct() { 28 | const dispatch = useDispatch() 29 | const { loading, product } = useSelector((state: productState) => state.product) 30 | 31 | useEffect(() => { 32 | dispatch({ type: Types.GET_PRODUCT, payload: 6781 }) 33 | // eslint-disable-next-line react-hooks/exhaustive-deps 34 | }, []) 35 | 36 | const videoOptions = { 37 | controls: true, 38 | autoPlay: false, 39 | muted: false, 40 | } 41 | 42 | const theme = useContext(ThemeContext) 43 | 44 | const center = useMemo( 45 | () => ({ 46 | lat: Number(product ? product.company.address.latitude : 0), 47 | lng: Number(product ? product.company.address.longitude : 0), 48 | }), 49 | [product], 50 | ) 51 | 52 | return ( 53 |
54 | {loading ? ( 55 | 56 | ) : ( 57 | product && ( 58 |
59 |
60 | 61 | Edit 62 | 63 |
64 |
65 |
66 |
67 | product_picture 72 | 73 | {product.type.name} 74 | 75 |
76 |
77 |

{product.name}

78 |

{parse(product.description)}

79 |
80 |
81 |
82 |
83 |

Offered By

84 | logo 89 |
90 |
91 |
92 | profile_picture 97 |
98 |
99 |

{product.user.firstName + ' ' + product.user.lastName}

100 |

{product.user.position}

101 |
102 |
103 |
104 |

105 | {product.company.address.street + 106 | ' ' + 107 | product.company.address.house + 108 | ', ' + 109 | product.company.address.city.name + 110 | ' ' + 111 | product.company.address.zipCode + 112 | ', ' + 113 | product.company.address.country.name} 114 |

115 |
116 |
117 | 122 |
123 |
124 |
125 |
126 |

Video

127 |
128 | 129 |
130 |
131 |
132 |

Offer details

133 |
134 |
135 |

Technology

136 |
137 | {product.categories.map((category: ModelType) => ( 138 | {category.name} 139 | ))} 140 |
141 |
142 |
143 |

Business Model

144 |
145 | {product.businessModels.map((model: ModelType) => ( 146 | {model.name} 147 | ))} 148 |
149 |
150 |
151 |
152 |

TRL

153 |
154 | {product.trl.name} 155 |
156 |
157 |
158 |
159 |
160 |

Costs

161 |
162 | {product.investmentEffort} 163 |
164 |
165 |
166 |
167 |
168 |
169 | ) 170 | )} 171 |
172 | ) 173 | } 174 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | '@types/google-map-react': 9 | specifier: ^2.1.7 10 | version: 2.1.7 11 | google-map-react: 12 | specifier: ^2.2.1 13 | version: 2.2.1(react-dom@18.2.0)(react@18.2.0) 14 | html-react-parser: 15 | specifier: ^4.0.0 16 | version: 4.0.0(react@18.2.0) 17 | react: 18 | specifier: ^18.2.0 19 | version: 18.2.0 20 | react-dom: 21 | specifier: ^18.2.0 22 | version: 18.2.0(react@18.2.0) 23 | react-quill: 24 | specifier: ^2.0.0 25 | version: 2.0.0(react-dom@18.2.0)(react@18.2.0) 26 | react-redux: 27 | specifier: ^8.1.1 28 | version: 8.1.1(@types/react-dom@18.0.11)(@types/react@18.0.37)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) 29 | react-router-dom: 30 | specifier: ^6.14.1 31 | version: 6.14.1(react-dom@18.2.0)(react@18.2.0) 32 | redux: 33 | specifier: ^4.2.1 34 | version: 4.2.1 35 | redux-saga: 36 | specifier: ^1.2.3 37 | version: 1.2.3 38 | vite-tsconfig-paths: 39 | specifier: ^4.2.0 40 | version: 4.2.0(typescript@5.0.2)(vite@4.3.9) 41 | 42 | devDependencies: 43 | '@types/react': 44 | specifier: ^18.0.37 45 | version: 18.0.37 46 | '@types/react-dom': 47 | specifier: ^18.0.11 48 | version: 18.0.11 49 | '@typescript-eslint/eslint-plugin': 50 | specifier: ^5.59.0 51 | version: 5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.2) 52 | '@typescript-eslint/parser': 53 | specifier: ^5.59.0 54 | version: 5.59.0(eslint@8.38.0)(typescript@5.0.2) 55 | '@vitejs/plugin-react': 56 | specifier: ^4.0.0 57 | version: 4.0.0(vite@4.3.9) 58 | autoprefixer: 59 | specifier: ^10.4.14 60 | version: 10.4.14(postcss@8.4.24) 61 | eslint: 62 | specifier: ^8.38.0 63 | version: 8.38.0 64 | eslint-plugin-react-hooks: 65 | specifier: ^4.6.0 66 | version: 4.6.0(eslint@8.38.0) 67 | eslint-plugin-react-refresh: 68 | specifier: ^0.3.4 69 | version: 0.3.4(eslint@8.38.0) 70 | postcss: 71 | specifier: ^8.4.24 72 | version: 8.4.24 73 | prettier: 74 | specifier: ^2.8.8 75 | version: 2.8.8 76 | tailwindcss: 77 | specifier: ^3.3.2 78 | version: 3.3.2 79 | typescript: 80 | specifier: ^5.0.2 81 | version: 5.0.2 82 | vite: 83 | specifier: ^4.3.9 84 | version: 4.3.9 85 | 86 | packages: 87 | 88 | /@aashutoshrathi/word-wrap@1.2.6: 89 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 90 | engines: {node: '>=0.10.0'} 91 | dev: true 92 | 93 | /@alloc/quick-lru@5.2.0: 94 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 95 | engines: {node: '>=10'} 96 | dev: true 97 | 98 | /@ampproject/remapping@2.2.1: 99 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} 100 | engines: {node: '>=6.0.0'} 101 | dependencies: 102 | '@jridgewell/gen-mapping': 0.3.3 103 | '@jridgewell/trace-mapping': 0.3.18 104 | dev: true 105 | 106 | /@babel/code-frame@7.22.5: 107 | resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} 108 | engines: {node: '>=6.9.0'} 109 | dependencies: 110 | '@babel/highlight': 7.22.5 111 | dev: true 112 | 113 | /@babel/compat-data@7.22.6: 114 | resolution: {integrity: sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg==} 115 | engines: {node: '>=6.9.0'} 116 | dev: true 117 | 118 | /@babel/core@7.22.8: 119 | resolution: {integrity: sha512-75+KxFB4CZqYRXjx4NlR4J7yGvKumBuZTmV4NV6v09dVXXkuYVYLT68N6HCzLvfJ+fWCxQsntNzKwwIXL4bHnw==} 120 | engines: {node: '>=6.9.0'} 121 | dependencies: 122 | '@ampproject/remapping': 2.2.1 123 | '@babel/code-frame': 7.22.5 124 | '@babel/generator': 7.22.7 125 | '@babel/helper-compilation-targets': 7.22.6(@babel/core@7.22.8) 126 | '@babel/helper-module-transforms': 7.22.5 127 | '@babel/helpers': 7.22.6 128 | '@babel/parser': 7.22.7 129 | '@babel/template': 7.22.5 130 | '@babel/traverse': 7.22.8 131 | '@babel/types': 7.22.5 132 | '@nicolo-ribaudo/semver-v6': 6.3.3 133 | convert-source-map: 1.9.0 134 | debug: 4.3.4 135 | gensync: 1.0.0-beta.2 136 | json5: 2.2.3 137 | transitivePeerDependencies: 138 | - supports-color 139 | dev: true 140 | 141 | /@babel/generator@7.22.7: 142 | resolution: {integrity: sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ==} 143 | engines: {node: '>=6.9.0'} 144 | dependencies: 145 | '@babel/types': 7.22.5 146 | '@jridgewell/gen-mapping': 0.3.3 147 | '@jridgewell/trace-mapping': 0.3.18 148 | jsesc: 2.5.2 149 | dev: true 150 | 151 | /@babel/helper-compilation-targets@7.22.6(@babel/core@7.22.8): 152 | resolution: {integrity: sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA==} 153 | engines: {node: '>=6.9.0'} 154 | peerDependencies: 155 | '@babel/core': ^7.0.0 156 | dependencies: 157 | '@babel/compat-data': 7.22.6 158 | '@babel/core': 7.22.8 159 | '@babel/helper-validator-option': 7.22.5 160 | '@nicolo-ribaudo/semver-v6': 6.3.3 161 | browserslist: 4.21.9 162 | lru-cache: 5.1.1 163 | dev: true 164 | 165 | /@babel/helper-environment-visitor@7.22.5: 166 | resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} 167 | engines: {node: '>=6.9.0'} 168 | dev: true 169 | 170 | /@babel/helper-function-name@7.22.5: 171 | resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} 172 | engines: {node: '>=6.9.0'} 173 | dependencies: 174 | '@babel/template': 7.22.5 175 | '@babel/types': 7.22.5 176 | dev: true 177 | 178 | /@babel/helper-hoist-variables@7.22.5: 179 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} 180 | engines: {node: '>=6.9.0'} 181 | dependencies: 182 | '@babel/types': 7.22.5 183 | dev: true 184 | 185 | /@babel/helper-module-imports@7.22.5: 186 | resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} 187 | engines: {node: '>=6.9.0'} 188 | dependencies: 189 | '@babel/types': 7.22.5 190 | dev: true 191 | 192 | /@babel/helper-module-transforms@7.22.5: 193 | resolution: {integrity: sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==} 194 | engines: {node: '>=6.9.0'} 195 | dependencies: 196 | '@babel/helper-environment-visitor': 7.22.5 197 | '@babel/helper-module-imports': 7.22.5 198 | '@babel/helper-simple-access': 7.22.5 199 | '@babel/helper-split-export-declaration': 7.22.6 200 | '@babel/helper-validator-identifier': 7.22.5 201 | '@babel/template': 7.22.5 202 | '@babel/traverse': 7.22.8 203 | '@babel/types': 7.22.5 204 | transitivePeerDependencies: 205 | - supports-color 206 | dev: true 207 | 208 | /@babel/helper-plugin-utils@7.22.5: 209 | resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} 210 | engines: {node: '>=6.9.0'} 211 | dev: true 212 | 213 | /@babel/helper-simple-access@7.22.5: 214 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} 215 | engines: {node: '>=6.9.0'} 216 | dependencies: 217 | '@babel/types': 7.22.5 218 | dev: true 219 | 220 | /@babel/helper-split-export-declaration@7.22.6: 221 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} 222 | engines: {node: '>=6.9.0'} 223 | dependencies: 224 | '@babel/types': 7.22.5 225 | dev: true 226 | 227 | /@babel/helper-string-parser@7.22.5: 228 | resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} 229 | engines: {node: '>=6.9.0'} 230 | dev: true 231 | 232 | /@babel/helper-validator-identifier@7.22.5: 233 | resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} 234 | engines: {node: '>=6.9.0'} 235 | dev: true 236 | 237 | /@babel/helper-validator-option@7.22.5: 238 | resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} 239 | engines: {node: '>=6.9.0'} 240 | dev: true 241 | 242 | /@babel/helpers@7.22.6: 243 | resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} 244 | engines: {node: '>=6.9.0'} 245 | dependencies: 246 | '@babel/template': 7.22.5 247 | '@babel/traverse': 7.22.8 248 | '@babel/types': 7.22.5 249 | transitivePeerDependencies: 250 | - supports-color 251 | dev: true 252 | 253 | /@babel/highlight@7.22.5: 254 | resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} 255 | engines: {node: '>=6.9.0'} 256 | dependencies: 257 | '@babel/helper-validator-identifier': 7.22.5 258 | chalk: 2.4.2 259 | js-tokens: 4.0.0 260 | dev: true 261 | 262 | /@babel/parser@7.22.7: 263 | resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} 264 | engines: {node: '>=6.0.0'} 265 | hasBin: true 266 | dependencies: 267 | '@babel/types': 7.22.5 268 | dev: true 269 | 270 | /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.8): 271 | resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} 272 | engines: {node: '>=6.9.0'} 273 | peerDependencies: 274 | '@babel/core': ^7.0.0-0 275 | dependencies: 276 | '@babel/core': 7.22.8 277 | '@babel/helper-plugin-utils': 7.22.5 278 | dev: true 279 | 280 | /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.8): 281 | resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} 282 | engines: {node: '>=6.9.0'} 283 | peerDependencies: 284 | '@babel/core': ^7.0.0-0 285 | dependencies: 286 | '@babel/core': 7.22.8 287 | '@babel/helper-plugin-utils': 7.22.5 288 | dev: true 289 | 290 | /@babel/runtime@7.22.6: 291 | resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} 292 | engines: {node: '>=6.9.0'} 293 | dependencies: 294 | regenerator-runtime: 0.13.11 295 | dev: false 296 | 297 | /@babel/template@7.22.5: 298 | resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} 299 | engines: {node: '>=6.9.0'} 300 | dependencies: 301 | '@babel/code-frame': 7.22.5 302 | '@babel/parser': 7.22.7 303 | '@babel/types': 7.22.5 304 | dev: true 305 | 306 | /@babel/traverse@7.22.8: 307 | resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} 308 | engines: {node: '>=6.9.0'} 309 | dependencies: 310 | '@babel/code-frame': 7.22.5 311 | '@babel/generator': 7.22.7 312 | '@babel/helper-environment-visitor': 7.22.5 313 | '@babel/helper-function-name': 7.22.5 314 | '@babel/helper-hoist-variables': 7.22.5 315 | '@babel/helper-split-export-declaration': 7.22.6 316 | '@babel/parser': 7.22.7 317 | '@babel/types': 7.22.5 318 | debug: 4.3.4 319 | globals: 11.12.0 320 | transitivePeerDependencies: 321 | - supports-color 322 | dev: true 323 | 324 | /@babel/types@7.22.5: 325 | resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} 326 | engines: {node: '>=6.9.0'} 327 | dependencies: 328 | '@babel/helper-string-parser': 7.22.5 329 | '@babel/helper-validator-identifier': 7.22.5 330 | to-fast-properties: 2.0.0 331 | dev: true 332 | 333 | /@esbuild/android-arm64@0.17.19: 334 | resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} 335 | engines: {node: '>=12'} 336 | cpu: [arm64] 337 | os: [android] 338 | requiresBuild: true 339 | optional: true 340 | 341 | /@esbuild/android-arm@0.17.19: 342 | resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} 343 | engines: {node: '>=12'} 344 | cpu: [arm] 345 | os: [android] 346 | requiresBuild: true 347 | optional: true 348 | 349 | /@esbuild/android-x64@0.17.19: 350 | resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} 351 | engines: {node: '>=12'} 352 | cpu: [x64] 353 | os: [android] 354 | requiresBuild: true 355 | optional: true 356 | 357 | /@esbuild/darwin-arm64@0.17.19: 358 | resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} 359 | engines: {node: '>=12'} 360 | cpu: [arm64] 361 | os: [darwin] 362 | requiresBuild: true 363 | optional: true 364 | 365 | /@esbuild/darwin-x64@0.17.19: 366 | resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} 367 | engines: {node: '>=12'} 368 | cpu: [x64] 369 | os: [darwin] 370 | requiresBuild: true 371 | optional: true 372 | 373 | /@esbuild/freebsd-arm64@0.17.19: 374 | resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} 375 | engines: {node: '>=12'} 376 | cpu: [arm64] 377 | os: [freebsd] 378 | requiresBuild: true 379 | optional: true 380 | 381 | /@esbuild/freebsd-x64@0.17.19: 382 | resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} 383 | engines: {node: '>=12'} 384 | cpu: [x64] 385 | os: [freebsd] 386 | requiresBuild: true 387 | optional: true 388 | 389 | /@esbuild/linux-arm64@0.17.19: 390 | resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} 391 | engines: {node: '>=12'} 392 | cpu: [arm64] 393 | os: [linux] 394 | requiresBuild: true 395 | optional: true 396 | 397 | /@esbuild/linux-arm@0.17.19: 398 | resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} 399 | engines: {node: '>=12'} 400 | cpu: [arm] 401 | os: [linux] 402 | requiresBuild: true 403 | optional: true 404 | 405 | /@esbuild/linux-ia32@0.17.19: 406 | resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} 407 | engines: {node: '>=12'} 408 | cpu: [ia32] 409 | os: [linux] 410 | requiresBuild: true 411 | optional: true 412 | 413 | /@esbuild/linux-loong64@0.17.19: 414 | resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} 415 | engines: {node: '>=12'} 416 | cpu: [loong64] 417 | os: [linux] 418 | requiresBuild: true 419 | optional: true 420 | 421 | /@esbuild/linux-mips64el@0.17.19: 422 | resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} 423 | engines: {node: '>=12'} 424 | cpu: [mips64el] 425 | os: [linux] 426 | requiresBuild: true 427 | optional: true 428 | 429 | /@esbuild/linux-ppc64@0.17.19: 430 | resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} 431 | engines: {node: '>=12'} 432 | cpu: [ppc64] 433 | os: [linux] 434 | requiresBuild: true 435 | optional: true 436 | 437 | /@esbuild/linux-riscv64@0.17.19: 438 | resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} 439 | engines: {node: '>=12'} 440 | cpu: [riscv64] 441 | os: [linux] 442 | requiresBuild: true 443 | optional: true 444 | 445 | /@esbuild/linux-s390x@0.17.19: 446 | resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} 447 | engines: {node: '>=12'} 448 | cpu: [s390x] 449 | os: [linux] 450 | requiresBuild: true 451 | optional: true 452 | 453 | /@esbuild/linux-x64@0.17.19: 454 | resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} 455 | engines: {node: '>=12'} 456 | cpu: [x64] 457 | os: [linux] 458 | requiresBuild: true 459 | optional: true 460 | 461 | /@esbuild/netbsd-x64@0.17.19: 462 | resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} 463 | engines: {node: '>=12'} 464 | cpu: [x64] 465 | os: [netbsd] 466 | requiresBuild: true 467 | optional: true 468 | 469 | /@esbuild/openbsd-x64@0.17.19: 470 | resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} 471 | engines: {node: '>=12'} 472 | cpu: [x64] 473 | os: [openbsd] 474 | requiresBuild: true 475 | optional: true 476 | 477 | /@esbuild/sunos-x64@0.17.19: 478 | resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} 479 | engines: {node: '>=12'} 480 | cpu: [x64] 481 | os: [sunos] 482 | requiresBuild: true 483 | optional: true 484 | 485 | /@esbuild/win32-arm64@0.17.19: 486 | resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} 487 | engines: {node: '>=12'} 488 | cpu: [arm64] 489 | os: [win32] 490 | requiresBuild: true 491 | optional: true 492 | 493 | /@esbuild/win32-ia32@0.17.19: 494 | resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} 495 | engines: {node: '>=12'} 496 | cpu: [ia32] 497 | os: [win32] 498 | requiresBuild: true 499 | optional: true 500 | 501 | /@esbuild/win32-x64@0.17.19: 502 | resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} 503 | engines: {node: '>=12'} 504 | cpu: [x64] 505 | os: [win32] 506 | requiresBuild: true 507 | optional: true 508 | 509 | /@eslint-community/eslint-utils@4.4.0(eslint@8.38.0): 510 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 511 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 512 | peerDependencies: 513 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 514 | dependencies: 515 | eslint: 8.38.0 516 | eslint-visitor-keys: 3.4.1 517 | dev: true 518 | 519 | /@eslint-community/regexpp@4.5.1: 520 | resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} 521 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 522 | dev: true 523 | 524 | /@eslint/eslintrc@2.1.0: 525 | resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} 526 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 527 | dependencies: 528 | ajv: 6.12.6 529 | debug: 4.3.4 530 | espree: 9.6.0 531 | globals: 13.20.0 532 | ignore: 5.2.4 533 | import-fresh: 3.3.0 534 | js-yaml: 4.1.0 535 | minimatch: 3.1.2 536 | strip-json-comments: 3.1.1 537 | transitivePeerDependencies: 538 | - supports-color 539 | dev: true 540 | 541 | /@eslint/js@8.38.0: 542 | resolution: {integrity: sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==} 543 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 544 | dev: true 545 | 546 | /@googlemaps/js-api-loader@1.16.2: 547 | resolution: {integrity: sha512-psGw5u0QM6humao48Hn4lrChOM2/rA43ZCm3tKK9qQsEj1/VzqkCqnvGfEOshDbBQflydfaRovbKwZMF4AyqbA==} 548 | dependencies: 549 | fast-deep-equal: 3.1.3 550 | dev: false 551 | 552 | /@humanwhocodes/config-array@0.11.10: 553 | resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} 554 | engines: {node: '>=10.10.0'} 555 | dependencies: 556 | '@humanwhocodes/object-schema': 1.2.1 557 | debug: 4.3.4 558 | minimatch: 3.1.2 559 | transitivePeerDependencies: 560 | - supports-color 561 | dev: true 562 | 563 | /@humanwhocodes/module-importer@1.0.1: 564 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 565 | engines: {node: '>=12.22'} 566 | dev: true 567 | 568 | /@humanwhocodes/object-schema@1.2.1: 569 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 570 | dev: true 571 | 572 | /@jridgewell/gen-mapping@0.3.3: 573 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 574 | engines: {node: '>=6.0.0'} 575 | dependencies: 576 | '@jridgewell/set-array': 1.1.2 577 | '@jridgewell/sourcemap-codec': 1.4.15 578 | '@jridgewell/trace-mapping': 0.3.18 579 | dev: true 580 | 581 | /@jridgewell/resolve-uri@3.1.0: 582 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 583 | engines: {node: '>=6.0.0'} 584 | dev: true 585 | 586 | /@jridgewell/set-array@1.1.2: 587 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 588 | engines: {node: '>=6.0.0'} 589 | dev: true 590 | 591 | /@jridgewell/sourcemap-codec@1.4.14: 592 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 593 | dev: true 594 | 595 | /@jridgewell/sourcemap-codec@1.4.15: 596 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 597 | dev: true 598 | 599 | /@jridgewell/trace-mapping@0.3.18: 600 | resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} 601 | dependencies: 602 | '@jridgewell/resolve-uri': 3.1.0 603 | '@jridgewell/sourcemap-codec': 1.4.14 604 | dev: true 605 | 606 | /@mapbox/point-geometry@0.1.0: 607 | resolution: {integrity: sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==} 608 | dev: false 609 | 610 | /@nicolo-ribaudo/semver-v6@6.3.3: 611 | resolution: {integrity: sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==} 612 | hasBin: true 613 | dev: true 614 | 615 | /@nodelib/fs.scandir@2.1.5: 616 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 617 | engines: {node: '>= 8'} 618 | dependencies: 619 | '@nodelib/fs.stat': 2.0.5 620 | run-parallel: 1.2.0 621 | dev: true 622 | 623 | /@nodelib/fs.stat@2.0.5: 624 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 625 | engines: {node: '>= 8'} 626 | dev: true 627 | 628 | /@nodelib/fs.walk@1.2.8: 629 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 630 | engines: {node: '>= 8'} 631 | dependencies: 632 | '@nodelib/fs.scandir': 2.1.5 633 | fastq: 1.15.0 634 | dev: true 635 | 636 | /@redux-saga/core@1.2.3: 637 | resolution: {integrity: sha512-U1JO6ncFBAklFTwoQ3mjAeQZ6QGutsJzwNBjgVLSWDpZTRhobUzuVDS1qH3SKGJD8fvqoaYOjp6XJ3gCmeZWgA==} 638 | dependencies: 639 | '@babel/runtime': 7.22.6 640 | '@redux-saga/deferred': 1.2.1 641 | '@redux-saga/delay-p': 1.2.1 642 | '@redux-saga/is': 1.1.3 643 | '@redux-saga/symbols': 1.1.3 644 | '@redux-saga/types': 1.2.1 645 | redux: 4.2.1 646 | typescript-tuple: 2.2.1 647 | dev: false 648 | 649 | /@redux-saga/deferred@1.2.1: 650 | resolution: {integrity: sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g==} 651 | dev: false 652 | 653 | /@redux-saga/delay-p@1.2.1: 654 | resolution: {integrity: sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w==} 655 | dependencies: 656 | '@redux-saga/symbols': 1.1.3 657 | dev: false 658 | 659 | /@redux-saga/is@1.1.3: 660 | resolution: {integrity: sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q==} 661 | dependencies: 662 | '@redux-saga/symbols': 1.1.3 663 | '@redux-saga/types': 1.2.1 664 | dev: false 665 | 666 | /@redux-saga/symbols@1.1.3: 667 | resolution: {integrity: sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg==} 668 | dev: false 669 | 670 | /@redux-saga/types@1.2.1: 671 | resolution: {integrity: sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==} 672 | dev: false 673 | 674 | /@remix-run/router@1.7.1: 675 | resolution: {integrity: sha512-bgVQM4ZJ2u2CM8k1ey70o1ePFXsEzYVZoWghh6WjM8p59jQ7HxzbHW4SbnWFG7V9ig9chLawQxDTZ3xzOF8MkQ==} 676 | engines: {node: '>=14'} 677 | dev: false 678 | 679 | /@types/google-map-react@2.1.7: 680 | resolution: {integrity: sha512-7pquMUU20kVwbfEV91iAWXjApSkqoODkfUwTSmJpU9Tgd+ecX+MrQnplCqrSqKrPF1VjfvyWnDEicdoSd0G5qA==} 681 | dependencies: 682 | '@types/react': 18.0.37 683 | dev: false 684 | 685 | /@types/hoist-non-react-statics@3.3.1: 686 | resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} 687 | dependencies: 688 | '@types/react': 18.0.37 689 | hoist-non-react-statics: 3.3.2 690 | dev: false 691 | 692 | /@types/json-schema@7.0.12: 693 | resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} 694 | dev: true 695 | 696 | /@types/prop-types@15.7.5: 697 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} 698 | 699 | /@types/quill@1.3.10: 700 | resolution: {integrity: sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw==} 701 | dependencies: 702 | parchment: 1.1.4 703 | dev: false 704 | 705 | /@types/react-dom@18.0.11: 706 | resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} 707 | dependencies: 708 | '@types/react': 18.0.37 709 | 710 | /@types/react@18.0.37: 711 | resolution: {integrity: sha512-4yaZZtkRN3ZIQD3KSEwkfcik8s0SWV+82dlJot1AbGYHCzJkWP3ENBY6wYeDRmKZ6HkrgoGAmR2HqdwYGp6OEw==} 712 | dependencies: 713 | '@types/prop-types': 15.7.5 714 | '@types/scheduler': 0.16.3 715 | csstype: 3.1.2 716 | 717 | /@types/scheduler@0.16.3: 718 | resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} 719 | 720 | /@types/semver@7.5.0: 721 | resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} 722 | dev: true 723 | 724 | /@types/use-sync-external-store@0.0.3: 725 | resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} 726 | dev: false 727 | 728 | /@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.2): 729 | resolution: {integrity: sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==} 730 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 731 | peerDependencies: 732 | '@typescript-eslint/parser': ^5.0.0 733 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 734 | typescript: '*' 735 | peerDependenciesMeta: 736 | typescript: 737 | optional: true 738 | dependencies: 739 | '@eslint-community/regexpp': 4.5.1 740 | '@typescript-eslint/parser': 5.59.0(eslint@8.38.0)(typescript@5.0.2) 741 | '@typescript-eslint/scope-manager': 5.59.0 742 | '@typescript-eslint/type-utils': 5.59.0(eslint@8.38.0)(typescript@5.0.2) 743 | '@typescript-eslint/utils': 5.59.0(eslint@8.38.0)(typescript@5.0.2) 744 | debug: 4.3.4 745 | eslint: 8.38.0 746 | grapheme-splitter: 1.0.4 747 | ignore: 5.2.4 748 | natural-compare-lite: 1.4.0 749 | semver: 7.5.4 750 | tsutils: 3.21.0(typescript@5.0.2) 751 | typescript: 5.0.2 752 | transitivePeerDependencies: 753 | - supports-color 754 | dev: true 755 | 756 | /@typescript-eslint/parser@5.59.0(eslint@8.38.0)(typescript@5.0.2): 757 | resolution: {integrity: sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==} 758 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 759 | peerDependencies: 760 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 761 | typescript: '*' 762 | peerDependenciesMeta: 763 | typescript: 764 | optional: true 765 | dependencies: 766 | '@typescript-eslint/scope-manager': 5.59.0 767 | '@typescript-eslint/types': 5.59.0 768 | '@typescript-eslint/typescript-estree': 5.59.0(typescript@5.0.2) 769 | debug: 4.3.4 770 | eslint: 8.38.0 771 | typescript: 5.0.2 772 | transitivePeerDependencies: 773 | - supports-color 774 | dev: true 775 | 776 | /@typescript-eslint/scope-manager@5.59.0: 777 | resolution: {integrity: sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==} 778 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 779 | dependencies: 780 | '@typescript-eslint/types': 5.59.0 781 | '@typescript-eslint/visitor-keys': 5.59.0 782 | dev: true 783 | 784 | /@typescript-eslint/type-utils@5.59.0(eslint@8.38.0)(typescript@5.0.2): 785 | resolution: {integrity: sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==} 786 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 787 | peerDependencies: 788 | eslint: '*' 789 | typescript: '*' 790 | peerDependenciesMeta: 791 | typescript: 792 | optional: true 793 | dependencies: 794 | '@typescript-eslint/typescript-estree': 5.59.0(typescript@5.0.2) 795 | '@typescript-eslint/utils': 5.59.0(eslint@8.38.0)(typescript@5.0.2) 796 | debug: 4.3.4 797 | eslint: 8.38.0 798 | tsutils: 3.21.0(typescript@5.0.2) 799 | typescript: 5.0.2 800 | transitivePeerDependencies: 801 | - supports-color 802 | dev: true 803 | 804 | /@typescript-eslint/types@5.59.0: 805 | resolution: {integrity: sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==} 806 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 807 | dev: true 808 | 809 | /@typescript-eslint/typescript-estree@5.59.0(typescript@5.0.2): 810 | resolution: {integrity: sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==} 811 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 812 | peerDependencies: 813 | typescript: '*' 814 | peerDependenciesMeta: 815 | typescript: 816 | optional: true 817 | dependencies: 818 | '@typescript-eslint/types': 5.59.0 819 | '@typescript-eslint/visitor-keys': 5.59.0 820 | debug: 4.3.4 821 | globby: 11.1.0 822 | is-glob: 4.0.3 823 | semver: 7.5.4 824 | tsutils: 3.21.0(typescript@5.0.2) 825 | typescript: 5.0.2 826 | transitivePeerDependencies: 827 | - supports-color 828 | dev: true 829 | 830 | /@typescript-eslint/utils@5.59.0(eslint@8.38.0)(typescript@5.0.2): 831 | resolution: {integrity: sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==} 832 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 833 | peerDependencies: 834 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 835 | dependencies: 836 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) 837 | '@types/json-schema': 7.0.12 838 | '@types/semver': 7.5.0 839 | '@typescript-eslint/scope-manager': 5.59.0 840 | '@typescript-eslint/types': 5.59.0 841 | '@typescript-eslint/typescript-estree': 5.59.0(typescript@5.0.2) 842 | eslint: 8.38.0 843 | eslint-scope: 5.1.1 844 | semver: 7.5.4 845 | transitivePeerDependencies: 846 | - supports-color 847 | - typescript 848 | dev: true 849 | 850 | /@typescript-eslint/visitor-keys@5.59.0: 851 | resolution: {integrity: sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==} 852 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 853 | dependencies: 854 | '@typescript-eslint/types': 5.59.0 855 | eslint-visitor-keys: 3.4.1 856 | dev: true 857 | 858 | /@vitejs/plugin-react@4.0.0(vite@4.3.9): 859 | resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==} 860 | engines: {node: ^14.18.0 || >=16.0.0} 861 | peerDependencies: 862 | vite: ^4.2.0 863 | dependencies: 864 | '@babel/core': 7.22.8 865 | '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.8) 866 | '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.8) 867 | react-refresh: 0.14.0 868 | vite: 4.3.9 869 | transitivePeerDependencies: 870 | - supports-color 871 | dev: true 872 | 873 | /acorn-jsx@5.3.2(acorn@8.10.0): 874 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 875 | peerDependencies: 876 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 877 | dependencies: 878 | acorn: 8.10.0 879 | dev: true 880 | 881 | /acorn@8.10.0: 882 | resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} 883 | engines: {node: '>=0.4.0'} 884 | hasBin: true 885 | dev: true 886 | 887 | /ajv@6.12.6: 888 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 889 | dependencies: 890 | fast-deep-equal: 3.1.3 891 | fast-json-stable-stringify: 2.1.0 892 | json-schema-traverse: 0.4.1 893 | uri-js: 4.4.1 894 | dev: true 895 | 896 | /ansi-regex@5.0.1: 897 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 898 | engines: {node: '>=8'} 899 | dev: true 900 | 901 | /ansi-styles@3.2.1: 902 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 903 | engines: {node: '>=4'} 904 | dependencies: 905 | color-convert: 1.9.3 906 | dev: true 907 | 908 | /ansi-styles@4.3.0: 909 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 910 | engines: {node: '>=8'} 911 | dependencies: 912 | color-convert: 2.0.1 913 | dev: true 914 | 915 | /any-promise@1.3.0: 916 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 917 | dev: true 918 | 919 | /anymatch@3.1.3: 920 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 921 | engines: {node: '>= 8'} 922 | dependencies: 923 | normalize-path: 3.0.0 924 | picomatch: 2.3.1 925 | dev: true 926 | 927 | /arg@5.0.2: 928 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 929 | dev: true 930 | 931 | /argparse@2.0.1: 932 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 933 | dev: true 934 | 935 | /array-union@2.1.0: 936 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 937 | engines: {node: '>=8'} 938 | dev: true 939 | 940 | /autoprefixer@10.4.14(postcss@8.4.24): 941 | resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} 942 | engines: {node: ^10 || ^12 || >=14} 943 | hasBin: true 944 | peerDependencies: 945 | postcss: ^8.1.0 946 | dependencies: 947 | browserslist: 4.21.9 948 | caniuse-lite: 1.0.30001513 949 | fraction.js: 4.2.0 950 | normalize-range: 0.1.2 951 | picocolors: 1.0.0 952 | postcss: 8.4.24 953 | postcss-value-parser: 4.2.0 954 | dev: true 955 | 956 | /balanced-match@1.0.2: 957 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 958 | dev: true 959 | 960 | /binary-extensions@2.2.0: 961 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 962 | engines: {node: '>=8'} 963 | dev: true 964 | 965 | /brace-expansion@1.1.11: 966 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 967 | dependencies: 968 | balanced-match: 1.0.2 969 | concat-map: 0.0.1 970 | dev: true 971 | 972 | /braces@3.0.2: 973 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 974 | engines: {node: '>=8'} 975 | dependencies: 976 | fill-range: 7.0.1 977 | dev: true 978 | 979 | /browserslist@4.21.9: 980 | resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} 981 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 982 | hasBin: true 983 | dependencies: 984 | caniuse-lite: 1.0.30001513 985 | electron-to-chromium: 1.4.454 986 | node-releases: 2.0.13 987 | update-browserslist-db: 1.0.11(browserslist@4.21.9) 988 | dev: true 989 | 990 | /call-bind@1.0.2: 991 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 992 | dependencies: 993 | function-bind: 1.1.1 994 | get-intrinsic: 1.2.1 995 | dev: false 996 | 997 | /callsites@3.1.0: 998 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 999 | engines: {node: '>=6'} 1000 | dev: true 1001 | 1002 | /camelcase-css@2.0.1: 1003 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 1004 | engines: {node: '>= 6'} 1005 | dev: true 1006 | 1007 | /caniuse-lite@1.0.30001513: 1008 | resolution: {integrity: sha512-pnjGJo7SOOjAGytZZ203Em95MRM8Cr6jhCXNF/FAXTpCTRTECnqQWLpiTRqrFtdYcth8hf4WECUpkezuYsMVww==} 1009 | dev: true 1010 | 1011 | /chalk@2.4.2: 1012 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1013 | engines: {node: '>=4'} 1014 | dependencies: 1015 | ansi-styles: 3.2.1 1016 | escape-string-regexp: 1.0.5 1017 | supports-color: 5.5.0 1018 | dev: true 1019 | 1020 | /chalk@4.1.2: 1021 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1022 | engines: {node: '>=10'} 1023 | dependencies: 1024 | ansi-styles: 4.3.0 1025 | supports-color: 7.2.0 1026 | dev: true 1027 | 1028 | /chokidar@3.5.3: 1029 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 1030 | engines: {node: '>= 8.10.0'} 1031 | dependencies: 1032 | anymatch: 3.1.3 1033 | braces: 3.0.2 1034 | glob-parent: 5.1.2 1035 | is-binary-path: 2.1.0 1036 | is-glob: 4.0.3 1037 | normalize-path: 3.0.0 1038 | readdirp: 3.6.0 1039 | optionalDependencies: 1040 | fsevents: 2.3.2 1041 | dev: true 1042 | 1043 | /clone@2.1.2: 1044 | resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} 1045 | engines: {node: '>=0.8'} 1046 | dev: false 1047 | 1048 | /color-convert@1.9.3: 1049 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1050 | dependencies: 1051 | color-name: 1.1.3 1052 | dev: true 1053 | 1054 | /color-convert@2.0.1: 1055 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1056 | engines: {node: '>=7.0.0'} 1057 | dependencies: 1058 | color-name: 1.1.4 1059 | dev: true 1060 | 1061 | /color-name@1.1.3: 1062 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1063 | dev: true 1064 | 1065 | /color-name@1.1.4: 1066 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1067 | dev: true 1068 | 1069 | /commander@4.1.1: 1070 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1071 | engines: {node: '>= 6'} 1072 | dev: true 1073 | 1074 | /concat-map@0.0.1: 1075 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1076 | dev: true 1077 | 1078 | /convert-source-map@1.9.0: 1079 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} 1080 | dev: true 1081 | 1082 | /cross-spawn@7.0.3: 1083 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1084 | engines: {node: '>= 8'} 1085 | dependencies: 1086 | path-key: 3.1.1 1087 | shebang-command: 2.0.0 1088 | which: 2.0.2 1089 | dev: true 1090 | 1091 | /cssesc@3.0.0: 1092 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1093 | engines: {node: '>=4'} 1094 | hasBin: true 1095 | dev: true 1096 | 1097 | /csstype@3.1.2: 1098 | resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} 1099 | 1100 | /debug@4.3.4: 1101 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1102 | engines: {node: '>=6.0'} 1103 | peerDependencies: 1104 | supports-color: '*' 1105 | peerDependenciesMeta: 1106 | supports-color: 1107 | optional: true 1108 | dependencies: 1109 | ms: 2.1.2 1110 | 1111 | /deep-equal@1.1.1: 1112 | resolution: {integrity: sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==} 1113 | dependencies: 1114 | is-arguments: 1.1.1 1115 | is-date-object: 1.0.5 1116 | is-regex: 1.1.4 1117 | object-is: 1.1.5 1118 | object-keys: 1.1.1 1119 | regexp.prototype.flags: 1.5.0 1120 | dev: false 1121 | 1122 | /deep-is@0.1.4: 1123 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1124 | dev: true 1125 | 1126 | /define-properties@1.2.0: 1127 | resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} 1128 | engines: {node: '>= 0.4'} 1129 | dependencies: 1130 | has-property-descriptors: 1.0.0 1131 | object-keys: 1.1.1 1132 | dev: false 1133 | 1134 | /didyoumean@1.2.2: 1135 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 1136 | dev: true 1137 | 1138 | /dir-glob@3.0.1: 1139 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1140 | engines: {node: '>=8'} 1141 | dependencies: 1142 | path-type: 4.0.0 1143 | dev: true 1144 | 1145 | /dlv@1.1.3: 1146 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1147 | dev: true 1148 | 1149 | /doctrine@3.0.0: 1150 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1151 | engines: {node: '>=6.0.0'} 1152 | dependencies: 1153 | esutils: 2.0.3 1154 | dev: true 1155 | 1156 | /dom-serializer@2.0.0: 1157 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} 1158 | dependencies: 1159 | domelementtype: 2.3.0 1160 | domhandler: 5.0.3 1161 | entities: 4.5.0 1162 | dev: false 1163 | 1164 | /domelementtype@2.3.0: 1165 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 1166 | dev: false 1167 | 1168 | /domhandler@5.0.3: 1169 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 1170 | engines: {node: '>= 4'} 1171 | dependencies: 1172 | domelementtype: 2.3.0 1173 | dev: false 1174 | 1175 | /domutils@3.1.0: 1176 | resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} 1177 | dependencies: 1178 | dom-serializer: 2.0.0 1179 | domelementtype: 2.3.0 1180 | domhandler: 5.0.3 1181 | dev: false 1182 | 1183 | /electron-to-chromium@1.4.454: 1184 | resolution: {integrity: sha512-pmf1rbAStw8UEQ0sr2cdJtWl48ZMuPD9Sto8HVQOq9vx9j2WgDEN6lYoaqFvqEHYOmGA9oRGn7LqWI9ta0YugQ==} 1185 | dev: true 1186 | 1187 | /entities@4.5.0: 1188 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1189 | engines: {node: '>=0.12'} 1190 | dev: false 1191 | 1192 | /esbuild@0.17.19: 1193 | resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} 1194 | engines: {node: '>=12'} 1195 | hasBin: true 1196 | requiresBuild: true 1197 | optionalDependencies: 1198 | '@esbuild/android-arm': 0.17.19 1199 | '@esbuild/android-arm64': 0.17.19 1200 | '@esbuild/android-x64': 0.17.19 1201 | '@esbuild/darwin-arm64': 0.17.19 1202 | '@esbuild/darwin-x64': 0.17.19 1203 | '@esbuild/freebsd-arm64': 0.17.19 1204 | '@esbuild/freebsd-x64': 0.17.19 1205 | '@esbuild/linux-arm': 0.17.19 1206 | '@esbuild/linux-arm64': 0.17.19 1207 | '@esbuild/linux-ia32': 0.17.19 1208 | '@esbuild/linux-loong64': 0.17.19 1209 | '@esbuild/linux-mips64el': 0.17.19 1210 | '@esbuild/linux-ppc64': 0.17.19 1211 | '@esbuild/linux-riscv64': 0.17.19 1212 | '@esbuild/linux-s390x': 0.17.19 1213 | '@esbuild/linux-x64': 0.17.19 1214 | '@esbuild/netbsd-x64': 0.17.19 1215 | '@esbuild/openbsd-x64': 0.17.19 1216 | '@esbuild/sunos-x64': 0.17.19 1217 | '@esbuild/win32-arm64': 0.17.19 1218 | '@esbuild/win32-ia32': 0.17.19 1219 | '@esbuild/win32-x64': 0.17.19 1220 | 1221 | /escalade@3.1.1: 1222 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1223 | engines: {node: '>=6'} 1224 | dev: true 1225 | 1226 | /escape-string-regexp@1.0.5: 1227 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1228 | engines: {node: '>=0.8.0'} 1229 | dev: true 1230 | 1231 | /escape-string-regexp@4.0.0: 1232 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1233 | engines: {node: '>=10'} 1234 | dev: true 1235 | 1236 | /eslint-plugin-react-hooks@4.6.0(eslint@8.38.0): 1237 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 1238 | engines: {node: '>=10'} 1239 | peerDependencies: 1240 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1241 | dependencies: 1242 | eslint: 8.38.0 1243 | dev: true 1244 | 1245 | /eslint-plugin-react-refresh@0.3.4(eslint@8.38.0): 1246 | resolution: {integrity: sha512-E0ViBglxSQAERBp6eTj5fPgtCRtDonnbCFiVQBhf4Dto2blJRxg1dFUMdMh7N6ljTI4UwPhHwYDQ3Dyo4m6bwA==} 1247 | peerDependencies: 1248 | eslint: '>=7' 1249 | dependencies: 1250 | eslint: 8.38.0 1251 | dev: true 1252 | 1253 | /eslint-scope@5.1.1: 1254 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1255 | engines: {node: '>=8.0.0'} 1256 | dependencies: 1257 | esrecurse: 4.3.0 1258 | estraverse: 4.3.0 1259 | dev: true 1260 | 1261 | /eslint-scope@7.2.0: 1262 | resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} 1263 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1264 | dependencies: 1265 | esrecurse: 4.3.0 1266 | estraverse: 5.3.0 1267 | dev: true 1268 | 1269 | /eslint-visitor-keys@3.4.1: 1270 | resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} 1271 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1272 | dev: true 1273 | 1274 | /eslint@8.38.0: 1275 | resolution: {integrity: sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==} 1276 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1277 | hasBin: true 1278 | dependencies: 1279 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) 1280 | '@eslint-community/regexpp': 4.5.1 1281 | '@eslint/eslintrc': 2.1.0 1282 | '@eslint/js': 8.38.0 1283 | '@humanwhocodes/config-array': 0.11.10 1284 | '@humanwhocodes/module-importer': 1.0.1 1285 | '@nodelib/fs.walk': 1.2.8 1286 | ajv: 6.12.6 1287 | chalk: 4.1.2 1288 | cross-spawn: 7.0.3 1289 | debug: 4.3.4 1290 | doctrine: 3.0.0 1291 | escape-string-regexp: 4.0.0 1292 | eslint-scope: 7.2.0 1293 | eslint-visitor-keys: 3.4.1 1294 | espree: 9.6.0 1295 | esquery: 1.5.0 1296 | esutils: 2.0.3 1297 | fast-deep-equal: 3.1.3 1298 | file-entry-cache: 6.0.1 1299 | find-up: 5.0.0 1300 | glob-parent: 6.0.2 1301 | globals: 13.20.0 1302 | grapheme-splitter: 1.0.4 1303 | ignore: 5.2.4 1304 | import-fresh: 3.3.0 1305 | imurmurhash: 0.1.4 1306 | is-glob: 4.0.3 1307 | is-path-inside: 3.0.3 1308 | js-sdsl: 4.4.1 1309 | js-yaml: 4.1.0 1310 | json-stable-stringify-without-jsonify: 1.0.1 1311 | levn: 0.4.1 1312 | lodash.merge: 4.6.2 1313 | minimatch: 3.1.2 1314 | natural-compare: 1.4.0 1315 | optionator: 0.9.3 1316 | strip-ansi: 6.0.1 1317 | strip-json-comments: 3.1.1 1318 | text-table: 0.2.0 1319 | transitivePeerDependencies: 1320 | - supports-color 1321 | dev: true 1322 | 1323 | /espree@9.6.0: 1324 | resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==} 1325 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1326 | dependencies: 1327 | acorn: 8.10.0 1328 | acorn-jsx: 5.3.2(acorn@8.10.0) 1329 | eslint-visitor-keys: 3.4.1 1330 | dev: true 1331 | 1332 | /esquery@1.5.0: 1333 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1334 | engines: {node: '>=0.10'} 1335 | dependencies: 1336 | estraverse: 5.3.0 1337 | dev: true 1338 | 1339 | /esrecurse@4.3.0: 1340 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1341 | engines: {node: '>=4.0'} 1342 | dependencies: 1343 | estraverse: 5.3.0 1344 | dev: true 1345 | 1346 | /estraverse@4.3.0: 1347 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1348 | engines: {node: '>=4.0'} 1349 | dev: true 1350 | 1351 | /estraverse@5.3.0: 1352 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1353 | engines: {node: '>=4.0'} 1354 | dev: true 1355 | 1356 | /esutils@2.0.3: 1357 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1358 | engines: {node: '>=0.10.0'} 1359 | dev: true 1360 | 1361 | /eventemitter3@2.0.3: 1362 | resolution: {integrity: sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==} 1363 | dev: false 1364 | 1365 | /eventemitter3@4.0.7: 1366 | resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} 1367 | dev: false 1368 | 1369 | /extend@3.0.2: 1370 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 1371 | dev: false 1372 | 1373 | /fast-deep-equal@3.1.3: 1374 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1375 | 1376 | /fast-diff@1.1.2: 1377 | resolution: {integrity: sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==} 1378 | dev: false 1379 | 1380 | /fast-glob@3.3.0: 1381 | resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} 1382 | engines: {node: '>=8.6.0'} 1383 | dependencies: 1384 | '@nodelib/fs.stat': 2.0.5 1385 | '@nodelib/fs.walk': 1.2.8 1386 | glob-parent: 5.1.2 1387 | merge2: 1.4.1 1388 | micromatch: 4.0.5 1389 | dev: true 1390 | 1391 | /fast-json-stable-stringify@2.1.0: 1392 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1393 | dev: true 1394 | 1395 | /fast-levenshtein@2.0.6: 1396 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1397 | dev: true 1398 | 1399 | /fastq@1.15.0: 1400 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1401 | dependencies: 1402 | reusify: 1.0.4 1403 | dev: true 1404 | 1405 | /file-entry-cache@6.0.1: 1406 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1407 | engines: {node: ^10.12.0 || >=12.0.0} 1408 | dependencies: 1409 | flat-cache: 3.0.4 1410 | dev: true 1411 | 1412 | /fill-range@7.0.1: 1413 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1414 | engines: {node: '>=8'} 1415 | dependencies: 1416 | to-regex-range: 5.0.1 1417 | dev: true 1418 | 1419 | /find-up@5.0.0: 1420 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1421 | engines: {node: '>=10'} 1422 | dependencies: 1423 | locate-path: 6.0.0 1424 | path-exists: 4.0.0 1425 | dev: true 1426 | 1427 | /flat-cache@3.0.4: 1428 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1429 | engines: {node: ^10.12.0 || >=12.0.0} 1430 | dependencies: 1431 | flatted: 3.2.7 1432 | rimraf: 3.0.2 1433 | dev: true 1434 | 1435 | /flatted@3.2.7: 1436 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 1437 | dev: true 1438 | 1439 | /fraction.js@4.2.0: 1440 | resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} 1441 | dev: true 1442 | 1443 | /fs.realpath@1.0.0: 1444 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1445 | dev: true 1446 | 1447 | /fsevents@2.3.2: 1448 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1449 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1450 | os: [darwin] 1451 | requiresBuild: true 1452 | optional: true 1453 | 1454 | /function-bind@1.1.1: 1455 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1456 | 1457 | /functions-have-names@1.2.3: 1458 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1459 | dev: false 1460 | 1461 | /gensync@1.0.0-beta.2: 1462 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1463 | engines: {node: '>=6.9.0'} 1464 | dev: true 1465 | 1466 | /get-intrinsic@1.2.1: 1467 | resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} 1468 | dependencies: 1469 | function-bind: 1.1.1 1470 | has: 1.0.3 1471 | has-proto: 1.0.1 1472 | has-symbols: 1.0.3 1473 | dev: false 1474 | 1475 | /glob-parent@5.1.2: 1476 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1477 | engines: {node: '>= 6'} 1478 | dependencies: 1479 | is-glob: 4.0.3 1480 | dev: true 1481 | 1482 | /glob-parent@6.0.2: 1483 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1484 | engines: {node: '>=10.13.0'} 1485 | dependencies: 1486 | is-glob: 4.0.3 1487 | dev: true 1488 | 1489 | /glob@7.1.6: 1490 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 1491 | dependencies: 1492 | fs.realpath: 1.0.0 1493 | inflight: 1.0.6 1494 | inherits: 2.0.4 1495 | minimatch: 3.1.2 1496 | once: 1.4.0 1497 | path-is-absolute: 1.0.1 1498 | dev: true 1499 | 1500 | /glob@7.2.3: 1501 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1502 | dependencies: 1503 | fs.realpath: 1.0.0 1504 | inflight: 1.0.6 1505 | inherits: 2.0.4 1506 | minimatch: 3.1.2 1507 | once: 1.4.0 1508 | path-is-absolute: 1.0.1 1509 | dev: true 1510 | 1511 | /globals@11.12.0: 1512 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1513 | engines: {node: '>=4'} 1514 | dev: true 1515 | 1516 | /globals@13.20.0: 1517 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} 1518 | engines: {node: '>=8'} 1519 | dependencies: 1520 | type-fest: 0.20.2 1521 | dev: true 1522 | 1523 | /globby@11.1.0: 1524 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1525 | engines: {node: '>=10'} 1526 | dependencies: 1527 | array-union: 2.1.0 1528 | dir-glob: 3.0.1 1529 | fast-glob: 3.3.0 1530 | ignore: 5.2.4 1531 | merge2: 1.4.1 1532 | slash: 3.0.0 1533 | dev: true 1534 | 1535 | /globrex@0.1.2: 1536 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 1537 | dev: false 1538 | 1539 | /google-map-react@2.2.1(react-dom@18.2.0)(react@18.2.0): 1540 | resolution: {integrity: sha512-Dg8aexf5rNSmywj0XKQ5m4RNzVcWwKEM2BGDj5aPChD0um8ZRjB5Upcb/yg/i0oG1aES29asQ5+6BHVgrK5xGA==} 1541 | engines: {node: '>=10'} 1542 | peerDependencies: 1543 | react: ^16.0.0 || ^17.0.0 || ^18.0.0 1544 | react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 1545 | dependencies: 1546 | '@googlemaps/js-api-loader': 1.16.2 1547 | '@mapbox/point-geometry': 0.1.0 1548 | eventemitter3: 4.0.7 1549 | prop-types: 15.8.1 1550 | react: 18.2.0 1551 | react-dom: 18.2.0(react@18.2.0) 1552 | dev: false 1553 | 1554 | /grapheme-splitter@1.0.4: 1555 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1556 | dev: true 1557 | 1558 | /has-flag@3.0.0: 1559 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1560 | engines: {node: '>=4'} 1561 | dev: true 1562 | 1563 | /has-flag@4.0.0: 1564 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1565 | engines: {node: '>=8'} 1566 | dev: true 1567 | 1568 | /has-property-descriptors@1.0.0: 1569 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 1570 | dependencies: 1571 | get-intrinsic: 1.2.1 1572 | dev: false 1573 | 1574 | /has-proto@1.0.1: 1575 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 1576 | engines: {node: '>= 0.4'} 1577 | dev: false 1578 | 1579 | /has-symbols@1.0.3: 1580 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1581 | engines: {node: '>= 0.4'} 1582 | dev: false 1583 | 1584 | /has-tostringtag@1.0.0: 1585 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1586 | engines: {node: '>= 0.4'} 1587 | dependencies: 1588 | has-symbols: 1.0.3 1589 | dev: false 1590 | 1591 | /has@1.0.3: 1592 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1593 | engines: {node: '>= 0.4.0'} 1594 | dependencies: 1595 | function-bind: 1.1.1 1596 | 1597 | /hoist-non-react-statics@3.3.2: 1598 | resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} 1599 | dependencies: 1600 | react-is: 16.13.1 1601 | dev: false 1602 | 1603 | /html-dom-parser@4.0.0: 1604 | resolution: {integrity: sha512-TUa3wIwi80f5NF8CVWzkopBVqVAtlawUzJoLwVLHns0XSJGynss4jiY0mTWpiDOsuyw+afP+ujjMgRh9CoZcXw==} 1605 | dependencies: 1606 | domhandler: 5.0.3 1607 | htmlparser2: 9.0.0 1608 | dev: false 1609 | 1610 | /html-react-parser@4.0.0(react@18.2.0): 1611 | resolution: {integrity: sha512-OzlOavs9lLyBxoRiXbXfODIX/nSShukMtdx3+WSMjon/FF1gJZRq0rBELoR5OswfbN56C0oKpAii7i3yzO/uVQ==} 1612 | peerDependencies: 1613 | react: 0.14 || 15 || 16 || 17 || 18 1614 | dependencies: 1615 | domhandler: 5.0.3 1616 | html-dom-parser: 4.0.0 1617 | react: 18.2.0 1618 | react-property: 2.0.0 1619 | style-to-js: 1.1.3 1620 | dev: false 1621 | 1622 | /htmlparser2@9.0.0: 1623 | resolution: {integrity: sha512-uxbSI98wmFT/G4P2zXx4OVx04qWUmyFPrD2/CNepa2Zo3GPNaCaaxElDgwUrwYWkK1nr9fft0Ya8dws8coDLLQ==} 1624 | dependencies: 1625 | domelementtype: 2.3.0 1626 | domhandler: 5.0.3 1627 | domutils: 3.1.0 1628 | entities: 4.5.0 1629 | dev: false 1630 | 1631 | /ignore@5.2.4: 1632 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1633 | engines: {node: '>= 4'} 1634 | dev: true 1635 | 1636 | /import-fresh@3.3.0: 1637 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1638 | engines: {node: '>=6'} 1639 | dependencies: 1640 | parent-module: 1.0.1 1641 | resolve-from: 4.0.0 1642 | dev: true 1643 | 1644 | /imurmurhash@0.1.4: 1645 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1646 | engines: {node: '>=0.8.19'} 1647 | dev: true 1648 | 1649 | /inflight@1.0.6: 1650 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1651 | dependencies: 1652 | once: 1.4.0 1653 | wrappy: 1.0.2 1654 | dev: true 1655 | 1656 | /inherits@2.0.4: 1657 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1658 | dev: true 1659 | 1660 | /inline-style-parser@0.1.1: 1661 | resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} 1662 | dev: false 1663 | 1664 | /is-arguments@1.1.1: 1665 | resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} 1666 | engines: {node: '>= 0.4'} 1667 | dependencies: 1668 | call-bind: 1.0.2 1669 | has-tostringtag: 1.0.0 1670 | dev: false 1671 | 1672 | /is-binary-path@2.1.0: 1673 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1674 | engines: {node: '>=8'} 1675 | dependencies: 1676 | binary-extensions: 2.2.0 1677 | dev: true 1678 | 1679 | /is-core-module@2.12.1: 1680 | resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} 1681 | dependencies: 1682 | has: 1.0.3 1683 | dev: true 1684 | 1685 | /is-date-object@1.0.5: 1686 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1687 | engines: {node: '>= 0.4'} 1688 | dependencies: 1689 | has-tostringtag: 1.0.0 1690 | dev: false 1691 | 1692 | /is-extglob@2.1.1: 1693 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1694 | engines: {node: '>=0.10.0'} 1695 | dev: true 1696 | 1697 | /is-glob@4.0.3: 1698 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1699 | engines: {node: '>=0.10.0'} 1700 | dependencies: 1701 | is-extglob: 2.1.1 1702 | dev: true 1703 | 1704 | /is-number@7.0.0: 1705 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1706 | engines: {node: '>=0.12.0'} 1707 | dev: true 1708 | 1709 | /is-path-inside@3.0.3: 1710 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1711 | engines: {node: '>=8'} 1712 | dev: true 1713 | 1714 | /is-regex@1.1.4: 1715 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1716 | engines: {node: '>= 0.4'} 1717 | dependencies: 1718 | call-bind: 1.0.2 1719 | has-tostringtag: 1.0.0 1720 | dev: false 1721 | 1722 | /isexe@2.0.0: 1723 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1724 | dev: true 1725 | 1726 | /jiti@1.19.1: 1727 | resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==} 1728 | hasBin: true 1729 | dev: true 1730 | 1731 | /js-sdsl@4.4.1: 1732 | resolution: {integrity: sha512-6Gsx8R0RucyePbWqPssR8DyfuXmLBooYN5cZFZKjHGnQuaf7pEzhtpceagJxVu4LqhYY5EYA7nko3FmeHZ1KbA==} 1733 | dev: true 1734 | 1735 | /js-tokens@4.0.0: 1736 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1737 | 1738 | /js-yaml@4.1.0: 1739 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1740 | hasBin: true 1741 | dependencies: 1742 | argparse: 2.0.1 1743 | dev: true 1744 | 1745 | /jsesc@2.5.2: 1746 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1747 | engines: {node: '>=4'} 1748 | hasBin: true 1749 | dev: true 1750 | 1751 | /json-schema-traverse@0.4.1: 1752 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1753 | dev: true 1754 | 1755 | /json-stable-stringify-without-jsonify@1.0.1: 1756 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1757 | dev: true 1758 | 1759 | /json5@2.2.3: 1760 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1761 | engines: {node: '>=6'} 1762 | hasBin: true 1763 | dev: true 1764 | 1765 | /levn@0.4.1: 1766 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1767 | engines: {node: '>= 0.8.0'} 1768 | dependencies: 1769 | prelude-ls: 1.2.1 1770 | type-check: 0.4.0 1771 | dev: true 1772 | 1773 | /lilconfig@2.1.0: 1774 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1775 | engines: {node: '>=10'} 1776 | dev: true 1777 | 1778 | /lines-and-columns@1.2.4: 1779 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1780 | dev: true 1781 | 1782 | /locate-path@6.0.0: 1783 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1784 | engines: {node: '>=10'} 1785 | dependencies: 1786 | p-locate: 5.0.0 1787 | dev: true 1788 | 1789 | /lodash.merge@4.6.2: 1790 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1791 | dev: true 1792 | 1793 | /lodash@4.17.21: 1794 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1795 | dev: false 1796 | 1797 | /loose-envify@1.4.0: 1798 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1799 | hasBin: true 1800 | dependencies: 1801 | js-tokens: 4.0.0 1802 | dev: false 1803 | 1804 | /lru-cache@5.1.1: 1805 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1806 | dependencies: 1807 | yallist: 3.1.1 1808 | dev: true 1809 | 1810 | /lru-cache@6.0.0: 1811 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1812 | engines: {node: '>=10'} 1813 | dependencies: 1814 | yallist: 4.0.0 1815 | dev: true 1816 | 1817 | /merge2@1.4.1: 1818 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1819 | engines: {node: '>= 8'} 1820 | dev: true 1821 | 1822 | /micromatch@4.0.5: 1823 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1824 | engines: {node: '>=8.6'} 1825 | dependencies: 1826 | braces: 3.0.2 1827 | picomatch: 2.3.1 1828 | dev: true 1829 | 1830 | /minimatch@3.1.2: 1831 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1832 | dependencies: 1833 | brace-expansion: 1.1.11 1834 | dev: true 1835 | 1836 | /ms@2.1.2: 1837 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1838 | 1839 | /mz@2.7.0: 1840 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1841 | dependencies: 1842 | any-promise: 1.3.0 1843 | object-assign: 4.1.1 1844 | thenify-all: 1.6.0 1845 | dev: true 1846 | 1847 | /nanoid@3.3.6: 1848 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 1849 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1850 | hasBin: true 1851 | 1852 | /natural-compare-lite@1.4.0: 1853 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} 1854 | dev: true 1855 | 1856 | /natural-compare@1.4.0: 1857 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1858 | dev: true 1859 | 1860 | /node-releases@2.0.13: 1861 | resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} 1862 | dev: true 1863 | 1864 | /normalize-path@3.0.0: 1865 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1866 | engines: {node: '>=0.10.0'} 1867 | dev: true 1868 | 1869 | /normalize-range@0.1.2: 1870 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 1871 | engines: {node: '>=0.10.0'} 1872 | dev: true 1873 | 1874 | /object-assign@4.1.1: 1875 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1876 | engines: {node: '>=0.10.0'} 1877 | 1878 | /object-hash@3.0.0: 1879 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 1880 | engines: {node: '>= 6'} 1881 | dev: true 1882 | 1883 | /object-is@1.1.5: 1884 | resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} 1885 | engines: {node: '>= 0.4'} 1886 | dependencies: 1887 | call-bind: 1.0.2 1888 | define-properties: 1.2.0 1889 | dev: false 1890 | 1891 | /object-keys@1.1.1: 1892 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1893 | engines: {node: '>= 0.4'} 1894 | dev: false 1895 | 1896 | /once@1.4.0: 1897 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1898 | dependencies: 1899 | wrappy: 1.0.2 1900 | dev: true 1901 | 1902 | /optionator@0.9.3: 1903 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 1904 | engines: {node: '>= 0.8.0'} 1905 | dependencies: 1906 | '@aashutoshrathi/word-wrap': 1.2.6 1907 | deep-is: 0.1.4 1908 | fast-levenshtein: 2.0.6 1909 | levn: 0.4.1 1910 | prelude-ls: 1.2.1 1911 | type-check: 0.4.0 1912 | dev: true 1913 | 1914 | /p-limit@3.1.0: 1915 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1916 | engines: {node: '>=10'} 1917 | dependencies: 1918 | yocto-queue: 0.1.0 1919 | dev: true 1920 | 1921 | /p-locate@5.0.0: 1922 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1923 | engines: {node: '>=10'} 1924 | dependencies: 1925 | p-limit: 3.1.0 1926 | dev: true 1927 | 1928 | /parchment@1.1.4: 1929 | resolution: {integrity: sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==} 1930 | dev: false 1931 | 1932 | /parent-module@1.0.1: 1933 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1934 | engines: {node: '>=6'} 1935 | dependencies: 1936 | callsites: 3.1.0 1937 | dev: true 1938 | 1939 | /path-exists@4.0.0: 1940 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1941 | engines: {node: '>=8'} 1942 | dev: true 1943 | 1944 | /path-is-absolute@1.0.1: 1945 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1946 | engines: {node: '>=0.10.0'} 1947 | dev: true 1948 | 1949 | /path-key@3.1.1: 1950 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1951 | engines: {node: '>=8'} 1952 | dev: true 1953 | 1954 | /path-parse@1.0.7: 1955 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1956 | dev: true 1957 | 1958 | /path-type@4.0.0: 1959 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1960 | engines: {node: '>=8'} 1961 | dev: true 1962 | 1963 | /picocolors@1.0.0: 1964 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1965 | 1966 | /picomatch@2.3.1: 1967 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1968 | engines: {node: '>=8.6'} 1969 | dev: true 1970 | 1971 | /pify@2.3.0: 1972 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1973 | engines: {node: '>=0.10.0'} 1974 | dev: true 1975 | 1976 | /pirates@4.0.6: 1977 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1978 | engines: {node: '>= 6'} 1979 | dev: true 1980 | 1981 | /postcss-import@15.1.0(postcss@8.4.24): 1982 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 1983 | engines: {node: '>=14.0.0'} 1984 | peerDependencies: 1985 | postcss: ^8.0.0 1986 | dependencies: 1987 | postcss: 8.4.24 1988 | postcss-value-parser: 4.2.0 1989 | read-cache: 1.0.0 1990 | resolve: 1.22.2 1991 | dev: true 1992 | 1993 | /postcss-js@4.0.1(postcss@8.4.24): 1994 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 1995 | engines: {node: ^12 || ^14 || >= 16} 1996 | peerDependencies: 1997 | postcss: ^8.4.21 1998 | dependencies: 1999 | camelcase-css: 2.0.1 2000 | postcss: 8.4.24 2001 | dev: true 2002 | 2003 | /postcss-load-config@4.0.1(postcss@8.4.24): 2004 | resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} 2005 | engines: {node: '>= 14'} 2006 | peerDependencies: 2007 | postcss: '>=8.0.9' 2008 | ts-node: '>=9.0.0' 2009 | peerDependenciesMeta: 2010 | postcss: 2011 | optional: true 2012 | ts-node: 2013 | optional: true 2014 | dependencies: 2015 | lilconfig: 2.1.0 2016 | postcss: 8.4.24 2017 | yaml: 2.3.1 2018 | dev: true 2019 | 2020 | /postcss-nested@6.0.1(postcss@8.4.24): 2021 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 2022 | engines: {node: '>=12.0'} 2023 | peerDependencies: 2024 | postcss: ^8.2.14 2025 | dependencies: 2026 | postcss: 8.4.24 2027 | postcss-selector-parser: 6.0.13 2028 | dev: true 2029 | 2030 | /postcss-selector-parser@6.0.13: 2031 | resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} 2032 | engines: {node: '>=4'} 2033 | dependencies: 2034 | cssesc: 3.0.0 2035 | util-deprecate: 1.0.2 2036 | dev: true 2037 | 2038 | /postcss-value-parser@4.2.0: 2039 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 2040 | dev: true 2041 | 2042 | /postcss@8.4.24: 2043 | resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} 2044 | engines: {node: ^10 || ^12 || >=14} 2045 | dependencies: 2046 | nanoid: 3.3.6 2047 | picocolors: 1.0.0 2048 | source-map-js: 1.0.2 2049 | 2050 | /prelude-ls@1.2.1: 2051 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2052 | engines: {node: '>= 0.8.0'} 2053 | dev: true 2054 | 2055 | /prettier@2.8.8: 2056 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 2057 | engines: {node: '>=10.13.0'} 2058 | hasBin: true 2059 | dev: true 2060 | 2061 | /prop-types@15.8.1: 2062 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 2063 | dependencies: 2064 | loose-envify: 1.4.0 2065 | object-assign: 4.1.1 2066 | react-is: 16.13.1 2067 | dev: false 2068 | 2069 | /punycode@2.3.0: 2070 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 2071 | engines: {node: '>=6'} 2072 | dev: true 2073 | 2074 | /queue-microtask@1.2.3: 2075 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2076 | dev: true 2077 | 2078 | /quill-delta@3.6.3: 2079 | resolution: {integrity: sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==} 2080 | engines: {node: '>=0.10'} 2081 | dependencies: 2082 | deep-equal: 1.1.1 2083 | extend: 3.0.2 2084 | fast-diff: 1.1.2 2085 | dev: false 2086 | 2087 | /quill@1.3.7: 2088 | resolution: {integrity: sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==} 2089 | dependencies: 2090 | clone: 2.1.2 2091 | deep-equal: 1.1.1 2092 | eventemitter3: 2.0.3 2093 | extend: 3.0.2 2094 | parchment: 1.1.4 2095 | quill-delta: 3.6.3 2096 | dev: false 2097 | 2098 | /react-dom@18.2.0(react@18.2.0): 2099 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 2100 | peerDependencies: 2101 | react: ^18.2.0 2102 | dependencies: 2103 | loose-envify: 1.4.0 2104 | react: 18.2.0 2105 | scheduler: 0.23.0 2106 | dev: false 2107 | 2108 | /react-is@16.13.1: 2109 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 2110 | dev: false 2111 | 2112 | /react-is@18.2.0: 2113 | resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} 2114 | dev: false 2115 | 2116 | /react-property@2.0.0: 2117 | resolution: {integrity: sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==} 2118 | dev: false 2119 | 2120 | /react-quill@2.0.0(react-dom@18.2.0)(react@18.2.0): 2121 | resolution: {integrity: sha512-4qQtv1FtCfLgoD3PXAur5RyxuUbPXQGOHgTlFie3jtxp43mXDtzCKaOgQ3mLyZfi1PUlyjycfivKelFhy13QUg==} 2122 | peerDependencies: 2123 | react: ^16 || ^17 || ^18 2124 | react-dom: ^16 || ^17 || ^18 2125 | dependencies: 2126 | '@types/quill': 1.3.10 2127 | lodash: 4.17.21 2128 | quill: 1.3.7 2129 | react: 18.2.0 2130 | react-dom: 18.2.0(react@18.2.0) 2131 | dev: false 2132 | 2133 | /react-redux@8.1.1(@types/react-dom@18.0.11)(@types/react@18.0.37)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1): 2134 | resolution: {integrity: sha512-5W0QaKtEhj+3bC0Nj0NkqkhIv8gLADH/2kYFMTHxCVqQILiWzLv6MaLuV5wJU3BQEdHKzTfcvPN0WMS6SC1oyA==} 2135 | peerDependencies: 2136 | '@types/react': ^16.8 || ^17.0 || ^18.0 2137 | '@types/react-dom': ^16.8 || ^17.0 || ^18.0 2138 | react: ^16.8 || ^17.0 || ^18.0 2139 | react-dom: ^16.8 || ^17.0 || ^18.0 2140 | react-native: '>=0.59' 2141 | redux: ^4 || ^5.0.0-beta.0 2142 | peerDependenciesMeta: 2143 | '@types/react': 2144 | optional: true 2145 | '@types/react-dom': 2146 | optional: true 2147 | react-dom: 2148 | optional: true 2149 | react-native: 2150 | optional: true 2151 | redux: 2152 | optional: true 2153 | dependencies: 2154 | '@babel/runtime': 7.22.6 2155 | '@types/hoist-non-react-statics': 3.3.1 2156 | '@types/react': 18.0.37 2157 | '@types/react-dom': 18.0.11 2158 | '@types/use-sync-external-store': 0.0.3 2159 | hoist-non-react-statics: 3.3.2 2160 | react: 18.2.0 2161 | react-dom: 18.2.0(react@18.2.0) 2162 | react-is: 18.2.0 2163 | redux: 4.2.1 2164 | use-sync-external-store: 1.2.0(react@18.2.0) 2165 | dev: false 2166 | 2167 | /react-refresh@0.14.0: 2168 | resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} 2169 | engines: {node: '>=0.10.0'} 2170 | dev: true 2171 | 2172 | /react-router-dom@6.14.1(react-dom@18.2.0)(react@18.2.0): 2173 | resolution: {integrity: sha512-ssF6M5UkQjHK70fgukCJyjlda0Dgono2QGwqGvuk7D+EDGHdacEN3Yke2LTMjkrpHuFwBfDFsEjGVXBDmL+bWw==} 2174 | engines: {node: '>=14'} 2175 | peerDependencies: 2176 | react: '>=16.8' 2177 | react-dom: '>=16.8' 2178 | dependencies: 2179 | '@remix-run/router': 1.7.1 2180 | react: 18.2.0 2181 | react-dom: 18.2.0(react@18.2.0) 2182 | react-router: 6.14.1(react@18.2.0) 2183 | dev: false 2184 | 2185 | /react-router@6.14.1(react@18.2.0): 2186 | resolution: {integrity: sha512-U4PfgvG55LdvbQjg5Y9QRWyVxIdO1LlpYT7x+tMAxd9/vmiPuJhIwdxZuIQLN/9e3O4KFDHYfR9gzGeYMasW8g==} 2187 | engines: {node: '>=14'} 2188 | peerDependencies: 2189 | react: '>=16.8' 2190 | dependencies: 2191 | '@remix-run/router': 1.7.1 2192 | react: 18.2.0 2193 | dev: false 2194 | 2195 | /react@18.2.0: 2196 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 2197 | engines: {node: '>=0.10.0'} 2198 | dependencies: 2199 | loose-envify: 1.4.0 2200 | dev: false 2201 | 2202 | /read-cache@1.0.0: 2203 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 2204 | dependencies: 2205 | pify: 2.3.0 2206 | dev: true 2207 | 2208 | /readdirp@3.6.0: 2209 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2210 | engines: {node: '>=8.10.0'} 2211 | dependencies: 2212 | picomatch: 2.3.1 2213 | dev: true 2214 | 2215 | /redux-saga@1.2.3: 2216 | resolution: {integrity: sha512-HDe0wTR5nhd8Xr5xjGzoyTbdAw6rjy1GDplFt3JKtKN8/MnkQSRqK/n6aQQhpw5NI4ekDVOaW+w4sdxPBaCoTQ==} 2217 | dependencies: 2218 | '@redux-saga/core': 1.2.3 2219 | dev: false 2220 | 2221 | /redux@4.2.1: 2222 | resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} 2223 | dependencies: 2224 | '@babel/runtime': 7.22.6 2225 | dev: false 2226 | 2227 | /regenerator-runtime@0.13.11: 2228 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} 2229 | dev: false 2230 | 2231 | /regexp.prototype.flags@1.5.0: 2232 | resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} 2233 | engines: {node: '>= 0.4'} 2234 | dependencies: 2235 | call-bind: 1.0.2 2236 | define-properties: 1.2.0 2237 | functions-have-names: 1.2.3 2238 | dev: false 2239 | 2240 | /resolve-from@4.0.0: 2241 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2242 | engines: {node: '>=4'} 2243 | dev: true 2244 | 2245 | /resolve@1.22.2: 2246 | resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} 2247 | hasBin: true 2248 | dependencies: 2249 | is-core-module: 2.12.1 2250 | path-parse: 1.0.7 2251 | supports-preserve-symlinks-flag: 1.0.0 2252 | dev: true 2253 | 2254 | /reusify@1.0.4: 2255 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2256 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2257 | dev: true 2258 | 2259 | /rimraf@3.0.2: 2260 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2261 | hasBin: true 2262 | dependencies: 2263 | glob: 7.2.3 2264 | dev: true 2265 | 2266 | /rollup@3.26.2: 2267 | resolution: {integrity: sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA==} 2268 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 2269 | hasBin: true 2270 | optionalDependencies: 2271 | fsevents: 2.3.2 2272 | 2273 | /run-parallel@1.2.0: 2274 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2275 | dependencies: 2276 | queue-microtask: 1.2.3 2277 | dev: true 2278 | 2279 | /scheduler@0.23.0: 2280 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 2281 | dependencies: 2282 | loose-envify: 1.4.0 2283 | dev: false 2284 | 2285 | /semver@7.5.4: 2286 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 2287 | engines: {node: '>=10'} 2288 | hasBin: true 2289 | dependencies: 2290 | lru-cache: 6.0.0 2291 | dev: true 2292 | 2293 | /shebang-command@2.0.0: 2294 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2295 | engines: {node: '>=8'} 2296 | dependencies: 2297 | shebang-regex: 3.0.0 2298 | dev: true 2299 | 2300 | /shebang-regex@3.0.0: 2301 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2302 | engines: {node: '>=8'} 2303 | dev: true 2304 | 2305 | /slash@3.0.0: 2306 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2307 | engines: {node: '>=8'} 2308 | dev: true 2309 | 2310 | /source-map-js@1.0.2: 2311 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 2312 | engines: {node: '>=0.10.0'} 2313 | 2314 | /strip-ansi@6.0.1: 2315 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2316 | engines: {node: '>=8'} 2317 | dependencies: 2318 | ansi-regex: 5.0.1 2319 | dev: true 2320 | 2321 | /strip-json-comments@3.1.1: 2322 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2323 | engines: {node: '>=8'} 2324 | dev: true 2325 | 2326 | /style-to-js@1.1.3: 2327 | resolution: {integrity: sha512-zKI5gN/zb7LS/Vm0eUwjmjrXWw8IMtyA8aPBJZdYiQTXj4+wQ3IucOLIOnF7zCHxvW8UhIGh/uZh/t9zEHXNTQ==} 2328 | dependencies: 2329 | style-to-object: 0.4.1 2330 | dev: false 2331 | 2332 | /style-to-object@0.4.1: 2333 | resolution: {integrity: sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==} 2334 | dependencies: 2335 | inline-style-parser: 0.1.1 2336 | dev: false 2337 | 2338 | /sucrase@3.32.0: 2339 | resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} 2340 | engines: {node: '>=8'} 2341 | hasBin: true 2342 | dependencies: 2343 | '@jridgewell/gen-mapping': 0.3.3 2344 | commander: 4.1.1 2345 | glob: 7.1.6 2346 | lines-and-columns: 1.2.4 2347 | mz: 2.7.0 2348 | pirates: 4.0.6 2349 | ts-interface-checker: 0.1.13 2350 | dev: true 2351 | 2352 | /supports-color@5.5.0: 2353 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2354 | engines: {node: '>=4'} 2355 | dependencies: 2356 | has-flag: 3.0.0 2357 | dev: true 2358 | 2359 | /supports-color@7.2.0: 2360 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2361 | engines: {node: '>=8'} 2362 | dependencies: 2363 | has-flag: 4.0.0 2364 | dev: true 2365 | 2366 | /supports-preserve-symlinks-flag@1.0.0: 2367 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2368 | engines: {node: '>= 0.4'} 2369 | dev: true 2370 | 2371 | /tailwindcss@3.3.2: 2372 | resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==} 2373 | engines: {node: '>=14.0.0'} 2374 | hasBin: true 2375 | dependencies: 2376 | '@alloc/quick-lru': 5.2.0 2377 | arg: 5.0.2 2378 | chokidar: 3.5.3 2379 | didyoumean: 1.2.2 2380 | dlv: 1.1.3 2381 | fast-glob: 3.3.0 2382 | glob-parent: 6.0.2 2383 | is-glob: 4.0.3 2384 | jiti: 1.19.1 2385 | lilconfig: 2.1.0 2386 | micromatch: 4.0.5 2387 | normalize-path: 3.0.0 2388 | object-hash: 3.0.0 2389 | picocolors: 1.0.0 2390 | postcss: 8.4.24 2391 | postcss-import: 15.1.0(postcss@8.4.24) 2392 | postcss-js: 4.0.1(postcss@8.4.24) 2393 | postcss-load-config: 4.0.1(postcss@8.4.24) 2394 | postcss-nested: 6.0.1(postcss@8.4.24) 2395 | postcss-selector-parser: 6.0.13 2396 | postcss-value-parser: 4.2.0 2397 | resolve: 1.22.2 2398 | sucrase: 3.32.0 2399 | transitivePeerDependencies: 2400 | - ts-node 2401 | dev: true 2402 | 2403 | /text-table@0.2.0: 2404 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2405 | dev: true 2406 | 2407 | /thenify-all@1.6.0: 2408 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 2409 | engines: {node: '>=0.8'} 2410 | dependencies: 2411 | thenify: 3.3.1 2412 | dev: true 2413 | 2414 | /thenify@3.3.1: 2415 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 2416 | dependencies: 2417 | any-promise: 1.3.0 2418 | dev: true 2419 | 2420 | /to-fast-properties@2.0.0: 2421 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 2422 | engines: {node: '>=4'} 2423 | dev: true 2424 | 2425 | /to-regex-range@5.0.1: 2426 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2427 | engines: {node: '>=8.0'} 2428 | dependencies: 2429 | is-number: 7.0.0 2430 | dev: true 2431 | 2432 | /ts-interface-checker@0.1.13: 2433 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2434 | dev: true 2435 | 2436 | /tsconfck@2.1.1(typescript@5.0.2): 2437 | resolution: {integrity: sha512-ZPCkJBKASZBmBUNqGHmRhdhM8pJYDdOXp4nRgj/O0JwUwsMq50lCDRQP/M5GBNAA0elPrq4gAeu4dkaVCuKWww==} 2438 | engines: {node: ^14.13.1 || ^16 || >=18} 2439 | hasBin: true 2440 | peerDependencies: 2441 | typescript: ^4.3.5 || ^5.0.0 2442 | peerDependenciesMeta: 2443 | typescript: 2444 | optional: true 2445 | dependencies: 2446 | typescript: 5.0.2 2447 | dev: false 2448 | 2449 | /tslib@1.14.1: 2450 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 2451 | dev: true 2452 | 2453 | /tsutils@3.21.0(typescript@5.0.2): 2454 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 2455 | engines: {node: '>= 6'} 2456 | peerDependencies: 2457 | 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' 2458 | dependencies: 2459 | tslib: 1.14.1 2460 | typescript: 5.0.2 2461 | dev: true 2462 | 2463 | /type-check@0.4.0: 2464 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2465 | engines: {node: '>= 0.8.0'} 2466 | dependencies: 2467 | prelude-ls: 1.2.1 2468 | dev: true 2469 | 2470 | /type-fest@0.20.2: 2471 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2472 | engines: {node: '>=10'} 2473 | dev: true 2474 | 2475 | /typescript-compare@0.0.2: 2476 | resolution: {integrity: sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==} 2477 | dependencies: 2478 | typescript-logic: 0.0.0 2479 | dev: false 2480 | 2481 | /typescript-logic@0.0.0: 2482 | resolution: {integrity: sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q==} 2483 | dev: false 2484 | 2485 | /typescript-tuple@2.2.1: 2486 | resolution: {integrity: sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==} 2487 | dependencies: 2488 | typescript-compare: 0.0.2 2489 | dev: false 2490 | 2491 | /typescript@5.0.2: 2492 | resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==} 2493 | engines: {node: '>=12.20'} 2494 | hasBin: true 2495 | 2496 | /update-browserslist-db@1.0.11(browserslist@4.21.9): 2497 | resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} 2498 | hasBin: true 2499 | peerDependencies: 2500 | browserslist: '>= 4.21.0' 2501 | dependencies: 2502 | browserslist: 4.21.9 2503 | escalade: 3.1.1 2504 | picocolors: 1.0.0 2505 | dev: true 2506 | 2507 | /uri-js@4.4.1: 2508 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2509 | dependencies: 2510 | punycode: 2.3.0 2511 | dev: true 2512 | 2513 | /use-sync-external-store@1.2.0(react@18.2.0): 2514 | resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} 2515 | peerDependencies: 2516 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2517 | dependencies: 2518 | react: 18.2.0 2519 | dev: false 2520 | 2521 | /util-deprecate@1.0.2: 2522 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2523 | dev: true 2524 | 2525 | /vite-tsconfig-paths@4.2.0(typescript@5.0.2)(vite@4.3.9): 2526 | resolution: {integrity: sha512-jGpus0eUy5qbbMVGiTxCL1iB9ZGN6Bd37VGLJU39kTDD6ZfULTTb1bcc5IeTWqWJKiWV5YihCaibeASPiGi8kw==} 2527 | peerDependencies: 2528 | vite: '*' 2529 | peerDependenciesMeta: 2530 | vite: 2531 | optional: true 2532 | dependencies: 2533 | debug: 4.3.4 2534 | globrex: 0.1.2 2535 | tsconfck: 2.1.1(typescript@5.0.2) 2536 | vite: 4.3.9 2537 | transitivePeerDependencies: 2538 | - supports-color 2539 | - typescript 2540 | dev: false 2541 | 2542 | /vite@4.3.9: 2543 | resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} 2544 | engines: {node: ^14.18.0 || >=16.0.0} 2545 | hasBin: true 2546 | peerDependencies: 2547 | '@types/node': '>= 14' 2548 | less: '*' 2549 | sass: '*' 2550 | stylus: '*' 2551 | sugarss: '*' 2552 | terser: ^5.4.0 2553 | peerDependenciesMeta: 2554 | '@types/node': 2555 | optional: true 2556 | less: 2557 | optional: true 2558 | sass: 2559 | optional: true 2560 | stylus: 2561 | optional: true 2562 | sugarss: 2563 | optional: true 2564 | terser: 2565 | optional: true 2566 | dependencies: 2567 | esbuild: 0.17.19 2568 | postcss: 8.4.24 2569 | rollup: 3.26.2 2570 | optionalDependencies: 2571 | fsevents: 2.3.2 2572 | 2573 | /which@2.0.2: 2574 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2575 | engines: {node: '>= 8'} 2576 | hasBin: true 2577 | dependencies: 2578 | isexe: 2.0.0 2579 | dev: true 2580 | 2581 | /wrappy@1.0.2: 2582 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2583 | dev: true 2584 | 2585 | /yallist@3.1.1: 2586 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 2587 | dev: true 2588 | 2589 | /yallist@4.0.0: 2590 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2591 | dev: true 2592 | 2593 | /yaml@2.3.1: 2594 | resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} 2595 | engines: {node: '>= 14'} 2596 | dev: true 2597 | 2598 | /yocto-queue@0.1.0: 2599 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2600 | engines: {node: '>=10'} 2601 | dev: true 2602 | --------------------------------------------------------------------------------