diff --git a/interface/.eslintrc.json b/interface/.eslintrc.json index 135736d0f..86703c739 100644 --- a/interface/.eslintrc.json +++ b/interface/.eslintrc.json @@ -51,6 +51,7 @@ "@typescript-eslint/restrict-plus-operands": "off", "@typescript-eslint/no-unused-expressions": "off", "@typescript-eslint/no-implied-eval": "off", + "@typescript-eslint/no-misused-promises": "off", "@typescript-eslint/ban-types": [ "error", { diff --git a/interface/package.json b/interface/package.json index de07d3a09..f182db090 100644 --- a/interface/package.json +++ b/interface/package.json @@ -23,12 +23,12 @@ "@emotion/styled": "^11.10.6", "@msgpack/msgpack": "^3.0.0-beta2", "@mui/icons-material": "^5.11.16", - "@mui/material": "^5.11.16", + "@mui/material": "^5.12.0", "@remix-run/router": "^1.5.0", "@table-library/react-table-library": "4.1.0", "@types/lodash-es": "^4.17.7", "@types/node": "^18.15.11", - "@types/react": "^18.0.33", + "@types/react": "^18.0.34", "@types/react-dom": "^18.0.11", "@types/react-router-dom": "^5.3.3", "@yarnpkg/pnpify": "^4.0.0-rc.42", @@ -46,15 +46,15 @@ "react-toastify": "^9.1.2", "sockette": "^2.0.6", "typesafe-i18n": "^5.24.3", - "typescript": "^5.0.3" + "typescript": "^5.0.4" }, "devDependencies": { "@types/mime-types": "^2", "@types/styled-components": "^5", - "@typescript-eslint/eslint-plugin": "^5.57.1", - "@typescript-eslint/parser": "^5.57.1", - "@vitejs/plugin-react-swc": "^3.2.0", - "eslint": "^8.37.0", + "@typescript-eslint/eslint-plugin": "^5.58.0", + "@typescript-eslint/parser": "^5.58.0", + "@vitejs/plugin-react-swc": "^3.3.0", + "eslint": "^8.38.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-prettier": "^8.8.0", @@ -68,11 +68,11 @@ "npm-run-all": "^4.1.5", "prettier": "^2.8.7", "rollup-plugin-visualizer": "^5.9.0", - "terser": "^5.16.8", + "terser": "^5.16.9", "vite": "^4.2.1", "vite-plugin-minify": "^1.5.2", "vite-plugin-svgr": "^2.4.0", - "vite-tsconfig-paths": "^4.0.8" + "vite-tsconfig-paths": "^4.1.0" }, "packageManager": "yarn@3.4.1" } diff --git a/interface/src/framework/security/ManageUsersForm.tsx b/interface/src/framework/security/ManageUsersForm.tsx index 43d7b45a5..57b6ea895 100644 --- a/interface/src/framework/security/ManageUsersForm.tsx +++ b/interface/src/framework/security/ManageUsersForm.tsx @@ -60,7 +60,6 @@ const ManageUsersForm: FC = () => { border-top: 1px solid #565656; border-bottom: 1px solid #565656; } - &:nth-of-type(odd) .td { background-color: #303030; } diff --git a/interface/src/i18n/en/index.ts b/interface/src/i18n/en/index.ts index 3f0b829f9..71139effb 100644 --- a/interface/src/i18n/en/index.ts +++ b/interface/src/i18n/en/index.ts @@ -319,8 +319,8 @@ const en: Translation = { SCHEDULE_TIMER_1: 'on startup', SCHEDULE_TIMER_2: 'every minute', SCHEDULE_TIMER_3: 'every hour', - CUSTOM_ENTITIES: 'Custom entities', - ENTITIES_HELP_1: 'Fetch custom entities from the EMS-bus' + CUSTOM_ENTITIES: 'Custom Entities', + ENTITIES_HELP_1: 'Fetch custom entities from the EMS bus' }; export default en; diff --git a/interface/src/i18n/fr/index.ts b/interface/src/i18n/fr/index.ts index aa91b2ca3..1d9734569 100644 --- a/interface/src/i18n/fr/index.ts +++ b/interface/src/i18n/fr/index.ts @@ -319,8 +319,8 @@ const fr: Translation = { SCHEDULE_TIMER_1: 'on startup', // TODO translate SCHEDULE_TIMER_2: 'every minute', // TODO translate SCHEDULE_TIMER_3: 'every hour', // TODO translate - CUSTOM_ENTITIES: 'Custom entities', - ENTITIES_HELP_1: 'Fetch custom entities from the EMS-bus' + CUSTOM_ENTITIES: 'Custom Entities', // TODO translate + ENTITIES_HELP_1: 'Fetch custom entities from the EMS bus' // TODO translate }; export default fr; diff --git a/interface/src/i18n/nl/index.ts b/interface/src/i18n/nl/index.ts index ff0257861..c51914b62 100644 --- a/interface/src/i18n/nl/index.ts +++ b/interface/src/i18n/nl/index.ts @@ -319,8 +319,8 @@ const nl: Translation = { SCHEDULE_TIMER_1: 'on startup', // TODO translate SCHEDULE_TIMER_2: 'every minute', // TODO translate SCHEDULE_TIMER_3: 'every hour', // TODO translate - CUSTOM_ENTITIES: 'Custom entities', - ENTITIES_HELP_1: 'Fetch custom entities from the EMS-bus' + CUSTOM_ENTITIES: 'Custom Entities', // TODO translate + ENTITIES_HELP_1: 'Fetch custom entities from the EMS bus' // TODO translate }; export default nl; diff --git a/interface/src/i18n/no/index.ts b/interface/src/i18n/no/index.ts index ac7dfe79b..e8983b8af 100644 --- a/interface/src/i18n/no/index.ts +++ b/interface/src/i18n/no/index.ts @@ -319,8 +319,8 @@ const no: Translation = { SCHEDULE_TIMER_1: 'ved oppstart', SCHEDULE_TIMER_2: 'hvert minutt', SCHEDULE_TIMER_3: 'hver time', - CUSTOM_ENTITIES: 'Custom entities', - ENTITIES_HELP_1: 'Fetch custom entities from the EMS-bus' + CUSTOM_ENTITIES: 'Custom Entities', // TODO translate + ENTITIES_HELP_1: 'Fetch custom entities from the EMS bus' // TODO translate }; export default no; diff --git a/interface/src/i18n/pl/index.ts b/interface/src/i18n/pl/index.ts index 5f1fff143..b91ecd04b 100644 --- a/interface/src/i18n/pl/index.ts +++ b/interface/src/i18n/pl/index.ts @@ -319,8 +319,8 @@ const pl: BaseTranslation = { SCHEDULE_TIMER_1: 'przy starcie', SCHEDULE_TIMER_2: 'co minutÄ™', SCHEDULE_TIMER_3: 'co godzinÄ™', - CUSTOM_ENTITIES: 'Custom entities', - ENTITIES_HELP_1: 'Fetch custom entities from the EMS-bus' + CUSTOM_ENTITIES: 'Custom Entities', // TODO translate + ENTITIES_HELP_1: 'Fetch custom entities from the EMS bus' // TODO translate }; export default pl; diff --git a/interface/src/i18n/sv/index.ts b/interface/src/i18n/sv/index.ts index e2f21039b..54a94f257 100644 --- a/interface/src/i18n/sv/index.ts +++ b/interface/src/i18n/sv/index.ts @@ -319,8 +319,8 @@ const sv: Translation = { SCHEDULE_TIMER_1: 'on startup', // TODO translate SCHEDULE_TIMER_2: 'every minute', // TODO translate SCHEDULE_TIMER_3: 'every hour', // TODO translate - CUSTOM_ENTITIES: 'Custom entities', - ENTITIES_HELP_1: 'Fetch custom entities from the EMS-bus' + CUSTOM_ENTITIES: 'Custom Entities', // TODO translate + ENTITIES_HELP_1: 'Fetch custom entities from the EMS bus' // TODO translate }; export default sv; diff --git a/interface/src/i18n/tr/index.ts b/interface/src/i18n/tr/index.ts index ddbb41cb6..11858ba32 100644 --- a/interface/src/i18n/tr/index.ts +++ b/interface/src/i18n/tr/index.ts @@ -319,8 +319,8 @@ const tr: Translation = { SCHEDULE_TIMER_1: 'on startup', // TODO translate SCHEDULE_TIMER_2: 'every minute', // TODO translate SCHEDULE_TIMER_3: 'every hour', // TODO translate - CUSTOM_ENTITIES: 'Custom entities', - ENTITIES_HELP_1: 'Fetch custom entities from the EMS-bus' + CUSTOM_ENTITIES: 'Custom Entities', // TODO translate + ENTITIES_HELP_1: 'Fetch custom entities from the EMS bus' // TODO translate }; export default tr; diff --git a/interface/src/project/SettingsEntities.tsx b/interface/src/project/SettingsEntities.tsx index 588888119..756472743 100644 --- a/interface/src/project/SettingsEntities.tsx +++ b/interface/src/project/SettingsEntities.tsx @@ -10,7 +10,6 @@ import { DialogActions, DialogContent, DialogTitle, - TextField, MenuItem, InputAdornment } from '@mui/material'; @@ -33,36 +32,62 @@ import { extractErrorMessage, updateValue } from 'utils'; import { validate } from 'validators'; import { entityItemValidation } from './validators'; +import { ValidateFieldsError } from 'async-validator'; import { useI18nContext } from 'i18n/i18n-react'; -import { ValidateFieldsError } from 'async-validator'; - import * as EMSESP from './api'; +function makeid() { + return Math.floor(Math.random() * (Math.floor(200) - 100) + 100); +} + const SettingsEntities: FC = () => { - const { LL, locale } = useI18nContext(); + const { LL } = useI18nContext(); const [numChanges, setNumChanges] = useState(0); const blocker = useBlocker(numChanges !== 0); const emptyEntity = { + id: 0, + name: '', device_id: 8, - type_id: 2, + type_id: 0, offset: 0, factor: 1, uom: 0, val_type: 2, - name: 'name', - deleted: false + deleted: false, + o_name: '' }; - const [entity, setEntity] = useState([emptyEntity]); + + const [entities, setEntities] = useState([emptyEntity]); const [entityItem, setEntityItem] = useState(); const [errorMessage, setErrorMessage] = useState(); const [creating, setCreating] = useState(false); - const [fieldErrors, setFieldErrors] = useState(); + function hasEntityChanged(ei: EntityItem) { + return ( + ei.id !== ei.o_id || + (ei?.name || '') !== (ei?.o_name || '') || + ei.device_id !== ei.o_device_id || + ei.type_id !== ei.o_type_id || + ei.offset !== ei.o_offset || + ei.uom !== ei.o_uom || + ei.factor !== ei.o_factor || + ei.val_type !== ei.o_val_type || + ei.deleted !== ei.o_deleted + ); + } + + const getNumChanges = () => { + if (!entities) { + return 0; + } + return entities.filter((ei) => hasEntityChanged(ei)).length; + }; + useEffect(() => { setNumChanges(getNumChanges()); }); @@ -78,6 +103,9 @@ const SettingsEntities: FC = () => { } `, BaseCell: ` + &:nth-of-type(1) { + padding: 8px; + } &:nth-of-type(2) { text-align: center; } @@ -88,7 +116,7 @@ const SettingsEntities: FC = () => { text-align: center; } &:nth-of-type(5) { - text-align: right; + text-align: center; } `, HeaderRow: ` @@ -118,23 +146,11 @@ const SettingsEntities: FC = () => { ` }); - const fetchEntities = useCallback(async () => { - try { - const response = await EMSESP.readEntities(); - setOriginalEntity(response.data.entity); - } catch (error) { - setErrorMessage(extractErrorMessage(error, LL.PROBLEM_LOADING())); - } - }, [LL]); - - useEffect(() => { - fetchEntities(); - }, [fetchEntities]); - const setOriginalEntity = (data: EntityItem[]) => { - setEntity( + setEntities( data.map((ei) => ({ ...ei, + o_id: ei.id, o_device_id: ei.device_id, o_type_id: ei.type_id, o_offset: ei.offset, @@ -147,41 +163,35 @@ const SettingsEntities: FC = () => { ); }; - function hasEntityChanged(ei: EntityItem) { - return ( - ei.device_id !== ei.o_device_id || - ei.type_id !== ei.o_type_id || - ei.name !== ei.o_name || - ei.offset !== ei.o_offset || - ei.uom !== ei.o_uom || - ei.factor !== ei.o_factor || - ei.val_type !== ei.o_val_type || - ei.deleted !== ei.o_deleted - ); - } - - const getNumChanges = () => { - if (!entity) { - return 0; + const fetchEntities = useCallback(async () => { + try { + const response = await EMSESP.readEntities(); + setOriginalEntity(response.data.entities); + } catch (error) { + setErrorMessage(extractErrorMessage(error, LL.PROBLEM_LOADING())); } - return entity.filter((ei) => hasEntityChanged(ei)).length; - }; + }, [LL]); - const saveEntity = async () => { - if (entity) { + useEffect(() => { + void fetchEntities(); + }, [fetchEntities]); + + const saveEntities = async () => { + if (entities) { try { const response = await EMSESP.writeEntities({ - entity: entity + entities: entities .filter((ei) => !ei.deleted) .map((condensed_ei) => { return { + id: condensed_ei.id, + name: condensed_ei.name, device_id: condensed_ei.device_id, type_id: condensed_ei.type_id, offset: condensed_ei.offset, factor: condensed_ei.factor, - val_type: condensed_ei.val_type, uom: condensed_ei.uom, - name: condensed_ei.name + val_type: condensed_ei.val_type }; }) }); @@ -193,7 +203,7 @@ const SettingsEntities: FC = () => { } catch (error) { toast.error(extractErrorMessage(error, LL.PROBLEM_UPDATING())); } - setOriginalEntity(entity); + setOriginalEntity(entities); } }; @@ -205,20 +215,22 @@ const SettingsEntities: FC = () => { const addEntityItem = () => { setCreating(true); setEntityItem({ - device_id: 8, - type_id: 2, + id: makeid(), + device_id: 11, + type_id: 0, offset: 0, factor: 1, val_type: 2, uom: 0, - name: 'name', + name: '', deleted: false }); }; const updateEntityItem = () => { + console.log('here'); if (entityItem) { - setEntity([...entity.filter((ei) => creating || ei.o_name !== entityItem.o_name), entityItem]); + setEntities([...entities.filter((ei) => creating || ei.o_id !== entityItem.o_id), entityItem]); } setEntityItem(undefined); }; @@ -233,24 +245,20 @@ const SettingsEntities: FC = () => { return new Intl.NumberFormat().format(value) + ' ' + DeviceValueUOM_s[uom]; } - function showHex(value: string, digit: number) { + function showHex(value: number, digit: number) { if (digit === 4) { - return '0x' + ('000' + value).slice(-4); + return '0x' + ('000' + value.toString(16).toUpperCase()).slice(-4); } - return '0x' + ('0' + value).slice(-2); + return '0x' + ('0' + value.toString(16).toUpperCase()).slice(-2); } const renderEntity = () => { - if (!entity) { + if (!entities) { return ; } return ( - !ei.deleted).sort((a, b) => a.name.localeCompare(b.time)) }} - theme={entity_theme} - layout={{ custom: true }} - > +
!ei.deleted) }} theme={entity_theme} layout={{ custom: true }}> {(tableList: any) => ( <>
@@ -259,7 +267,7 @@ const SettingsEntities: FC = () => { Device ID Type ID Offset - {LL.VALUE()} + {LL.VALUE(0)}
@@ -287,11 +295,16 @@ const SettingsEntities: FC = () => { const validateEntityItem = async () => { if (entityItem) { + console.log(1); try { setFieldErrors(undefined); - await validate(entityItemValidation(entity, entityItem), entityItem); + console.log(2); + await validate(entityItemValidation(entities, entityItem), entityItem); + console.log(3); updateEntityItem(); } catch (errors: any) { + console.log(4); + console.log(errors); setFieldErrors(errors); } } @@ -307,7 +320,7 @@ const SettingsEntities: FC = () => { return ( closeDialog()}> - {creating ? LL.ADD(1) + ' ' + LL.NEW() : LL.EDIT()} {LL.CUSTOM_ENTITIES()} + {creating ? LL.ADD(1) + ' ' + LL.NEW() : LL.EDIT()} {LL.ENTITY()} @@ -323,11 +336,12 @@ const SettingsEntities: FC = () => { value={entityItem.name} margin="normal" fullWidth - onChange={updateValue(setEntityItem)} + // onChange={updateValue(setEntityItem)} /> { { { startIcon={} variant="contained" color="info" - onClick={() => saveEntity()} + onClick={() => saveEntities()} > {LL.APPLY_CHANGES(numChanges)} diff --git a/interface/src/project/SettingsScheduler.tsx b/interface/src/project/SettingsScheduler.tsx index 344a67a63..f607c9dfb 100644 --- a/interface/src/project/SettingsScheduler.tsx +++ b/interface/src/project/SettingsScheduler.tsx @@ -72,12 +72,12 @@ const SettingsScheduler: FC = () => { name: '', o_name: '' }; + const [schedule, setSchedule] = useState([emptySchedule]); const [scheduleItem, setScheduleItem] = useState(); const [dow, setDow] = useState([]); const [errorMessage, setErrorMessage] = useState(); const [creating, setCreating] = useState(false); - const [fieldErrors, setFieldErrors] = useState(); // eslint-disable-next-line diff --git a/interface/src/project/api.ts b/interface/src/project/api.ts index ab394168a..155908975 100644 --- a/interface/src/project/api.ts +++ b/interface/src/project/api.ts @@ -97,18 +97,6 @@ export function getCustomizations(): AxiosPromise { return AXIOS.get('/getCustomizations'); } -export function getEntities(): AxiosPromise { - return AXIOS.get('/getEntities'); -} - -export function readEntities(): AxiosPromise { - return AXIOS.get('/entity'); -} - -export function writeEntities(entities: Entities): AxiosPromise { - return AXIOS.post('/entity', entities); -} - export function getSchedule(): AxiosPromise { return AXIOS.get('/getSchedule'); } @@ -120,3 +108,15 @@ export function readSchedule(): AxiosPromise { export function writeSchedule(schedule: Schedule): AxiosPromise { return AXIOS.post('/schedule', schedule); } + +export function getEntities(): AxiosPromise { + return AXIOS.get('/getEntities'); +} + +export function readEntities(): AxiosPromise { + return AXIOS.get('/entities'); +} + +export function writeEntities(entities: Entities): AxiosPromise { + return AXIOS.post('/entities', entities); +} diff --git a/interface/src/project/types.ts b/interface/src/project/types.ts index 2989614eb..afa87ecf8 100644 --- a/interface/src/project/types.ts +++ b/interface/src/project/types.ts @@ -339,25 +339,27 @@ export enum ScheduleFlag { } export interface EntityItem { + id: number; // unique number name: string; - device_id: string; - type_id: string; + device_id: number; + type_id: number; offset: number; factor: number; uom: number; val_type: number; value?: number; + deleted?: boolean; // optional + o_id?: number; o_name?: string; - o_device_id?: string; - o_type_id?: string; + o_device_id?: number; + o_type_id?: number; o_offset?: number; o_factor?: number; o_uom?: number; o_val_type?: number; - deleted?: boolean; // optional o_deleted?: boolean; } export interface Entities { - entity: EntityItem[]; + entities: EntityItem[]; } diff --git a/interface/src/project/validators.ts b/interface/src/project/validators.ts index 257078793..6417b06f4 100644 --- a/interface/src/project/validators.ts +++ b/interface/src/project/validators.ts @@ -85,6 +85,16 @@ export const createSettingsValidator = (settings: Settings) => }) }); +export const uniqueNameValidator = (schedule: ScheduleItem[], o_name?: string) => ({ + validator(rule: InternalRuleItem, name: string, callback: (error?: string) => void) { + if (name && o_name && o_name !== name && schedule.find((si) => si.name === name)) { + callback('Name already in use'); + } else { + callback(); + } + } +}); + export const schedulerItemValidation = (schedule: ScheduleItem[], scheduleItem: ScheduleItem) => new Schema({ name: [ @@ -101,9 +111,9 @@ export const schedulerItemValidation = (schedule: ScheduleItem[], scheduleItem: ] }); -export const uniqueNameValidator = (schedule: ScheduleItem[], o_name?: string) => ({ +export const uniqueEntityNameValidator = (entities: EntityItem[], o_name?: string) => ({ validator(rule: InternalRuleItem, name: string, callback: (error?: string) => void) { - if (name && o_name && o_name !== name && schedule.find((si) => si.name === name)) { + if (name && o_name && o_name !== name && entities.find((ei) => ei.name === name)) { callback('Name already in use'); } else { callback(); @@ -111,7 +121,7 @@ export const uniqueNameValidator = (schedule: ScheduleItem[], o_name?: string) = } }); -export const entityItemValidation = (entity: EntityItem[], entityItem: EntityItem) => +export const entityItemValidation = (entities: EntityItem[], entityItem: EntityItem) => new Schema({ name: [ { required: true, message: 'Name is required' }, @@ -120,28 +130,15 @@ export const entityItemValidation = (entity: EntityItem[], entityItem: EntityIte pattern: /^[a-zA-Z0-9_\\.]{1,15}$/, message: "Must be <15 characters: alpha numeric, '_' or '.'" }, - ...[uniqueEntityNameValidator(entity, entityItem.o_name)] + ...[uniqueEntityNameValidator(entities, entityItem.o_name)] ], - device_id: [ - { required: true, message: 'Device_id is required' }, - { type: 'string', pattern: /^[A-F0-9]{1,2}$/, message: 'Must be a hex number' } - ], - type_id: [ - { required: true, message: 'Type_id is required' }, - { type: 'string', pattern: /^[A-F0-9]{1,4}$/, message: 'Must be a hex number' } - ], - offset: [ - { required: true, message: 'Offset is required' }, - { type: 'number', min: 0, max: 255, message: 'Must be between 0 and 255' } - ] + device_id: [{ type: 'hex', required: true, message: 'ID must be a hex value' }] + // type_id: [ + // { required: true, message: 'Type_id is required' }, + // { type: 'string', pattern: /^[A-F0-9]{1,4}$/, message: 'Must be a hex number' } + // ], + // offset: [ + // { required: true, message: 'Offset is required' }, + // { type: 'number', min: 0, max: 255, message: 'Must be between 0 and 255' } + // ] }); - -export const uniqueEntityNameValidator = (entity: EntityItem[], o_name?: string) => ({ - validator(rule: InternalRuleItem, name: string, callback: (error?: string) => void) { - if (name && o_name && o_name !== name && entity.find((ei) => ei.name === name)) { - callback('Name already in use'); - } else { - callback(); - } - } -}); diff --git a/interface/vite.config.ts b/interface/vite.config.ts index 83f3cfe81..e2509f7eb 100644 --- a/interface/vite.config.ts +++ b/interface/vite.config.ts @@ -2,7 +2,6 @@ import { defineConfig, type PluginOption } from 'vite'; import react from '@vitejs/plugin-react-swc'; import viteTsconfigPaths from 'vite-tsconfig-paths'; import svgrPlugin from 'vite-plugin-svgr'; -// import { ViteMinifyPlugin } from 'vite-plugin-minify'; import { visualizer } from 'rollup-plugin-visualizer'; import ProgmemGenerator from './progmem-generator'; @@ -19,19 +18,6 @@ export default defineConfig(({ command, mode }) => { react(), viteTsconfigPaths(), svgrPlugin(), - // ViteMinifyPlugin({ - // removeAttributeQuotes: true, - // minifyCSS: true, - // minifyJS: true, - // decodeEntities: true, - // removeComments: true, - // removeEmptyAttributes: true, - // removeOptionalTags: true, - // removeEmptyElements: true, - // removeScriptTypeAttributes: true, - // removeTagWhitespace: true, - // minifyURLs: true - // }), ProgmemGenerator({ outputPath: '../lib/framework/WWWData.h', bytesPerLine: 20 }) ], diff --git a/interface/yarn.lock b/interface/yarn.lock index 813634ee0..be5a1cc4a 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -279,7 +279,7 @@ __metadata: languageName: node linkType: hard -"@emotion/cache@npm:^11.10.5": +"@emotion/cache@npm:^11.10.5, @emotion/cache@npm:^11.10.7": version: 11.10.7 resolution: "@emotion/cache@npm:11.10.7" dependencies: @@ -595,10 +595,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.37.0": - version: 8.37.0 - resolution: "@eslint/js@npm:8.37.0" - checksum: 6abb3d97412ac960c7436ecdaa56eb00ac57c34782dc0901c82b259c32704e45044927b2910d786ec2127e548986d67e7ba29fec46abfb5d8fc9bedf379af2cf +"@eslint/js@npm:8.38.0": + version: 8.38.0 + resolution: "@eslint/js@npm:8.38.0" + checksum: e2f4b565d542758779b98019cfa63e24fc56fabfb8d04caf7f6310753703116b880b6a8061d671f2a40a68dba24a8a199eb01d5c8b140f53c49f05c75b404ff5 languageName: node linkType: hard @@ -703,14 +703,14 @@ __metadata: languageName: node linkType: hard -"@mui/base@npm:5.0.0-alpha.124": - version: 5.0.0-alpha.124 - resolution: "@mui/base@npm:5.0.0-alpha.124" +"@mui/base@npm:5.0.0-alpha.125": + version: 5.0.0-alpha.125 + resolution: "@mui/base@npm:5.0.0-alpha.125" dependencies: "@babel/runtime": ^7.21.0 "@emotion/is-prop-valid": ^1.2.0 - "@mui/types": ^7.2.3 - "@mui/utils": ^5.11.13 + "@mui/types": ^7.2.4 + "@mui/utils": ^5.12.0 "@popperjs/core": ^2.11.7 clsx: ^1.2.1 prop-types: ^15.8.1 @@ -722,14 +722,14 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 103a3af33f7125cf7320a6b5de49cc6223563978066ebd4a9721de385c2b7990ff5e14139e5bd290714bd0e5db58b9b960b08051d5c14219c5835ba1a0e0c587 + checksum: 0a87b5141500885c364382375816d23b48799e38c57993b0bbb2dbfce8052a8bdba588b2cd6cee75dc2fc43a873ce3d27a223ef1395c42a0b2e28d59e559b2bf languageName: node linkType: hard -"@mui/core-downloads-tracker@npm:^5.11.16": - version: 5.11.16 - resolution: "@mui/core-downloads-tracker@npm:5.11.16" - checksum: c9f1ed7a6f78ba9db80cb59c4a17ab4ef9af6837bf85ae87161fb745e64a617c91f7f1b35296c33c9039d42e61e49290eedae2e22ea16ded5a57e2c239c055a0 +"@mui/core-downloads-tracker@npm:^5.12.0": + version: 5.12.0 + resolution: "@mui/core-downloads-tracker@npm:5.12.0" + checksum: b0bc0c67be036fc6b965827ffb2ad2134c317237439dcbbe0b90a1807e92f93894e8d5e6650df4833b5a9b88b28d77cb2cd4435d23bbb9ab751c023684012e5f languageName: node linkType: hard @@ -749,16 +749,16 @@ __metadata: languageName: node linkType: hard -"@mui/material@npm:^5.11.16": - version: 5.11.16 - resolution: "@mui/material@npm:5.11.16" +"@mui/material@npm:^5.12.0": + version: 5.12.0 + resolution: "@mui/material@npm:5.12.0" dependencies: "@babel/runtime": ^7.21.0 - "@mui/base": 5.0.0-alpha.124 - "@mui/core-downloads-tracker": ^5.11.16 - "@mui/system": ^5.11.16 - "@mui/types": ^7.2.3 - "@mui/utils": ^5.11.13 + "@mui/base": 5.0.0-alpha.125 + "@mui/core-downloads-tracker": ^5.12.0 + "@mui/system": ^5.12.0 + "@mui/types": ^7.2.4 + "@mui/utils": ^5.12.0 "@types/react-transition-group": ^4.4.5 clsx: ^1.2.1 csstype: ^3.1.2 @@ -778,16 +778,16 @@ __metadata: optional: true "@types/react": optional: true - checksum: a674b179edd9af749d5a7edee6e2bf031b56b06311d6d0c567ec2a53936a0416443a74dcd02d360748442260f0829ad087ed5c1172d714fec2eb29d22683d234 + checksum: d8f2e875393dd254d70aafea08e1289d4cc4d085af581cd8fd4cc2882d5e265b8c926322ac64c1e0d18c5f441969abef2611c87346d685ad18fcfbc27e2d8ddf languageName: node linkType: hard -"@mui/private-theming@npm:^5.11.13": - version: 5.11.13 - resolution: "@mui/private-theming@npm:5.11.13" +"@mui/private-theming@npm:^5.12.0": + version: 5.12.0 + resolution: "@mui/private-theming@npm:5.12.0" dependencies: "@babel/runtime": ^7.21.0 - "@mui/utils": ^5.11.13 + "@mui/utils": ^5.12.0 prop-types: ^15.8.1 peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 @@ -795,16 +795,16 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 114801958fe0153b2c7c07640d5453dc783bebdc96e35612f18b90370a461bb0d5c24d0d3ea5b48dc369299660e4246f6d739a97aa47821e5d5b955329d38ec4 + checksum: c7ad031d9574a4b217400ce78f2f58a487fae5249ce46a124ae1a2814e8cc52848dd20fdff7ccc4e6342b83f5e77ec1d5b1eabc74777647fb1f7f0a4f8b5be25 languageName: node linkType: hard -"@mui/styled-engine@npm:^5.11.16": - version: 5.11.16 - resolution: "@mui/styled-engine@npm:5.11.16" +"@mui/styled-engine@npm:^5.12.0": + version: 5.12.0 + resolution: "@mui/styled-engine@npm:5.12.0" dependencies: "@babel/runtime": ^7.21.0 - "@emotion/cache": ^11.10.5 + "@emotion/cache": ^11.10.7 csstype: ^3.1.2 prop-types: ^15.8.1 peerDependencies: @@ -816,19 +816,19 @@ __metadata: optional: true "@emotion/styled": optional: true - checksum: 308b7406c7e4ade762c21339644803ad5510c96940e1bd99586cbcea9fa3468216fbace47ed603ea8106fff5d493dadba4ebac07e89175c3f12d50b7571c90d8 + checksum: 278ce278b0622866b4b8d1caab4ed151986c5f967830140783e1f5609bd5f9fe34c470daef8bcf2ba9706bc4fe8caae950227bb3853ddde3e5b2f45c2f90aad5 languageName: node linkType: hard -"@mui/system@npm:^5.11.16": - version: 5.11.16 - resolution: "@mui/system@npm:5.11.16" +"@mui/system@npm:^5.12.0": + version: 5.12.0 + resolution: "@mui/system@npm:5.12.0" dependencies: "@babel/runtime": ^7.21.0 - "@mui/private-theming": ^5.11.13 - "@mui/styled-engine": ^5.11.16 - "@mui/types": ^7.2.3 - "@mui/utils": ^5.11.13 + "@mui/private-theming": ^5.12.0 + "@mui/styled-engine": ^5.12.0 + "@mui/types": ^7.2.4 + "@mui/utils": ^5.12.0 clsx: ^1.2.1 csstype: ^3.1.2 prop-types: ^15.8.1 @@ -844,25 +844,25 @@ __metadata: optional: true "@types/react": optional: true - checksum: 53c699dd20dd0bc312b81844a5e2a55e184d13042300e5027ace490b89a41e6e01f857d7b8a21b95aad6e215b4467a0fa9bbf7b1bb1b877fe8429f986378fd4e + checksum: d53e70f35b8cc19c687ba72fc79a1f4cc20e0dd0335433fc255bc70291f89460b88bdddb7a9f17d11ffa6de3710117cc666c28ea0ac234fd2da13e82ee3c3c34 languageName: node linkType: hard -"@mui/types@npm:^7.2.3": - version: 7.2.3 - resolution: "@mui/types@npm:7.2.3" +"@mui/types@npm:^7.2.4": + version: 7.2.4 + resolution: "@mui/types@npm:7.2.4" peerDependencies: "@types/react": "*" peerDependenciesMeta: "@types/react": optional: true - checksum: d66575b6e5b37462bc4182ee5eae7f9f10792d4cdbe407fdb055136c62c3e05c6fa8969680373a723fbede0d1b1c17941c2cccd5a0409751a09aa22a712eafc0 + checksum: 17411effd184eff34d6a1a55b2249c7e1ef195bb30c48154f0b16fdce428ff55be4ec5dde8b4a556c01eda2d34e3dcc18d925f8fdee606f5bc15f91167f0ecbc languageName: node linkType: hard -"@mui/utils@npm:^5.11.13": - version: 5.11.13 - resolution: "@mui/utils@npm:5.11.13" +"@mui/utils@npm:^5.12.0": + version: 5.12.0 + resolution: "@mui/utils@npm:5.12.0" dependencies: "@babel/runtime": ^7.21.0 "@types/prop-types": ^15.7.5 @@ -871,7 +871,7 @@ __metadata: react-is: ^18.2.0 peerDependencies: react: ^17.0.0 || ^18.0.0 - checksum: ba9812784d90b3bbe7c56cc0daf35cd972b576789b2dedb4d1df73005bc55af58d01c11dd21f2104206a49d93f08b9ba1a19a63c605df7b4760a1a864f675ead + checksum: 81813844674de745c3834e40d224b02aae98bfee0ada2dd5c68256fd5e866eaaf11b59f575e5d14676c61699ad8d44350f9b72da3c49cdc4b23e6efead965944 languageName: node linkType: hard @@ -1100,90 +1100,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.46": - version: 1.3.46 - resolution: "@swc/core-darwin-arm64@npm:1.3.46" +"@swc/core-darwin-arm64@npm:1.3.49": + version: 1.3.49 + resolution: "@swc/core-darwin-arm64@npm:1.3.49" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.46": - version: 1.3.46 - resolution: "@swc/core-darwin-x64@npm:1.3.46" +"@swc/core-darwin-x64@npm:1.3.49": + version: 1.3.49 + resolution: "@swc/core-darwin-x64@npm:1.3.49" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.46": - version: 1.3.46 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.46" +"@swc/core-linux-arm-gnueabihf@npm:1.3.49": + version: 1.3.49 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.49" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.46": - version: 1.3.46 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.46" +"@swc/core-linux-arm64-gnu@npm:1.3.49": + version: 1.3.49 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.49" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.46": - version: 1.3.46 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.46" +"@swc/core-linux-arm64-musl@npm:1.3.49": + version: 1.3.49 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.49" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.46": - version: 1.3.46 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.46" +"@swc/core-linux-x64-gnu@npm:1.3.49": + version: 1.3.49 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.49" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.46": - version: 1.3.46 - resolution: "@swc/core-linux-x64-musl@npm:1.3.46" +"@swc/core-linux-x64-musl@npm:1.3.49": + version: 1.3.49 + resolution: "@swc/core-linux-x64-musl@npm:1.3.49" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.46": - version: 1.3.46 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.46" +"@swc/core-win32-arm64-msvc@npm:1.3.49": + version: 1.3.49 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.49" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.46": - version: 1.3.46 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.46" +"@swc/core-win32-ia32-msvc@npm:1.3.49": + version: 1.3.49 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.49" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.46": - version: 1.3.46 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.46" +"@swc/core-win32-x64-msvc@npm:1.3.49": + version: 1.3.49 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.49" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:^1.3.35": - version: 1.3.46 - resolution: "@swc/core@npm:1.3.46" +"@swc/core@npm:^1.3.42": + version: 1.3.49 + resolution: "@swc/core@npm:1.3.49" dependencies: - "@swc/core-darwin-arm64": 1.3.46 - "@swc/core-darwin-x64": 1.3.46 - "@swc/core-linux-arm-gnueabihf": 1.3.46 - "@swc/core-linux-arm64-gnu": 1.3.46 - "@swc/core-linux-arm64-musl": 1.3.46 - "@swc/core-linux-x64-gnu": 1.3.46 - "@swc/core-linux-x64-musl": 1.3.46 - "@swc/core-win32-arm64-msvc": 1.3.46 - "@swc/core-win32-ia32-msvc": 1.3.46 - "@swc/core-win32-x64-msvc": 1.3.46 + "@swc/core-darwin-arm64": 1.3.49 + "@swc/core-darwin-x64": 1.3.49 + "@swc/core-linux-arm-gnueabihf": 1.3.49 + "@swc/core-linux-arm64-gnu": 1.3.49 + "@swc/core-linux-arm64-musl": 1.3.49 + "@swc/core-linux-x64-gnu": 1.3.49 + "@swc/core-linux-x64-musl": 1.3.49 + "@swc/core-win32-arm64-msvc": 1.3.49 + "@swc/core-win32-ia32-msvc": 1.3.49 + "@swc/core-win32-x64-msvc": 1.3.49 peerDependencies: "@swc/helpers": ^0.5.0 dependenciesMeta: @@ -1207,7 +1207,10 @@ __metadata: optional: true "@swc/core-win32-x64-msvc": optional: true - checksum: 245c213425fecc16ae5a078ec0451f3567430609ef40ef4f1dc2fb795de86229d4203956b5b02ae304232cf93b25bbec3aaed23989d41fdb432aecc1cfdabc0e + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: 3a8463047fb79a4bc5987cd24f935e19e59dfe967648c6abbc0b61f9197b76109de832fb03e5e6452459f9e2165b565f86dbc9ecd9506f58bd4befff8e0ddc47 languageName: node linkType: hard @@ -1407,7 +1410,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:^18.0.33": +"@types/react@npm:*": version: 18.0.33 resolution: "@types/react@npm:18.0.33" dependencies: @@ -1418,6 +1421,17 @@ __metadata: languageName: node linkType: hard +"@types/react@npm:^18.0.34": + version: 18.0.34 + resolution: "@types/react@npm:18.0.34" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: 97e6ea3b5eea0b270c2c36f5cc44699fe21e30ceda4ffc6936ad40ff755bd8b16637f41d8b0bd20d50eb3261b0981e8f4822b2bd5805208532292499f6de340c + languageName: node + linkType: hard + "@types/responselike@npm:^1.0.0": version: 1.0.0 resolution: "@types/responselike@npm:1.0.0" @@ -1459,14 +1473,14 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.57.1": - version: 5.57.1 - resolution: "@typescript-eslint/eslint-plugin@npm:5.57.1" +"@typescript-eslint/eslint-plugin@npm:^5.58.0": + version: 5.58.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.58.0" dependencies: "@eslint-community/regexpp": ^4.4.0 - "@typescript-eslint/scope-manager": 5.57.1 - "@typescript-eslint/type-utils": 5.57.1 - "@typescript-eslint/utils": 5.57.1 + "@typescript-eslint/scope-manager": 5.58.0 + "@typescript-eslint/type-utils": 5.58.0 + "@typescript-eslint/utils": 5.58.0 debug: ^4.3.4 grapheme-splitter: ^1.0.4 ignore: ^5.2.0 @@ -1479,43 +1493,43 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 3847db76ed4a5df9cbb0f0155afa81951323a93ba37de3dca872b325502d0203da859a67f6d201bcfdf4985188b80227b7fd039206f7b921c96d33befe7ed25d + checksum: cda31ae6ff09c742f921304ea1a2a0d0823f7e20d7969ba6320ab14df2b3269b93a61eded96a59f01cfd24f28efb91e461e42bb09f493ed013936a899697a868 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.57.1": - version: 5.57.1 - resolution: "@typescript-eslint/parser@npm:5.57.1" +"@typescript-eslint/parser@npm:^5.58.0": + version: 5.58.0 + resolution: "@typescript-eslint/parser@npm:5.58.0" dependencies: - "@typescript-eslint/scope-manager": 5.57.1 - "@typescript-eslint/types": 5.57.1 - "@typescript-eslint/typescript-estree": 5.57.1 + "@typescript-eslint/scope-manager": 5.58.0 + "@typescript-eslint/types": 5.58.0 + "@typescript-eslint/typescript-estree": 5.58.0 debug: ^4.3.4 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 4e2ea4694b261a25bca452db502666ddb4444cced9518eb2d34bd06d099885858307c9b320fd1aaeb45513811dc1984bbba370e5a8567671bad7fc5a0eb8bcc7 + checksum: fb7a4ce59eb803d29705e0134b6731823d9d7b56dd76a4de4ff07eb09d56cc851ed9988ecacdc2d0cbd929115a02ce564b0bb1b97d8732e05707dbe4332460ae languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.57.1": - version: 5.57.1 - resolution: "@typescript-eslint/scope-manager@npm:5.57.1" +"@typescript-eslint/scope-manager@npm:5.58.0": + version: 5.58.0 + resolution: "@typescript-eslint/scope-manager@npm:5.58.0" dependencies: - "@typescript-eslint/types": 5.57.1 - "@typescript-eslint/visitor-keys": 5.57.1 - checksum: f0905f70939980164c0205c6c6d3638bea40fd9afb1acc83632360e66725f185eee9da595721f0bcd57cc5f951224d9d47bd8dc9c9b2373920f9d236081a8344 + "@typescript-eslint/types": 5.58.0 + "@typescript-eslint/visitor-keys": 5.58.0 + checksum: 66c82609ac6c9cf00e163126619e7c487adc938f02e4567a2c26319916a175b9aee792aa80bd319a20848c834c6e599cd302c9f5b68c64b95d02f024f511ac66 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.57.1": - version: 5.57.1 - resolution: "@typescript-eslint/type-utils@npm:5.57.1" +"@typescript-eslint/type-utils@npm:5.58.0": + version: 5.58.0 + resolution: "@typescript-eslint/type-utils@npm:5.58.0" dependencies: - "@typescript-eslint/typescript-estree": 5.57.1 - "@typescript-eslint/utils": 5.57.1 + "@typescript-eslint/typescript-estree": 5.58.0 + "@typescript-eslint/utils": 5.58.0 debug: ^4.3.4 tsutils: ^3.21.0 peerDependencies: @@ -1523,23 +1537,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 21fb0653398d2d6d32e4bcb8fe4f4d802d63f0cd50f2e4b982f410b075f5441edffe64924dd1ba71f89eccef3b04eaae8c23543e7618723c7344914378ce3796 + checksum: 3ca4443f43b8263745afda3ff05517074da77d1dad25867845d386b29b012548b720d12334aca8bf15323a76557099e4ce3025a5a0fa84e070f6a4c1dc36d44e languageName: node linkType: hard -"@typescript-eslint/types@npm:5.57.1": - version: 5.57.1 - resolution: "@typescript-eslint/types@npm:5.57.1" - checksum: 549214a87a52359013270982ef4e69ce17d8a063717a8cb9d127425e76b9113a8db437b67e6802be2ba35c4c025cb37907b003cc29306a8d7d7800c58838aa38 +"@typescript-eslint/types@npm:5.58.0": + version: 5.58.0 + resolution: "@typescript-eslint/types@npm:5.58.0" + checksum: 3e5973909a5c585f5aebf919eec8ac213e9b5089c7357ea832ffa2bd39df70dce0b806d4bcc39a15e309830dfbf7bdf22d9808ab3c466729b8536e9d7e83eccc languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.57.1": - version: 5.57.1 - resolution: "@typescript-eslint/typescript-estree@npm:5.57.1" +"@typescript-eslint/typescript-estree@npm:5.58.0": + version: 5.58.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.58.0" dependencies: - "@typescript-eslint/types": 5.57.1 - "@typescript-eslint/visitor-keys": 5.57.1 + "@typescript-eslint/types": 5.58.0 + "@typescript-eslint/visitor-keys": 5.58.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -1548,46 +1562,46 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 3c5483a9bb8413ba117be12de334b9e533fe75320b5308e7d21a41661dd627b8a403575e5bce84ff9ca7b0678446dd6e98e73b2f05b9f4bb2d02a0a067b421d7 + checksum: 51c2a92217a1ccc01acf3c5c371b8c4b48b066cb6341441c35b74b6f3e13d21f81e0aed041215f3f4cf73320f5cd6cc3061801c51a3049958ee9a171a6efa196 languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.57.1": - version: 5.57.1 - resolution: "@typescript-eslint/utils@npm:5.57.1" +"@typescript-eslint/utils@npm:5.58.0": + version: 5.58.0 + resolution: "@typescript-eslint/utils@npm:5.58.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@types/json-schema": ^7.0.9 "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.57.1 - "@typescript-eslint/types": 5.57.1 - "@typescript-eslint/typescript-estree": 5.57.1 + "@typescript-eslint/scope-manager": 5.58.0 + "@typescript-eslint/types": 5.58.0 + "@typescript-eslint/typescript-estree": 5.58.0 eslint-scope: ^5.1.1 semver: ^7.3.7 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: bab8a94e30fc22fa6b3db5c6eee059697ce5e5e03f355c1fc465de184129b4824186a82235e14111c644d2b337721ae9f4d294a52a6f3dd4377edd35b922e3aa + checksum: 71ea338d9b67b59792e9d9a82b723acbee815534044294b169e3727f5394445d95a6200c919f0c28020bc5954df0f7110e9d0a4586e77ebebcd1662c06b30157 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.57.1": - version: 5.57.1 - resolution: "@typescript-eslint/visitor-keys@npm:5.57.1" +"@typescript-eslint/visitor-keys@npm:5.58.0": + version: 5.58.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.58.0" dependencies: - "@typescript-eslint/types": 5.57.1 + "@typescript-eslint/types": 5.58.0 eslint-visitor-keys: ^3.3.0 - checksum: 9a84589334fe675d18ca3a572aa0caf1b4c7baa80857642aee40378f5c79cf9dddd06a0fec31d7ff6a73f577f68f910fb745d51728fac317b388b8de764561db + checksum: e41b0cf8bf766c491fe96e26b4cd20e6af4dbe85ff773a32887b7557ffd199117d8cdc86ceef5ce224d06c5e14d54a8edb679e58185f5a9c6b450615eaac6f30 languageName: node linkType: hard -"@vitejs/plugin-react-swc@npm:^3.2.0": - version: 3.2.0 - resolution: "@vitejs/plugin-react-swc@npm:3.2.0" +"@vitejs/plugin-react-swc@npm:^3.3.0": + version: 3.3.0 + resolution: "@vitejs/plugin-react-swc@npm:3.3.0" dependencies: - "@swc/core": ^1.3.35 + "@swc/core": ^1.3.42 peerDependencies: vite: ^4 - checksum: fa2e707ee67244596a8d8d2738875af904d0e30a108cb5788ada0815efebaf5001a3168b90093c2322502be36e87b131f22fb8eb7c5e351f6eb1893eb64299f5 + checksum: 29e7389540ac448328c3450cde81b4a48815a6a57bf823b3b94b4372084d0a7a7cabb39041e9d6b6c31ebdb7f5739e54d91cfc9ec29f724daa2b9b027ecc9376 languageName: node linkType: hard @@ -1718,23 +1732,23 @@ __metadata: "@emotion/styled": ^11.10.6 "@msgpack/msgpack": ^3.0.0-beta2 "@mui/icons-material": ^5.11.16 - "@mui/material": ^5.11.16 + "@mui/material": ^5.12.0 "@remix-run/router": ^1.5.0 "@table-library/react-table-library": 4.1.0 "@types/lodash-es": ^4.17.7 "@types/mime-types": ^2 "@types/node": ^18.15.11 - "@types/react": ^18.0.33 + "@types/react": ^18.0.34 "@types/react-dom": ^18.0.11 "@types/react-router-dom": ^5.3.3 "@types/styled-components": ^5 - "@typescript-eslint/eslint-plugin": ^5.57.1 - "@typescript-eslint/parser": ^5.57.1 - "@vitejs/plugin-react-swc": ^3.2.0 + "@typescript-eslint/eslint-plugin": ^5.58.0 + "@typescript-eslint/parser": ^5.58.0 + "@vitejs/plugin-react-swc": ^3.3.0 "@yarnpkg/pnpify": ^4.0.0-rc.42 async-validator: ^4.2.5 axios: ^1.3.5 - eslint: ^8.37.0 + eslint: ^8.38.0 eslint-config-airbnb: ^19.0.4 eslint-config-airbnb-typescript: ^17.0.0 eslint-config-prettier: ^8.8.0 @@ -1759,13 +1773,13 @@ __metadata: react-toastify: ^9.1.2 rollup-plugin-visualizer: ^5.9.0 sockette: ^2.0.6 - terser: ^5.16.8 + terser: ^5.16.9 typesafe-i18n: ^5.24.3 - typescript: ^5.0.3 + typescript: ^5.0.4 vite: ^4.2.1 vite-plugin-minify: ^1.5.2 vite-plugin-svgr: ^2.4.0 - vite-tsconfig-paths: ^4.0.8 + vite-tsconfig-paths: ^4.1.0 languageName: unknown linkType: soft @@ -3134,14 +3148,14 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.37.0": - version: 8.37.0 - resolution: "eslint@npm:8.37.0" +"eslint@npm:^8.38.0": + version: 8.38.0 + resolution: "eslint@npm:8.38.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@eslint-community/regexpp": ^4.4.0 "@eslint/eslintrc": ^2.0.2 - "@eslint/js": 8.37.0 + "@eslint/js": 8.38.0 "@humanwhocodes/config-array": ^0.11.8 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 @@ -3180,7 +3194,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 3798781652b1c32d8a4a654c2dd7f2abbff808a806ddd7fd8f86a49586a824854369943d49ee52dcda47b8b03cd49585820f2ab69fc61bb17a0d7677785a2cf7 + checksum: 1aeba0106770bd29834bb01550c72fa0ebea851ceeaef61d2860ecb455391992b316f222600939f11d12db2a7ea6fb9443f4aa137566f98f9f26af9fa40b96b5 languageName: node linkType: hard @@ -6042,7 +6056,7 @@ __metadata: languageName: node linkType: hard -"terser@npm:^5.10.0, terser@npm:^5.16.8": +"terser@npm:^5.10.0": version: 5.16.8 resolution: "terser@npm:5.16.8" dependencies: @@ -6056,6 +6070,20 @@ __metadata: languageName: node linkType: hard +"terser@npm:^5.16.9": + version: 5.16.9 + resolution: "terser@npm:5.16.9" + dependencies: + "@jridgewell/source-map": ^0.3.2 + acorn: ^8.5.0 + commander: ^2.20.0 + source-map-support: ~0.5.20 + bin: + terser: bin/terser + checksum: eb883b606aa698e314957aa2cf6e70c1dc632d0d2dcda13e7a2cc73569a05034721826c0d6f9b31c6bb08bbc4fc633b6591871814dada71da9d34af9e284dc4f + languageName: node + linkType: hard + "text-table@npm:^0.2.0": version: 0.2.0 resolution: "text-table@npm:0.2.0" @@ -6217,23 +6245,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.0.3": - version: 5.0.3 - resolution: "typescript@npm:5.0.3" +"typescript@npm:^5.0.4": + version: 5.0.4 + resolution: "typescript@npm:5.0.4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 13221c7f7dd2aa9cf8ac2fb1b5ca3825ff3d97a43b4656fd22ca36c0ec30179643b5157d620c3e4af9d3fc9234a571bd3ea175624b3d37c494d7ed159b038df2 + checksum: 2f5bd1cead194905957cb34e220b1d6ff1662399adef8ec1864f74620922d860ee35b6e50eafb3b636ea6fd437195e454e1146cb630a4236b5095ed7617395c2 languageName: node linkType: hard -"typescript@patch:typescript@^5.0.3#~builtin": - version: 5.0.3 - resolution: "typescript@patch:typescript@npm%3A5.0.3#~builtin::version=5.0.3&hash=1f5320" +"typescript@patch:typescript@^5.0.4#~builtin": + version: 5.0.4 + resolution: "typescript@patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=1f5320" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 7e50cd198d2f7f052ac4e10d9a9b6e88ed91b3434c32b6e82f278a4e33727b42fee5d33929ef8a633b409a6bf62fd4bb95df464809507b7a703a4c73269dce3c + checksum: db16dd188048c172051825c7e6eea3e6bf577020625e5635fb8265d22683897d9ed7579b41a3a3e961fba5728c58e324d52041e9ca21d0dfc4bafa8bcf8e7a4b languageName: node linkType: hard @@ -6337,9 +6365,9 @@ __metadata: languageName: node linkType: hard -"vite-tsconfig-paths@npm:^4.0.8": - version: 4.0.8 - resolution: "vite-tsconfig-paths@npm:4.0.8" +"vite-tsconfig-paths@npm:^4.1.0": + version: 4.1.0 + resolution: "vite-tsconfig-paths@npm:4.1.0" dependencies: debug: ^4.1.1 globrex: ^0.1.2 @@ -6349,7 +6377,7 @@ __metadata: peerDependenciesMeta: vite: optional: true - checksum: 754e404a085668cbd1da08e4ebac7aef09efc3357524273d34bb68ab4dd705b8a0cce9e98c7bd0828f1c525669bf5f165d09c8d81c47011c6a5185fc30bd60de + checksum: 9846dfdd7118067539728f88a3b5f6a109d01392fa83bef6ad0505def2b1ed24579a4955df7db4b3ab60e9a816867a48e8b508f34030ef0d20b773293c91298d languageName: node linkType: hard diff --git a/mock-api/server.js b/mock-api/server.js index e42412c42..23c8047cb 100644 --- a/mock-api/server.js +++ b/mock-api/server.js @@ -599,6 +599,32 @@ const emsesp_devicedata_4 = { ] }; +// CUSTOM ENTITIES +let emsesp_entities = { + entities: [ + { + id: 0, + name: 'test1', + device_id: 8, + type_id: 2, + offset: 0, + factor: 0, + uom: 2, + val_type: 2 + }, + { + id: 1, + name: 'test2', + device_id: 11, + type_id: 222, + offset: 2, + factor: 2, + uom: 4, + val_type: 5 + } + ] +}; + // SCHEDULE let emsesp_schedule = { schedule: [ @@ -1369,6 +1395,12 @@ rest_server.get(GET_SCHEDULE_ENDPOINT, (req, res) => { res.json(emsesp_schedule); }); +const GET_ENTITIES_ENDPOINT = REST_ENDPOINT_ROOT + 'entities'; +rest_server.get(GET_ENTITIES_ENDPOINT, (req, res) => { + console.log('Sending Entities data'); + res.json(emsesp_entities); +}); + // start server const expressServer = rest_server.listen(port, () => console.log(`EMS-ESP REST API server running on http://localhost:${port}/`)