diff --git a/package.json b/package.json index 66c5fa8..120d68f 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "react-hook-form": "^7.50.1", "react-popper": "^2.3.0", "react-router-dom": "^6.22.0", + "react-virtuoso": "^4.10.1", "uswds": "^2.14.0", "uuid": "^9.0.1", "yup": "^1.3.3" @@ -95,7 +96,7 @@ "@storybook/react": "^7.6.16", "@storybook/react-vite": "^7.6.16", "@storybook/testing-library": "^0.2.2", - "@swc/core": "^1.4.1", + "@swc/core": "^1.7.6", "@swc/jest": "^0.2.36", "@testing-library/dom": "^9.3.4", "@testing-library/jest-dom": "^6.4.2", @@ -104,16 +105,16 @@ "@testing-library/user-event": "^14.5.2", "@types/babel__core": "^7.20.5", "@types/jest": "^29.5.12", - "@types/lodash": "^4.14.202", - "@types/node": "^20.11.19", - "@types/prop-types": "^15.7.11", - "@types/react": "^18.2.55", - "@types/react-dom": "^18.2.19", + "@types/lodash": "^4.17.7", + "@types/node": "^20.14.14", + "@types/prop-types": "^15.7.12", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", "@types/react-helmet": "^6.1.11", "@types/testing-library__jest-dom": "^6.0.0", "@types/uuid": "^9.0.8", - "@typescript-eslint/eslint-plugin": "^7.0.1", - "@typescript-eslint/parser": "^7.0.1", + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", "@vitejs/plugin-react-swc": "^3.6.0", "babel-plugin-transform-import-meta": "^2.2.1", "camelcase": "^6.3.0", @@ -150,7 +151,7 @@ "storybook": "^7.6.16", "typescript": "^5.5.4", "typescript-plugin-css-modules": "^5.1.0", - "vite": "^5.1.3", + "vite": "^5.4.0", "vite-plugin-environment": "^1.1.3", "web-vitals": "^3.5.2" }, diff --git a/src/axiosConfig.ts b/src/axiosConfig.ts new file mode 100644 index 0000000..e121375 --- /dev/null +++ b/src/axiosConfig.ts @@ -0,0 +1,14 @@ +import axios, { AxiosInstance } from 'axios' + +const axiosInstance: AxiosInstance = axios.create({ + baseURL: '/api/v1/', + headers: { + 'Content-Type': 'application/json', + }, + // withCredentials: true, +}) +if (process.env.NODE_ENV === 'development') { + axiosInstance.defaults.headers.common['Authorization'] = + `Bearer ${import.meta.env.VITE_AUTH_TOKEN3 || ''}` +} +export default axiosInstance diff --git a/src/main.tsx b/src/main.tsx index a3d9af7..6e825a1 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -10,19 +10,6 @@ import router from '@/router/router' import { SIGN_IN_GREETING } from '@/locales/en' import '@/sass/style.scss' import onPerfEntry from './utils/onPerfEntry' -import { - ApolloProvider, - ApolloClient, - InMemoryCache, - HttpLink, -} from '@apollo/client' - -export const client = new ApolloClient({ - link: new HttpLink({ - uri: import.meta.env.GRAPH_URI, - }), - cache: new InMemoryCache(), -}) // IIFE that initializes the root node and renders the application. ;(async function () { @@ -32,16 +19,14 @@ export const client = new ApolloClient({ // create the React root node and render the application ReactDOMClient.createRoot(rootElement).render( - - - + ) // if NODE_ENV is production, return early. otherwise, run dev tools. if (process.env.NODE_ENV === 'development') { console.debug(SIGN_IN_GREETING, CONFIG) - + // console.log(`Running in environment: ${process.env.NODE_ENV}`) // enable React performance measurement tools. // see https://create-react-app.dev/docs/measuring-performance/ const { onCLS, onFID, onFCP, onINP, onLCP, onTTFB } = await import( diff --git a/src/router/authLoader.ts b/src/router/authLoader.ts index d906292..d07e4fa 100644 --- a/src/router/authLoader.ts +++ b/src/router/authLoader.ts @@ -1,21 +1,33 @@ +import 'core-js/stable/atob' +import { userData } from '@/types' +import axiosInstance from '@/axiosConfig' /** * Auth state loader for react-router data routes. * @module router/authLoader * @see {@link dashboard/Routes} */ +const emptyUser: userData = { + userid: '', + email: '', + fullname: '', + role: '', + assignedfismasystems: [], +} const authLoader = async (): Promise => { - return fetch('/whoami') - .then(async (response) => { - let body: string | Promise - if (!response.ok) { - body = '' - } else { - body = await response.text() - } - return { ok: response.ok, response: body } - }) - .catch((e) => console.log(e)) + try { + const axiosUser = await axiosInstance.get('/users/current') + if (axiosUser.status != 200) { + return { ok: false, response: emptyUser } + } + if (axiosUser.status != 200) { + return { status: false, response: emptyUser } + } + return { status: axiosUser.status, response: axiosUser.data } + } catch (error) { + console.error('Error:', error) + } + return { ok: false, response: emptyUser } } export default authLoader diff --git a/src/router/constants.ts b/src/router/constants.ts index c2c8538..986e708 100644 --- a/src/router/constants.ts +++ b/src/router/constants.ts @@ -25,12 +25,6 @@ export enum Routes { DASHBOARD = `/${RouteIds.PROTECTED}`, HOME = `/${RouteIds.HOME}`, AUTH = `/${RouteIds.AUTH}/*`, - PILLARS = `/${RouteIds.PILLARS}/:systemId`, - IDENTITY = `${PILLARS}/${RouteIds.IDENTITY}`, - DEVICES = `${PILLARS}/${RouteIds.DEVICES}`, - NETWORKS = `${PILLARS}/${RouteIds.NETWORKS}`, - APPLICATIONS = `${PILLARS}/${RouteIds.APPLICATIONS}`, - DATA = `${PILLARS}/${RouteIds.DATA}`, AUTH_LOGIN = `/${RouteIds.AUTH}/${RouteIds.LOGIN}`, AUTH_LOGOUT = `/${RouteIds.AUTH}/${RouteIds.LOGOUT}`, } diff --git a/src/router/router.tsx b/src/router/router.tsx index 0a6c8d5..20f954d 100644 --- a/src/router/router.tsx +++ b/src/router/router.tsx @@ -9,12 +9,6 @@ import authLoader from './authLoader' import { RouteIds, Routes } from '@/router/constants' import HomePageContainer from '@/views/Home/Home' import Title from '@/views/Title/Title' -import PillarPage from '@/views/PillarTable/PillarTable' -import IdentityPage from '@/views/IdentityPage/IdentityPage' -import DevicesPage from '@/views/DevicesPage/DevicesPage' -import NetworksPage from '@/views/NetworksPage/NetworksPage' -import ApplicationPage from '@/views/ApplicationPage/ApplicationPage' -import DataPage from '@/views/DataPage/DataPage' /** * The hash router for the application that defines routes * and specifies the loaders for routes with dynamic data. @@ -36,41 +30,6 @@ const router = createHashRouter([ element: , errorElement: , }, - { - path: Routes.PILLARS, - id: RouteIds.PILLARS, - element: , - }, - { - id: RouteIds.IDENTITY, - path: Routes.IDENTITY, - element: , - errorElement: , - }, - { - id: RouteIds.DEVICES, - path: Routes.DEVICES, - element: , - errorElement: , - }, - { - id: RouteIds.NETWORKS, - path: Routes.NETWORKS, - element: , - errorElement: , - }, - { - id: RouteIds.APPLICATIONS, - path: Routes.APPLICATIONS, - element: , - errorElement: , - }, - { - id: RouteIds.DATA, - path: Routes.DATA, - element: , - errorElement: , - }, ], }, ]) diff --git a/src/types.ts b/src/types.ts index 5872774..94bf1fc 100644 --- a/src/types.ts +++ b/src/types.ts @@ -61,6 +61,61 @@ export type FormField = { value?: string | number | boolean | null component: React.ElementType } +export type userData = { + userid: string + email: string + fullname: string + role: string + assignedfismasystems?: number[] +} +export type RequestOptions = { + method: string + headers: Headers + redirect: 'follow' | 'error' | 'manual' +} +export type FismaSystemType = { + fismasystemid: string | number + fismauid: string | number + fismaacronym: string + fismaname: string + fismasubsystem: string + component: string + mission: string + fismaimpactlevel: string + issoemail: string + datacenterenvironment: string +} +export type FismaSystems = { + fismaSystems: FismaSystemType[] +} + +export type FismaFunction = { + functionid: number + function: string + description: string + datacenterenvironment: string +} +export type FismaQuestion = { + questionid: number + question: string + notesprompt: string + pillar: string + function: FismaFunction +} + +export type QuestionOption = { + description: string + functionid: number + functionoptionid: number + optionname: string + score: number +} + +export type SystemDetailsModalProps = { + open: boolean + onClose: () => void + system: FismaSystemType | null +} export type ThemeColor = | 'primary' diff --git a/src/views/FismaTable/FismaTable.tsx b/src/views/FismaTable/FismaTable.tsx new file mode 100644 index 0000000..680d3bc --- /dev/null +++ b/src/views/FismaTable/FismaTable.tsx @@ -0,0 +1,290 @@ +import * as React from 'react' +import Paper from '@mui/material/Paper' +import Table from '@mui/material/Table' +import TableBody from '@mui/material/TableBody' +import TableCell from '@mui/material/TableCell' +import TableContainer from '@mui/material/TableContainer' +import TableHead from '@mui/material/TableHead' +import TablePagination from '@mui/material/TablePagination' +import TableRow from '@mui/material/TableRow' +import { FismaSystemType } from '@/types' +import { useEffect, useState } from 'react' +import axiosInstance from '@/axiosConfig' +import { TableSortLabel } from '@mui/material' +import QuestionnareModal from '../QuestionnareModal/QuestionnareModal' +import Link from '@mui/material/Link' +type ColumnData = { + dataKey: keyof FismaSystemType + label: string + numeric?: boolean + width: number + align?: 'center' | 'left' | 'right' + disablePadding?: boolean +} + +const columns: ColumnData[] = [ + { + width: 10, + label: 'Acronym', + dataKey: 'fismaacronym', + disablePadding: false, + align: 'left', + }, + { + width: 20, + label: 'System Name', + dataKey: 'fismaname', + disablePadding: false, + align: 'left', + }, + { + width: 10, + label: 'Data Center Environment', + dataKey: 'datacenterenvironment', + disablePadding: false, + align: 'left', + numeric: false, + }, + { + width: 5, + label: 'Details', + dataKey: 'fismauid', + disablePadding: false, + align: 'center', + }, +] + +function descendingComparator(a: T, b: T, orderBy: keyof T) { + if (b[orderBy] < a[orderBy]) { + return -1 + } + if (b[orderBy] > a[orderBy]) { + return 1 + } + return 0 +} + +type Order = 'asc' | 'desc' + +function getComparator( + order: Order, + orderBy: Key +): ( + a: { [key in Key]: number | string }, + b: { [key in Key]: number | string } +) => number { + return order === 'desc' + ? (a, b) => descendingComparator(a, b, orderBy) + : (a, b) => -descendingComparator(a, b, orderBy) +} + +function stableSort(array: T[], comparator: (a: T, b: T) => number): T[] { + return array.slice().sort(comparator) +} + +type EnhancedTableProps = { + onRequestSort: ( + event: React.MouseEvent, + property: keyof FismaSystemType + ) => void + order: Order + orderBy: keyof FismaSystemType +} + +function EnhancedTableHead(props: EnhancedTableProps) { + const { order, orderBy, onRequestSort } = props + const createSortHandler = + (property: keyof FismaSystemType) => (event: React.MouseEvent) => { + if (property !== 'fismauid') { + onRequestSort(event, property) + } + } + + return ( + + + {columns.map((headCell) => ( + + {headCell.dataKey !== 'fismauid' ? ( + + {headCell.label} + + ) : ( + headCell.label + )} + + ))} + + + ) +} + +export default function FismaTable() { + const [fismaSystems, setFismaSystems] = useState([]) + const [loading, setLoading] = useState(true) + const [page, setPage] = useState(0) + const [rowsPerPage, setRowsPerPage] = useState(10) + const [order, setOrder] = useState('asc') + const [orderBy, setOrderBy] = useState('fismaacronym') + const [isModalOpen, setIsModalOpen] = useState(false) + const [selectedSystem, setSelectedSystem] = useState( + null + ) + + const handleOpenModal = (system: FismaSystemType) => { + setSelectedSystem(system) + setIsModalOpen(true) + } + + const handleCloseModal = () => { + setIsModalOpen(false) + } + const handleRequestSort = ( + _event: React.MouseEvent, + property: keyof FismaSystemType + ) => { + const isAsc = orderBy === property && order === 'asc' + setOrder(isAsc ? 'desc' : 'asc') + setOrderBy(property) + } + + const handleChangePage = (_event: unknown, newPage: number) => { + setPage(newPage) + } + + const handleChangeRowsPerPage = ( + event: React.ChangeEvent + ) => { + setRowsPerPage(+event.target.value) + setPage(0) + } + + useEffect(() => { + const fetchFismaSystems = async () => { + try { + const fismaSystems = await axiosInstance.get('/fismasystems') + if (fismaSystems.status !== 200) { + throw new Error('Failed to fetch data. Status was not 200') + } + setFismaSystems(fismaSystems.data) + } catch (error) { + console.log(error) + } finally { + setLoading(false) + } + } + fetchFismaSystems() + }, []) + + if (loading) { + return

Loading ...

+ } + + return ( + + + + + + {fismaSystems ? ( + stableSort(fismaSystems, getComparator(order, orderBy)) + .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage) + .map((system) => { + return ( + + {columns.map((column) => { + const value = system[column.dataKey] + if (column.dataKey === 'fismauid') { + return ( + + handleOpenModal(system)} + > + View Questionnare + + + ) + } + + return ( + + {value} + + ) + })} + + ) + }) + ) : ( + + + No data available + + + )} + +
+
+ + +
+ ) +} diff --git a/src/views/Home/Home.tsx b/src/views/Home/Home.tsx index 342a68e..0e4123f 100644 --- a/src/views/Home/Home.tsx +++ b/src/views/Home/Home.tsx @@ -1,210 +1,15 @@ -import * as React from 'react' -import Typography from '@mui/material/Typography' -import InputLabel from '@mui/material/InputLabel' -import MenuItem from '@mui/material/MenuItem' -import FormControl from '@mui/material/FormControl' -import NavigateNextIcon from '@mui/icons-material/NavigateNext' -import Select, { SelectChangeEvent } from '@mui/material/Select' -import { useQuery } from '@apollo/client' -import Button from '@mui/material/Button' -import gql from 'graphql-tag' -import { Link } from 'react-router-dom' -import { DocumentNode } from '@apollo/client' - +import FismaTable from '../FismaTable/FismaTable' /** - * Component that renders the contents of the Dashboard view. - * @returns {JSX.Element} Component that renders the dashboard contents. + * Component that renders the contents of the Home view. + * @returns {JSX.Element} Component that renders the home contents. */ -const FISMASYSTEMS_QUERY: DocumentNode = gql(` - query getFismaSystems { - fismasystems { - fismasystemid - fismaacronym - fismasubsystem - }} -`) -type SYSTEMPROPS = { - id: number[] - subsystem: string[] -} -type QUERYPROPS = { - fismasystemid: number - fismaacronym: string - fismasubsystem: string -} -type FISMASYSTEM = { - fismaacronym: string - fismasubsystem: string - fismasystemid: number -} -type Dictionary = { [key: string]: SYSTEMPROPS } - -const HomePageContainer: React.FC = (): JSX.Element => { - const [fismaSystem, setFismaSystem] = React.useState('') - const [fismaSubsystem, setFimsaSubsystem] = React.useState('') - const [fismaTable, setFismaTable] = React.useState({}) - const [haveSubsystem, setHaveSubsystem] = React.useState(false) - const [subsystem, setSubsystem] = React.useState([]) - const [subsystemId, setSubsystemId] = React.useState([]) - const [fismaSystemID, setID] = React.useState(-1) - const { loading, data } = useQuery(FISMASYSTEMS_QUERY) - const handleChange = (event: SelectChangeEvent) => { - setFismaSystem(event.target.value as string) - } - const handleSubsystemChange = (event: SelectChangeEvent) => { - setFimsaSubsystem(event.target.value as string) - setID(Number(event.target.value)) - } - const handleSubsystemClick = (event: React.MouseEvent) => { - const subsystem = (event.target as HTMLElement).innerText.trimEnd() - // console.log(event.target.value) - setFimsaSubsystem(subsystem) - } - - const handleClick = (event: React.MouseEvent) => { - const acronym = (event.target as HTMLElement).innerText.trimEnd() - const fismasubsystem = fismaTable[acronym].subsystem - const fismaSubsystemId = fismaTable[acronym].id - // console.log(subsystem) - if (fismasubsystem.length > 1) { - setHaveSubsystem(true) - setSubsystem(fismasubsystem) - setSubsystemId(fismaSubsystemId) - setID(-1) - } else { - setHaveSubsystem(false) - setSubsystemId([]) - setSubsystem(['']) - setID(fismaSubsystemId[0]) - } - } - - // TODO: refactor this code to use a loader - React.useEffect(() => { - if (data) { - const seenAcronyms: Set = new Set() - const newDictionary: Dictionary = {} - data.fismasystems.forEach((system: FISMASYSTEM) => { - if (!seenAcronyms.has(system.fismaacronym)) { - seenAcronyms.add(system.fismaacronym) - newDictionary[system.fismaacronym] = { - id: [system.fismasystemid], - subsystem: [system.fismasubsystem], - } - } else { - const existingSystem = newDictionary[system.fismaacronym] - // Push the new id and subsystem into the existing SYSTEMPROPS object - existingSystem.id.push(system.fismasystemid) - existingSystem.subsystem.push(system.fismasubsystem) - } - }) - - setFismaTable((prevDictionary) => ({ - ...prevDictionary, - ...newDictionary, - })) - } - }, [data]) +export default function HomePageContainer() { return ( <> - {loading ? ( -

Loading ...

- ) : ( - <> -
- - Welcome to the Zero Trust Maturity score dashboard! -
- This dashboard attempts to breakdown data silos and... -
- - - FISMA Systems - - - - {haveSubsystem && ( - - - FISMA Subsystems - - - - )} -
- {fismaSystemID != -1 && ( - - - - )} -
-
- - )} +
+ +
) } -export default HomePageContainer diff --git a/src/views/PillarTable/PillarTable.loader.ts b/src/views/PillarTable/PillarTable.loader.ts deleted file mode 100644 index 1b9e0b5..0000000 --- a/src/views/PillarTable/PillarTable.loader.ts +++ /dev/null @@ -1,26 +0,0 @@ -import gql from 'graphql-tag' -import { client } from '@/main' - -const FISMASYSTEMQUERY: any = gql` - query getFismaSystem($id: ID!) { - fismasystem(fismasystemid: $id) { - fismasystemid - fismauid - fismaacronym - functionscores { - # datecalculated - score - function { - pillar - name - } - } - } - } -` -// @ts-ignore -const pillarLoader = async () => { - const { data } = await client.query(FISMASYSTEMQUERY) - return data -} -export default pillarLoader diff --git a/src/views/QuestionnareModal/QuestionnareModal.tsx b/src/views/QuestionnareModal/QuestionnareModal.tsx new file mode 100644 index 0000000..17ed382 --- /dev/null +++ b/src/views/QuestionnareModal/QuestionnareModal.tsx @@ -0,0 +1,347 @@ +import * as React from 'react' +import { Button as CmsButton } from '@cmsgov/design-system' +import { + Box, + Dialog, + DialogContent, + DialogTitle, + DialogActions, + Typography, + Radio, + RadioGroup, + FormControlLabel, + FormControl, +} from '@mui/material' +import { styled } from '@mui/system' +import TextField from '@mui/material/TextField' +import NavigateNextIcon from '@mui/icons-material/NavigateNext' +import NavigateBeforeIcon from '@mui/icons-material/NavigateBefore' +import { FismaQuestion, QuestionOption, SystemDetailsModalProps } from '@/types' +import axiosInstance from '@/axiosConfig' +import CircularProgress from '@mui/material/CircularProgress' + +const CssTextField = styled(TextField)({ + '& label.Mui-focused': { + color: 'rgb(13, 36, 153)', + marginTop: 0, + }, + '& .MuiInputLabel-root': { + marginTop: 0, + }, + '& .MuiInput-underline:after': { + borderBottomColor: '#B2BAC2', + }, + '& .MuiOutlinedInput-root': { + '& fieldset': { + borderColor: '#E0E3E7', + marginTop: 0, + }, + '&:hover fieldset': { + borderColor: '#B2BAC2', + }, + '&.Mui-focused fieldset': { + borderColor: 'rgb(13, 36, 153)', + }, + }, +}) + +type Category = { + name: string + steps: FismaQuestion[] +} + +export default function QuestionnareModal({ + open, + onClose, + system, +}: SystemDetailsModalProps) { + const [activeCategoryIndex, setActiveCategoryIndex] = + React.useState(0) + const [activeStepIndex, setActiveStepIndex] = React.useState(0) + const [questionId, setQuestionId] = React.useState(null) + const [categories, setCategories] = React.useState([]) + const [options, setOptions] = React.useState([]) + const [loadingQuestion, setLoadingQuestion] = React.useState(true) + const [notes, setNotes] = React.useState('') + const activeCategory = categories[activeCategoryIndex] + const activeStep = activeCategory?.steps[activeStepIndex] + const handleQuestionnareNext = () => { + let nextCategoryIndex = activeCategoryIndex + let nextStepIndex = activeStepIndex + 1 + + if (nextStepIndex >= activeCategory.steps.length) { + nextCategoryIndex += 1 + nextStepIndex = 0 + } + + if (nextCategoryIndex < categories.length) { + const nextStep = categories[nextCategoryIndex].steps[nextStepIndex] + setActiveCategoryIndex(nextCategoryIndex) + setActiveStepIndex(nextStepIndex) + handleStepClick( + nextCategoryIndex, + nextStepIndex, + nextStep.function.functionid + ) + } + } + + const handleQuestionnareBack = () => { + let prevCategoryIndex = activeCategoryIndex + let prevStepIndex = activeStepIndex - 1 + + if (prevStepIndex < 0) { + prevCategoryIndex -= 1 + if (prevCategoryIndex >= 0) { + prevStepIndex = categories[prevCategoryIndex].steps.length - 1 + } + } + + if (prevCategoryIndex >= 0) { + const prevStep = categories[prevCategoryIndex].steps[prevStepIndex] + setActiveCategoryIndex(prevCategoryIndex) + setActiveStepIndex(prevStepIndex) + handleStepClick( + prevCategoryIndex, + prevStepIndex, + prevStep.function.functionid + ) + } + } + + const handleStepClick = ( + categoryIndex: number, + stepIndex: number, + id: number | null + ) => { + setLoadingQuestion(true) + setActiveCategoryIndex(categoryIndex) + setActiveStepIndex(stepIndex) + setQuestionId(id) + } + const handClose = () => { + setQuestionId(null) + setLoadingQuestion(true) + onClose() + } + React.useEffect(() => { + if (open && system) { + axiosInstance + .get(`/fismasystems/${system.fismasystemid}/questions`) + .then((response) => { + const data = response.data + const organizedData: Record = {} + data.forEach((question: FismaQuestion) => { + if (!organizedData[question.pillar]) { + organizedData[question.pillar] = [] + } + organizedData[question.pillar].push(question) + }) + + // Convert the organized data into categories format + const categoriesData: Category[] = Object.keys(organizedData).map( + (pillar) => ({ + name: pillar, + steps: organizedData[pillar], + }) + ) + + setCategories(categoriesData) + if (data.length > 0) { + // console.log(categoriesData) + setQuestionId(categoriesData[0]['steps'][0].function.functionid) + } + }) + .catch((error) => { + console.error('Error fetching data:', error) + }) + } + }, [open, system]) + + React.useEffect(() => { + if (questionId) { + try { + axiosInstance.get(`functions/${questionId}/options`).then((res) => { + // console.log(res.data) + setOptions(res.data) + setLoadingQuestion(false) + }) + } catch (error) { + console.error('Error fetching data:', error) + } + // setQuestionId(firstQuestionnaireId) + } + }, [questionId]) + const renderRadioGroup = (options: QuestionOption[]) => { + return ( + + + {options.map((option) => ( + } + label={option.description} + sx={{ m: 0 }} + /> + ))} + + + ) + } + // Set initial notes when the active step changes + return ( + <> + {/* Click to show modal */} + + +
+ {'Questionnare'} +
+
+ + + + {categories.map((category, categoryIndex) => ( + + + {category.name} + + + {category.steps.map((step, stepIndex) => ( + + handleStepClick( + categoryIndex, + stepIndex, + step.function.functionid + ) + } + > + {step.question} + + ))} + + + ))} + + {loadingQuestion ? ( + + + + ) : ( + + {activeStep?.question} + + {renderRadioGroup(options)} + + + {activeStep?.notesprompt || ''} + + setNotes(e.target.value)} + /> + + + + Back + + + Next + + + + + )} + + + + + Close + + +
+ + ) +} diff --git a/src/views/Title/Title.tsx b/src/views/Title/Title.tsx index f075f26..bb89c7b 100644 --- a/src/views/Title/Title.tsx +++ b/src/views/Title/Title.tsx @@ -1,41 +1,34 @@ -import * as React from 'react' -// import Grid from '@mui/material/Grid' -// import Box from '@mui/material/Box' import Typography from '@mui/material/Typography' import { Container } from '@mui/material' import { Outlet, useLoaderData } from 'react-router-dom' import { UsaBanner } from '@cmsgov/design-system' -import { jwtDecode } from 'jwt-decode' import logo from '../../assets/icons/logo.svg' import AccountCircleIcon from '@mui/icons-material/AccountCircle' import 'core-js/stable/atob' +import { userData } from '@/types' +// import { useEffect, useState } from 'react' +// import axiosInstance from '@/axiosConfig' /** * Component that renders the contents of the Dashboard view. * @returns {JSX.Element} Component that renders the dashboard contents. */ -interface LoaderData { - email?: string - name?: string - preferred_username?: string - groups?: string[] -} -const emptyUser: LoaderData = { +const emptyUser: userData = { + userid: '', email: '', - name: '', - preferred_username: '', - groups: [], + fullname: '', + role: '', + assignedfismasystems: [], } -interface PromiseType { - ok: boolean - response: string + +type PromiseType = { + status: boolean | number + response: userData } -const Title: React.FC = (): JSX.Element => { +export default function Title() { const loaderData = useLoaderData() as PromiseType - const userInfo: LoaderData = !loaderData.ok - ? emptyUser - : (jwtDecode(loaderData.response as string) as LoaderData) - + const userInfo: userData = + loaderData.status != 200 ? emptyUser : loaderData.response return ( <> @@ -59,12 +52,12 @@ const Title: React.FC = (): JSX.Element => {
- {userInfo.name ? ( + {userInfo.fullname ? ( - {userInfo.name} + {userInfo.fullname} ) : ( '' @@ -85,5 +78,3 @@ const Title: React.FC = (): JSX.Element => { ) } - -export default Title diff --git a/vite.config.ts b/vite.config.ts index 10b44ed..7201fdb 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -7,6 +7,7 @@ import sass from 'sass' // https://vitejs.dev/config/ export default defineConfig(({ mode }) => { + process.env = { ...process.env, ...loadEnv(mode, process.cwd()) } return { define: { 'process.env': {}, @@ -51,13 +52,13 @@ export default defineConfig(({ mode }) => { host: true, port: 5174, proxy: { - '/graphql': { - target: 'http://localhost:3000/', + '/api/v1': { + target: process.env.VITE_CF_DOMAIN, changeOrigin: true, secure: false, }, '/whoami': { - target: 'http://localhost:3000/', + target: process.env.VITE_CF_DOMAIN, changeOrigin: true, secure: false, }, diff --git a/yarn.lock b/yarn.lock index acb16ac..70db751 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4049,9 +4049,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/aix-ppc64@npm:0.19.12" +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard @@ -4063,9 +4063,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/android-arm64@npm:0.19.12" +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -4077,9 +4077,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/android-arm@npm:0.19.12" +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -4091,9 +4091,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/android-x64@npm:0.19.12" +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -4105,9 +4105,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/darwin-arm64@npm:0.19.12" +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -4119,9 +4119,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/darwin-x64@npm:0.19.12" +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -4133,9 +4133,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/freebsd-arm64@npm:0.19.12" +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -4147,9 +4147,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/freebsd-x64@npm:0.19.12" +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -4161,9 +4161,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-arm64@npm:0.19.12" +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -4175,9 +4175,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-arm@npm:0.19.12" +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -4189,9 +4189,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-ia32@npm:0.19.12" +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -4203,9 +4203,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-loong64@npm:0.19.12" +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -4217,9 +4217,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-mips64el@npm:0.19.12" +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -4231,9 +4231,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-ppc64@npm:0.19.12" +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -4245,9 +4245,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-riscv64@npm:0.19.12" +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -4259,9 +4259,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-s390x@npm:0.19.12" +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -4273,9 +4273,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-x64@npm:0.19.12" +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -4287,9 +4287,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/netbsd-x64@npm:0.19.12" +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -4301,9 +4301,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/openbsd-x64@npm:0.19.12" +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -4315,9 +4315,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/sunos-x64@npm:0.19.12" +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -4329,9 +4329,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/win32-arm64@npm:0.19.12" +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -4343,9 +4343,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/win32-ia32@npm:0.19.12" +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -4357,9 +4357,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/win32-x64@npm:0.19.12" +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -4375,10 +4375,10 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.6.2 - resolution: "@eslint-community/regexpp@npm:4.6.2" - checksum: 10/59ea2fa13a70996a8cebbd5a9f4499c92bceeff872286ef2fb34948fcfb9d3467692371d9cc116e7d613f2c18086a1c8337c9d461ccdf213f0dc47f6f6d2fbb6 +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": + version: 4.11.0 + resolution: "@eslint-community/regexpp@npm:4.11.0" + checksum: 10/f053f371c281ba173fe6ee16dbc4fe544c84870d58035ccca08dba7f6ce1830d895ce3237a0db89ba37616524775dca82f1c502066b58e2d5712d7f87f5ba17c languageName: node linkType: hard @@ -7611,93 +7611,114 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.9.6" +"@rollup/rollup-android-arm-eabi@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.20.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-android-arm64@npm:4.9.6" +"@rollup/rollup-android-arm64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-android-arm64@npm:4.20.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-darwin-arm64@npm:4.9.6" +"@rollup/rollup-darwin-arm64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.20.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-darwin-x64@npm:4.9.6" +"@rollup/rollup-darwin-x64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.20.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.9.6" - conditions: os=linux & cpu=arm +"@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.20.0" + conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.9.6" +"@rollup/rollup-linux-arm64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.20.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.9.6" +"@rollup/rollup-linux-arm64-musl@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.20.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.9.6" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.20.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.9.6" +"@rollup/rollup-linux-s390x-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.20.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.20.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.9.6" +"@rollup/rollup-linux-x64-musl@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.20.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.9.6" +"@rollup/rollup-win32-arm64-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.20.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.9.6" +"@rollup/rollup-win32-ia32-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.20.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.9.6" +"@rollup/rollup-win32-x64-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.20.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -8848,94 +8869,94 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.4.1": - version: 1.4.1 - resolution: "@swc/core-darwin-arm64@npm:1.4.1" +"@swc/core-darwin-arm64@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-darwin-arm64@npm:1.7.6" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.4.1": - version: 1.4.1 - resolution: "@swc/core-darwin-x64@npm:1.4.1" +"@swc/core-darwin-x64@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-darwin-x64@npm:1.7.6" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.4.1": - version: 1.4.1 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.4.1" +"@swc/core-linux-arm-gnueabihf@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.6" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.4.1": - version: 1.4.1 - resolution: "@swc/core-linux-arm64-gnu@npm:1.4.1" +"@swc/core-linux-arm64-gnu@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-linux-arm64-gnu@npm:1.7.6" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.4.1": - version: 1.4.1 - resolution: "@swc/core-linux-arm64-musl@npm:1.4.1" +"@swc/core-linux-arm64-musl@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-linux-arm64-musl@npm:1.7.6" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.4.1": - version: 1.4.1 - resolution: "@swc/core-linux-x64-gnu@npm:1.4.1" +"@swc/core-linux-x64-gnu@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-linux-x64-gnu@npm:1.7.6" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.4.1": - version: 1.4.1 - resolution: "@swc/core-linux-x64-musl@npm:1.4.1" +"@swc/core-linux-x64-musl@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-linux-x64-musl@npm:1.7.6" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.4.1": - version: 1.4.1 - resolution: "@swc/core-win32-arm64-msvc@npm:1.4.1" +"@swc/core-win32-arm64-msvc@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-win32-arm64-msvc@npm:1.7.6" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.4.1": - version: 1.4.1 - resolution: "@swc/core-win32-ia32-msvc@npm:1.4.1" +"@swc/core-win32-ia32-msvc@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-win32-ia32-msvc@npm:1.7.6" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.4.1": - version: 1.4.1 - resolution: "@swc/core-win32-x64-msvc@npm:1.4.1" +"@swc/core-win32-x64-msvc@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-win32-x64-msvc@npm:1.7.6" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:^1.3.107, @swc/core@npm:^1.4.1": - version: 1.4.1 - resolution: "@swc/core@npm:1.4.1" - dependencies: - "@swc/core-darwin-arm64": "npm:1.4.1" - "@swc/core-darwin-x64": "npm:1.4.1" - "@swc/core-linux-arm-gnueabihf": "npm:1.4.1" - "@swc/core-linux-arm64-gnu": "npm:1.4.1" - "@swc/core-linux-arm64-musl": "npm:1.4.1" - "@swc/core-linux-x64-gnu": "npm:1.4.1" - "@swc/core-linux-x64-musl": "npm:1.4.1" - "@swc/core-win32-arm64-msvc": "npm:1.4.1" - "@swc/core-win32-ia32-msvc": "npm:1.4.1" - "@swc/core-win32-x64-msvc": "npm:1.4.1" - "@swc/counter": "npm:^0.1.2" - "@swc/types": "npm:^0.1.5" - peerDependencies: - "@swc/helpers": ^0.5.0 +"@swc/core@npm:^1.5.7, @swc/core@npm:^1.7.6": + version: 1.7.6 + resolution: "@swc/core@npm:1.7.6" + dependencies: + "@swc/core-darwin-arm64": "npm:1.7.6" + "@swc/core-darwin-x64": "npm:1.7.6" + "@swc/core-linux-arm-gnueabihf": "npm:1.7.6" + "@swc/core-linux-arm64-gnu": "npm:1.7.6" + "@swc/core-linux-arm64-musl": "npm:1.7.6" + "@swc/core-linux-x64-gnu": "npm:1.7.6" + "@swc/core-linux-x64-musl": "npm:1.7.6" + "@swc/core-win32-arm64-msvc": "npm:1.7.6" + "@swc/core-win32-ia32-msvc": "npm:1.7.6" + "@swc/core-win32-x64-msvc": "npm:1.7.6" + "@swc/counter": "npm:^0.1.3" + "@swc/types": "npm:^0.1.12" + peerDependencies: + "@swc/helpers": "*" dependenciesMeta: "@swc/core-darwin-arm64": optional: true @@ -8960,11 +8981,11 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10/328197e1d98fee3d94ee299a0501e05294859fdc7f5e3318493efb926fc7625731835bf565de025e082b67c94b15a8a315d3a6bbaa52ea2e0b6c1595c299fae4 + checksum: 10/09a089e3d9db118a6d6c4ead90364ae2ce8581a893e4c4c95db135431abf74c1d8d58558c27e557d2d7822bb3c25a114f4ed5cdd8465465d84733416a2c49d87 languageName: node linkType: hard -"@swc/counter@npm:^0.1.2, @swc/counter@npm:^0.1.3": +"@swc/counter@npm:^0.1.3": version: 0.1.3 resolution: "@swc/counter@npm:0.1.3" checksum: 10/df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 @@ -9003,10 +9024,12 @@ __metadata: languageName: node linkType: hard -"@swc/types@npm:^0.1.5": - version: 0.1.5 - resolution: "@swc/types@npm:0.1.5" - checksum: 10/5f4de8c60d2623bed607c7fa1e0cee4ffc682af28d5ffe88dc9ed9903a1c2088ccc39f684689d6bb314595c9fbb560beaec773d633be515fb856ffc81d738822 +"@swc/types@npm:^0.1.12": + version: 0.1.12 + resolution: "@swc/types@npm:0.1.12" + dependencies: + "@swc/counter": "npm:^0.1.3" + checksum: 10/92dbbc70cd068ea30fb6fbdc1ae8599d6c058a5d09b2923d6e4e24fab5ad7c86a19dd01f349a8e03e300a9321e06911a24df18303b40e307fbd4109372cef2ef languageName: node linkType: hard @@ -9413,7 +9436,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:^7.0.9": version: 7.0.12 resolution: "@types/json-schema@npm:7.0.12" checksum: 10/7a72ba9cb7d2b45d7bb032e063c9eeb1ce4102d62551761e84c91f99f8273ba5aaffd34be835869456ec7c40761b4389009d9e777c0020a7227ca0f5e3238e94 @@ -9427,10 +9450,10 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:^4.14.167, @types/lodash@npm:^4.14.202": - version: 4.14.202 - resolution: "@types/lodash@npm:4.14.202" - checksum: 10/1bb9760a5b1dda120132c4b987330d67979c95dbc22612678682cd61b00302e190f4207228f3728580059cdab5582362262e3819aea59960c1017bd2b9fb26f6 +"@types/lodash@npm:^4.14.167, @types/lodash@npm:^4.17.7": + version: 4.17.7 + resolution: "@types/lodash@npm:4.17.7" + checksum: 10/b8177f19cf962414a66989837481b13f546afc2e98e8d465bec59e6ac03a59c584eb7053ce511cde3a09c5f3096d22a5ae22cfb56b23f3b0da75b0743b6b1a44 languageName: node linkType: hard @@ -9486,12 +9509,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^20.11.19": - version: 20.11.19 - resolution: "@types/node@npm:20.11.19" +"@types/node@npm:*, @types/node@npm:^20.14.14": + version: 20.14.14 + resolution: "@types/node@npm:20.14.14" dependencies: undici-types: "npm:~5.26.4" - checksum: 10/c7f4705d6c84aa21679ad180c33c13ca9567f650e66e14bcee77c7c43d14619c7cd3b4d7b2458947143030b7b1930180efa6d12d999b45366abff9fed7a17472 + checksum: 10/035bc347e3de04888d537801e23eb4b4f99522975ca002dbfef978edd853710031b7cd43bf022670d6aba4ed5d4ac75ea1b5ff77ff8f80998bffd943b7bcef48 languageName: node linkType: hard @@ -9543,10 +9566,10 @@ __metadata: languageName: node linkType: hard -"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.11": - version: 15.7.11 - resolution: "@types/prop-types@npm:15.7.11" - checksum: 10/7519ff11d06fbf6b275029fe03fff9ec377b4cb6e864cac34d87d7146c7f5a7560fd164bdc1d2dbe00b60c43713631251af1fd3d34d46c69cd354602bc0c7c54 +"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.11, @types/prop-types@npm:^15.7.12": + version: 15.7.12 + resolution: "@types/prop-types@npm:15.7.12" + checksum: 10/ac16cc3d0a84431ffa5cfdf89579ad1e2269549f32ce0c769321fdd078f84db4fbe1b461ed5a1a496caf09e637c0e367d600c541435716a55b1d9713f5035dfe languageName: node linkType: hard @@ -9573,12 +9596,12 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.19": - version: 18.2.19 - resolution: "@types/react-dom@npm:18.2.19" +"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.3.0": + version: 18.3.0 + resolution: "@types/react-dom@npm:18.3.0" dependencies: "@types/react": "npm:*" - checksum: 10/98eb760ce78f1016d97c70f605f0b1a53873a548d3c2192b40c897f694fd9c8bb12baeada16581a9c7b26f5022c1d2613547be98284d8f1b82d1611b1e3e7df0 + checksum: 10/6ff53f5a7b7fba952a68e114d3b542ebdc1e87a794234785ebab0bcd9bde7fb4885f21ebaf93d26dc0a1b5b93287f42cad68b78ae04dddf6b20da7aceff0beaf languageName: node linkType: hard @@ -9600,13 +9623,13 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:>=16, @types/react@npm:^18.2.55, @types/react@npm:^18.2.6": - version: 18.3.1 - resolution: "@types/react@npm:18.3.1" +"@types/react@npm:*, @types/react@npm:>=16, @types/react@npm:^18.2.6, @types/react@npm:^18.3.3": + version: 18.3.3 + resolution: "@types/react@npm:18.3.3" dependencies: "@types/prop-types": "npm:*" csstype: "npm:^3.0.2" - checksum: 10/baa6b8a75c471c89ebf3477b4feab57102ced25f0c1e553dd04ef6a1f0def28d5e0172fa626a631f22e223f840b5aaa2403b2d4bb671c83c5a9d6c7ae39c7a05 + checksum: 10/68e203b7f1f91d6cf21f33fc7af9d6d228035a26c83f514981e54aa3da695d0ec6af10c277c6336de1dd76c4adbe9563f3a21f80c4462000f41e5f370b46e96c languageName: node linkType: hard @@ -9635,7 +9658,7 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.4, @types/semver@npm:^7.5.0": +"@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.4": version: 7.5.0 resolution: "@types/semver@npm:7.5.0" checksum: 10/8fbfbf79e9c14c3c20160a42145a146cba44d9763d0fac78358b394dc36e41bc2590bc4f0129c6fcbbc9b30f12ea1ba821bfe84b29dc80897f315cc7dd251393 @@ -9732,46 +9755,44 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^7.0.1": - version: 7.0.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.0.1" +"@typescript-eslint/eslint-plugin@npm:^7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" dependencies: - "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:7.0.1" - "@typescript-eslint/type-utils": "npm:7.0.1" - "@typescript-eslint/utils": "npm:7.0.1" - "@typescript-eslint/visitor-keys": "npm:7.0.1" - debug: "npm:^4.3.4" + "@eslint-community/regexpp": "npm:^4.10.0" + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/type-utils": "npm:7.18.0" + "@typescript-eslint/utils": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.4" + ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" + ts-api-utils: "npm:^1.3.0" peerDependencies: "@typescript-eslint/parser": ^7.0.0 eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/0862e8ec8677fcea794394fc9eab8dba11043c08452722790e0d296d4ee84713180676e1e3135be4203ace7bb73933c94159255cb9190c7bc13bf7f03a361915 + checksum: 10/6ee4c61f145dc05f0a567b8ac01b5399ef9c75f58bc6e9a3ffca8927b15e2be2d4c3fd32a2c1a7041cc0848fdeadac30d9cb0d3bcd3835d301847a88ffd19c4d languageName: node linkType: hard -"@typescript-eslint/parser@npm:^7.0.1": - version: 7.0.1 - resolution: "@typescript-eslint/parser@npm:7.0.1" +"@typescript-eslint/parser@npm:^7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/parser@npm:7.18.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.0.1" - "@typescript-eslint/types": "npm:7.0.1" - "@typescript-eslint/typescript-estree": "npm:7.0.1" - "@typescript-eslint/visitor-keys": "npm:7.0.1" + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/typescript-estree": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/b4ba1743ab730268a1924139f072e4a0a56959526fb6377e1b3964518b6c6851733ae446a44d29fed1cb96669e2913cca524895ce77a6205aaed8bda00e8cd5d + checksum: 10/36b00e192a96180220ba100fcce3c777fc3e61a6edbdead4e6e75a744d9f0cbe3fabb5f1c94a31cce6b28a4e4d5de148098eec01296026c3c8e16f7f0067cb1e languageName: node linkType: hard @@ -9785,30 +9806,30 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.0.1": - version: 7.0.1 - resolution: "@typescript-eslint/scope-manager@npm:7.0.1" +"@typescript-eslint/scope-manager@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/scope-manager@npm:7.18.0" dependencies: - "@typescript-eslint/types": "npm:7.0.1" - "@typescript-eslint/visitor-keys": "npm:7.0.1" - checksum: 10/dade6055bb853adb54de795cc3da5ab8550236d4186f108573fdb02e636ab7fc4300a55b506698ced4087ca43b143a5593931cb3195ab4790470b456d9ff8846 + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" + checksum: 10/9eb2ae5d69d9f723e706c16b2b97744fc016996a5473bed596035ac4d12429b3d24e7340a8235d704efa57f8f52e1b3b37925ff7c2e3384859d28b23a99b8bcc languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.0.1": - version: 7.0.1 - resolution: "@typescript-eslint/type-utils@npm:7.0.1" +"@typescript-eslint/type-utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/type-utils@npm:7.18.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.0.1" - "@typescript-eslint/utils": "npm:7.0.1" + "@typescript-eslint/typescript-estree": "npm:7.18.0" + "@typescript-eslint/utils": "npm:7.18.0" debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.0.1" + ts-api-utils: "npm:^1.3.0" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/cf20a3c0e56121ac62467e48121e135798db6d2999bd4f96ed44edc39f2597812d12b1bd6a378adec54d6c5e7db75fa5f98a27ce399792a2c8a5bbd3649952f7 + checksum: 10/bcc7958a4ecdddad8c92e17265175773e7dddf416a654c1a391e69cb16e43960b39d37b6ffa349941bf3635e050f0ca7cd8f56ec9dd774168f2bbe7afedc9676 languageName: node linkType: hard @@ -9819,10 +9840,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.0.1": - version: 7.0.1 - resolution: "@typescript-eslint/types@npm:7.0.1" - checksum: 10/c08b2d34bab2a877a45a1e4c2923f50d03022b682b7aaba929ae2a9a5ad32db0e46265544a6616ccb98654b434250621be0e282fc5b21b8ccaf6b78741d68f67 +"@typescript-eslint/types@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/types@npm:7.18.0" + checksum: 10/0e30c73a3cc3c67dd06360a5a12fd12cee831e4092750eec3d6c031bdc4feafcb0ab1d882910a73e66b451a4f6e1dd015e9e2c4d45bf6bf716a474e5d123ddf0 languageName: node linkType: hard @@ -9844,39 +9865,36 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.0.1": - version: 7.0.1 - resolution: "@typescript-eslint/typescript-estree@npm:7.0.1" +"@typescript-eslint/typescript-estree@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" dependencies: - "@typescript-eslint/types": "npm:7.0.1" - "@typescript-eslint/visitor-keys": "npm:7.0.1" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" - minimatch: "npm:9.0.3" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10/b0b0adc84502d1ffcf3a0024179e0f2780be5f8b0a18328db46d430efc4e38a7965656b4392dd47d6176bbb1ee200aec6dd8581c39b606e260750574358cde9f + checksum: 10/b01e66235a91aa4439d02081d4a5f8b4a7cf9cb24f26b334812f657e3c603493e5f41e5c1e89cf4efae7d64509fa1f73affc16afc5e15cb7f83f724577c82036 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.0.1": - version: 7.0.1 - resolution: "@typescript-eslint/utils@npm:7.0.1" +"@typescript-eslint/utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/utils@npm:7.18.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@types/json-schema": "npm:^7.0.12" - "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:7.0.1" - "@typescript-eslint/types": "npm:7.0.1" - "@typescript-eslint/typescript-estree": "npm:7.0.1" - semver: "npm:^7.5.4" + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/typescript-estree": "npm:7.18.0" peerDependencies: eslint: ^8.56.0 - checksum: 10/b7e0cb2994f73b3f416684dc175d4e1da5f8306d6c81abbad2f219fa3e4f29154063a3c9568e4a1f879a38b79c62250e596e4ed7265f7bd1ed9b3db806cb92b7 + checksum: 10/f43fedb4f4d2e3836bdf137889449063a55c0ece74fdb283929cd376197b992313be8ef4df920c1c801b5c3076b92964c84c6c3b9b749d263b648d0011f5926e languageName: node linkType: hard @@ -9908,13 +9926,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.0.1": - version: 7.0.1 - resolution: "@typescript-eslint/visitor-keys@npm:7.0.1" +"@typescript-eslint/visitor-keys@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" dependencies: - "@typescript-eslint/types": "npm:7.0.1" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10/915c5b19302a4c76e843cd2d04a9a2b11907e658d7018c8b55c338b090d9115d3719809aa05b8af130cc1b216c77626d210c20f705b732e83d04ceae0c112f6b + "@typescript-eslint/types": "npm:7.18.0" + eslint-visitor-keys: "npm:^3.4.3" + checksum: 10/b7cfe6fdeae86c507357ac6b2357813c64fb2fbf1aaf844393ba82f73a16e2599b41981b34200d9fc7765d70bc3a8181d76b503051e53f04bcb7c9afef637eab languageName: node linkType: hard @@ -9926,13 +9944,13 @@ __metadata: linkType: hard "@vitejs/plugin-react-swc@npm:^3.6.0": - version: 3.6.0 - resolution: "@vitejs/plugin-react-swc@npm:3.6.0" + version: 3.7.0 + resolution: "@vitejs/plugin-react-swc@npm:3.7.0" dependencies: - "@swc/core": "npm:^1.3.107" + "@swc/core": "npm:^1.5.7" peerDependencies: vite: ^4 || ^5 - checksum: 10/8bff5065e9689d0b0405932b5f2483bd0c388812dc13219a1511023f7eaca7a53c43f75f3eae785e27f7ce5a60e99d5d32bac4845a63ab095d5562180f7efa7c + checksum: 10/16498c65aca482f638f490a59c4ef49875e59d4f1631dad7515e2fce2f87a69a4ec0cd9774fc3666b8a6e211f65b78442411a743aea33762caa0044e3c04ad39 languageName: node linkType: hard @@ -12831,33 +12849,33 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.19.3": - version: 0.19.12 - resolution: "esbuild@npm:0.19.12" - dependencies: - "@esbuild/aix-ppc64": "npm:0.19.12" - "@esbuild/android-arm": "npm:0.19.12" - "@esbuild/android-arm64": "npm:0.19.12" - "@esbuild/android-x64": "npm:0.19.12" - "@esbuild/darwin-arm64": "npm:0.19.12" - "@esbuild/darwin-x64": "npm:0.19.12" - "@esbuild/freebsd-arm64": "npm:0.19.12" - "@esbuild/freebsd-x64": "npm:0.19.12" - "@esbuild/linux-arm": "npm:0.19.12" - "@esbuild/linux-arm64": "npm:0.19.12" - "@esbuild/linux-ia32": "npm:0.19.12" - "@esbuild/linux-loong64": "npm:0.19.12" - "@esbuild/linux-mips64el": "npm:0.19.12" - "@esbuild/linux-ppc64": "npm:0.19.12" - "@esbuild/linux-riscv64": "npm:0.19.12" - "@esbuild/linux-s390x": "npm:0.19.12" - "@esbuild/linux-x64": "npm:0.19.12" - "@esbuild/netbsd-x64": "npm:0.19.12" - "@esbuild/openbsd-x64": "npm:0.19.12" - "@esbuild/sunos-x64": "npm:0.19.12" - "@esbuild/win32-arm64": "npm:0.19.12" - "@esbuild/win32-ia32": "npm:0.19.12" - "@esbuild/win32-x64": "npm:0.19.12" +"esbuild@npm:^0.21.3": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" + dependencies: + "@esbuild/aix-ppc64": "npm:0.21.5" + "@esbuild/android-arm": "npm:0.21.5" + "@esbuild/android-arm64": "npm:0.21.5" + "@esbuild/android-x64": "npm:0.21.5" + "@esbuild/darwin-arm64": "npm:0.21.5" + "@esbuild/darwin-x64": "npm:0.21.5" + "@esbuild/freebsd-arm64": "npm:0.21.5" + "@esbuild/freebsd-x64": "npm:0.21.5" + "@esbuild/linux-arm": "npm:0.21.5" + "@esbuild/linux-arm64": "npm:0.21.5" + "@esbuild/linux-ia32": "npm:0.21.5" + "@esbuild/linux-loong64": "npm:0.21.5" + "@esbuild/linux-mips64el": "npm:0.21.5" + "@esbuild/linux-ppc64": "npm:0.21.5" + "@esbuild/linux-riscv64": "npm:0.21.5" + "@esbuild/linux-s390x": "npm:0.21.5" + "@esbuild/linux-x64": "npm:0.21.5" + "@esbuild/netbsd-x64": "npm:0.21.5" + "@esbuild/openbsd-x64": "npm:0.21.5" + "@esbuild/sunos-x64": "npm:0.21.5" + "@esbuild/win32-arm64": "npm:0.21.5" + "@esbuild/win32-ia32": "npm:0.21.5" + "@esbuild/win32-x64": "npm:0.21.5" dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -12907,7 +12925,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 10/861fa8eb2428e8d6521a4b7c7930139e3f45e8d51a86985cc29408172a41f6b18df7b3401e7e5e2d528cdf83742da601ddfdc77043ddc4f1c715a8ddb2d8a255 + checksum: 10/d2ff2ca84d30cce8e871517374d6c2290835380dc7cd413b2d49189ed170d45e407be14de2cb4794cf76f75cf89955c4714726ebd3de7444b3046f5cab23ab6b languageName: node linkType: hard @@ -14738,10 +14756,10 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.0": - version: 5.3.0 - resolution: "ignore@npm:5.3.0" - checksum: 10/51594355cea4c6ad6b28b3b85eb81afa7b988a1871feefd7062baf136c95aa06760ee934fa9590e43d967bd377ce84a4cf6135fbeb6063e063f1182a0e9a3bcd +"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.0, ignore@npm:^5.3.1": + version: 5.3.1 + resolution: "ignore@npm:5.3.1" + checksum: 10/0a884c2fbc8c316f0b9f92beaf84464253b73230a4d4d286697be45fca081199191ca33e1c2e82d9e5f851f5e9a48a78e25a35c951e7eb41e59f150db3530065 languageName: node linkType: hard @@ -17229,15 +17247,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.3, minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10/c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5 - languageName: node - linkType: hard - "minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -17256,6 +17265,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3, minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348 + languageName: node + linkType: hard + "minimist-options@npm:4.1.0": version: 4.1.0 resolution: "minimist-options@npm:4.1.0" @@ -18531,10 +18549,10 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: 10/a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": + version: 1.0.1 + resolution: "picocolors@npm:1.0.1" + checksum: 10/fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 languageName: node linkType: hard @@ -18730,14 +18748,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.0.0, postcss@npm:^8.2.14, postcss@npm:^8.4.21, postcss@npm:^8.4.35": - version: 8.4.35 - resolution: "postcss@npm:8.4.35" +"postcss@npm:^8.0.0, postcss@npm:^8.2.14, postcss@npm:^8.4.21, postcss@npm:^8.4.35, postcss@npm:^8.4.40": + version: 8.4.41 + resolution: "postcss@npm:8.4.41" dependencies: nanoid: "npm:^3.3.7" - picocolors: "npm:^1.0.0" - source-map-js: "npm:^1.0.2" - checksum: 10/93a7ce50cd6188f5f486a9ca98950ad27c19dfed996c45c414fa242944497e4d084a8760d3537f078630226f2bd3c6ab84b813b488740f4432e7c7039cd73a20 + picocolors: "npm:^1.0.1" + source-map-js: "npm:^1.2.0" + checksum: 10/6e6176c2407eff60493ca60a706c6b7def20a722c3adda94ea1ece38345eb99964191336fd62b62652279cec6938e79e0b1e1d477142c8d3516e7a725a74ee37 languageName: node linkType: hard @@ -19547,6 +19565,16 @@ __metadata: languageName: node linkType: hard +"react-virtuoso@npm:^4.10.1": + version: 4.10.1 + resolution: "react-virtuoso@npm:4.10.1" + peerDependencies: + react: ">=16 || >=17 || >= 18" + react-dom: ">=16 || >=17 || >= 18" + checksum: 10/63d77e85c84ce1ecb014ba65e0f353bf1fc108df9f2d071431a088a4964b616f2ceb8dac9458db8bcd7015e93817254a587ccaa5f3a0ebf59606cce526c3adf8 + languageName: node + linkType: hard + "react@npm:^18.2.0": version: 18.2.0 resolution: "react@npm:18.2.0" @@ -20157,23 +20185,26 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.2.0": - version: 4.9.6 - resolution: "rollup@npm:4.9.6" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.9.6" - "@rollup/rollup-android-arm64": "npm:4.9.6" - "@rollup/rollup-darwin-arm64": "npm:4.9.6" - "@rollup/rollup-darwin-x64": "npm:4.9.6" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.9.6" - "@rollup/rollup-linux-arm64-gnu": "npm:4.9.6" - "@rollup/rollup-linux-arm64-musl": "npm:4.9.6" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.9.6" - "@rollup/rollup-linux-x64-gnu": "npm:4.9.6" - "@rollup/rollup-linux-x64-musl": "npm:4.9.6" - "@rollup/rollup-win32-arm64-msvc": "npm:4.9.6" - "@rollup/rollup-win32-ia32-msvc": "npm:4.9.6" - "@rollup/rollup-win32-x64-msvc": "npm:4.9.6" +"rollup@npm:^4.13.0": + version: 4.20.0 + resolution: "rollup@npm:4.20.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.20.0" + "@rollup/rollup-android-arm64": "npm:4.20.0" + "@rollup/rollup-darwin-arm64": "npm:4.20.0" + "@rollup/rollup-darwin-x64": "npm:4.20.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.20.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.20.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.20.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.20.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.20.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-x64-musl": "npm:4.20.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.20.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.20.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.20.0" "@types/estree": "npm:1.0.5" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -20187,12 +20218,18 @@ __metadata: optional: true "@rollup/rollup-linux-arm-gnueabihf": optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true "@rollup/rollup-linux-arm64-gnu": optional: true "@rollup/rollup-linux-arm64-musl": optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true "@rollup/rollup-linux-riscv64-gnu": optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true "@rollup/rollup-linux-x64-gnu": optional: true "@rollup/rollup-linux-x64-musl": @@ -20207,7 +20244,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10/7c343d9d8ece2ebfbde20b62545f7ee16cbba719da94584fef72ad2f0bdea5f2c49cc429839350e7a4181be04e01bfcd1bd45e1654b8b288a612c409eaebdae4 + checksum: 10/448bd835715aa0f78c6888314e31fb92f1b83325ef0ff861a5a322c2bc87d200b2b6c4acb9223fb669c27ae0c4b071003b6877eec1d3411174615a4057db8946 languageName: node linkType: hard @@ -20406,7 +20443,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.6.0, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4": +"semver@npm:7.6.0": version: 7.6.0 resolution: "semver@npm:7.6.0" dependencies: @@ -20426,6 +20463,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": + version: 7.6.3 + resolution: "semver@npm:7.6.3" + bin: + semver: bin/semver.js + checksum: 10/36b1fbe1a2b6f873559cd57b238f1094a053dbfd997ceeb8757d79d1d2089c56d1321b9f1069ce263dc64cfa922fa1d2ad566b39426fe1ac6c723c1487589e10 + languageName: node + linkType: hard + "send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" @@ -20704,10 +20750,10 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: 10/38e2d2dd18d2e331522001fc51b54127ef4a5d473f53b1349c5cca2123562400e0986648b52e9407e348eaaed53bce49248b6e2641e6d793ca57cb2c360d6d51 +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0": + version: 1.2.0 + resolution: "source-map-js@npm:1.2.0" + checksum: 10/74f331cfd2d121c50790c8dd6d3c9de6be21926de80583b23b37029b0f37aefc3e019fa91f9a10a5e120c08135297e1ecf312d561459c45908cb1e0e365f49e5 languageName: node linkType: hard @@ -21548,12 +21594,12 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.0.1": - version: 1.0.1 - resolution: "ts-api-utils@npm:1.0.1" +"ts-api-utils@npm:^1.3.0": + version: 1.3.0 + resolution: "ts-api-utils@npm:1.3.0" peerDependencies: typescript: ">=4.2.0" - checksum: 10/8b16fa5645442854fbaef83c57beec8daf0326b24576efe744d85bb3851241b8deac2df424ebe73c0bb7d5bfaac6bccbb554222b788f9fdf90998d164f38d640 + checksum: 10/3ee44faa24410cd649b5c864e068d438aa437ef64e9e4a66a41646a6d3024d3097a695eeb3fb26ee364705d3cb9653a65756d009e6a53badb6066a5f447bf7ed languageName: node linkType: hard @@ -22273,19 +22319,20 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.1.3": - version: 5.1.3 - resolution: "vite@npm:5.1.3" +"vite@npm:^5.4.0": + version: 5.4.0 + resolution: "vite@npm:5.4.0" dependencies: - esbuild: "npm:^0.19.3" + esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" - postcss: "npm:^8.4.35" - rollup: "npm:^4.2.0" + postcss: "npm:^8.4.40" + rollup: "npm:^4.13.0" peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 less: "*" lightningcss: ^1.21.0 sass: "*" + sass-embedded: "*" stylus: "*" sugarss: "*" terser: ^5.4.0 @@ -22301,6 +22348,8 @@ __metadata: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -22309,7 +22358,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10/6ba2223157e2cc2fa62dff9004ccba20fc409c6baf7354c64ed0f8e4bcd853092d08d06ec4dec37143e794a96e061879a870d85bad4f1eb9ee5c6d0a13cef30f + checksum: 10/5a98b1d30cc8c0263551f417a360102d40b78b9170e9e58a99c1a394ab700c7e604d3c52dafda323c11356a76eba865800d3d8588b33a8febdeaddd5a8981410 languageName: node linkType: hard @@ -22877,7 +22926,7 @@ __metadata: "@storybook/react": "npm:^7.6.16" "@storybook/react-vite": "npm:^7.6.16" "@storybook/testing-library": "npm:^0.2.2" - "@swc/core": "npm:^1.4.1" + "@swc/core": "npm:^1.7.6" "@swc/jest": "npm:^0.2.36" "@testing-library/dom": "npm:^9.3.4" "@testing-library/jest-dom": "npm:^6.4.2" @@ -22886,16 +22935,16 @@ __metadata: "@testing-library/user-event": "npm:^14.5.2" "@types/babel__core": "npm:^7.20.5" "@types/jest": "npm:^29.5.12" - "@types/lodash": "npm:^4.14.202" - "@types/node": "npm:^20.11.19" - "@types/prop-types": "npm:^15.7.11" - "@types/react": "npm:^18.2.55" - "@types/react-dom": "npm:^18.2.19" + "@types/lodash": "npm:^4.17.7" + "@types/node": "npm:^20.14.14" + "@types/prop-types": "npm:^15.7.12" + "@types/react": "npm:^18.3.3" + "@types/react-dom": "npm:^18.3.0" "@types/react-helmet": "npm:^6.1.11" "@types/testing-library__jest-dom": "npm:^6.0.0" "@types/uuid": "npm:^9.0.8" - "@typescript-eslint/eslint-plugin": "npm:^7.0.1" - "@typescript-eslint/parser": "npm:^7.0.1" + "@typescript-eslint/eslint-plugin": "npm:^7.18.0" + "@typescript-eslint/parser": "npm:^7.18.0" "@vitejs/plugin-react-swc": "npm:^3.6.0" apollo-client: "npm:^2.6.10" aws-amplify: "npm:^5.3.15" @@ -22940,6 +22989,7 @@ __metadata: react-hook-form: "npm:^7.50.1" react-popper: "npm:^2.3.0" react-router-dom: "npm:^6.22.0" + react-virtuoso: "npm:^4.10.1" rimraf: "npm:^5.0.5" rollup-plugin-visualizer: "npm:^5.12.0" sass: "npm:^1.70.0" @@ -22950,7 +23000,7 @@ __metadata: typescript-plugin-css-modules: "npm:^5.1.0" uswds: "npm:^2.14.0" uuid: "npm:^9.0.1" - vite: "npm:^5.1.3" + vite: "npm:^5.4.0" vite-plugin-environment: "npm:^1.1.3" web-vitals: "npm:^3.5.2" yup: "npm:^1.3.3"