Date: Fri, 9 Aug 2024 15:53:56 +0530
Subject: [PATCH 014/140] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Fixes=20issue?=
=?UTF-8?q?=20with=20treating=20physician=20field=20being=20disabled=20whe?=
=?UTF-8?q?n=20a=20search=20text=20entered=20yields=20no=20results;=20?=
=?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Migrate=20`UserAutocompleteFormField`?=
=?UTF-8?q?=20to=20use=20`useQuery`=20(#8274)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Add tests to replicate the issue
* refactor name formatting to use utility fn
* Upgrade UserAutocompleteFormField to use useQuery and have dedicated subcomponents based on linked facility or users api query
* remove unused import
* fix types
* update cypress
* fix issue with mergeQuery options and cleanup
* fix cypress syntax error
* add id for autocomplete input
* update test
* fix cypress
* skip explicit clearing
* remove test
---
src/Components/ABDM/ABDMFacilityRecords.tsx | 11 +-
src/Components/ABDM/ABDMRecordsTab.tsx | 4 +-
src/Components/Assets/AssetManage.tsx | 5 +-
.../Common/RelativeDateUserMention.tsx | 4 +-
.../Common/UserAutocompleteFormField.tsx | 210 +++++++++++-------
src/Components/Facility/ConsultationForm.tsx | 22 +-
.../Facility/DoctorVideoSlideover.tsx | 13 +-
src/Components/Facility/FacilityUsers.tsx | 4 +-
src/Components/Facility/PatientNoteCard.tsx | 10 +-
src/Components/Notifications/NoticeBoard.tsx | 4 +-
src/Components/Patient/PatientHome.tsx | 20 +-
src/Components/Patient/PatientInfoCard.tsx | 3 +-
src/Components/Resource/CommentSection.tsx | 5 +-
src/Components/Resource/ResourceBoard.tsx | 5 +-
src/Components/Resource/ResourceDetails.tsx | 11 +-
.../Resource/ResourceDetailsUpdate.tsx | 4 +-
src/Components/Shifting/BadgesList.tsx | 9 +-
src/Components/Shifting/CommentsSection.tsx | 5 +-
src/Components/Shifting/ListFilter.tsx | 6 +-
src/Components/Shifting/ShiftDetails.tsx | 11 +-
.../Shifting/ShiftDetailsUpdate.tsx | 12 +-
src/Components/Shifting/ShiftingBoard.tsx | 5 +-
src/Components/Users/ManageUsers.tsx | 11 +-
src/Redux/actions.tsx | 14 --
24 files changed, 217 insertions(+), 191 deletions(-)
diff --git a/src/Components/ABDM/ABDMFacilityRecords.tsx b/src/Components/ABDM/ABDMFacilityRecords.tsx
index eadf39b8db7..cd21d269536 100644
--- a/src/Components/ABDM/ABDMFacilityRecords.tsx
+++ b/src/Components/ABDM/ABDMFacilityRecords.tsx
@@ -86,8 +86,8 @@ export default function ABDMFacilityRecords({ facilityId }: IProps) {
consent.expiry,
) < new Date()
? "EXPIRED"
- : consent.consent_artefacts?.[0]?.status ??
- consent.status}
+ : (consent.consent_artefacts?.[0]?.status ??
+ consent.status)}
@@ -102,13 +102,6 @@ export default function ABDMFacilityRecords({ facilityId }: IProps) {
: "-"}
- {/*
- {`${consent.requester?.first_name} ${consent.requester?.last_name}`.trim()}
-
- ({consent.requester.username})
-
- */}
-
{formatDateTime(
consent.consent_artefacts?.[0]?.from_time ??
diff --git a/src/Components/ABDM/ABDMRecordsTab.tsx b/src/Components/ABDM/ABDMRecordsTab.tsx
index d828335cd0d..37ae1a629db 100644
--- a/src/Components/ABDM/ABDMRecordsTab.tsx
+++ b/src/Components/ABDM/ABDMRecordsTab.tsx
@@ -5,7 +5,7 @@ import CareIcon from "../../CAREUI/icons/CareIcon";
import ButtonV2 from "../Common/components/ButtonV2";
import * as Notification from "../../Utils/Notifications.js";
import Loading from "../Common/Loading";
-import { classNames } from "../../Utils/utils";
+import { classNames, formatName } from "../../Utils/utils";
import { Link } from "raviger";
import routes from "../../Redux/api";
import request from "../../Utils/request/request";
@@ -75,7 +75,7 @@ function ConsentRequestCard({ consent }: IConsentRequestCardProps) {
}
- {consent.requester.first_name} {consent.requester.last_name}
+ {formatName(consent.requester)}
diff --git a/src/Components/Assets/AssetManage.tsx b/src/Components/Assets/AssetManage.tsx
index a9bb6eb78ea..469d1556fb5 100644
--- a/src/Components/Assets/AssetManage.tsx
+++ b/src/Components/Assets/AssetManage.tsx
@@ -10,7 +10,7 @@ import Pagination from "../Common/Pagination";
import { navigate } from "raviger";
import QRCode from "qrcode.react";
import AssetWarrantyCard from "./AssetWarrantyCard";
-import { formatDate, formatDateTime } from "../../Utils/utils";
+import { formatDate, formatDateTime, formatName } from "../../Utils/utils";
import Chip from "../../CAREUI/display/Chip";
import CareIcon from "../../CAREUI/icons/CareIcon";
import ButtonV2 from "../Common/components/ButtonV2";
@@ -148,8 +148,7 @@ const AssetManage = (props: AssetManageProps) => {
- {transaction.performed_by.first_name}{" "}
- {transaction.performed_by.last_name}
+ {formatName(transaction.performed_by)}
diff --git a/src/Components/Common/RelativeDateUserMention.tsx b/src/Components/Common/RelativeDateUserMention.tsx
index 70eadc5b7ed..541c38c3537 100644
--- a/src/Components/Common/RelativeDateUserMention.tsx
+++ b/src/Components/Common/RelativeDateUserMention.tsx
@@ -1,5 +1,5 @@
import CareIcon from "../../CAREUI/icons/CareIcon";
-import { formatDateTime, relativeDate } from "../../Utils/utils";
+import { formatDateTime, formatName, relativeDate } from "../../Utils/utils";
import { PerformedByModel } from "../HCX/misc";
function RelativeDateUserMention(props: {
@@ -28,7 +28,7 @@ function RelativeDateUserMention(props: {
}`}
>
-
{`${props.user.first_name} ${props.user.last_name}`}
+
{formatName(props.user)}
{`@${props.user.username}`}
{props.user.user_type}
diff --git a/src/Components/Common/UserAutocompleteFormField.tsx b/src/Components/Common/UserAutocompleteFormField.tsx
index 442eb0ae4fe..3ff6a3ae7c2 100644
--- a/src/Components/Common/UserAutocompleteFormField.tsx
+++ b/src/Components/Common/UserAutocompleteFormField.tsx
@@ -1,112 +1,158 @@
-import { useAsyncOptions } from "../../Common/hooks/useAsyncOptions";
-import { getFacilityUsers, getUserList } from "../../Redux/actions";
import { Autocomplete } from "../Form/FormFields/Autocomplete";
import FormField from "../Form/FormFields/FormField";
import {
FormFieldBaseProps,
useFormFieldPropsResolver,
} from "../Form/FormFields/Utils";
-import { UserModel } from "../Users/models";
-import { isUserOnline } from "../../Utils/utils";
+import {
+ classNames,
+ formatName,
+ isUserOnline,
+ mergeQueryOptions,
+} from "../../Utils/utils";
import { UserRole } from "../../Common/constants";
-import { useEffect } from "react";
+import { useEffect, useState } from "react";
+import useQuery from "../../Utils/request/useQuery";
+import routes from "../../Redux/api";
+import { UserBareMinimum } from "../Users/models";
-type Props = FormFieldBaseProps & {
+type BaseProps = FormFieldBaseProps & {
placeholder?: string;
- facilityId?: string;
- homeFacility?: string;
userType?: UserRole;
- showActiveStatus?: boolean;
noResultsError?: string;
};
-export default function UserAutocompleteFormField(props: Props) {
+type LinkedFacilitySearchProps = BaseProps & {
+ facilityId: string;
+ homeFacility?: undefined;
+};
+
+type UserSearchProps = BaseProps & {
+ facilityId?: undefined;
+ homeFacility?: string;
+};
+
+export default function UserAutocomplete(props: UserSearchProps) {
const field = useFormFieldPropsResolver(props);
- const { fetchOptions, isLoading, options } = useAsyncOptions(
- "id",
- { queryResponseExtractor: (data) => data.results },
- );
+ const [query, setQuery] = useState("");
+ const [disabled, setDisabled] = useState(false);
- let search_filter: {
- limit: number;
- offset: number;
- home_facility?: string;
- user_type?: string;
- search_text?: string;
- } = { limit: 50, offset: 0 };
+ const { data, loading } = useQuery(routes.userList, {
+ query: {
+ home_facility: props.homeFacility,
+ user_type: props.userType,
+ search_text: query,
+ limit: 50,
+ offset: 0,
+ },
+ });
- if (props.showActiveStatus && props.userType) {
- search_filter = { ...search_filter, user_type: props.userType };
- }
+ useEffect(() => {
+ if (
+ loading ||
+ query ||
+ !field.required ||
+ !props.noResultsError ||
+ !data?.results
+ ) {
+ return;
+ }
- if (props.homeFacility) {
- search_filter = { ...search_filter, home_facility: props.homeFacility };
- }
+ if (data.results.length === 0) {
+ setDisabled(true);
+ field.handleChange(undefined as unknown as UserBareMinimum);
+ }
+ }, [loading, query, field.required, data?.results, props.noResultsError]);
- const getStatusIcon = (option: UserModel) => {
- if (!props.showActiveStatus) return null;
+ return (
+
+ obj.username,
+ )}
+ optionLabel={formatName}
+ optionIcon={userOnlineDot}
+ optionDescription={(option) =>
+ `${option.user_type} - ${option.username}`
+ }
+ optionValue={(option) => option}
+ onQuery={setQuery}
+ isLoading={loading}
+ />
+
+ );
+}
- return (
-
-
-
-
-
- );
- };
+export const LinkedFacilityUsers = (props: LinkedFacilitySearchProps) => {
+ const field = useFormFieldPropsResolver(props);
- const items = options(field.value && [field.value]);
+ const [query, setQuery] = useState("");
- useEffect(() => {
- if (props.required && !isLoading && !items.length && props.noResultsError) {
- field.handleChange(undefined as unknown as UserModel);
- }
- }, [isLoading, items, props.required]);
+ const { data, loading } = useQuery(routes.getFacilityUsers, {
+ pathParams: { facility_id: props.facilityId },
+ query: {
+ user_type: props.userType,
+ search_text: query,
+ limit: 50,
+ offset: 0,
+ },
+ });
const noResultError =
- (props.required && !isLoading && !items.length && props.noResultsError) ||
+ (!query &&
+ !loading &&
+ field.required &&
+ !data?.results?.length &&
+ props.noResultsError) ||
undefined;
+ useEffect(() => {
+ if (noResultError) {
+ field.handleChange(undefined as unknown as UserBareMinimum);
+ }
+ }, [noResultError]);
+
return (
-
-
`${option.user_type}`}
- optionValue={(option) => option}
- onQuery={(query) =>
- fetchOptions(
- props.facilityId
- ? getFacilityUsers(props.facilityId, {
- ...search_filter,
- search_text: query,
- })
- : getUserList({ ...search_filter, search_text: query }),
- )
- }
- isLoading={isLoading}
- />
-
+ obj.username,
+ )}
+ optionLabel={formatName}
+ optionIcon={userOnlineDot}
+ optionDescription={(option) =>
+ `${option.user_type} - ${option.username}`
+ }
+ optionValue={(option) => option}
+ onQuery={setQuery}
+ isLoading={loading}
+ />
);
-}
-
-const getUserFullName = (user: UserModel) => {
- const personName = user.first_name + " " + user.last_name;
- return personName.trim().length > 0 ? personName : user.username || "";
};
+
+const userOnlineDot = (user: UserBareMinimum) => (
+
+);
diff --git a/src/Components/Facility/ConsultationForm.tsx b/src/Components/Facility/ConsultationForm.tsx
index 40d9741d712..c9339ce685b 100644
--- a/src/Components/Facility/ConsultationForm.tsx
+++ b/src/Components/Facility/ConsultationForm.tsx
@@ -33,8 +33,8 @@ import PatientCategorySelect from "../Patient/PatientCategorySelect";
import { SelectFormField } from "../Form/FormFields/SelectFormField";
import TextAreaFormField from "../Form/FormFields/TextAreaFormField";
import TextFormField from "../Form/FormFields/TextFormField";
-import UserAutocompleteFormField from "../Common/UserAutocompleteFormField";
-import { UserModel } from "../Users/models";
+import UserAutocomplete from "../Common/UserAutocompleteFormField";
+import { UserBareMinimum } from "../Users/models";
import { navigate } from "raviger";
import useAppHistory from "../../Common/hooks/useAppHistory";
@@ -90,7 +90,7 @@ type FormDetails = {
referred_by_external?: string;
transferred_from_location?: string;
treating_physician: string;
- treating_physician_object: UserModel | null;
+ treating_physician_object: UserBareMinimum | null;
create_diagnoses: CreateDiagnosis[];
diagnoses: ConsultationDiagnosis[];
symptoms: EncounterSymptom[];
@@ -107,7 +107,7 @@ type FormDetails = {
is_telemedicine: BooleanStrings;
action?: number;
assigned_to: string;
- assigned_to_object: UserModel | null;
+ assigned_to_object: UserBareMinimum | null;
special_instruction: string;
review_interval: number;
weight: string;
@@ -386,8 +386,8 @@ export const ConsultationForm = ({ facilityId, patientId, id }: Props) => {
admitted: data.admitted ? String(data.admitted) : "false",
admitted_to: data.admitted_to ? data.admitted_to : "",
category: data.category
- ? PATIENT_CATEGORIES.find((i) => i.text === data.category)?.id ??
- ""
+ ? (PATIENT_CATEGORIES.find((i) => i.text === data.category)?.id ??
+ "")
: "",
patient_no: data.patient_no ?? "",
OPconsultation: data.consultation_notes,
@@ -782,7 +782,9 @@ export const ConsultationForm = ({ facilityId, patientId, id }: Props) => {
}
};
- const handleDoctorSelect = (event: FieldChangeEvent) => {
+ const handleDoctorSelect = (
+ event: FieldChangeEvent,
+ ) => {
if (event.value?.id) {
dispatch({
type: "set_form",
@@ -1430,7 +1432,7 @@ export const ConsultationForm = ({ facilityId, patientId, id }: Props) => {
className="col-span-6"
ref={fieldRef["treating_physician"]}
>
- {
state.form.treating_physician_object ?? undefined
}
onChange={handleDoctorSelect}
- showActiveStatus
userType={"Doctor"}
homeFacility={facilityId}
error={state.errors.treating_physician}
@@ -1483,8 +1484,7 @@ export const ConsultationForm = ({ facilityId, patientId, id }: Props) => {
className="col-span-6 flex-[2]"
ref={fieldRef["assigned_to"]}
>
-
-
- {user.first_name} {user.last_name}
-
+ {formatName(user)}
- {`${user.first_name} ${user.last_name}`}
+ {formatName(user)}
diff --git a/src/Components/Facility/PatientNoteCard.tsx b/src/Components/Facility/PatientNoteCard.tsx
index 7f00700ff47..7d2a8c6eb70 100644
--- a/src/Components/Facility/PatientNoteCard.tsx
+++ b/src/Components/Facility/PatientNoteCard.tsx
@@ -1,4 +1,9 @@
-import { relativeDate, formatDateTime, classNames } from "../../Utils/utils";
+import {
+ relativeDate,
+ formatDateTime,
+ classNames,
+ formatName,
+} from "../../Utils/utils";
import { USER_TYPES_MAP } from "../../Common/constants";
import { PatientNotesEditModel, PatientNotesModel } from "./models";
import ButtonV2 from "../Common/components/ButtonV2";
@@ -78,8 +83,7 @@ const PatientNoteCard = ({
- {note.created_by_object?.first_name || "Unknown"}{" "}
- {note.created_by_object?.last_name}
+ {formatName(note.created_by_object)}
{note.user_type && (
diff --git a/src/Components/Notifications/NoticeBoard.tsx b/src/Components/Notifications/NoticeBoard.tsx
index db285eb9d6a..98c4daba2c4 100644
--- a/src/Components/Notifications/NoticeBoard.tsx
+++ b/src/Components/Notifications/NoticeBoard.tsx
@@ -1,6 +1,6 @@
import Page from "../Common/components/Page";
import Loading from "../Common/Loading";
-import { formatDateTime } from "../../Utils/utils";
+import { formatDateTime, formatName } from "../../Utils/utils";
import { useTranslation } from "react-i18next";
import CareIcon from "../../CAREUI/icons/CareIcon";
import useQuery from "../../Utils/request/useQuery";
@@ -25,7 +25,7 @@ export const NoticeBoard = () => {
{item.message}
- {`${item.caused_by.first_name} ${item.caused_by.last_name}`} -{" "}
+ {formatName(item.caused_by)} -{" "}
{item.caused_by.user_type}
diff --git a/src/Components/Patient/PatientHome.tsx b/src/Components/Patient/PatientHome.tsx
index 1bee5a3b245..9482dc103dd 100644
--- a/src/Components/Patient/PatientHome.tsx
+++ b/src/Components/Patient/PatientHome.tsx
@@ -18,6 +18,7 @@ import {
classNames,
formatDate,
formatDateTime,
+ formatName,
formatPatientAge,
isAntenatal,
isPostPartum,
@@ -30,7 +31,7 @@ import { useTranslation } from "react-i18next";
import CircularProgress from "../Common/components/CircularProgress";
import Page from "../Common/components/Page";
import ConfirmDialog from "../Common/ConfirmDialog";
-import UserAutocompleteFormField from "../Common/UserAutocompleteFormField";
+import UserAutocomplete from "../Common/UserAutocompleteFormField";
import dayjs from "../../Utils/dayjs";
import { triggerGoal } from "../../Integrations/Plausible";
import useAuthUser from "../../Common/hooks/useAuthUser";
@@ -275,14 +276,9 @@ export const PatientHome = (props: any) => {
Assigned Doctor:
- {
- patientData?.last_consultation?.assigned_to_object
- .first_name
- }
- {
- patientData?.last_consultation?.assigned_to_object
- .last_name
- }
+ {formatName(
+ patientData.last_consultation.assigned_to_object,
+ )}
{patientData?.last_consultation?.assigned_to_object
.alt_phone_number && (
@@ -300,8 +296,7 @@ export const PatientHome = (props: any) => {
Assigned Volunteer:
- {patientData.assigned_to_object.first_name}
- {patientData.assigned_to_object.last_name}
+ {formatName(patientData.assigned_to_object)}
)}
@@ -1395,8 +1390,7 @@ export const PatientHome = (props: any) => {
onClose={() => setOpenAssignVolunteerDialog(false)}
description={
-
{consultation?.treating_physician_object
- ? `${consultation?.treating_physician_object.first_name} ${consultation?.treating_physician_object.last_name}`
+ ? formatName(consultation.treating_physician_object)
: consultation?.deprecated_verified_by}
- {created_by_object?.first_name || "Unknown"}{" "}
- {created_by_object?.last_name}
+ {formatName(created_by_object)}
diff --git a/src/Components/Resource/ResourceBoard.tsx b/src/Components/Resource/ResourceBoard.tsx
index 352942aff83..c80d11bf361 100644
--- a/src/Components/Resource/ResourceBoard.tsx
+++ b/src/Components/Resource/ResourceBoard.tsx
@@ -1,7 +1,7 @@
import { useState, useEffect } from "react";
import { downloadResourceRequests } from "../../Redux/actions";
import { navigate } from "raviger";
-import { classNames } from "../../Utils/utils";
+import { classNames, formatName } from "../../Utils/utils";
import { useDrag, useDrop } from "react-dnd";
import { formatDateTime } from "../../Utils/utils";
import { ExportButton } from "../Common/Export";
@@ -126,8 +126,7 @@ const ResourceCard = ({ resource }: any) => {
>
- {resource.assigned_to_object.first_name}{" "}
- {resource.assigned_to_object.last_name} -{" "}
+ {formatName(resource.assigned_to_object)} -{" "}
{resource.assigned_to_object.user_type}
diff --git a/src/Components/Resource/ResourceDetails.tsx b/src/Components/Resource/ResourceDetails.tsx
index c719556d561..4c01bdc4b9c 100644
--- a/src/Components/Resource/ResourceDetails.tsx
+++ b/src/Components/Resource/ResourceDetails.tsx
@@ -1,5 +1,5 @@
import { useState, lazy } from "react";
-import { classNames, formatDateTime } from "../../Utils/utils";
+import { classNames, formatDateTime, formatName } from "../../Utils/utils";
import { navigate } from "raviger";
import * as Notification from "../../Utils/Notifications.js";
import CommentSection from "./CommentSection";
@@ -241,8 +241,7 @@ export default function ResourceDetails(props: { id: string }) {
- Assigned to: {data.assigned_to_object.first_name}{" "}
- {data.assigned_to_object.last_name} -{" "}
+ Assigned to: {formatName(data.assigned_to_object)} -{" "}
{data.assigned_to_object.user_type}
@@ -359,8 +358,7 @@ export default function ResourceDetails(props: { id: string }) {
- {data?.created_by_object?.first_name}{" "}
- {data?.created_by_object?.last_name}
+ {formatName(data.created_by_object)}
{data.created_date && formatDateTime(data.created_date)}
@@ -373,8 +371,7 @@ export default function ResourceDetails(props: { id: string }) {
- {data?.last_edited_by_object?.first_name}{" "}
- {data?.last_edited_by_object?.last_name}
+ {formatName(data.last_edited_by_object)}
{data.modified_date && formatDateTime(data.modified_date)}
diff --git a/src/Components/Resource/ResourceDetailsUpdate.tsx b/src/Components/Resource/ResourceDetailsUpdate.tsx
index 89d4d5a15ea..178ab596148 100644
--- a/src/Components/Resource/ResourceDetailsUpdate.tsx
+++ b/src/Components/Resource/ResourceDetailsUpdate.tsx
@@ -13,7 +13,7 @@ import RadioFormField from "../Form/FormFields/RadioFormField";
import { SelectFormField } from "../Form/FormFields/SelectFormField";
import TextAreaFormField from "../Form/FormFields/TextAreaFormField";
import TextFormField from "../Form/FormFields/TextFormField";
-import UserAutocompleteFormField from "../Common/UserAutocompleteFormField";
+import UserAutocomplete from "../Common/UserAutocompleteFormField";
import useAppHistory from "../../Common/hooks/useAppHistory";
import useQuery from "../../Utils/request/useQuery.js";
import routes from "../../Redux/api.js";
@@ -209,7 +209,7 @@ export const ResourceDetailsUpdate = (props: resourceProps) => {
{assignedUserLoading ? (
) : (
-
- {created_by_object?.first_name || t("unknown")}{" "}
- {created_by_object?.last_name}
+ {formatName(created_by_object)}
diff --git a/src/Components/Shifting/ListFilter.tsx b/src/Components/Shifting/ListFilter.tsx
index af98f524ed2..12bb17db09c 100644
--- a/src/Components/Shifting/ListFilter.tsx
+++ b/src/Components/Shifting/ListFilter.tsx
@@ -21,7 +21,7 @@ import useConfig from "../../Common/hooks/useConfig";
import useMergeState from "../../Common/hooks/useMergeState";
import { useTranslation } from "react-i18next";
-import UserAutocompleteFormField from "../Common/UserAutocompleteFormField";
+import UserAutocomplete from "../Common/UserAutocompleteFormField";
import { dateQueryString, parsePhoneNumber } from "../../Utils/utils";
import dayjs from "dayjs";
import useQuery from "../../Utils/request/useQuery";
@@ -165,7 +165,7 @@ export default function ListFilter(props: any) {
patient_phone_number:
patient_phone_number === "+91"
? ""
- : parsePhoneNumber(patient_phone_number) ?? "",
+ : (parsePhoneNumber(patient_phone_number) ?? ""),
created_date_before: dateQueryString(created_date_before),
created_date_after: dateQueryString(created_date_after),
modified_date_before: dateQueryString(modified_date_before),
@@ -268,7 +268,7 @@ export default function ListFilter(props: any) {
{isAssignedLoading ? (
) : (
-
- {t("assigned_to")}: {data?.assigned_to_object.first_name}{" "}
- {data.assigned_to_object.last_name} -{" "}
- {data.assigned_to_object.user_type}
+ {t("assigned_to")}: {formatName(data.assigned_to_object)}{" "}
+ - {data.assigned_to_object.user_type}
diff --git a/src/Components/Shifting/ShiftDetailsUpdate.tsx b/src/Components/Shifting/ShiftDetailsUpdate.tsx
index 35e77066ef4..37adecaedcd 100644
--- a/src/Components/Shifting/ShiftDetailsUpdate.tsx
+++ b/src/Components/Shifting/ShiftDetailsUpdate.tsx
@@ -33,8 +33,8 @@ import CircularProgress from "../Common/components/CircularProgress.js";
import Card from "../../CAREUI/display/Card";
import RadioFormField from "../Form/FormFields/RadioFormField.js";
import Page from "../Common/components/Page.js";
-import UserAutocompleteFormField from "../Common/UserAutocompleteFormField.js";
-import { UserModel } from "../Users/models.js";
+import { LinkedFacilityUsers } from "../Common/UserAutocompleteFormField.js";
+import { UserBareMinimum } from "../Users/models.js";
import useQuery from "../../Utils/request/useQuery.js";
import routes from "../../Redux/api.js";
import { IShift } from "./models.js";
@@ -57,7 +57,7 @@ export const ShiftDetailsUpdate = (props: patientShiftProps) => {
const [qParams, _] = useQueryParams();
const [isLoading, setIsLoading] = useState(true);
- const [assignedUser, SetAssignedUser] = useState
();
+ const [assignedUser, SetAssignedUser] = useState();
const [consultationData, setConsultationData] = useState(
{} as ConsultationModel,
@@ -184,7 +184,9 @@ export const ShiftDetailsUpdate = (props: patientShiftProps) => {
return !isInvalidForm;
};
- const handleAssignedUserSelect = (event: FieldChangeEvent) => {
+ const handleAssignedUserSelect = (
+ event: FieldChangeEvent,
+ ) => {
const user = event.value;
const form = { ...state.form };
form["assigned_to"] = user?.id;
@@ -357,7 +359,7 @@ export const ShiftDetailsUpdate = (props: patientShiftProps) => {
(assignedUserLoading ? (
) : (
- {
>
- {shift.assigned_to_object.first_name}{" "}
- {shift.assigned_to_object.last_name} -{" "}
+ {formatName(shift.assigned_to_object)}
+ {" - "}
{shift.assigned_to_object.user_type}
diff --git a/src/Components/Users/ManageUsers.tsx b/src/Components/Users/ManageUsers.tsx
index 19bafebd115..1acd9ac2a3c 100644
--- a/src/Components/Users/ManageUsers.tsx
+++ b/src/Components/Users/ManageUsers.tsx
@@ -14,7 +14,12 @@ import routes from "../../Redux/api.js";
import * as Notification from "../../Utils/Notifications.js";
import request from "../../Utils/request/request.js";
import useQuery from "../../Utils/request/useQuery.js";
-import { classNames, isUserOnline, relativeTime } from "../../Utils/utils";
+import {
+ classNames,
+ formatName,
+ isUserOnline,
+ relativeTime,
+} from "../../Utils/utils";
import { FacilitySelect } from "../Common/FacilitySelect";
import Pagination from "../Common/Pagination";
import UserDetails from "../Common/UserDetails";
@@ -178,7 +183,7 @@ export default function ManageUsers() {
setUserData({
show: true,
username: user.username,
- name: `${user.first_name} ${user.last_name}`,
+ name: formatName(user),
});
};
@@ -238,7 +243,7 @@ export default function ManageUsers() {
id="name"
className="mt-2 flex items-center gap-3 text-2xl font-bold capitalize"
>
- {`${user.first_name} ${user.last_name}`}
+ {formatName(user)}
{user.last_login && cur_online ? (
{
- return fireRequest("userList", [], params, null, key);
-};
-
-export const getFacilityUsers = (id: string, params?: object) => {
- return fireRequest(
- "getFacilityUsers",
- [],
- { ...params },
- { facility_id: id },
- );
-};
-
// asset bed
export const listAssetBeds = (params: object, altKey?: string) =>
fireRequest("listAssetBeds", [], params, {}, altKey);
From 57304aa7bc51d98562a478be3e4027881eea92da Mon Sep 17 00:00:00 2001
From: Shivank Kacker
Date: Fri, 9 Aug 2024 15:54:12 +0530
Subject: [PATCH 015/140] Fixed date time format for edge cases (#8280)
---
.../Facility/ConsultationDetails/Events/GenericEvent.tsx | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/Components/Facility/ConsultationDetails/Events/GenericEvent.tsx b/src/Components/Facility/ConsultationDetails/Events/GenericEvent.tsx
index ca9c13c599b..04ab5657149 100644
--- a/src/Components/Facility/ConsultationDetails/Events/GenericEvent.tsx
+++ b/src/Components/Facility/ConsultationDetails/Events/GenericEvent.tsx
@@ -32,7 +32,10 @@ const formatValue = (value: unknown, key?: string): ReactNode => {
return trimmed;
}
- if (new Date(trimmed).toString() !== "Invalid Date") {
+ const dateTimeRegex =
+ /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?$/;
+
+ if (trimmed.match(dateTimeRegex)) {
return new Date(trimmed).toLocaleString();
}
From e1184537c86f650f20cf42ed61c20fcd464f57af Mon Sep 17 00:00:00 2001
From: Rithvik Nishad
Date: Mon, 12 Aug 2024 13:24:35 +0530
Subject: [PATCH 016/140] Replace old LOC options in Neuro table (#8291)
---
.../Consultations/NeurologicalTables.tsx | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/Components/Facility/Consultations/NeurologicalTables.tsx b/src/Components/Facility/Consultations/NeurologicalTables.tsx
index aac558ca8b0..993f0e6cb9c 100644
--- a/src/Components/Facility/Consultations/NeurologicalTables.tsx
+++ b/src/Components/Facility/Consultations/NeurologicalTables.tsx
@@ -93,13 +93,17 @@ export const NeurologicalTable = (props: any) => {
const [currentPage, setCurrentPage] = useState(1);
const [totalCount, setTotalCount] = useState(0);
+ // To be removed in favour of proper fix upcoming in https://github.com/coronasafe/care_fe/pull/8119/files#diff-3f2dc697ea8b52c1b3b887c76623edb0a4e6ace175573dfbd3a7476ffee979a9L96-L103
const LOC_OPTIONS = [
- { id: 0, value: "Unknown" },
+ { id: 20, value: "Unresponsive" },
+ { id: 15, value: "Responds to Pain" },
+ { id: 10, value: "Responds to Voice" },
{ id: 5, value: "Alert" },
- { id: 10, value: "Drowsy" },
- { id: 15, value: "Stuporous" },
- { id: 20, value: "Comatose" },
- { id: 25, value: "Cannot Be Assessed" },
+ { id: 25, value: "Agitated or Confused" },
+ {
+ id: 30,
+ value: "Onset of Agitation and Confusion",
+ },
];
const REACTION_OPTIONS = [
@@ -294,7 +298,7 @@ export const NeurologicalTable = (props: any) => {
{locData.map((x: any, i: any) => (
{x.date}
From 7ed9d4733bffbd424e7b4f8e4d1d19d3f3f771af Mon Sep 17 00:00:00 2001
From: Rithvik Nishad
Date: Wed, 14 Aug 2024 13:45:22 +0530
Subject: [PATCH 017/140] Migrate rescript components to typescript; uninstall
ReScript (#8316)
* upgrade eslint and prettier packages
* run project wide format
* use prettier for tailwind lint rules
* Rewrite component to typescript (Authored-by: Shivank @skks1212)
* fix unused classname
* unplug rescript
* add critical care index page
* fix issue with dropdown clipping in popup modal
* adds icons for daily round sections
* fix nested `p` tag error
* fix pain chart not working for updates
* fix range form field's text input being able to go beyond range
* fix checbox not working
* fix range form field unable to parse strings as floats
* fix neurological monitoring sending incorrect values for some options
* fix nursing care layout
* add translations to editor index
* fix pressure sore not working
* replace gray shade with secondary
* fix cypress
* fix log update sections not compliant with vite hmr update rules
* fix bunch of issues with range form field
* Fix issues with "Nursing Care" section
* Fix issues with "Dialysis" section
* Fix issues with "Bloog Sugar" section
* Fix issues with "Dialysis" section
* Fix issues with "ABG Analaysis" section
* Fix issues with "IO Balance" section
* Fix issues with "Pupil Size" component
* Fix issues with "Neurological Monitoring" section and RadioFormFIeld
* fix uncontrolled input error in range form field
* Added support for IV and NIV Respiratory Support and fix issues with Resp. support section
* improve type definitions for Human Body component and Pressure Sore
* Fix issues with "Pressure Sore" section
* Visual improvements to Human Chart component
* Fix issues with "Pain Chart" in Vitals section
* Update preview componets in Consultation Dashboard to use newer components
* Check for linked ventilators when filing resp. support section
* update cypress tests
* fix prine position padding and LOC layout
* update LOC choices
* update vertical spacing of radio form field
* Nursing Care: reduced vertical spacing
* Fix I/O Balance select menu not functional
* ABG Analaysis: Correct pH value slider range to max 10 instead of 14
* Respiratory Support: Adds missing range value description for tidal volume
* remove unused field `consciousness_level_detail`
* Fix showig constricted when cannot be assessed selected
* Fixes issue when right pupil's checkbox label causes to toggle left pupil's checbox value to change due to same id
* Reduce spacing in Glasgow Coma Scale
* Fix whitespace breaks in neurological monitoring preview: LOC
* Adds missing support for progress note round type sections
* Fix spacing between title of pressure sore and pain scale preview tabs
* Fix size and spacing of Range Form Field's numeric input and unit selector
* Fix pain scale and pressure sore popup not closing on clicking save button
* Show Dialog Modal for mobile screens for Pressure sore and Pain scale region editors
* ensure consistent colors for pressure sore and painscale buttons and body regions based on score
* fix lint issues
* prettify files that are not pretty
* improve i18n support and code quality refactor
* Critical Care details page part 1 (5 of 11 sections)
* Resp. support section preview
* Pressure Sore section preview
* Nursing Care section preview
* I/O balance section preview
* Vitals section preview
* submit BP mean to backend
* add success notifications for completing
* fix pressure sore colors
* remove unused dependencies
* Revert "remove unused dependencies"
This reverts commit c0e6d5c5b758e33d97e493f417eac82c56881ed7.
---
.eslintrc.json | 14 +-
bsconfig.json | 32 -
.../e2e/patient_spec/patient_logupdate.cy.ts | 8 +-
cypress/pageobject/Patient/PatientCreation.ts | 6 +-
package-lock.json | 3729 ++++++-----------
package.json | 40 +-
src/CAREUI/display/PopupModal.tsx | 124 +
src/CAREUI/interactive/HumanChart.tsx | 90 +
src/Common/constants.tsx | 341 +-
src/Components/ABDM/ABDMFacilityRecords.tsx | 5 +-
src/Components/Assets/AssetFilter.tsx | 2 +-
src/Components/Assets/AssetManage.tsx | 2 +-
src/Components/Assets/AssetWarrantyCard.tsx | 2 +-
src/Components/CameraFeed/AssetBedSelect.tsx | 2 +-
.../LiveMonitoringFilters.tsx | 2 +-
src/Components/CameraFeed/FeedControls.tsx | 2 +-
src/Components/Common/CareIcon.res | 19 -
src/Components/Common/DialogModal.res | 20 -
src/Components/Common/ExcelViewer.tsx | 13 +-
.../Common/RelativeDateUserMention.tsx | 2 +-
src/Components/Common/Sidebar/Sidebar.tsx | 4 +-
src/Components/Common/Sidebar/SidebarItem.tsx | 3 +-
src/Components/Common/SlideOver.res | 33 -
.../Common/TemperatureFormField.tsx | 9 +-
src/Components/Common/Transition.res | 26 -
src/Components/Common/Uptime.tsx | 2 +-
.../Common/UserAutocompleteFormField.tsx | 2 +-
src/Components/Common/components/ButtonV2.tsx | 2 +-
src/Components/Common/components/CheckBox.tsx | 28 -
src/Components/Common/components/Checkbox.res | 15 -
.../Common/components/ContactLink.tsx | 2 +-
src/Components/Common/components/Link.res | 43 -
src/Components/Common/components/Menu.tsx | 2 +-
src/Components/Common/components/Radio.res | 15 -
.../Common/components/SkeletonLoading.res | 144 -
.../types/Prescription__Prescription.res | 75 -
src/Components/Common/utils/ArrayUtils.res | 44 -
src/Components/Common/utils/DateFns.res | 129 -
src/Components/Common/utils/DictUtils.res | 26 -
src/Components/Common/utils/ReactUtils.res | 3 -
.../Common/utils/ValidationUtils.res | 22 -
src/Components/Common/utils/WindowUtils.res | 9 -
.../CriticalCare__ABGAnalysisEditor.res | 216 -
.../ABGAnalysisEditor/DailyRound__ABG.res | 68 -
.../CriticalCare_BloodSugarEditor.res | 144 -
.../DailyRound__BloodSugar.res | 18 -
.../CriticalCareRecording.res | 4 -
.../CriticalCare__API.tsx | 43 -
.../CriticalCare__Index.res | 210 -
.../CriticalCare__Root.res | 47 -
.../DailyRound__Medicines.res | 50 -
.../CriticalCare_DialysisEditor.res | 116 -
.../DialysisEditor/DailyRound__Dialysis.res | 10 -
...ticalCare__HemodynamicParametersEditor.res | 358 --
.../DailyRound__HemodynamicParameters.res | 71 -
.../CriticalCare__IOBalanceEditor.res | 159 -
.../IOBalance/DailyRound__IOBalance.res | 88 -
.../IOBalance/IOBalance__Summary.res | 12 -
.../IOBalance/IOBalance__UnitPicker.res | 98 -
.../IOBalance/IOBalance__UnitSection.res | 91 -
.../CriticalCare__Description.res | 20 -
...icalCare__NeurologicalMonitoringEditor.res | 580 ---
.../CriticalCare__Switch.res | 28 -
.../DailyRound__NeurologicalMonitoring.res | 117 -
.../CriticalCare__NursingCareEditor.res | 157 -
.../NursingCare/DailyRound__NursingCare.res | 12 -
.../Others/CriticalCare__OthersEditor.res | 139 -
.../Others/DailyRound__General.res | 57 -
.../Others/DailyRound__Others.res | 19 -
.../Pain/CriticalCare__PainEditor.res | 398 --
.../Pain/CriticalCare__PainInputModal.res | 200 -
.../Pain/CriticalCare__PainViewer.res | 11 -
.../Pain/DailyRound__Pain.res | 21 -
.../CriticalCare__PressureSoreEditor.res | 421 --
.../CriticalCare__PressureSoreInputModal.res | 263 --
.../CriticalCare__PressureSoreViewer.res | 11 -
.../PressureSore/DailyRound__PressureSore.res | 23 -
.../Recording/CriticalCare__Recording.res | 258 --
.../Recording/Icons/ic-blood_sugar.svg | 3 -
.../Recording/Icons/ic-dialysis.svg | 3 -
.../Recording/Icons/ic-hemodynamic.svg | 3 -
.../Recording/Icons/ic-io_balance.svg | 3 -
.../Recording/Icons/ic-neurology.svg | 11 -
.../Recording/Icons/ic-nursing_care.svg | 3 -
.../Recording/Icons/ic-pressure_sore.svg | 3 -
.../Recording/Icons/ic-ventilator.svg | 3 -
.../Recording/styles.css | 3 -
...iticalCare__VentilatorParametersEditor.res | 335 --
...__VentilatorParametersEditor__Invasive.res | 234 --
...entilatorParametersEditor__NonInvasive.res | 216 -
...Care__VentilatorParametersEditor__None.res | 4 -
...tilatorParametersEditor__OxygenSupport.res | 149 -
.../DailyRound__VentilatorParameters.res | 128 -
.../CriticalCare__DoubleRangeSlider.res | 30 -
.../components/CriticalCare__Dropdown.res | 100 -
.../components/CriticalCare__Home.res | 327 --
.../CriticalCare__InputGroupError.res | 13 -
.../components/CriticalCare__Loader.res | 6 -
.../components/CriticalCare__NumberInput.res | 22 -
.../components/CriticalCare__PageTitle.res | 9 -
.../CriticalCare__PupilRangeSlider.res | 59 -
.../components/CriticalCare__RadioButton.res | 41 -
.../components/Notifications.res | 5 -
.../components/PressureSore.js | 216 -
.../components/ShowOnChecked.res | 25 -
.../components/Slider.res | 147 -
.../components/styles.css | 387 --
.../types/CriticalCare_BloodSugar.res | 56 -
.../types/CriticalCare_Dialysis.res | 20 -
.../types/CriticalCare__ABGAnalysis.res | 43 -
.../types/CriticalCare__DailyRound.res | 95 -
.../CriticalCare__HemodynamicParameters.res | 92 -
...ticalCare__HemodynamicParametersRhythm.res | 4 -
.../types/CriticalCare__IOBalance.res | 72 -
.../CriticalCare__NeurologicalMonitoring.res | 321 --
.../types/CriticalCare__NursingCare.res | 139 -
.../types/CriticalCare__Others.res | 41 -
.../types/CriticalCare__Pain.res | 521 ---
.../types/CriticalCare__PressureSore.res | 535 ---
.../types/CriticalCare__Types.res | 13 -
.../CriticalCare__VentilatorParameters.res | 295 --
.../CriticalCareRecording/types/Options.res | 13 -
.../types/VentilatorParametersType.res | 32 -
src/Components/DeathReport/DeathReport.tsx | 2 +-
.../ConditionVerificationStatusMenu.tsx | 2 +-
src/Components/ExternalResult/ResultList.tsx | 4 +-
src/Components/Facility/BedTypeCard.tsx | 2 +-
.../Facility/CentralNursingStation.tsx | 2 +-
src/Components/Facility/ConsultationCard.tsx | 9 +-
.../ConsultationUpdatesTab.tsx | 2 +-
.../ConsultationDetails/Events/EventsList.tsx | 2 +-
.../Facility/ConsultationDetails/index.tsx | 9 +-
src/Components/Facility/ConsultationForm.tsx | 5 +-
.../Facility/Consultations/Beds.res | 18 -
.../Facility/Consultations/Beds.tsx | 3 +-
.../DailyRounds/LogUpdateCardAttribute.tsx | 4 +-
.../Consultations/DailyRoundsList.tsx | 2 +-
.../Facility/Consultations/Feed.tsx | 12 +-
.../Facility/Consultations/LiveFeed.tsx | 24 +-
.../Facility/Consultations/Mews.tsx | 4 +-
.../Consultations/NeurologicalTables.tsx | 81 +-
.../Facility/Consultations/NursingPlot.tsx | 31 +-
.../Facility/Consultations/NutritionPlots.tsx | 8 +-
.../Facility/Consultations/PainDiagrams.tsx | 14 +-
.../Consultations/PressureSoreDiagrams.tsx | 16 +-
.../Consultations/PrimaryParametersPlot.tsx | 8 +-
.../components/BinaryChronologicalChart.tsx | 4 +-
.../Facility/CoverImageEditModal.tsx | 6 +-
.../Facility/DischargedPatientsList.tsx | 2 +-
src/Components/Facility/FacilityCreate.tsx | 2 +-
src/Components/Facility/FacilityHome.tsx | 4 +-
src/Components/Facility/FacilityUsers.tsx | 2 +-
src/Components/Facility/HospitalList.tsx | 2 +-
src/Components/Facility/InventoryLog.tsx | 8 +-
.../Investigations/InvestigationTable.tsx | 2 +-
.../Investigations/Reports/ReportTable.tsx | 10 +-
.../Investigations/ViewInvestigations.tsx | 2 +-
.../Facility/PatientNotesSlideover.tsx | 4 +-
src/Components/Facility/TreatmentSummary.tsx | 2 +-
src/Components/Facility/models.tsx | 2 -
.../Form/FormFields/Autocomplete.tsx | 4 +-
.../FormFields/AutocompleteMultiselect.tsx | 2 +-
src/Components/Form/FormFields/FormField.tsx | 14 +-
src/Components/Form/FormFields/Month.tsx | 2 +-
.../Form/FormFields/PhoneNumberFormField.tsx | 2 +-
.../Form/FormFields/RadioFormField.tsx | 71 +-
.../Form/FormFields/RangeFormField.tsx | 217 +
.../Form/FormFields/SelectFormField.tsx | 2 +
.../Form/FormFields/TextAreaFormField.tsx | 2 +-
.../Form/FormFields/TextFormField.tsx | 4 +-
src/Components/Form/SelectMenuV2.tsx | 17 +-
.../LogUpdate/CriticalCareEditor.tsx | 209 +
.../LogUpdate/CriticalCarePreview.tsx | 543 +++
.../LogUpdate/Sections/ABGAnalysis.tsx | 125 +
.../LogUpdate/Sections/BloodSugar.tsx | 59 +
.../LogUpdate/Sections/Dialysis.tsx | 35 +
.../LogUpdate/Sections/IOBalance.tsx | 196 +
.../Sections/NeurologicalMonitoring.tsx | 184 +
.../LogUpdate/Sections/NursingCare.tsx | 76 +
.../Sections/PressureSore/PressureSore.tsx | 235 ++
.../LogUpdate/Sections/PressureSore/utils.ts | 25 +
.../RespiratorySupport/OxygenSupport.tsx | 96 +
.../RespiratorySupport/Ventilator.tsx | 125 +
.../VentilatorModeSelector.tsx | 46 +
.../Sections/RespiratorySupport/index.tsx | 138 +
src/Components/LogUpdate/Sections/Vitals.tsx | 168 +
src/Components/LogUpdate/Sections/index.tsx | 50 +
.../LogUpdate/components/PainChart.tsx | 176 +
.../LogUpdate/components/PupilSizeSelect.tsx | 122 +
src/Components/LogUpdate/utils.ts | 14 +
.../Medicine/PrescriptionDetailCard.tsx | 2 +-
src/Components/Medicine/PrintPreview.tsx | 1 -
.../Medicine/ResponsiveMedicineTables.tsx | 2 +-
src/Components/Notifications/NoticeBoard.tsx | 4 +-
.../Patient/DailyRoundListDetails.tsx | 12 +-
src/Components/Patient/DailyRounds.tsx | 14 +-
src/Components/Patient/FileUpload.tsx | 12 +-
.../Patient/InsuranceDetailsCard.tsx | 4 +-
src/Components/Patient/ManagePatients.tsx | 4 +-
.../Patient/PatientConsentRecordBlock.tsx | 4 +-
src/Components/Patient/PatientHome.tsx | 32 +-
src/Components/Patient/PatientInfoCard.tsx | 9 +-
src/Components/Patient/PatientRegister.tsx | 12 +-
src/Components/Patient/SampleTestCard.tsx | 4 +-
src/Components/Patient/SampleViewAdmin.tsx | 2 +-
src/Components/Patient/models.tsx | 100 +-
src/Components/Resource/CommentSection.tsx | 4 +-
src/Components/Resource/ResourceBoard.tsx | 4 +-
src/Components/Resource/ResourceDetails.tsx | 2 +-
src/Components/Scribe/Scribe.tsx | 2 +-
src/Components/Scribe/formDetails.ts | 8 +-
src/Components/Shifting/CommentsSection.tsx | 4 +-
src/Components/Shifting/ShiftDetails.tsx | 2 +-
src/Components/Shifting/ShiftingBoard.tsx | 2 +-
src/Components/Symptoms/SymptomsBuilder.tsx | 2 +-
src/Components/Users/ManageUsers.tsx | 15 +-
src/Components/Users/UserAdd.tsx | 14 +-
src/Components/Users/UserProfile.tsx | 28 +-
.../VitalsMonitor/HL7PatientVitalsMonitor.tsx | 12 +-
.../VitalsMonitor/VitalsMonitorFooter.tsx | 2 +-
src/Locale/en/Auth.json | 2 +-
src/Locale/en/Common.json | 5 +-
src/Locale/en/Consultation.json | 4 +-
src/Locale/en/LogUpdate.json | 56 +
src/Locale/en/Medicine.json | 2 +-
src/Locale/en/index.js | 2 +
src/Redux/api.tsx | 2 +
src/Routers/routes/ConsultationRoutes.tsx | 33 +-
src/Utils/request/README.md | 37 +-
src/Utils/request/useQuery.ts | 2 +-
src/Utils/useFileManager.tsx | 2 +-
src/Utils/useFileUpload.tsx | 8 +-
src/Utils/utils.ts | 52 +
src/style/CAREUI.css | 13 +
src/style/index.css | 2 +-
235 files changed, 5194 insertions(+), 13033 deletions(-)
delete mode 100644 bsconfig.json
create mode 100644 src/CAREUI/display/PopupModal.tsx
create mode 100644 src/CAREUI/interactive/HumanChart.tsx
delete mode 100644 src/Components/Common/CareIcon.res
delete mode 100644 src/Components/Common/DialogModal.res
delete mode 100644 src/Components/Common/SlideOver.res
delete mode 100644 src/Components/Common/Transition.res
delete mode 100644 src/Components/Common/components/CheckBox.tsx
delete mode 100644 src/Components/Common/components/Checkbox.res
delete mode 100644 src/Components/Common/components/Link.res
delete mode 100644 src/Components/Common/components/Radio.res
delete mode 100644 src/Components/Common/components/SkeletonLoading.res
delete mode 100644 src/Components/Common/prescription-builder/types/Prescription__Prescription.res
delete mode 100644 src/Components/Common/utils/ArrayUtils.res
delete mode 100644 src/Components/Common/utils/DateFns.res
delete mode 100644 src/Components/Common/utils/DictUtils.res
delete mode 100644 src/Components/Common/utils/ReactUtils.res
delete mode 100644 src/Components/Common/utils/ValidationUtils.res
delete mode 100644 src/Components/Common/utils/WindowUtils.res
delete mode 100644 src/Components/CriticalCareRecording/ABGAnalysisEditor/CriticalCare__ABGAnalysisEditor.res
delete mode 100644 src/Components/CriticalCareRecording/ABGAnalysisEditor/DailyRound__ABG.res
delete mode 100644 src/Components/CriticalCareRecording/BloodSugarEditor/CriticalCare_BloodSugarEditor.res
delete mode 100644 src/Components/CriticalCareRecording/BloodSugarEditor/DailyRound__BloodSugar.res
delete mode 100644 src/Components/CriticalCareRecording/CriticalCareRecording.res
delete mode 100644 src/Components/CriticalCareRecording/CriticalCare__API.tsx
delete mode 100644 src/Components/CriticalCareRecording/CriticalCare__Index.res
delete mode 100644 src/Components/CriticalCareRecording/CriticalCare__Root.res
delete mode 100644 src/Components/CriticalCareRecording/DailyRound__Medicines.res
delete mode 100644 src/Components/CriticalCareRecording/DialysisEditor/CriticalCare_DialysisEditor.res
delete mode 100644 src/Components/CriticalCareRecording/DialysisEditor/DailyRound__Dialysis.res
delete mode 100644 src/Components/CriticalCareRecording/HemodynamicParameters/CriticalCare__HemodynamicParametersEditor.res
delete mode 100644 src/Components/CriticalCareRecording/HemodynamicParameters/DailyRound__HemodynamicParameters.res
delete mode 100644 src/Components/CriticalCareRecording/IOBalance/CriticalCare__IOBalanceEditor.res
delete mode 100644 src/Components/CriticalCareRecording/IOBalance/DailyRound__IOBalance.res
delete mode 100644 src/Components/CriticalCareRecording/IOBalance/IOBalance__Summary.res
delete mode 100644 src/Components/CriticalCareRecording/IOBalance/IOBalance__UnitPicker.res
delete mode 100644 src/Components/CriticalCareRecording/IOBalance/IOBalance__UnitSection.res
delete mode 100644 src/Components/CriticalCareRecording/NeurologicalMonitoring/CriticalCare__Description.res
delete mode 100644 src/Components/CriticalCareRecording/NeurologicalMonitoring/CriticalCare__NeurologicalMonitoringEditor.res
delete mode 100644 src/Components/CriticalCareRecording/NeurologicalMonitoring/CriticalCare__Switch.res
delete mode 100644 src/Components/CriticalCareRecording/NeurologicalMonitoring/DailyRound__NeurologicalMonitoring.res
delete mode 100644 src/Components/CriticalCareRecording/NursingCare/CriticalCare__NursingCareEditor.res
delete mode 100644 src/Components/CriticalCareRecording/NursingCare/DailyRound__NursingCare.res
delete mode 100644 src/Components/CriticalCareRecording/Others/CriticalCare__OthersEditor.res
delete mode 100644 src/Components/CriticalCareRecording/Others/DailyRound__General.res
delete mode 100644 src/Components/CriticalCareRecording/Others/DailyRound__Others.res
delete mode 100644 src/Components/CriticalCareRecording/Pain/CriticalCare__PainEditor.res
delete mode 100644 src/Components/CriticalCareRecording/Pain/CriticalCare__PainInputModal.res
delete mode 100644 src/Components/CriticalCareRecording/Pain/CriticalCare__PainViewer.res
delete mode 100644 src/Components/CriticalCareRecording/Pain/DailyRound__Pain.res
delete mode 100644 src/Components/CriticalCareRecording/PressureSore/CriticalCare__PressureSoreEditor.res
delete mode 100644 src/Components/CriticalCareRecording/PressureSore/CriticalCare__PressureSoreInputModal.res
delete mode 100644 src/Components/CriticalCareRecording/PressureSore/CriticalCare__PressureSoreViewer.res
delete mode 100644 src/Components/CriticalCareRecording/PressureSore/DailyRound__PressureSore.res
delete mode 100644 src/Components/CriticalCareRecording/Recording/CriticalCare__Recording.res
delete mode 100644 src/Components/CriticalCareRecording/Recording/Icons/ic-blood_sugar.svg
delete mode 100644 src/Components/CriticalCareRecording/Recording/Icons/ic-dialysis.svg
delete mode 100644 src/Components/CriticalCareRecording/Recording/Icons/ic-hemodynamic.svg
delete mode 100644 src/Components/CriticalCareRecording/Recording/Icons/ic-io_balance.svg
delete mode 100644 src/Components/CriticalCareRecording/Recording/Icons/ic-neurology.svg
delete mode 100644 src/Components/CriticalCareRecording/Recording/Icons/ic-nursing_care.svg
delete mode 100644 src/Components/CriticalCareRecording/Recording/Icons/ic-pressure_sore.svg
delete mode 100644 src/Components/CriticalCareRecording/Recording/Icons/ic-ventilator.svg
delete mode 100644 src/Components/CriticalCareRecording/Recording/styles.css
delete mode 100644 src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor.res
delete mode 100644 src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__Invasive.res
delete mode 100644 src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__NonInvasive.res
delete mode 100644 src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__None.res
delete mode 100644 src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__OxygenSupport.res
delete mode 100644 src/Components/CriticalCareRecording/VentilatorParametersEditor/DailyRound__VentilatorParameters.res
delete mode 100644 src/Components/CriticalCareRecording/components/CriticalCare__DoubleRangeSlider.res
delete mode 100644 src/Components/CriticalCareRecording/components/CriticalCare__Dropdown.res
delete mode 100644 src/Components/CriticalCareRecording/components/CriticalCare__Home.res
delete mode 100644 src/Components/CriticalCareRecording/components/CriticalCare__InputGroupError.res
delete mode 100644 src/Components/CriticalCareRecording/components/CriticalCare__Loader.res
delete mode 100644 src/Components/CriticalCareRecording/components/CriticalCare__NumberInput.res
delete mode 100644 src/Components/CriticalCareRecording/components/CriticalCare__PageTitle.res
delete mode 100644 src/Components/CriticalCareRecording/components/CriticalCare__PupilRangeSlider.res
delete mode 100644 src/Components/CriticalCareRecording/components/CriticalCare__RadioButton.res
delete mode 100644 src/Components/CriticalCareRecording/components/Notifications.res
delete mode 100644 src/Components/CriticalCareRecording/components/PressureSore.js
delete mode 100644 src/Components/CriticalCareRecording/components/ShowOnChecked.res
delete mode 100644 src/Components/CriticalCareRecording/components/Slider.res
delete mode 100644 src/Components/CriticalCareRecording/components/styles.css
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare_BloodSugar.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare_Dialysis.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare__ABGAnalysis.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare__DailyRound.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare__HemodynamicParameters.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare__HemodynamicParametersRhythm.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare__IOBalance.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare__NeurologicalMonitoring.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare__NursingCare.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare__Others.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare__Pain.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare__PressureSore.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare__Types.res
delete mode 100644 src/Components/CriticalCareRecording/types/CriticalCare__VentilatorParameters.res
delete mode 100644 src/Components/CriticalCareRecording/types/Options.res
delete mode 100644 src/Components/CriticalCareRecording/types/VentilatorParametersType.res
delete mode 100644 src/Components/Facility/Consultations/Beds.res
create mode 100644 src/Components/Form/FormFields/RangeFormField.tsx
create mode 100644 src/Components/LogUpdate/CriticalCareEditor.tsx
create mode 100644 src/Components/LogUpdate/CriticalCarePreview.tsx
create mode 100644 src/Components/LogUpdate/Sections/ABGAnalysis.tsx
create mode 100644 src/Components/LogUpdate/Sections/BloodSugar.tsx
create mode 100644 src/Components/LogUpdate/Sections/Dialysis.tsx
create mode 100644 src/Components/LogUpdate/Sections/IOBalance.tsx
create mode 100644 src/Components/LogUpdate/Sections/NeurologicalMonitoring.tsx
create mode 100644 src/Components/LogUpdate/Sections/NursingCare.tsx
create mode 100644 src/Components/LogUpdate/Sections/PressureSore/PressureSore.tsx
create mode 100644 src/Components/LogUpdate/Sections/PressureSore/utils.ts
create mode 100644 src/Components/LogUpdate/Sections/RespiratorySupport/OxygenSupport.tsx
create mode 100644 src/Components/LogUpdate/Sections/RespiratorySupport/Ventilator.tsx
create mode 100644 src/Components/LogUpdate/Sections/RespiratorySupport/VentilatorModeSelector.tsx
create mode 100644 src/Components/LogUpdate/Sections/RespiratorySupport/index.tsx
create mode 100644 src/Components/LogUpdate/Sections/Vitals.tsx
create mode 100644 src/Components/LogUpdate/Sections/index.tsx
create mode 100644 src/Components/LogUpdate/components/PainChart.tsx
create mode 100644 src/Components/LogUpdate/components/PupilSizeSelect.tsx
create mode 100644 src/Components/LogUpdate/utils.ts
create mode 100644 src/Locale/en/LogUpdate.json
diff --git a/.eslintrc.json b/.eslintrc.json
index 0fc2f64ddaf..37bfeb77bb9 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -15,7 +15,7 @@
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:i18next/recommended",
- "plugin:tailwindcss/recommended",
+ "plugin:prettier/recommended",
"plugin:storybook/recommended"
],
"overrides": [
@@ -46,10 +46,6 @@
"i18next"
],
"rules": {
- "quotes": [
- "error",
- "double"
- ],
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": [
"error",
@@ -59,6 +55,7 @@
"caughtErrorsIgnorePattern": "^_"
}
],
+ "@typescript-eslint/no-explicit-any": "warn",
"react/react-in-jsx-scope": "off",
"i18next/no-literal-string": [
"warn",
@@ -81,12 +78,7 @@
]
}
}
- ],
- "tailwindcss/no-custom-classname": "off",
- "tailwindcss/migration-from-tailwind-2": "error",
- "tailwindcss/classnames-order": "off",
- "tailwindcss/enforces-shorthand": "off",
- "tailwindcss/no-contradicting-classname": "error"
+ ]
},
"ignorePatterns": [
"dist",
diff --git a/bsconfig.json b/bsconfig.json
deleted file mode 100644
index 140429fcd62..00000000000
--- a/bsconfig.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "name": "care_fe",
- "reason": {
- "react-jsx": 3
- },
- "bsc-flags": [
- "-bs-super-errors"
- ],
- "sources": [
- {
- "dir": "src",
- "subdirs": true
- }
- ],
- "package-specs": [
- {
- "module": "es6",
- "in-source": true
- }
- ],
- "suffix": ".bs.js",
- "bs-dependencies": [
- "@rescript/react",
- "@glennsl/bs-json",
- "rescript-webapi"
- ],
- "ppx-flags": [],
- "refmt": 3,
- "gentypeconfig": {
- "language": "typescript"
- }
-}
\ No newline at end of file
diff --git a/cypress/e2e/patient_spec/patient_logupdate.cy.ts b/cypress/e2e/patient_spec/patient_logupdate.cy.ts
index cd7e30e1575..162ebd7e620 100644
--- a/cypress/e2e/patient_spec/patient_logupdate.cy.ts
+++ b/cypress/e2e/patient_spec/patient_logupdate.cy.ts
@@ -57,7 +57,7 @@ describe("Patient Log Update in Normal, Critical and TeleIcu", () => {
patientLogupdate.typeSpo2(patientSpo2);
patientLogupdate.selectRhythm(patientRhythmType);
patientLogupdate.typeRhythm(patientRhythm);
- cy.get("#consciousness_level-2").click();
+ cy.get("#consciousness_level-option-RESPONDS_TO_PAIN").click();
cy.submitButton("Save");
cy.verifyNotification("Telemedicine log created successfully");
});
@@ -82,7 +82,7 @@ describe("Patient Log Update in Normal, Critical and TeleIcu", () => {
patientLogupdate.typeSpo2(patientSpo2);
patientLogupdate.selectRhythm(patientRhythmType);
patientLogupdate.typeRhythm(patientRhythm);
- cy.get("#consciousness_level-2").click();
+ cy.get("#consciousness_level-option-RESPONDS_TO_PAIN").click();
cy.submitButton("Save");
cy.verifyNotification("Brief Update log created successfully");
cy.closeNotification();
@@ -137,7 +137,7 @@ describe("Patient Log Update in Normal, Critical and TeleIcu", () => {
patientLogupdate.typeSpo2(patientSpo2);
patientLogupdate.selectRhythm(patientRhythmType);
patientLogupdate.typeRhythm(patientRhythm);
- cy.get("#consciousness_level-2").click();
+ cy.get("#consciousness_level-option-RESPONDS_TO_PAIN").click();
cy.submitButton("Save");
cy.wait(2000);
cy.verifyNotification("Brief Update log created successfully");
@@ -161,7 +161,7 @@ describe("Patient Log Update in Normal, Critical and TeleIcu", () => {
patientLogupdate.typePulse(patientPulse);
patientLogupdate.typeTemperature(patientTemperature);
patientLogupdate.typeRespiratory(patientRespiratory);
- cy.get("#consciousness_level-2").click();
+ cy.get("#consciousness_level-option-RESPONDS_TO_PAIN").click();
cy.submitButton("Save");
cy.verifyNotification("Brief Update log created successfully");
cy.closeNotification();
diff --git a/cypress/pageobject/Patient/PatientCreation.ts b/cypress/pageobject/Patient/PatientCreation.ts
index 482c281c63a..739601d5b56 100644
--- a/cypress/pageobject/Patient/PatientCreation.ts
+++ b/cypress/pageobject/Patient/PatientCreation.ts
@@ -46,7 +46,7 @@ export class PatientPage {
}
checkPhoneNumberIsEmergencyNumber() {
- cy.get("#emergency_contact_checkbox > div > input").click();
+ cy.get("#emergency_contact_checkbox").click();
}
typePatientDateOfBirth(dateOfBirth: string) {
@@ -93,11 +93,11 @@ export class PatientPage {
}
clickPatientAntenatalStatusYes() {
- cy.get("#is_antenatal-0").click();
+ cy.get("#is_antenatal-option-true").click();
}
clickPatientPostPartumStatusYes() {
- cy.get("#is_postpartum-0").click();
+ cy.get("#is_postpartum-option-true").click();
}
clickCancelButton() {
diff --git a/package-lock.json b/package-lock.json
index 2458c891d41..d3837e25bcf 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,7 +17,6 @@
"@pnotify/core": "^5.2.0",
"@pnotify/mobile": "^5.2.0",
"@react-spring/web": "^9.7.3",
- "@rescript/react": "^0.11.0",
"@sentry/browser": "^8.12.0",
"@yaireo/ui-range": "^2.1.15",
"@yudiel/react-qr-scanner": "^2.0.0-beta.3",
@@ -29,7 +28,6 @@
"dayjs": "^1.11.11",
"echarts": "^5.5.0",
"echarts-for-react": "^3.0.2",
- "eslint-mdx": "^3.1.5",
"events": "^3.3.0",
"glob": "^10.4.2",
"hi-profiles": "^1.0.6",
@@ -57,7 +55,6 @@
"redux": "^4.2.1",
"redux-thunk": "^2.4.2",
"rehype-raw": "^6.1.1",
- "rescript-webapi": "^0.8.0",
"use-keyboard-shortcut": "^1.1.6",
"uuid": "^9.0.1",
"xlsx": "^0.18.5"
@@ -84,37 +81,28 @@
"@types/react-google-recaptcha": "^2.1.9",
"@types/react-qr-reader": "^2.1.7",
"@types/react-transition-group": "^4.4.10",
- "@typescript-eslint/eslint-plugin": "^5.61.0",
- "@typescript-eslint/parser": "^5.61.0",
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
"@vitejs/plugin-react-swc": "^3.6.0",
"autoprefixer": "^10.4.19",
"cypress": "^13.13.1",
"cypress-localstorage-commands": "^2.2.5",
"cypress-split": "^1.23.2",
- "eslint": "^8.44.0",
- "eslint-config-prettier": "^8.8.0",
- "eslint-config-standard": "^17.1.0",
- "eslint-plugin-i18next": "^6.0.3",
- "eslint-plugin-import": "^2.29.1",
- "eslint-plugin-jsx-a11y": "^6.8.0",
- "eslint-plugin-mdx": "^2.2.0",
- "eslint-plugin-only-warn": "^1.1.0",
- "eslint-plugin-prettier": "^5.1.3",
- "eslint-plugin-promise": "^6.1.1",
- "eslint-plugin-react": "^7.34.1",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-i18next": "^6.0.9",
+ "eslint-plugin-mdx": "^3.1.5",
+ "eslint-plugin-prettier": "^5.2.1",
+ "eslint-plugin-react": "^7.35.0",
"eslint-plugin-react-hooks": "^4.6.2",
"eslint-plugin-storybook": "^0.8.0",
- "eslint-plugin-tailwindcss": "^3.15.1",
"gentype": "^4.5.0",
"husky": "^8.0.3",
"lint-staged": "^13.2.3",
"local-cypress": "^1.2.6",
"postcss": "^8.4.38",
- "prettier": "^3.2.5",
- "prettier-plugin-tailwindcss": "^0.5.14",
+ "prettier": "^3.3.3",
+ "prettier-plugin-tailwindcss": "^0.6.5",
"prop-types": "^15.8.1",
"redux-devtools-extension": "^2.13.9",
- "rescript": "^10.1.4",
"snyk": "^1.1291.0",
"storybook": "^8.1.0",
"tailwindcss": "^3.4.3",
@@ -131,6 +119,8 @@
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
"integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "dev": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -2696,6 +2686,7 @@
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dev": true,
"dependencies": {
"eslint-visitor-keys": "^3.3.0"
},
@@ -2707,9 +2698,10 @@
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
- "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+ "version": "4.11.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz",
+ "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==",
+ "dev": true,
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
@@ -2718,6 +2710,8 @@
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
"integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
@@ -2740,6 +2734,8 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -2751,15 +2747,12 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/@eslint/eslintrc/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
"node_modules/@eslint/eslintrc/node_modules/globals": {
"version": "13.24.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
"integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -2770,26 +2763,19 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
"node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "peer": true
},
"node_modules/@eslint/eslintrc/node_modules/type-fest": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "peer": true,
"engines": {
"node": ">=10"
},
@@ -2801,6 +2787,8 @@
"version": "8.57.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
"integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
+ "dev": true,
+ "peer": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
@@ -2874,6 +2862,9 @@
"version": "0.11.14",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
"integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+ "deprecated": "Use @eslint/config-array instead",
+ "dev": true,
+ "peer": true,
"dependencies": {
"@humanwhocodes/object-schema": "^2.0.2",
"debug": "^4.3.1",
@@ -2887,6 +2878,8 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
"integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "peer": true,
"engines": {
"node": ">=12.22"
},
@@ -2896,9 +2889,12 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
- "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw=="
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+ "deprecated": "Use @eslint/object-schema instead",
+ "dev": true,
+ "peer": true
},
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
@@ -3157,6 +3153,7 @@
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -3169,6 +3166,7 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
"engines": {
"node": ">= 8"
}
@@ -3177,6 +3175,7 @@
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -3186,16 +3185,17 @@
}
},
"node_modules/@npmcli/config": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-8.2.0.tgz",
- "integrity": "sha512-YoEYZFg0hRSRP/Chmq+J4FvULFvji6SORUYWQc10FiJ+ReAnViXcDCENg6kM6dID04bAoKNUygrby798+gYBbQ==",
+ "version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-8.3.4.tgz",
+ "integrity": "sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw==",
+ "dev": true,
"dependencies": {
"@npmcli/map-workspaces": "^3.0.2",
+ "@npmcli/package-json": "^5.1.1",
"ci-info": "^4.0.0",
- "ini": "^4.1.0",
- "nopt": "^7.0.0",
- "proc-log": "^3.0.0",
- "read-package-json-fast": "^3.0.2",
+ "ini": "^4.1.2",
+ "nopt": "^7.2.1",
+ "proc-log": "^4.2.0",
"semver": "^7.3.5",
"walk-up-path": "^3.0.1"
},
@@ -3207,6 +3207,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
"integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
+ "dev": true,
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
@@ -3215,6 +3216,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
"integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -3226,28 +3228,19 @@
}
},
"node_modules/@npmcli/config/node_modules/ini": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
- "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz",
+ "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
+ "dev": true,
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@npmcli/config/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/@npmcli/config/node_modules/nopt": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz",
- "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==",
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz",
+ "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
+ "dev": true,
"dependencies": {
"abbrev": "^2.0.0"
},
@@ -3259,12 +3252,66 @@
}
},
"node_modules/@npmcli/config/node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/git": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz",
+ "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==",
+ "dev": true,
"dependencies": {
- "lru-cache": "^6.0.0"
+ "@npmcli/promise-spawn": "^7.0.0",
+ "ini": "^4.1.3",
+ "lru-cache": "^10.0.1",
+ "npm-pick-manifest": "^9.0.0",
+ "proc-log": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "promise-retry": "^2.0.1",
+ "semver": "^7.3.5",
+ "which": "^4.0.0"
},
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@npmcli/git/node_modules/ini": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz",
+ "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@npmcli/git/node_modules/isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@npmcli/git/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true
+ },
+ "node_modules/@npmcli/git/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
"bin": {
"semver": "bin/semver.js"
},
@@ -3272,15 +3319,26 @@
"node": ">=10"
}
},
- "node_modules/@npmcli/config/node_modules/yallist": {
+ "node_modules/@npmcli/git/node_modules/which": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^3.1.1"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^16.13.0 || >=18.0.0"
+ }
},
"node_modules/@npmcli/map-workspaces": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz",
- "integrity": "sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz",
+ "integrity": "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==",
+ "dev": true,
"dependencies": {
"@npmcli/name-from-folder": "^2.0.0",
"glob": "^10.2.2",
@@ -3295,14 +3353,16 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@npmcli/map-workspaces/node_modules/minimatch": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -3317,10 +3377,118 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz",
"integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@npmcli/package-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz",
+ "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==",
+ "dev": true,
+ "dependencies": {
+ "@npmcli/git": "^5.0.0",
+ "glob": "^10.2.2",
+ "hosted-git-info": "^7.0.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "normalize-package-data": "^6.0.0",
+ "proc-log": "^4.0.0",
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@npmcli/package-json/node_modules/hosted-git-info": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
+ "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^10.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@npmcli/package-json/node_modules/json-parse-even-better-errors": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+ "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
+ "dev": true,
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
+ "node_modules/@npmcli/package-json/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true
+ },
+ "node_modules/@npmcli/package-json/node_modules/normalize-package-data": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
+ "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^7.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@npmcli/package-json/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/promise-spawn": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz",
+ "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==",
+ "dev": true,
+ "dependencies": {
+ "which": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@npmcli/promise-spawn/node_modules/isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@npmcli/promise-spawn/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^3.1.1"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
@@ -3334,6 +3502,7 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
"integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
+ "dev": true,
"engines": {
"node": "^12.20.0 || ^14.18.0 || >=16.0.0"
},
@@ -3768,15 +3937,6 @@
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
- "node_modules/@rescript/react": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@rescript/react/-/react-0.11.0.tgz",
- "integrity": "sha512-RzoAO+3cJwXE2D7yodMo4tBO2EkeDYCN/I/Sj/yRweI3S1CY1ZBOF/GMcVtjeIurJJt7KMveqQXTaRrqoGZBBg==",
- "peerDependencies": {
- "react": ">=18.0.0",
- "react-dom": ">=18.0.0"
- }
- },
"node_modules/@rollup/plugin-babel": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
@@ -6136,6 +6296,7 @@
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz",
"integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==",
+ "dev": true,
"dependencies": {
"@types/estree": "*"
}
@@ -6201,6 +6362,7 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.3.tgz",
"integrity": "sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==",
+ "dev": true,
"dependencies": {
"@types/node": "*"
}
@@ -6315,6 +6477,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
"integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
+ "dev": true,
"dependencies": {
"@types/estree": "*"
}
@@ -6396,19 +6559,14 @@
"node_modules/@types/is-empty": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.3.tgz",
- "integrity": "sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw=="
+ "integrity": "sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw==",
+ "dev": true
},
"node_modules/@types/json-schema": {
"version": "7.0.15",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
},
- "node_modules/@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
- "dev": true
- },
"node_modules/@types/lodash": {
"version": "4.17.0",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz",
@@ -6622,7 +6780,8 @@
"node_modules/@types/supports-color": {
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.3.tgz",
- "integrity": "sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg=="
+ "integrity": "sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==",
+ "dev": true
},
"node_modules/@types/trusted-types": {
"version": "2.0.7",
@@ -6633,7 +6792,8 @@
"node_modules/@types/unist": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
- "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ=="
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
},
"node_modules/@types/use-sync-external-store": {
"version": "0.0.3",
@@ -6663,32 +6823,31 @@
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
- "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz",
+ "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==",
"dev": true,
"dependencies": {
- "@eslint-community/regexpp": "^4.4.0",
- "@typescript-eslint/scope-manager": "5.62.0",
- "@typescript-eslint/type-utils": "5.62.0",
- "@typescript-eslint/utils": "5.62.0",
- "debug": "^4.3.4",
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "7.18.0",
+ "@typescript-eslint/type-utils": "7.18.0",
+ "@typescript-eslint/utils": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.0",
"graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "natural-compare-lite": "^1.4.0",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
+ "ignore": "^5.3.1",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^1.3.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^5.0.0",
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "@typescript-eslint/parser": "^7.0.0",
+ "eslint": "^8.56.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -6696,59 +6855,26 @@
}
}
},
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/@typescript-eslint/parser": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
- "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz",
+ "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.62.0",
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/typescript-estree": "5.62.0",
- "debug": "^4.3.4"
+ "@typescript-eslint/typescript-estree": "7.18.0",
+ "@typescript-eslint/utils": "7.18.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.3.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "eslint": "^8.56.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -6756,43 +6882,144 @@
}
}
},
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
- "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz",
+ "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
"dev": true,
- "dependencies": {
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/visitor-keys": "5.62.0"
- },
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/type-utils": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
- "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz",
+ "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "5.62.0",
- "@typescript-eslint/utils": "5.62.0",
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.0",
"debug": "^4.3.4",
- "tsutils": "^3.21.0"
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz",
+ "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@typescript-eslint/scope-manager": "7.18.0",
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/typescript-estree": "7.18.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz",
+ "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.18.0",
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz",
+ "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "7.18.0",
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/typescript-estree": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "*"
+ "eslint": "^8.56.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -6800,35 +7027,38 @@
}
}
},
- "node_modules/@typescript-eslint/types": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
- "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz",
+ "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
"dev": true,
+ "peer": true,
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
- "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz",
+ "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==",
"dev": true,
+ "peer": true,
"dependencies": {
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/visitor-keys": "5.62.0",
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
@@ -6840,26 +7070,56 @@
}
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz",
+ "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==",
"dev": true,
+ "peer": true,
"dependencies": {
- "yallist": "^4.0.0"
+ "@typescript-eslint/types": "7.18.0",
+ "eslint-visitor-keys": "^3.4.3"
},
"engines": {
- "node": ">=10"
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "peer": true,
"dependencies": {
- "lru-cache": "^6.0.0"
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
},
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "peer": true,
"bin": {
"semver": "bin/semver.js"
},
@@ -6867,26 +7127,79 @@
"node": ">=10"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz",
+ "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz",
+ "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz",
+ "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.18.0",
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
},
- "node_modules/@typescript-eslint/utils": {
+ "node_modules/@typescript-eslint/types": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
- "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+ "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+ "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
"dev": true,
"dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@types/json-schema": "^7.0.9",
- "@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.62.0",
"@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/typescript-estree": "5.62.0",
- "eslint-scope": "^5.1.1",
- "semver": "^7.3.7"
+ "@typescript-eslint/visitor-keys": "5.62.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -6895,11 +7208,13 @@
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/@typescript-eslint/utils/node_modules/lru-cache": {
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
@@ -6911,7 +7226,7 @@
"node": ">=10"
}
},
- "node_modules/@typescript-eslint/utils/node_modules/semver": {
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
"version": "7.6.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
"integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
@@ -6926,7 +7241,7 @@
"node": ">=10"
}
},
- "node_modules/@typescript-eslint/utils/node_modules/yallist": {
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
@@ -6952,7 +7267,8 @@
"node_modules/@ungap/structured-clone": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
},
"node_modules/@vitejs/plugin-react-swc": {
"version": "3.6.0",
@@ -7399,6 +7715,7 @@
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -7410,6 +7727,7 @@
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
@@ -7616,6 +7934,11 @@
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
"dev": true
},
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
"node_modules/aria-hidden": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz",
@@ -7708,26 +8031,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/array.prototype.findlastindex": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
- "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/array.prototype.flat": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
@@ -7764,29 +8067,20 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/array.prototype.toreversed": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz",
- "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- }
- },
"node_modules/array.prototype.tosorted": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz",
- "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.1.0",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
"es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/arraybuffer.prototype.slice": {
@@ -7872,12 +8166,6 @@
"node": ">=4"
}
},
- "node_modules/ast-types-flow": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
- "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==",
- "dev": true
- },
"node_modules/astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
@@ -7974,15 +8262,6 @@
"integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==",
"dev": true
},
- "node_modules/axe-core": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz",
- "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/axios": {
"version": "1.6.8",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
@@ -7993,15 +8272,6 @@
"proxy-from-env": "^1.1.0"
}
},
- "node_modules/axobject-query": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
- "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==",
- "dev": true,
- "dependencies": {
- "dequal": "^2.0.3"
- }
- },
"node_modules/babel-core": {
"version": "7.0.0-bridge.0",
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
@@ -8225,6 +8495,7 @@
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "devOptional": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -8346,29 +8617,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/builtins": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz",
- "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "semver": "^7.0.0"
- }
- },
- "node_modules/builtins/node_modules/semver": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.1.tgz",
- "integrity": "sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==",
- "dev": true,
- "peer": true,
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
@@ -8467,6 +8715,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
"integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
+ "dev": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -8506,6 +8755,7 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8531,6 +8781,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
"integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
+ "dev": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -8913,12 +9164,14 @@
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "devOptional": true
},
"node_modules/concat-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
"integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+ "dev": true,
"engines": [
"node >= 6.0"
],
@@ -9050,22 +9303,6 @@
}
}
},
- "node_modules/cosmiconfig/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/cosmiconfig/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
"node_modules/crc-32": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
@@ -9297,12 +9534,6 @@
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
- "node_modules/damerau-levenshtein": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
- "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
- "dev": true
- },
"node_modules/dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@@ -9490,7 +9721,9 @@
"node_modules/deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true,
+ "peer": true
},
"node_modules/deepmerge": {
"version": "4.3.1",
@@ -9881,6 +10114,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
"integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
+ "dev": true,
"dependencies": {
"dequal": "^2.0.0"
},
@@ -9944,6 +10178,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
"integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
"dependencies": {
"esutils": "^2.0.2"
},
@@ -10172,6 +10407,12 @@
"node": ">=4"
}
},
+ "node_modules/err-code": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
+ "dev": true
+ },
"node_modules/error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -10282,14 +10523,14 @@
}
},
"node_modules/es-iterator-helpers": {
- "version": "1.0.18",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz",
- "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==",
+ "version": "1.0.19",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz",
+ "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.0",
+ "es-abstract": "^1.23.3",
"es-errors": "^1.3.0",
"es-set-tostringtag": "^2.0.3",
"function-bind": "^1.1.2",
@@ -10459,6 +10700,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
"engines": {
"node": ">=10"
},
@@ -10491,6 +10733,8 @@
"version": "8.57.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
"integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@@ -10541,39 +10785,10 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint-compat-utils": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
- "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "semver": "^7.5.4"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "eslint": ">=6.0.0"
- }
- },
- "node_modules/eslint-compat-utils/node_modules/semver": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.1.tgz",
- "integrity": "sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==",
- "dev": true,
- "peer": true,
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/eslint-config-prettier": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
- "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
+ "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
"dev": true,
"bin": {
"eslint-config-prettier": "bin/cli.js"
@@ -10582,59 +10797,11 @@
"eslint": ">=7.0.0"
}
},
- "node_modules/eslint-config-standard": {
- "version": "17.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz",
- "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "eslint": "^8.0.1",
- "eslint-plugin-import": "^2.25.2",
- "eslint-plugin-n": "^15.0.0 || ^16.0.0 ",
- "eslint-plugin-promise": "^6.0.0"
- }
- },
- "node_modules/eslint-import-resolver-node": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
- "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
- "dev": true,
- "dependencies": {
- "debug": "^3.2.7",
- "is-core-module": "^2.13.0",
- "resolve": "^1.22.4"
- }
- },
- "node_modules/eslint-import-resolver-node/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
"node_modules/eslint-mdx": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/eslint-mdx/-/eslint-mdx-3.1.5.tgz",
"integrity": "sha512-ynztX0k7CQ3iDL7fDEIeg3g0O/d6QPv7IBI9fdYLhXp5fAp0fi8X22xF/D3+Pk0f90R27uwqa1clHpay6t0l8Q==",
+ "dev": true,
"dependencies": {
"acorn": "^8.11.3",
"acorn-jsx": "^5.3.2",
@@ -10663,9 +10830,10 @@
}
},
"node_modules/eslint-mdx/node_modules/acorn": {
- "version": "8.11.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "version": "8.12.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
+ "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
+ "dev": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -10673,107 +10841,135 @@
"node": ">=0.4.0"
}
},
- "node_modules/eslint-module-utils": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz",
- "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==",
+ "node_modules/eslint-plugin-i18next": {
+ "version": "6.0.9",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-i18next/-/eslint-plugin-i18next-6.0.9.tgz",
+ "integrity": "sha512-tAof/p58sN4Az+P6kqu+RijqddalHhz0X6fe+exyBJAUvN9Yk1plOKl8XMySCIQS+vnRWbzzThgHXeDe++uEXQ==",
"dev": true,
"dependencies": {
- "debug": "^3.2.7"
+ "lodash": "^4.17.21",
+ "requireindex": "~1.1.0"
},
"engines": {
- "node": ">=4"
- },
- "peerDependenciesMeta": {
- "eslint": {
- "optional": true
- }
+ "node": ">=0.10.0"
}
},
- "node_modules/eslint-module-utils/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "node_modules/eslint-plugin-mdx": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mdx/-/eslint-plugin-mdx-3.1.5.tgz",
+ "integrity": "sha512-lUE7tP7IrIRHU3gTtASDe5u4YM2SvQveYVJfuo82yn3MLh/B/v05FNySURCK4aIxIYF1QYo3IRemQG/lyQzpAg==",
"dev": true,
"dependencies": {
- "ms": "^2.1.1"
+ "eslint-mdx": "^3.1.5",
+ "eslint-plugin-markdown": "^3.0.1",
+ "remark-mdx": "^3.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-stringify": "^11.0.0",
+ "tslib": "^2.6.2",
+ "unified": "^11.0.4",
+ "vfile": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ },
+ "peerDependencies": {
+ "eslint": ">=8.0.0"
}
},
- "node_modules/eslint-plugin-es-x": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz",
- "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==",
+ "node_modules/eslint-plugin-mdx/node_modules/eslint-plugin-markdown": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz",
+ "integrity": "sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==",
"dev": true,
- "peer": true,
"dependencies": {
- "@eslint-community/eslint-utils": "^4.1.2",
- "@eslint-community/regexpp": "^4.6.0",
- "eslint-compat-utils": "^0.5.0"
+ "mdast-util-from-markdown": "^0.8.5"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ota-meshi"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"peerDependencies": {
- "eslint": ">=8"
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/eslint-plugin-i18next": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-i18next/-/eslint-plugin-i18next-6.0.3.tgz",
- "integrity": "sha512-RtQXYfg6PZCjejIQ/YG+dUj/x15jPhufJ9hUDGH0kCpJ6CkVMAWOQ9exU1CrbPmzeykxLjrXkjAaOZF/V7+DOA==",
+ "node_modules/eslint-plugin-prettier": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz",
+ "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==",
"dev": true,
"dependencies": {
- "lodash": "^4.17.21",
- "requireindex": "~1.1.0"
+ "prettier-linter-helpers": "^1.0.0",
+ "synckit": "^0.9.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint-plugin-prettier"
+ },
+ "peerDependencies": {
+ "@types/eslint": ">=8.0.0",
+ "eslint": ">=8.0.0",
+ "eslint-config-prettier": "*",
+ "prettier": ">=3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/eslint": {
+ "optional": true
+ },
+ "eslint-config-prettier": {
+ "optional": true
+ }
}
},
- "node_modules/eslint-plugin-import": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
- "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
+ "node_modules/eslint-plugin-react": {
+ "version": "7.35.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz",
+ "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==",
"dev": true,
"dependencies": {
- "array-includes": "^3.1.7",
- "array.prototype.findlastindex": "^1.2.3",
- "array.prototype.flat": "^1.3.2",
+ "array-includes": "^3.1.8",
+ "array.prototype.findlast": "^1.2.5",
"array.prototype.flatmap": "^1.3.2",
- "debug": "^3.2.7",
+ "array.prototype.tosorted": "^1.1.4",
"doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.8.0",
- "hasown": "^2.0.0",
- "is-core-module": "^2.13.1",
- "is-glob": "^4.0.3",
+ "es-iterator-helpers": "^1.0.19",
+ "estraverse": "^5.3.0",
+ "hasown": "^2.0.2",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
- "object.fromentries": "^2.0.7",
- "object.groupby": "^1.0.1",
- "object.values": "^1.1.7",
+ "object.entries": "^1.1.8",
+ "object.fromentries": "^2.0.8",
+ "object.values": "^1.2.0",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.5",
"semver": "^6.3.1",
- "tsconfig-paths": "^3.15.0"
+ "string.prototype.matchall": "^4.0.11",
+ "string.prototype.repeat": "^1.0.0"
},
"engines": {
"node": ">=4"
},
"peerDependencies": {
- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
}
},
- "node_modules/eslint-plugin-import/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "node_modules/eslint-plugin-react-hooks": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
+ "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
"dev": true,
- "dependencies": {
- "ms": "^2.1.1"
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
}
},
- "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "node_modules/eslint-plugin-react/node_modules/doctrine": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
"integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
@@ -10785,1718 +10981,91 @@
"node": ">=0.10.0"
}
},
- "node_modules/eslint-plugin-jsx-a11y": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz",
- "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==",
+ "node_modules/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
"dev": true,
"dependencies": {
- "@babel/runtime": "^7.23.2",
- "aria-query": "^5.3.0",
- "array-includes": "^3.1.7",
- "array.prototype.flatmap": "^1.3.2",
- "ast-types-flow": "^0.0.8",
- "axe-core": "=4.7.0",
- "axobject-query": "^3.2.1",
- "damerau-levenshtein": "^1.0.8",
- "emoji-regex": "^9.2.2",
- "es-iterator-helpers": "^1.0.15",
- "hasown": "^2.0.0",
- "jsx-ast-utils": "^3.3.5",
- "language-tags": "^1.0.9",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.7",
- "object.fromentries": "^2.0.7"
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
},
- "engines": {
- "node": ">=4.0"
+ "bin": {
+ "resolve": "bin/resolve"
},
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/eslint-plugin-markdown": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz",
- "integrity": "sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==",
+ "node_modules/eslint-plugin-storybook": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.8.0.tgz",
+ "integrity": "sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==",
"dev": true,
"dependencies": {
- "mdast-util-from-markdown": "^0.8.5"
+ "@storybook/csf": "^0.0.1",
+ "@typescript-eslint/utils": "^5.62.0",
+ "requireindex": "^1.2.0",
+ "ts-dedent": "^2.2.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">= 18"
},
"peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "eslint": ">=6"
}
},
- "node_modules/eslint-plugin-mdx": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mdx/-/eslint-plugin-mdx-2.3.4.tgz",
- "integrity": "sha512-kr6tgaifKL+AVGYMtdYc2VCsIjfYQXuUCKz4rK58d2DpnPFHrmgXIOC7NcMvaEld+VOEpxBSCCnjnsf4IVCQGg==",
+ "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz",
+ "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==",
"dev": true,
"dependencies": {
- "eslint-mdx": "^2.3.4",
- "eslint-plugin-markdown": "^3.0.1",
- "remark-mdx": "^2.3.0",
- "remark-parse": "^10.0.2",
- "remark-stringify": "^10.0.3",
- "tslib": "^2.6.1",
- "unified": "^10.1.2",
- "vfile": "^5.3.7"
+ "lodash": "^4.17.15"
+ }
+ },
+ "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+ "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0"
},
"engines": {
- "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"type": "opencollective",
- "url": "https://opencollective.com/unified"
- },
- "peerDependencies": {
- "eslint": ">=8.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/@npmcli/config": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-6.4.1.tgz",
- "integrity": "sha512-uSz+elSGzjCMANWa5IlbGczLYPkNI/LeR+cHrgaTqTrTSh9RHhOFA4daD2eRUz6lMtOW+Fnsb+qv7V2Zz8ML0g==",
- "dev": true,
- "dependencies": {
- "@npmcli/map-workspaces": "^3.0.2",
- "ci-info": "^4.0.0",
- "ini": "^4.1.0",
- "nopt": "^7.0.0",
- "proc-log": "^3.0.0",
- "read-package-json-fast": "^3.0.2",
- "semver": "^7.3.5",
- "walk-up-path": "^3.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/@types/estree": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
- "dev": true
- },
- "node_modules/eslint-plugin-mdx/node_modules/@types/node": {
- "version": "18.19.28",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.28.tgz",
- "integrity": "sha512-J5cOGD9n4x3YGgVuaND6khm5x07MMdAKkRyXnjVR6KFhLMNh2yONGiP7Z+4+tBOt5mK+GvDTiacTOVGGpqiecw==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/@types/unist": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz",
- "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==",
- "dev": true
- },
- "node_modules/eslint-plugin-mdx/node_modules/abbrev": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
- "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/acorn": {
- "version": "8.11.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
- "dev": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/character-entities": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
- "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/character-entities-legacy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
- "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/character-reference-invalid": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
- "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/ci-info": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
- "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/eslint-mdx": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/eslint-mdx/-/eslint-mdx-2.3.4.tgz",
- "integrity": "sha512-u4NszEUyoGtR7Q0A4qs0OymsEQdCO6yqWlTzDa9vGWsK7aMotdnW0hqifHTkf6lEtA2vHk2xlkWHTCrhYLyRbw==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.10.0",
- "acorn-jsx": "^5.3.2",
- "espree": "^9.6.1",
- "estree-util-visit": "^1.2.1",
- "remark-mdx": "^2.3.0",
- "remark-parse": "^10.0.2",
- "remark-stringify": "^10.0.3",
- "synckit": "^0.9.0",
- "tslib": "^2.6.1",
- "unified": "^10.1.2",
- "unified-engine": "^10.1.0",
- "unist-util-visit": "^4.1.2",
- "uvu": "^0.5.6",
- "vfile": "^5.3.7"
- },
- "engines": {
- "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- },
- "peerDependencies": {
- "eslint": ">=8.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/estree-util-is-identifier-name": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz",
- "integrity": "sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/estree-util-visit": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-1.2.1.tgz",
- "integrity": "sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==",
- "dev": true,
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/unist": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/glob": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
- "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/import-meta-resolve": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz",
- "integrity": "sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/ini": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
- "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/is-alphabetical": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
- "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/is-alphanumerical": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
- "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
- "dev": true,
- "dependencies": {
- "is-alphabetical": "^2.0.0",
- "is-decimal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/is-decimal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
- "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/is-hexadecimal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
- "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/lines-and-columns": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz",
- "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/load-plugin": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-5.1.0.tgz",
- "integrity": "sha512-Lg1CZa1CFj2CbNaxijTL6PCbzd4qGTlZov+iH2p5Xwy/ApcZJh+i6jMN2cYePouTfjJfrNu3nXFdEw8LvbjPFQ==",
- "dev": true,
- "dependencies": {
- "@npmcli/config": "^6.0.0",
- "import-meta-resolve": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/mdast-util-from-markdown": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz",
- "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "decode-named-character-reference": "^1.0.0",
- "mdast-util-to-string": "^3.1.0",
- "micromark": "^3.0.0",
- "micromark-util-decode-numeric-character-reference": "^1.0.0",
- "micromark-util-decode-string": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "uvu": "^0.5.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/mdast-util-mdx": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz",
- "integrity": "sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==",
- "dev": true,
- "dependencies": {
- "mdast-util-from-markdown": "^1.0.0",
- "mdast-util-mdx-expression": "^1.0.0",
- "mdast-util-mdx-jsx": "^2.0.0",
- "mdast-util-mdxjs-esm": "^1.0.0",
- "mdast-util-to-markdown": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/mdast-util-mdx-expression": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz",
- "integrity": "sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==",
- "dev": true,
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^2.0.0",
- "@types/mdast": "^3.0.0",
- "mdast-util-from-markdown": "^1.0.0",
- "mdast-util-to-markdown": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/mdast-util-mdx-jsx": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz",
- "integrity": "sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==",
- "dev": true,
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^2.0.0",
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "ccount": "^2.0.0",
- "mdast-util-from-markdown": "^1.1.0",
- "mdast-util-to-markdown": "^1.3.0",
- "parse-entities": "^4.0.0",
- "stringify-entities": "^4.0.0",
- "unist-util-remove-position": "^4.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "vfile-message": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/mdast-util-mdxjs-esm": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz",
- "integrity": "sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==",
- "dev": true,
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^2.0.0",
- "@types/mdast": "^3.0.0",
- "mdast-util-from-markdown": "^1.0.0",
- "mdast-util-to-markdown": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/mdast-util-phrasing": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz",
- "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "unist-util-is": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/mdast-util-to-markdown": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz",
- "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "longest-streak": "^3.0.0",
- "mdast-util-phrasing": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "micromark-util-decode-string": "^1.0.0",
- "unist-util-visit": "^4.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/mdast-util-to-string": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz",
- "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz",
- "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "@types/debug": "^4.0.0",
- "debug": "^4.0.0",
- "decode-named-character-reference": "^1.0.0",
- "micromark-core-commonmark": "^1.0.1",
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-combine-extensions": "^1.0.0",
- "micromark-util-decode-numeric-character-reference": "^1.0.0",
- "micromark-util-encode": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-resolve-all": "^1.0.0",
- "micromark-util-sanitize-uri": "^1.0.0",
- "micromark-util-subtokenize": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.1",
- "uvu": "^0.5.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-core-commonmark": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz",
- "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "decode-named-character-reference": "^1.0.0",
- "micromark-factory-destination": "^1.0.0",
- "micromark-factory-label": "^1.0.0",
- "micromark-factory-space": "^1.0.0",
- "micromark-factory-title": "^1.0.0",
- "micromark-factory-whitespace": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-classify-character": "^1.0.0",
- "micromark-util-html-tag-name": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-resolve-all": "^1.0.0",
- "micromark-util-subtokenize": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.1",
- "uvu": "^0.5.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-extension-mdx-expression": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.8.tgz",
- "integrity": "sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "@types/estree": "^1.0.0",
- "micromark-factory-mdx-expression": "^1.0.0",
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-events-to-acorn": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-extension-mdx-jsx": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.5.tgz",
- "integrity": "sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==",
- "dev": true,
- "dependencies": {
- "@types/acorn": "^4.0.0",
- "@types/estree": "^1.0.0",
- "estree-util-is-identifier-name": "^2.0.0",
- "micromark-factory-mdx-expression": "^1.0.0",
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0",
- "vfile-message": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-extension-mdx-md": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.1.tgz",
- "integrity": "sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==",
- "dev": true,
- "dependencies": {
- "micromark-util-types": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-extension-mdxjs": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.1.tgz",
- "integrity": "sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.0.0",
- "acorn-jsx": "^5.0.0",
- "micromark-extension-mdx-expression": "^1.0.0",
- "micromark-extension-mdx-jsx": "^1.0.0",
- "micromark-extension-mdx-md": "^1.0.0",
- "micromark-extension-mdxjs-esm": "^1.0.0",
- "micromark-util-combine-extensions": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-extension-mdxjs-esm": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.5.tgz",
- "integrity": "sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==",
- "dev": true,
- "dependencies": {
- "@types/estree": "^1.0.0",
- "micromark-core-commonmark": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-events-to-acorn": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "unist-util-position-from-estree": "^1.1.0",
- "uvu": "^0.5.0",
- "vfile-message": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-factory-destination": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz",
- "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-factory-label": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz",
- "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-factory-mdx-expression": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.9.tgz",
- "integrity": "sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "@types/estree": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-events-to-acorn": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "unist-util-position-from-estree": "^1.0.0",
- "uvu": "^0.5.0",
- "vfile-message": "^3.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-factory-space": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz",
- "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-factory-title": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz",
- "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-factory-whitespace": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz",
- "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-character": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz",
- "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-chunked": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz",
- "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-classify-character": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz",
- "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-combine-extensions": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz",
- "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-decode-numeric-character-reference": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz",
- "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-decode-string": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz",
- "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "decode-named-character-reference": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-decode-numeric-character-reference": "^1.0.0",
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-events-to-acorn": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.3.tgz",
- "integrity": "sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "@types/acorn": "^4.0.0",
- "@types/estree": "^1.0.0",
- "@types/unist": "^2.0.0",
- "estree-util-visit": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0",
- "vfile-message": "^3.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-html-tag-name": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz",
- "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-normalize-identifier": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz",
- "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-resolve-all": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz",
- "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-subtokenize": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz",
- "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-symbol": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz",
- "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/eslint-plugin-mdx/node_modules/micromark-util-types": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz",
- "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/eslint-plugin-mdx/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/nopt": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz",
- "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==",
- "dev": true,
- "dependencies": {
- "abbrev": "^2.0.0"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/parse-entities": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz",
- "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "character-entities": "^2.0.0",
- "character-entities-legacy": "^3.0.0",
- "character-reference-invalid": "^2.0.0",
- "decode-named-character-reference": "^1.0.0",
- "is-alphanumerical": "^2.0.0",
- "is-decimal": "^2.0.0",
- "is-hexadecimal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/parse-json": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-6.0.2.tgz",
- "integrity": "sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.16.0",
- "error-ex": "^1.3.2",
- "json-parse-even-better-errors": "^2.3.1",
- "lines-and-columns": "^2.0.2"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/remark-mdx": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.3.0.tgz",
- "integrity": "sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==",
- "dev": true,
- "dependencies": {
- "mdast-util-mdx": "^2.0.0",
- "micromark-extension-mdxjs": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/remark-parse": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz",
- "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-from-markdown": "^1.0.0",
- "unified": "^10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/remark-stringify": {
- "version": "10.0.3",
- "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.3.tgz",
- "integrity": "sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-markdown": "^1.0.0",
- "unified": "^10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/supports-color": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz",
- "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/unified": {
- "version": "10.1.2",
- "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz",
- "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "bail": "^2.0.0",
- "extend": "^3.0.0",
- "is-buffer": "^2.0.0",
- "is-plain-obj": "^4.0.0",
- "trough": "^2.0.0",
- "vfile": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/unified-engine": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-10.1.0.tgz",
- "integrity": "sha512-5+JDIs4hqKfHnJcVCxTid1yBoI/++FfF/1PFdSMpaftZZZY+qg2JFruRbf7PaIwa9KgLotXQV3gSjtY0IdcFGQ==",
- "dev": true,
- "dependencies": {
- "@types/concat-stream": "^2.0.0",
- "@types/debug": "^4.0.0",
- "@types/is-empty": "^1.0.0",
- "@types/node": "^18.0.0",
- "@types/unist": "^2.0.0",
- "concat-stream": "^2.0.0",
- "debug": "^4.0.0",
- "fault": "^2.0.0",
- "glob": "^8.0.0",
- "ignore": "^5.0.0",
- "is-buffer": "^2.0.0",
- "is-empty": "^1.0.0",
- "is-plain-obj": "^4.0.0",
- "load-plugin": "^5.0.0",
- "parse-json": "^6.0.0",
- "to-vfile": "^7.0.0",
- "trough": "^2.0.0",
- "unist-util-inspect": "^7.0.0",
- "vfile-message": "^3.0.0",
- "vfile-reporter": "^7.0.0",
- "vfile-statistics": "^2.0.0",
- "yaml": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/unist-util-inspect": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-7.0.2.tgz",
- "integrity": "sha512-Op0XnmHUl6C2zo/yJCwhXQSm/SmW22eDZdWP2qdf4WpGrgO1ZxFodq+5zFyeRGasFjJotAnLgfuD1jkcKqiH1Q==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/unist-util-is": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
- "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/unist-util-position-from-estree": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.2.tgz",
- "integrity": "sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/unist-util-remove-position": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-4.0.2.tgz",
- "integrity": "sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/unist-util-stringify-position": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
- "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/unist-util-visit": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
- "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^5.1.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/unist-util-visit-parents": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
- "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/vfile": {
- "version": "5.3.7",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz",
- "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "is-buffer": "^2.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "vfile-message": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/vfile-message": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz",
- "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-stringify-position": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/vfile-reporter": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.5.tgz",
- "integrity": "sha512-NdWWXkv6gcd7AZMvDomlQbK3MqFWL1RlGzMn++/O2TI+68+nqxCPTvLugdOtfSzXmjh+xUyhp07HhlrbJjT+mw==",
- "dev": true,
- "dependencies": {
- "@types/supports-color": "^8.0.0",
- "string-width": "^5.0.0",
- "supports-color": "^9.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "vfile": "^5.0.0",
- "vfile-message": "^3.0.0",
- "vfile-sort": "^3.0.0",
- "vfile-statistics": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/vfile-sort": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-3.0.1.tgz",
- "integrity": "sha512-1os1733XY6y0D5x0ugqSeaVJm9lYgj0j5qdcZQFyxlZOSy1jYarL77lLyb5gK4Wqr1d5OxmuyflSO3zKyFnTFw==",
- "dev": true,
- "dependencies": {
- "vfile": "^5.0.0",
- "vfile-message": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/vfile-statistics": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-2.0.1.tgz",
- "integrity": "sha512-W6dkECZmP32EG/l+dp2jCLdYzmnDBIw6jwiLZSER81oR5AHRcVqL+k3Z+pfH1R73le6ayDkJRMk0sutj1bMVeg==",
- "dev": true,
- "dependencies": {
- "vfile": "^5.0.0",
- "vfile-message": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/eslint-plugin-mdx/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/eslint-plugin-n": {
- "version": "16.6.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz",
- "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "builtins": "^5.0.1",
- "eslint-plugin-es-x": "^7.5.0",
- "get-tsconfig": "^4.7.0",
- "globals": "^13.24.0",
- "ignore": "^5.2.4",
- "is-builtin-module": "^3.2.1",
- "is-core-module": "^2.12.1",
- "minimatch": "^3.1.2",
- "resolve": "^1.22.2",
- "semver": "^7.5.3"
- },
- "engines": {
- "node": ">=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=7.0.0"
- }
- },
- "node_modules/eslint-plugin-n/node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-plugin-n/node_modules/semver": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.1.tgz",
- "integrity": "sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==",
- "dev": true,
- "peer": true,
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/eslint-plugin-n/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-plugin-only-warn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-only-warn/-/eslint-plugin-only-warn-1.1.0.tgz",
- "integrity": "sha512-2tktqUAT+Q3hCAU0iSf4xAN1k9zOpjK5WO8104mB0rT/dGhOa09582HN5HlbxNbPRZ0THV7nLGvzugcNOSjzfA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/eslint-plugin-prettier": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz",
- "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==",
- "dev": true,
- "dependencies": {
- "prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.8.6"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint-plugin-prettier"
- },
- "peerDependencies": {
- "@types/eslint": ">=8.0.0",
- "eslint": ">=8.0.0",
- "eslint-config-prettier": "*",
- "prettier": ">=3.0.0"
- },
- "peerDependenciesMeta": {
- "@types/eslint": {
- "optional": true
- },
- "eslint-config-prettier": {
- "optional": true
- }
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/eslint-plugin-prettier/node_modules/synckit": {
- "version": "0.8.8",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz",
- "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
+ "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/utils": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+ "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
"dev": true,
"dependencies": {
- "@pkgr/core": "^0.1.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/typescript-estree": "5.62.0",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
},
- "funding": {
- "url": "https://opencollective.com/unts"
- }
- },
- "node_modules/eslint-plugin-promise": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz",
- "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==",
- "dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/eslint-plugin-react": {
- "version": "7.34.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz",
- "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==",
- "dev": true,
- "dependencies": {
- "array-includes": "^3.1.7",
- "array.prototype.findlast": "^1.2.4",
- "array.prototype.flatmap": "^1.3.2",
- "array.prototype.toreversed": "^1.1.2",
- "array.prototype.tosorted": "^1.1.3",
- "doctrine": "^2.1.0",
- "es-iterator-helpers": "^1.0.17",
- "estraverse": "^5.3.0",
- "jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.7",
- "object.fromentries": "^2.0.7",
- "object.hasown": "^1.1.3",
- "object.values": "^1.1.7",
- "prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.5",
- "semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.10"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
- }
- },
- "node_modules/eslint-plugin-react-hooks": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
- "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
"funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/eslint-plugin-storybook": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.8.0.tgz",
- "integrity": "sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==",
- "dev": true,
- "dependencies": {
- "@storybook/csf": "^0.0.1",
- "@typescript-eslint/utils": "^5.62.0",
- "requireindex": "^1.2.0",
- "ts-dedent": "^2.2.0"
- },
- "engines": {
- "node": ">= 18"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": ">=6"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz",
- "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.17.15"
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
"node_modules/eslint-plugin-storybook/node_modules/requireindex": {
@@ -12508,20 +11077,16 @@
"node": ">=0.10.5"
}
},
- "node_modules/eslint-plugin-tailwindcss": {
- "version": "3.15.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.15.1.tgz",
- "integrity": "sha512-4RXRMIaMG07C2TBEW1k0VM4+dDazz1kxcZhkK4zirvmHGZTA4jnlSO2kq5mamuSPi+Wo17dh2SlC8IyFBuCd7Q==",
+ "node_modules/eslint-plugin-storybook/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
- "dependencies": {
- "fast-glob": "^3.2.5",
- "postcss": "^8.4.4"
+ "bin": {
+ "semver": "bin/semver.js"
},
"engines": {
- "node": ">=12.13.0"
- },
- "peerDependencies": {
- "tailwindcss": "^3.4.0"
+ "node": ">=10"
}
},
"node_modules/eslint-scope": {
@@ -12548,6 +11113,7 @@
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -12559,6 +11125,8 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -12570,15 +11138,12 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/eslint/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
"node_modules/eslint/node_modules/eslint-scope": {
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
"integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
@@ -12594,6 +11159,8 @@
"version": "13.24.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
"integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -12601,29 +11168,22 @@
"node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/eslint/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "peer": true
},
"node_modules/eslint/node_modules/type-fest": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "peer": true,
"engines": {
"node": ">=10"
},
@@ -12635,6 +11195,7 @@
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
"integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dev": true,
"dependencies": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
@@ -12651,6 +11212,7 @@
"version": "8.11.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "dev": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -12675,6 +11237,8 @@
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
"integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"estraverse": "^5.1.0"
},
@@ -12705,6 +11269,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
"integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
+ "dev": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
@@ -12714,6 +11279,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz",
"integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==",
+ "dev": true,
"dependencies": {
"@types/estree-jsx": "^1.0.0",
"@types/unist": "^3.0.0"
@@ -12733,6 +11299,7 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -12954,7 +11521,9 @@
"node_modules/fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true,
+ "peer": true
},
"node_modules/fast-shuffle": {
"version": "6.1.0",
@@ -12969,21 +11538,9 @@
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fault": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz",
- "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==",
"dev": true,
"dependencies": {
- "format": "^0.2.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
+ "reusify": "^1.0.4"
}
},
"node_modules/fd-slicer": {
@@ -13029,6 +11586,8 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
"integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"flat-cache": "^3.0.4"
},
@@ -13323,6 +11882,7 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -13338,6 +11898,8 @@
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
"integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"flatted": "^3.2.9",
"keyv": "^4.5.3",
@@ -13350,7 +11912,9 @@
"node_modules/flatted": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
- "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
+ "dev": true,
+ "peer": true
},
"node_modules/flow-parser": {
"version": "0.236.0",
@@ -13437,15 +12001,6 @@
"node": ">= 6"
}
},
- "node_modules/format": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
- "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==",
- "dev": true,
- "engines": {
- "node": ">=0.4.x"
- }
- },
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -13538,7 +12093,8 @@
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "devOptional": true
},
"node_modules/fsevents": {
"version": "2.3.3",
@@ -13808,6 +12364,7 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
"dependencies": {
"is-glob": "^4.0.3"
},
@@ -13986,7 +12543,8 @@
"node_modules/graphemer": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true
},
"node_modules/gunzip-maybe": {
"version": "1.4.2",
@@ -14599,6 +13157,7 @@
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
"integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "dev": true,
"engines": {
"node": ">= 4"
}
@@ -14627,9 +13186,10 @@
}
},
"node_modules/import-meta-resolve": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz",
- "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
+ "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==",
+ "dev": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -14639,6 +13199,7 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
"engines": {
"node": ">=0.8.19"
}
@@ -14656,6 +13217,7 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "devOptional": true,
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -14664,7 +13226,8 @@
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "devOptional": true
},
"node_modules/ini": {
"version": "2.0.0",
@@ -14992,12 +13555,14 @@
"node_modules/is-empty": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz",
- "integrity": "sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w=="
+ "integrity": "sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w==",
+ "dev": true
},
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -15041,6 +13606,7 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -15184,6 +13750,7 @@
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -15527,6 +14094,17 @@
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
"node_modules/jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
@@ -15587,7 +14165,9 @@
"node_modules/json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true,
+ "peer": true
},
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
@@ -15609,7 +14189,9 @@
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true,
+ "peer": true
},
"node_modules/json-stringify-safe": {
"version": "5.0.1",
@@ -15684,6 +14266,8 @@
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"json-buffer": "3.0.1"
}
@@ -15706,24 +14290,6 @@
"node": ">=6"
}
},
- "node_modules/language-subtag-registry": {
- "version": "0.3.22",
- "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz",
- "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==",
- "dev": true
- },
- "node_modules/language-tags": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
- "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
- "dev": true,
- "dependencies": {
- "language-subtag-registry": "^0.3.20"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
"node_modules/lazy-ass": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
@@ -15760,6 +14326,8 @@
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
"integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
@@ -16223,9 +14791,10 @@
}
},
"node_modules/load-plugin": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-6.0.2.tgz",
- "integrity": "sha512-3KRkTvCOsyNrx4zvBl/+ZMqPdVyp26TIf6xkmfEGuGwCfNQ/HzhktwbJCxd1KJpzPbK42t/WVOL3cX+TDaMRuQ==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-6.0.3.tgz",
+ "integrity": "sha512-kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w==",
+ "dev": true,
"dependencies": {
"@npmcli/config": "^8.0.0",
"import-meta-resolve": "^4.0.0"
@@ -16263,6 +14832,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -16305,7 +14875,8 @@
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
},
"node_modules/lodash.once": {
"version": "4.1.1",
@@ -16399,6 +14970,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
"integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
+ "dev": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -16533,6 +15105,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz",
"integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==",
+ "dev": true,
"dependencies": {
"mdast-util-from-markdown": "^2.0.0",
"mdast-util-mdx-expression": "^2.0.0",
@@ -16549,6 +15122,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz",
"integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==",
+ "dev": true,
"dependencies": {
"@types/estree-jsx": "^1.0.0",
"@types/hast": "^3.0.0",
@@ -16566,22 +15140,25 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
"integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/mdast-util-mdx-expression/node_modules/@types/mdast": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
- "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/mdast-util-mdx-expression/node_modules/mdast-util-from-markdown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz",
- "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz",
+ "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0",
"@types/unist": "^3.0.0",
@@ -16605,6 +15182,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
"integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0"
},
@@ -16617,6 +15195,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz",
"integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -16651,6 +15230,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz",
"integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -16666,6 +15246,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz",
"integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -16686,6 +15267,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
"integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -16698,6 +15280,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz",
"integrity": "sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==",
+ "dev": true,
"dependencies": {
"@types/estree-jsx": "^1.0.0",
"@types/hast": "^3.0.0",
@@ -16722,14 +15305,16 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
"integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/mdast-util-mdx-jsx/node_modules/@types/mdast": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
- "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
"dependencies": {
"@types/unist": "*"
}
@@ -16738,6 +15323,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
"integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
+ "dev": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -16747,6 +15333,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
"integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "dev": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -16756,6 +15343,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
"integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
+ "dev": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -16765,6 +15353,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
"integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
+ "dev": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -16774,6 +15363,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
"integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "dev": true,
"dependencies": {
"is-alphabetical": "^2.0.0",
"is-decimal": "^2.0.0"
@@ -16787,6 +15377,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
"integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
+ "dev": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -16796,15 +15387,17 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
"integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
+ "dev": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/mdast-util-mdx-jsx/node_modules/mdast-util-from-markdown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz",
- "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz",
+ "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0",
"@types/unist": "^3.0.0",
@@ -16828,6 +15421,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
"integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0"
},
@@ -16840,6 +15434,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz",
"integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -16874,6 +15469,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz",
"integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -16889,6 +15485,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz",
"integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -16909,6 +15506,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz",
"integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==",
+ "dev": true,
"dependencies": {
"@types/unist": "^2.0.0",
"character-entities": "^2.0.0",
@@ -16927,12 +15525,14 @@
"node_modules/mdast-util-mdx-jsx/node_modules/parse-entities/node_modules/@types/unist": {
"version": "2.0.10",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz",
- "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA=="
+ "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==",
+ "dev": true
},
"node_modules/mdast-util-mdx-jsx/node_modules/unist-util-stringify-position": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
"integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -16942,17 +15542,19 @@
}
},
"node_modules/mdast-util-mdx/node_modules/@types/mdast": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
- "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/mdast-util-mdx/node_modules/mdast-util-from-markdown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz",
- "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz",
+ "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0",
"@types/unist": "^3.0.0",
@@ -16976,6 +15578,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
"integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0"
},
@@ -16988,6 +15591,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz",
"integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17022,6 +15626,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz",
"integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17037,6 +15642,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz",
"integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17057,6 +15663,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
"integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -17069,6 +15676,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
"integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
+ "dev": true,
"dependencies": {
"@types/estree-jsx": "^1.0.0",
"@types/hast": "^3.0.0",
@@ -17086,22 +15694,25 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
"integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/mdast-util-mdxjs-esm/node_modules/@types/mdast": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
- "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/mdast-util-mdxjs-esm/node_modules/mdast-util-from-markdown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz",
- "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz",
+ "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0",
"@types/unist": "^3.0.0",
@@ -17125,6 +15736,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
"integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0"
},
@@ -17137,6 +15749,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz",
"integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17171,6 +15784,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz",
"integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17186,6 +15800,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz",
"integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17206,6 +15821,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
"integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -17218,6 +15834,7 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
"integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0",
"unist-util-is": "^6.0.0"
@@ -17228,9 +15845,10 @@
}
},
"node_modules/mdast-util-phrasing/node_modules/@types/mdast": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
- "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
"dependencies": {
"@types/unist": "*"
}
@@ -17316,6 +15934,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz",
"integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0",
"@types/unist": "^3.0.0",
@@ -17332,9 +15951,10 @@
}
},
"node_modules/mdast-util-to-markdown/node_modules/@types/mdast": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
- "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
"dependencies": {
"@types/unist": "*"
}
@@ -17343,6 +15963,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
"integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0"
},
@@ -17450,9 +16071,10 @@
}
},
"node_modules/micromark-core-commonmark": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz",
- "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz",
+ "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17486,6 +16108,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz",
"integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17510,12 +16133,14 @@
"node_modules/micromark-extension-mdx-expression/node_modules/@types/estree": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
+ "dev": true
},
"node_modules/micromark-extension-mdx-jsx": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz",
"integrity": "sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==",
+ "dev": true,
"dependencies": {
"@types/acorn": "^4.0.0",
"@types/estree": "^1.0.0",
@@ -17536,12 +16161,14 @@
"node_modules/micromark-extension-mdx-jsx/node_modules/@types/estree": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
+ "dev": true
},
"node_modules/micromark-extension-mdx-md": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz",
"integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==",
+ "dev": true,
"dependencies": {
"micromark-util-types": "^2.0.0"
},
@@ -17554,6 +16181,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz",
"integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==",
+ "dev": true,
"dependencies": {
"acorn": "^8.0.0",
"acorn-jsx": "^5.0.0",
@@ -17573,6 +16201,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz",
"integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==",
+ "dev": true,
"dependencies": {
"@types/estree": "^1.0.0",
"devlop": "^1.0.0",
@@ -17592,12 +16221,14 @@
"node_modules/micromark-extension-mdxjs-esm/node_modules/@types/estree": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
+ "dev": true
},
"node_modules/micromark-extension-mdxjs/node_modules/acorn": {
- "version": "8.11.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "version": "8.12.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
+ "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
+ "dev": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -17609,6 +16240,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz",
"integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17629,6 +16261,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz",
"integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17650,6 +16283,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz",
"integrity": "sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17674,12 +16308,14 @@
"node_modules/micromark-factory-mdx-expression/node_modules/@types/estree": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
+ "dev": true
},
"node_modules/micromark-factory-space": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz",
"integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17699,6 +16335,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz",
"integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17720,6 +16357,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz",
"integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17741,6 +16379,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz",
"integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17760,6 +16399,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz",
"integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17778,6 +16418,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz",
"integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17798,6 +16439,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz",
"integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17817,6 +16459,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz",
"integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17835,6 +16478,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz",
"integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17871,6 +16515,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz",
"integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17895,12 +16540,14 @@
"node_modules/micromark-util-events-to-acorn/node_modules/@types/estree": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
+ "dev": true
},
"node_modules/micromark-util-html-tag-name": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz",
"integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17916,6 +16563,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz",
"integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -17934,6 +16582,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz",
"integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -18018,9 +16667,10 @@
]
},
"node_modules/micromark-util-subtokenize": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz",
- "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz",
+ "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -18042,6 +16692,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz",
"integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -18057,6 +16708,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz",
"integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -18155,6 +16807,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "devOptional": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -18341,12 +16994,7 @@
"node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
- },
- "node_modules/natural-compare-lite": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
- "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true
},
"node_modules/negotiator": {
@@ -18469,15 +17117,112 @@
"integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm-install-checks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz",
+ "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.1.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm-install-checks/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/npm-normalize-package-bin": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz",
+ "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm-package-arg": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz",
+ "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^7.0.0",
+ "proc-log": "^4.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-name": "^5.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm-package-arg/node_modules/hosted-git-info": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
+ "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^10.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm-package-arg/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true
+ },
+ "node_modules/npm-package-arg/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/npm-pick-manifest": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz",
+ "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==",
+ "dev": true,
+ "dependencies": {
+ "npm-install-checks": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0",
+ "npm-package-arg": "^11.0.0",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/npm-normalize-package-bin": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz",
- "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==",
+ "node_modules/npm-pick-manifest/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=10"
}
},
"node_modules/npm-run-path": {
@@ -18759,37 +17504,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object.groupby": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
- "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.hasown": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz",
- "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==",
- "dev": true,
- "dependencies": {
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/object.values": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
@@ -18838,6 +17552,7 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "devOptional": true,
"dependencies": {
"wrappy": "1"
}
@@ -18878,6 +17593,8 @@
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
"integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"@aashutoshrathi/word-wrap": "^1.2.3",
"deep-is": "^0.1.3",
@@ -18923,6 +17640,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -18937,6 +17655,7 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -19046,6 +17765,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -19054,6 +17774,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "devOptional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -19546,14 +18267,16 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "peer": true,
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/prettier": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
- "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
+ "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@@ -19594,9 +18317,9 @@
}
},
"node_modules/prettier-plugin-tailwindcss": {
- "version": "0.5.14",
- "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.14.tgz",
- "integrity": "sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q==",
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.5.tgz",
+ "integrity": "sha512-axfeOArc/RiGHjOIy9HytehlC0ZLeMaqY09mm8YCkMzznKiDkwFzOpBvtuhuv3xG5qB73+Mj7OCe2j/L1ryfuQ==",
"dev": true,
"engines": {
"node": ">=14.21.3"
@@ -19721,9 +18444,10 @@
}
},
"node_modules/proc-log": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz",
- "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
+ "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==",
+ "dev": true,
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
@@ -19743,6 +18467,25 @@
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"dev": true
},
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+ "dev": true
+ },
+ "node_modules/promise-retry": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
+ "dev": true,
+ "dependencies": {
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/prompts": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
@@ -19871,6 +18614,7 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -20947,6 +19691,7 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz",
"integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==",
+ "dev": true,
"dependencies": {
"json-parse-even-better-errors": "^3.0.0",
"npm-normalize-package-bin": "^3.0.0"
@@ -20956,9 +19701,10 @@
}
},
"node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz",
- "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+ "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
+ "dev": true,
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
@@ -21069,6 +19815,7 @@
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "devOptional": true,
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -21412,6 +20159,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz",
"integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==",
+ "dev": true,
"dependencies": {
"mdast-util-mdx": "^3.0.0",
"micromark-extension-mdxjs": "^3.0.0"
@@ -21425,6 +20173,7 @@
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
"integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0",
"mdast-util-from-markdown": "^2.0.0",
@@ -21437,17 +20186,19 @@
}
},
"node_modules/remark-parse/node_modules/@types/mdast": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
- "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/remark-parse/node_modules/mdast-util-from-markdown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz",
- "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz",
+ "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0",
"@types/unist": "^3.0.0",
@@ -21471,6 +20222,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
"integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0"
},
@@ -21483,6 +20235,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz",
"integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -21517,6 +20270,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz",
"integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -21532,6 +20286,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz",
"integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==",
+ "dev": true,
"funding": [
{
"type": "GitHub Sponsors",
@@ -21552,6 +20307,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
"integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -21642,6 +20398,7 @@
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
"integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
+ "dev": true,
"dependencies": {
"@types/mdast": "^4.0.0",
"mdast-util-to-markdown": "^2.0.0",
@@ -21653,9 +20410,10 @@
}
},
"node_modules/remark-stringify/node_modules/@types/mdast": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
- "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
"dependencies": {
"@types/unist": "*"
}
@@ -21731,24 +20489,6 @@
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"dev": true
},
- "node_modules/rescript": {
- "version": "10.1.4",
- "resolved": "https://registry.npmjs.org/rescript/-/rescript-10.1.4.tgz",
- "integrity": "sha512-FFKlS9AG/XrLepWsyw7B+A9DtQBPWEPDPDKghV831Y2KGbie+eeFBOS0xtRHp0xbt7S0N2Dm6hhX+kTZQ/3Ybg==",
- "dev": true,
- "hasInstallScript": true,
- "bin": {
- "bsc": "bsc",
- "bsrefmt": "bsrefmt",
- "bstracing": "lib/bstracing",
- "rescript": "rescript"
- }
- },
- "node_modules/rescript-webapi": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/rescript-webapi/-/rescript-webapi-0.8.0.tgz",
- "integrity": "sha512-PdjHqho8+kI7AIC3DlLgD99H8zzHphzpIhyv2skVtWaSJGK819+ZqWMC3mHEtSjlcFoYaLXliNt8sb6Taa2Mpg=="
- },
"node_modules/resolve": {
"version": "1.22.8",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
@@ -21806,10 +20546,20 @@
"node": ">=8"
}
},
+ "node_modules/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
"node_modules/reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
@@ -21825,6 +20575,7 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "devOptional": true,
"dependencies": {
"glob": "^7.1.3"
},
@@ -21839,6 +20590,7 @@
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "devOptional": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -21896,6 +20648,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -22607,6 +21360,7 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "devOptional": true,
"dependencies": {
"safe-buffer": "~5.2.0"
}
@@ -22683,6 +21437,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/string.prototype.repeat": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ }
+ },
"node_modules/string.prototype.trim": {
"version": "1.2.9",
"resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
@@ -22733,9 +21497,10 @@
}
},
"node_modules/stringify-entities": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz",
- "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
+ "dev": true,
"dependencies": {
"character-entities-html4": "^2.0.0",
"character-entities-legacy": "^3.0.0"
@@ -22749,6 +21514,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
"integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "dev": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -22837,6 +21603,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
"engines": {
"node": ">=8"
},
@@ -22911,6 +21678,7 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -22931,9 +21699,10 @@
}
},
"node_modules/synckit": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.0.tgz",
- "integrity": "sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==",
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz",
+ "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==",
+ "dev": true,
"dependencies": {
"@pkgr/core": "^0.1.0",
"tslib": "^2.6.2"
@@ -23232,7 +22001,9 @@
"node_modules/text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true,
+ "peer": true
},
"node_modules/thenify": {
"version": "3.3.1",
@@ -23368,69 +22139,6 @@
"node": ">=8.0"
}
},
- "node_modules/to-vfile": {
- "version": "7.2.4",
- "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.4.tgz",
- "integrity": "sha512-2eQ+rJ2qGbyw3senPI0qjuM7aut8IYXK6AEoOWb+fJx/mQYzviTckm1wDjq91QYHAPBTYzmdJXxMFA6Mk14mdw==",
- "dev": true,
- "dependencies": {
- "is-buffer": "^2.0.0",
- "vfile": "^5.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/to-vfile/node_modules/@types/unist": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz",
- "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==",
- "dev": true
- },
- "node_modules/to-vfile/node_modules/unist-util-stringify-position": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
- "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/to-vfile/node_modules/vfile": {
- "version": "5.3.7",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz",
- "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "is-buffer": "^2.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "vfile-message": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/to-vfile/node_modules/vfile-message": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz",
- "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-stringify-position": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
"node_modules/tocbot": {
"version": "4.27.20",
"resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.27.20.tgz",
@@ -23499,6 +22207,18 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/ts-api-utils": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
+ "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
+ }
+ },
"node_modules/ts-custom-error": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.3.1.tgz",
@@ -23522,34 +22242,11 @@
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
"dev": true
},
- "node_modules/tsconfig-paths": {
- "version": "3.15.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
- "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
- "dev": true,
- "dependencies": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
- }
- },
- "node_modules/tsconfig-paths/node_modules/json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.0"
- },
- "bin": {
- "json5": "lib/cli.js"
- }
- },
"node_modules/tslib": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+ "dev": true
},
"node_modules/tsutils": {
"version": "3.21.0",
@@ -23622,6 +22319,8 @@
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
"integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "peer": true,
"dependencies": {
"prelude-ls": "^1.2.1"
},
@@ -23739,7 +22438,8 @@
"node_modules/typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "dev": true
},
"node_modules/typescript": {
"version": "5.4.5",
@@ -23858,9 +22558,10 @@
}
},
"node_modules/unified": {
- "version": "11.0.4",
- "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
- "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "version": "11.0.5",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0",
"bail": "^2.0.0",
@@ -23876,18 +22577,19 @@
}
},
"node_modules/unified-engine": {
- "version": "11.2.0",
- "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-11.2.0.tgz",
- "integrity": "sha512-H9wEDpBSM0cpEUuuYAOIiPzLCVN0pjASZZ6FFNzgzYS/HHzl9tArk/ereOMGtcF8m8vgjzw+HrU3YN7oenT7Ww==",
+ "version": "11.2.1",
+ "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-11.2.1.tgz",
+ "integrity": "sha512-xBAdZ8UY2X4R9Hm6X6kMne4Nz0PlpOc1oE6DPeqJnewr5Imkb8uT5Eyvy1h7xNekPL3PSWh3ZJyNrMW6jnNQBg==",
+ "dev": true,
"dependencies": {
"@types/concat-stream": "^2.0.0",
"@types/debug": "^4.0.0",
"@types/is-empty": "^1.0.0",
"@types/node": "^20.0.0",
"@types/unist": "^3.0.0",
- "@ungap/structured-clone": "^1.0.0",
"concat-stream": "^2.0.0",
"debug": "^4.0.0",
+ "extend": "^3.0.0",
"glob": "^10.0.0",
"ignore": "^5.0.0",
"is-empty": "^1.0.0",
@@ -23908,9 +22610,10 @@
}
},
"node_modules/unified-engine/node_modules/json-parse-even-better-errors": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz",
- "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+ "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
+ "dev": true,
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
@@ -23919,6 +22622,7 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz",
"integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
+ "dev": true,
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
@@ -23927,6 +22631,7 @@
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz",
"integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==",
+ "dev": true,
"dependencies": {
"@babel/code-frame": "^7.21.4",
"error-ex": "^1.3.2",
@@ -23945,6 +22650,7 @@
"version": "3.13.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
"integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "dev": true,
"engines": {
"node": ">=14.16"
},
@@ -23974,9 +22680,10 @@
}
},
"node_modules/unist-util-inspect": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-8.0.0.tgz",
- "integrity": "sha512-/3Wn/wU6/H6UEo4FoYUeo8KUePN8ERiZpQYFWYoihOsr1DoDuv80PeB0hobVZyYSvALa2e556bG1A1/AbwU4yg==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-8.1.0.tgz",
+ "integrity": "sha512-mOlg8Mp33pR0eeFpo5d2902ojqFFOKMMG2hF8bmH7ZlhnmjFgh0NI3/ZDwdaBJNbvrS7LZFVrBVtIE9KZ9s7vQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -23989,6 +22696,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
"integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -24013,6 +22721,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz",
"integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -24030,6 +22739,7 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",
"integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-visit": "^5.0.0"
@@ -24062,6 +22772,7 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
"integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-is": "^6.0.0",
@@ -24076,6 +22787,7 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
"integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-is": "^6.0.0"
@@ -24272,7 +22984,8 @@
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "devOptional": true
},
"node_modules/utils-merge": {
"version": "1.0.1",
@@ -24335,6 +23048,15 @@
"spdx-expression-parse": "^3.0.0"
}
},
+ "node_modules/validate-npm-package-name": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
+ "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -24359,9 +23081,10 @@
}
},
"node_modules/vfile": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
- "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz",
+ "integrity": "sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-stringify-position": "^4.0.0",
@@ -24434,6 +23157,7 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
"integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-stringify-position": "^4.0.0"
@@ -24447,6 +23171,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
"integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -24456,9 +23181,10 @@
}
},
"node_modules/vfile-reporter": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.0.tgz",
- "integrity": "sha512-NfHyHdkCcy0BsXiLA3nId29TY7W7hgpc8nd8Soe3imATx5N4/+mkLYdMR+Y6Zvu6BXMMi0FZsD4FLCm1dN85Pg==",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.1.tgz",
+ "integrity": "sha512-qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g==",
+ "dev": true,
"dependencies": {
"@types/supports-color": "^8.0.0",
"string-width": "^6.0.0",
@@ -24478,6 +23204,7 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true,
"engines": {
"node": ">=12"
},
@@ -24488,12 +23215,14 @@
"node_modules/vfile-reporter/node_modules/emoji-regex": {
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz",
- "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw=="
+ "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==",
+ "dev": true
},
"node_modules/vfile-reporter/node_modules/string-width": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz",
"integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==",
+ "dev": true,
"dependencies": {
"eastasianwidth": "^0.2.0",
"emoji-regex": "^10.2.1",
@@ -24510,6 +23239,7 @@
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
"dependencies": {
"ansi-regex": "^6.0.1"
},
@@ -24524,6 +23254,7 @@
"version": "9.4.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz",
"integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==",
+ "dev": true,
"engines": {
"node": ">=12"
},
@@ -24535,6 +23266,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
"integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -24547,6 +23279,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-4.0.0.tgz",
"integrity": "sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==",
+ "dev": true,
"dependencies": {
"vfile": "^6.0.0",
"vfile-message": "^4.0.0"
@@ -24560,6 +23293,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-3.0.0.tgz",
"integrity": "sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==",
+ "dev": true,
"dependencies": {
"vfile": "^6.0.0",
"vfile-message": "^4.0.0"
@@ -24573,6 +23307,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
"integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -24930,7 +23665,8 @@
"node_modules/walk-up-path": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz",
- "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA=="
+ "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==",
+ "dev": true
},
"node_modules/warning": {
"version": "4.0.3",
@@ -25105,13 +23841,13 @@
}
},
"node_modules/which-builtin-type": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz",
- "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz",
+ "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==",
"dev": true,
"dependencies": {
- "function.prototype.name": "^1.1.5",
- "has-tostringtag": "^1.0.0",
+ "function.prototype.name": "^1.1.6",
+ "has-tostringtag": "^1.0.2",
"is-async-function": "^2.0.0",
"is-date-object": "^1.0.5",
"is-finalizationregistry": "^1.0.2",
@@ -25120,8 +23856,8 @@
"is-weakref": "^1.0.2",
"isarray": "^2.0.5",
"which-boxed-primitive": "^1.0.2",
- "which-collection": "^1.0.1",
- "which-typed-array": "^1.1.9"
+ "which-collection": "^1.0.2",
+ "which-typed-array": "^1.1.15"
},
"engines": {
"node": ">= 0.4"
@@ -25580,7 +24316,8 @@
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "devOptional": true
},
"node_modules/write-file-atomic": {
"version": "2.4.3",
@@ -25653,6 +24390,7 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
"integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
+ "dev": true,
"engines": {
"node": ">= 14"
}
@@ -25671,6 +24409,7 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
"engines": {
"node": ">=10"
},
diff --git a/package.json b/package.json
index aa8d3f5df01..28ad8b13ab6 100644
--- a/package.json
+++ b/package.json
@@ -19,21 +19,17 @@
"Coronasafe",
"care",
"react",
- "rescript",
"tailwind",
"pwa",
- "typescritp",
+ "typescript",
"vite"
],
"author": "Coronsafe Care Contributors",
"license": "MIT",
"scripts": {
- "build:res": "rescript clean && rescript build",
"build:react": "cross-env NODE_ENV=production vite build",
- "build": "npm run build:res && npm run generate-build-meta && npm run build:react",
- "dev:res": "rescript clean && rescript build -w",
- "dev:react": "vite",
- "dev": "npm run build:res && npm run dev:react",
+ "build": "npm run generate-build-meta && npm run build:react",
+ "dev": "vite",
"preview": "cross-env NODE_ENV=production vite preview",
"generate-build-meta": "node ./scripts/generate-build-version.js",
"test": "snyk test",
@@ -57,7 +53,6 @@
"@pnotify/core": "^5.2.0",
"@pnotify/mobile": "^5.2.0",
"@react-spring/web": "^9.7.3",
- "@rescript/react": "^0.11.0",
"@sentry/browser": "^8.12.0",
"@yaireo/ui-range": "^2.1.15",
"@yudiel/react-qr-scanner": "^2.0.0-beta.3",
@@ -69,7 +64,6 @@
"dayjs": "^1.11.11",
"echarts": "^5.5.0",
"echarts-for-react": "^3.0.2",
- "eslint-mdx": "^3.1.5",
"events": "^3.3.0",
"glob": "^10.4.2",
"hi-profiles": "^1.0.6",
@@ -97,7 +91,6 @@
"redux": "^4.2.1",
"redux-thunk": "^2.4.2",
"rehype-raw": "^6.1.1",
- "rescript-webapi": "^0.8.0",
"use-keyboard-shortcut": "^1.1.6",
"uuid": "^9.0.1",
"xlsx": "^0.18.5"
@@ -124,37 +117,28 @@
"@types/react-google-recaptcha": "^2.1.9",
"@types/react-qr-reader": "^2.1.7",
"@types/react-transition-group": "^4.4.10",
- "@typescript-eslint/eslint-plugin": "^5.61.0",
- "@typescript-eslint/parser": "^5.61.0",
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
"@vitejs/plugin-react-swc": "^3.6.0",
"autoprefixer": "^10.4.19",
"cypress": "^13.13.1",
"cypress-localstorage-commands": "^2.2.5",
"cypress-split": "^1.23.2",
- "eslint": "^8.44.0",
- "eslint-config-prettier": "^8.8.0",
- "eslint-config-standard": "^17.1.0",
- "eslint-plugin-i18next": "^6.0.3",
- "eslint-plugin-import": "^2.29.1",
- "eslint-plugin-jsx-a11y": "^6.8.0",
- "eslint-plugin-mdx": "^2.2.0",
- "eslint-plugin-only-warn": "^1.1.0",
- "eslint-plugin-prettier": "^5.1.3",
- "eslint-plugin-promise": "^6.1.1",
- "eslint-plugin-react": "^7.34.1",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-i18next": "^6.0.9",
+ "eslint-plugin-mdx": "^3.1.5",
+ "eslint-plugin-prettier": "^5.2.1",
+ "eslint-plugin-react": "^7.35.0",
"eslint-plugin-react-hooks": "^4.6.2",
"eslint-plugin-storybook": "^0.8.0",
- "eslint-plugin-tailwindcss": "^3.15.1",
"gentype": "^4.5.0",
"husky": "^8.0.3",
"lint-staged": "^13.2.3",
"local-cypress": "^1.2.6",
"postcss": "^8.4.38",
- "prettier": "^3.2.5",
- "prettier-plugin-tailwindcss": "^0.5.14",
+ "prettier": "^3.3.3",
+ "prettier-plugin-tailwindcss": "^0.6.5",
"prop-types": "^15.8.1",
"redux-devtools-extension": "^2.13.9",
- "rescript": "^10.1.4",
"snyk": "^1.1291.0",
"storybook": "^8.1.0",
"tailwindcss": "^3.4.3",
@@ -186,4 +170,4 @@
"node": ">=20.12.0"
},
"packageManager": "npm@10.5.0"
-}
+}
\ No newline at end of file
diff --git a/src/CAREUI/display/PopupModal.tsx b/src/CAREUI/display/PopupModal.tsx
new file mode 100644
index 00000000000..37b5719d9bd
--- /dev/null
+++ b/src/CAREUI/display/PopupModal.tsx
@@ -0,0 +1,124 @@
+import { ReactNode, useEffect, useRef, useState } from "react";
+import { Cancel, Submit } from "../../Components/Common/components/ButtonV2";
+import { classNames } from "../../Utils/utils";
+import { useTranslation } from "react-i18next";
+import useBreakpoints from "../../Common/hooks/useBreakpoints";
+import DialogModal from "../../Components/Common/Dialog";
+
+type Props = {
+ show: boolean;
+ onHide: () => void;
+ children: ReactNode;
+ className?: string;
+ onSubmit?: () => void;
+};
+
+export default function PopupModal(props: Props) {
+ const { t } = useTranslation();
+ const isMobile = useBreakpoints({ default: true, lg: false });
+
+ if (!isMobile) {
+ return ;
+ }
+
+ return (
+
+
+ {props.children}
+
+
+ {props.onSubmit && (
+
+ )}
+
+
+
+ );
+}
+
+const DesktopView = (props: Props) => {
+ const { t } = useTranslation();
+ const [position, setPosition] = useState({ x: 0, y: 0 });
+ const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 });
+ const modal = useRef(null);
+ const [children, setChildren] = useState(props.children);
+
+ useEffect(() => {
+ // just to make sure the animation runs smoothly
+ if (props.show) {
+ setChildren(props.children);
+ }
+ }, [props.children, props.show]);
+
+ useEffect(() => {
+ const handleOutsideClick = (e: MouseEvent) => {
+ const isModalClicked =
+ modal.current && modal.current.contains(e.target as Node);
+ if (!isModalClicked) {
+ props.onHide();
+ }
+ };
+
+ if (props.show) {
+ const currentMousePosition = mousePosition;
+ const modalHeight = modal.current?.clientHeight || 0;
+ const modalWidth = modal.current?.clientWidth || 0;
+ const xRelative = currentMousePosition.x;
+ const yRelative = currentMousePosition.y;
+ const containerHeight = window.innerHeight;
+ const containerWidth = window.innerWidth;
+ const top =
+ yRelative + modalHeight > containerHeight
+ ? yRelative - modalHeight
+ : yRelative;
+ const left =
+ xRelative + modalWidth > containerWidth
+ ? xRelative - modalWidth
+ : xRelative;
+ setPosition({ x: left, y: top });
+ }
+
+ document.addEventListener("mousedown", handleOutsideClick);
+ return () => {
+ document.removeEventListener("mousedown", handleOutsideClick);
+ };
+ }, [props.show]);
+
+ useEffect(() => {
+ const handleMouseMove = (e: MouseEvent) => {
+ setMousePosition({ x: e.clientX, y: e.clientY });
+ };
+ document.addEventListener("mousemove", handleMouseMove);
+ return () => {
+ document.removeEventListener("mousemove", handleMouseMove);
+ };
+ }, []);
+
+ return (
+
+ {children}
+
+
+ {props.onSubmit && (
+
+ )}
+
+
+ );
+};
diff --git a/src/CAREUI/interactive/HumanChart.tsx b/src/CAREUI/interactive/HumanChart.tsx
new file mode 100644
index 00000000000..c3b7cca80c3
--- /dev/null
+++ b/src/CAREUI/interactive/HumanChart.tsx
@@ -0,0 +1,90 @@
+import { Fragment } from "react/jsx-runtime";
+import { HumanBodyPaths, HumanBodyRegion } from "../../Common/constants";
+
+type Props = {
+ regionColor: (region: HumanBodyRegion) => string;
+ regionLabelClassName: (region: HumanBodyRegion) => string;
+ regionText: (region: HumanBodyRegion) => string;
+ onPartSelect: (region: HumanBodyRegion) => void;
+};
+
+export default function HumanBodyChart({
+ regionLabelClassName,
+ regionColor,
+ regionText,
+ onPartSelect,
+}: Props) {
+ const getTitle = (text: string) => text.split(/(?=[A-Z])/).join(" ");
+
+ return (
+
+ {[HumanBodyPaths.anterior, HumanBodyPaths.posterior].map((paths, i) => (
+
+
+ {i === 0 ? "Front" : "Back"}
+
+
+ {paths.map((path, j) => (
+ onPartSelect(path.region)}
+ >
+ {getTitle(
+ `${path.region}`.replace(
+ new RegExp(Object.keys(HumanBodyPaths)[i], "i"),
+ "",
+ ),
+ )}
+ {parseInt(regionText(path.region))
+ ? ` | ${regionText(path.region)}`
+ : null}
+
+ ))}
+
+
+ {paths.map((path, j) => {
+ const value = regionText(path.region);
+ return (
+
+ {value && (
+
+ {value}
+
+ )}
+ onPartSelect(path.region)}
+ >
+ {getTitle(path.region)}
+
+
+ );
+ })}
+
+
+ ))}
+
+ );
+}
diff --git a/src/Common/constants.tsx b/src/Common/constants.tsx
index 2bfecf94395..6d37d91013a 100644
--- a/src/Common/constants.tsx
+++ b/src/Common/constants.tsx
@@ -346,26 +346,41 @@ export const DISCHARGE_REASONS = [
] as const;
export const CONSCIOUSNESS_LEVEL = [
- { id: "UNRESPONSIVE", text: "Unresponsive" },
- { id: "RESPONDS_TO_PAIN", text: "Responds to Pain" },
- { id: "RESPONDS_TO_VOICE", text: "Responds to Voice" },
- { id: "ALERT", text: "Alert" },
- { id: "AGITATED_OR_CONFUSED", text: "Agitated or Confused" },
+ { id: 20, value: "UNRESPONSIVE" },
+ { id: 15, value: "RESPONDS_TO_PAIN" },
+ { id: 10, value: "RESPONDS_TO_VOICE" },
+ { id: 5, value: "ALERT" },
+ { id: 25, value: "AGITATED_OR_CONFUSED" },
{
- id: "ONSET_OF_AGITATION_AND_CONFUSION",
- text: "Onset of Agitation and Confusion",
+ id: 30,
+ value: "ONSET_OF_AGITATION_AND_CONFUSION",
},
] as const;
-export const LINES_CATHETER_CHOICES: Array = [
- { id: 1, text: "CVP catheter " },
- { id: 2, text: "Arterial Line" },
- { id: 3, text: "Quinton catheter" },
- { id: 4, text: "Chest Tubes (ICD)" },
- { id: 5, text: "NG Tube/GT" },
- { id: 6, text: "Urine Catheters" },
- { id: 7, text: "Other" },
-];
+export const PUPIL_REACTION_OPTIONS = [
+ { id: 0, value: "UNKNOWN" },
+ { id: 5, value: "BRISK" },
+ { id: 10, value: "SLUGGISH" },
+ { id: 15, value: "FIXED" },
+ { id: 20, value: "CANNOT_BE_ASSESSED" },
+] as const;
+
+export const LIMB_RESPONSE_OPTIONS = [
+ { id: 0, value: "UNKNOWN" },
+ { id: 5, value: "STRONG" },
+ { id: 10, value: "MODERATE" },
+ { id: 15, value: "WEAK" },
+ { id: 20, value: "FLEXION" },
+ { id: 25, value: "EXTENSION" },
+ { id: 30, value: "NONE" },
+] as const;
+
+export const OXYGEN_MODALITY_OPTIONS = [
+ { value: "NASAL_PRONGS" },
+ { value: "SIMPLE_FACE_MASK" },
+ { value: "NON_REBREATHING_MASK" },
+ { value: "HIGH_FLOW_NASAL_CANNULA" },
+] as const;
export const GENDER_TYPES = [
{ id: 1, text: "Male", icon: "M" },
@@ -401,11 +416,30 @@ export const ADMITTED_TO = [
];
export const RESPIRATORY_SUPPORT = [
- { id: "NIV", text: "NON_INVASIVE" },
- { id: "IV", text: "INVASIVE" },
- { id: "O2", text: "OXYGEN_SUPPORT" },
- { id: "NONE", text: "UNKNOWN" },
-];
+ { id: "NIV", value: "NON_INVASIVE" },
+ { id: "IV", value: "INVASIVE" },
+ { id: "O2", value: "OXYGEN_SUPPORT" },
+ { id: "NONE", value: "UNKNOWN" },
+] as const;
+
+export const VENTILATOR_MODE_OPTIONS = [
+ "VCV",
+ "PCV",
+ "PRVC",
+ "APRV",
+ "VC_SIMV",
+ "PC_SIMV",
+ "PRVC_SIMV",
+ "ASV",
+ "PSV",
+] as const;
+
+export const INSULIN_INTAKE_FREQUENCY_OPTIONS = [
+ "UNKNOWN",
+ "OD",
+ "BD",
+ "TD",
+] as const;
export type PatientCategoryID = "Comfort" | "Stable" | "Moderate" | "Critical";
@@ -665,21 +699,21 @@ export const RESOURCE_FILTER_ORDER: Array = [
{ id: 4, text: "-modified_date", desc: "DESC Modified Date" },
];
-export const NURSING_CARE_FIELDS: Array = [
- { id: 1, text: "personal_hygiene", desc: "Personal Hygiene" },
- { id: 2, text: "positioning", desc: "Positioning" },
- { id: 3, text: "suctioning", desc: "Suctioning" },
- { id: 4, text: "ryles_tube_care", desc: "Ryles Tube Care" },
- { id: 5, text: "iv_sitecare", desc: "IV Site Care" },
- { id: 6, text: "nubulisation", desc: "Nubulisation" },
- { id: 7, text: "dressing", desc: "Dressing" },
- { id: 8, text: "dvt_pump_stocking", desc: "DVT Pump Stocking" },
- { id: 9, text: "restrain", desc: "Restrain" },
- { id: 10, text: "chest_tube_care", desc: "Chest Tube Care" },
- { id: 11, text: "tracheostomy_care", desc: "Tracheostomy Care" },
- { id: 12, text: "stoma_care", desc: "Stoma Care" },
- { id: 13, text: "catheter_care", desc: "Catheter Care" },
-];
+export const NURSING_CARE_PROCEDURES = [
+ "personal_hygiene",
+ "positioning",
+ "suctioning",
+ "ryles_tube_care",
+ "iv_sitecare",
+ "nubulisation",
+ "dressing",
+ "dvt_pump_stocking",
+ "restrain",
+ "chest_tube_care",
+ "tracheostomy_care",
+ "stoma_care",
+ "catheter_care",
+] as const;
export const EYE_OPEN_SCALE = [
{ value: 4, text: "Spontaneous" },
@@ -732,13 +766,7 @@ export const LOCATION_BED_TYPES: Array = [
{ id: "BED_WITH_OXYGEN_SUPPORT", name: "Bed with oxygen support" },
{ id: "REGULAR", name: "Regular" },
];
-// Deprecated Bed Types
-// {
-// id: "ICU_WITH_NON_INVASIVE_VENTILATOR",
-// name: "ICU with non invasive ventilator",
-// },
-// { id: "ICU_WITH_OXYGEN_SUPPORT", name: "ICU with oxygen support" },
-// { id: "ICU_WITH_INVASIVE_VENTILATOR", name: "ICU with invasive ventilator" }
+
export const ASSET_META_TYPE = [
{ id: "CAMERA", text: "Camera(ONVIF)" },
{ id: "HL7MONITOR", text: "Vitals Monitor(HL7)" },
@@ -1405,3 +1433,230 @@ export const DEFAULT_ALLOWED_EXTENSIONS = [
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"application/vnd.oasis.opendocument.spreadsheet,application/pdf",
];
+
+export const HumanBodyPaths = {
+ anterior: [
+ {
+ d: "M535.244,212.572c32.253.43,32.684-31.823,32.684-31.823,9.891-.215,14.191-19.783,13.331-23.653s-7.526-1.5-7.526-1.5c3.656-30.1-9.676-48.38-17.847-53.756S535.244,95.6,535.244,95.6h.43s-12.472.86-20.643,6.236-21.5,23.653-17.846,53.756c0,0-6.666-2.365-7.526,1.5s3.44,23.438,13.331,23.653c0,0,.43,32.253,32.684,31.823Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorHead",
+ },
+ {
+ d: "M512.129,213.97s31.608,4.954,47.574-1.394v14.456s-26.287,4.355-47.574,0Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorNeck",
+ },
+ {
+ d: "M505.355,231.279s-56.766,25.8-69.452,34.4c0,0,15.7,20.857,21.072,66.872C456.975,332.555,469.417,246.838,505.355,231.279Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorRightShoulder",
+ },
+ {
+ d: "M526.482,232.838l.806,137.346s-46.607-22.2-67.745,18.762C459.543,388.946,455.685,234.612,526.482,232.838Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorRightChest",
+ },
+ {
+ d: "M433.108,269.768s34.728,55.552,18.279,141.992c0,0-19.57-9.107-33.761-7.333,0,0-1.613-106.276,0-110.952S429.721,271.058,433.108,269.768Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorRightArm",
+ },
+ {
+ d: "M415.207,408.781s27.254-.968,35.963,11.45c0,0-7.58,59.024-13.547,77.57s-19.03,56.766-19.03,56.766l-22.254-2.742s1.451-34.672,1.29-45.477,5-49.993,9.514-62.249S415.207,408.781,415.207,408.781Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorRightForearm",
+ },
+ {
+ d: "M396.6,556.524l18.245,2.606a1.808,1.808,0,0,1,1.565,1.776c.049,6.373.053,30.692-2.6,41.987-2.568,10.951-16.244,28.022-26.205,35.726a4.126,4.126,0,0,1-6.575-2.7c-.192-1.322-.39-2.923-.584-4.855a1.828,1.828,0,0,0-2.054-1.637l-4.174.551a1.818,1.818,0,0,1-2.026-2.171c.631-3.043,1.887-8.187,3.72-11.529,2.591-4.724,5.9-18.948,5.442-26.76a1.79,1.79,0,0,0-1.514-1.635,7.118,7.118,0,0,0-5.448,1c-1.364,1.043-3.83,4.558-5.963,7.825-1.941,2.973-6.715.452-5.152-2.736.018-.037.037-.074.056-.111,1.936-3.71,13.063-18.708,16.288-24.513,2.9-5.221,13.627-8.747,15.171-11.984A1.706,1.706,0,0,1,396.6,556.524Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorRightHand",
+ },
+ {
+ d: "M674.037,556.2l-18.244,2.606a1.808,1.808,0,0,0-1.566,1.776c-.049,6.373-.052,30.692,2.6,41.988,2.569,10.951,16.244,28.021,26.205,35.726a4.126,4.126,0,0,0,6.576-2.7c.191-1.322.389-2.922.584-4.855a1.827,1.827,0,0,1,2.053-1.637l4.174.551a1.818,1.818,0,0,0,2.027-2.17c-.632-3.043-1.888-8.188-3.721-11.53-2.59-4.723-5.9-18.948-5.442-26.76a1.79,1.79,0,0,1,1.515-1.634,7.114,7.114,0,0,1,5.447,1c1.364,1.043,3.83,4.558,5.964,7.826,1.94,2.973,6.715.451,5.151-2.736-.018-.038-.037-.075-.056-.112-1.935-3.709-13.063-18.707-16.288-24.513-2.9-5.221-13.627-8.746-15.171-11.984A1.707,1.707,0,0,0,674.037,556.2Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorLeftHand",
+ },
+ {
+ d: "M544.705,232.838h19.137s18.062,15.643,20,19.513,29.888,42.79,26.878,128.154c0,0-16.557-16.556-31.178-15.051,0,0,2.365-33.114-34.834-34.619Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorLeftChest",
+ },
+ {
+ d: "M569.432,231.279s61.927,31.824,65.153,35.694c0,0-12.9,9.752-18.707,73.791C615.878,340.764,610.072,268.048,569.432,231.279Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorLeftShoulder",
+ },
+ {
+ d: "M638.455,271.058s14.407,18.923,14.837,23.223-1.291,105.362.86,108.8c0,0-26.233,1.29-34.834,9.891,0,0-4.3-51.176.86-78.484S633.079,279.659,638.455,271.058Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorLeftArm",
+ },
+ {
+ d: "M621.038,419s16.342-12.257,33.974-10.537c0,0,7.741,26.233,8.816,34.189s10.321,49.241,9.246,66.658.087,41.069.087,41.069-16.214,3.44-20.084,4.731c0,0-17.2-46.661-18.062-52.036S620.982,426.52,621.038,419Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorLeftForearm",
+ },
+ {
+ d: "M510.758,934.272s-20.723,1.451-24.973,1.5a56.32,56.32,0,0,0-1.556,10.672c0,4.355.484,25.481-.645,28.061s-21.771,27.254-23.383,30.641.645,8.386,1.935,9.192,2.1,4.757,4.193,5.644c1.807.765,3.064,3.709,5.644,4.032s10.482-.645,12.418.726c0,0,.887,3.144,2.58,3.306.864.082,5.644,1.774,10.644-5.967s13.04-35.019,13.439-37.791c.249-1.732-1.183-2.125-1.506-5.189a112.484,112.484,0,0,1,1.855-20.64C513.419,948.3,510.758,934.272,510.758,934.272Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorRightFoot",
+ },
+ {
+ d: "M563.251,934.191s20.756.564,25.006.616c0,0,.151,7.125.151,11.479s.162,24.351,1.29,26.932,22.531,27.576,24.144,30.963-.645,8.386-1.935,9.192-2.1,4.758-4.193,5.645c-1.807.764-3.064,3.709-5.645,4.031s-10.482-.645-12.417.726c0,0-.887,3.145-2.581,3.306-.864.082-5.644,1.774-10.643-5.967s-13.04-35.018-13.439-37.79c-.25-1.733,1.182-2.126,1.5-5.19a112.484,112.484,0,0,0-1.855-20.64C560.623,947.334,563.251,934.191,563.251,934.191Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorLeftFoot",
+ },
+ {
+ d: "M485.2,932.363l24.513-1.4s1.666-37.2,2.526-41.285,4.731-85.149,4.086-99.771c0,0-30,2.527-49.348-3.924,0,0-6.451,44.026-1.828,62.841C467.775,859.527,484.874,929.6,485.2,932.363Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorRightLeg",
+ },
+ {
+ d: "M469.231,420.715s-5.966-30.318-4.515-34.834a115.141,115.141,0,0,1,16.772-10.966c10.428-5.483,29.727-6.773,36.339-3.548,5.81,2.834,4.972,2.548,13.439,4.73l.054-142.13h9.192V334.92s32.415,1.291,31.931,33.06a72.9,72.9,0,0,0,8.869,2.419c5.322,1.129,23.062,9.031,25.642,19.675,0,0-4.945,22.2-3.655,32.684,0,0-39.4-29.835-47.306-31.609s-12.959,2.31-16.933,2.8c-4.483.547-11.71-.628-18.142-2.9C514.306,388.7,475.2,414.909,469.231,420.715Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorLowerChest",
+ },
+ {
+ d: "M461.813,481.665c2.43-11.313,8.042-43.207,7.1-55.467,0,0,48.3-30.56,50.88-30.4s12.122,5.564,23.841,2.338c0,0,6.719-3.225,13.331.162s34.874,24.149,46.324,28.987c0,0-.524,28.746,1.573,37.777s10.159,42.091,10.966,46.123,0,.806,0,.806-58.057,50.155-59.669,52.574c0,0-6.451-6.29-20.481-6.774s-20.643,6.774-20.643,6.774l-60.152-51.122S460.965,485.617,461.813,481.665Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorAbdomen",
+ },
+ {
+ d: "M554.381,790.77s30.748,3.226,51.39-4.945c0,0,3.441,40.424,0,63.432s-16.449,76.871-17.094,81.816c0,0-23.33.108-25.91-1.4,0,0-3.011-33.328-3.871-43S550.08,810.982,554.381,790.77Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorLeftLeg",
+ },
+ {
+ d: "M454.072,520.056s-4.515,29.35-6.128,48.7.323,59.346,6.128,81.278,21.288,89.343,14.514,131.272c0,0,20.464,8.064,47.808,4.516,0,0,7.2-74.822,6.7-87.73,0,0,3.333-50.745,3.333-58.7s1.72-27.738,1.72-27.738-20.642-10.106-14.837-44.08C513.311,567.576,462.351,524.571,454.072,520.056Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorRightThigh",
+ },
+ {
+ d: "M553.114,785.825s37.713,2.741,50.615-3.548c0,0-6.451-35.8-1.129-63.325s19.943-77.408,20.8-92.03,2.33-87.3-7.221-108.371l-56.426,49.455s3.441,37.629-18.922,44.725c0,0,7.741,68.807,7.741,78.913S554.857,777.654,553.114,785.825Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorLeftThigh",
+ },
+ {
+ d: "M535.624,610.466s16.722-10.1,18.818-27.355-3.386-17.578-5.805-18.545-13.063-1.291-13.063-1.291h.1s-10.644.323-13.063,1.291-7.9,1.29-5.806,18.545S535.624,610.466,535.624,610.466Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "AnteriorGroin",
+ },
+ ],
+
+ posterior: [
+ {
+ d: "M 506.9838 158.0121 C 509.6029 173.1336 512.1258 187.9477 521.5039 184.4407 C 517.7283 191.6346 525.6919 202.9266 528.0919 210.8841 C 544.9623 208.3461 562.3174 208.3461 579.1878 210.8841 C 581.5893 202.9236 589.5363 191.6662 585.7863 184.4511 C 595.6744 187.4586 596.8188 174.3021 600.3813 158.5926 C 600.1173 156.4611 595.9999 158.5806 594.7788 159.0816 C 597.7384 128.3122 591.2088 97.1811 553.7104 97.22 C 516.1444 97.1497 509.5249 128.2116 512.5008 159.0891 C 511.0564 158.4651 508.4914 157.0971 506.9838 158.0121 Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorHead",
+ },
+ {
+ d: "M 503.129 213.97 s 30.871 -1.97 46.871 0.03 v 12.456 s -26 -2.456 -47.574 0 Z",
+ transform: "translate(-362.967 -95.599)",
+ region: "PosteriorNeck",
+ },
+ {
+ d: "M545.584,228.037V361.6s-13.6,10.828-25.282,13.145c-10.077,2-36.162,3.374-36.766-.857S478.9,239.117,545.584,228.037Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorLeftChest",
+ },
+ {
+ d: "M563.865,228.037V361.6s13.6,10.828,25.282,13.145c10.076,2,36.161,3.374,36.766-.857S630.546,239.117,563.865,228.037Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorRightChest",
+ },
+ {
+ d: "M550.973,228.188h8.914l.151,136.435s20.7,17.828,59.681,16.317c0,0-4.684,38.528-1.057,56.508s9.216,41.248,9.216,41.248-77.812,30.218-145.954-.151c0,0,9.67-35.96,9.972-58.321a167.6,167.6,0,0,0-4.23-39.888s37.924,5.439,62.1-15.713C549.764,364.623,550.52,228.188,550.973,228.188Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorAbdomen",
+ },
+ {
+ d: "M523.223,230.857s-40.694,20.548-50.968,25.182-11.08,5.439-11.08,5.439,15.512,18.735,18.533,70.509C479.708,331.987,489.58,244.354,523.223,230.857Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorLeftShoulder",
+ },
+ {
+ d: "M587.084,230.857s40.693,20.548,50.968,25.182,11.08,5.439,11.08,5.439S633.62,280.213,630.6,331.987C630.6,331.987,620.726,244.354,587.084,230.857Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorRightShoulder",
+ },
+ {
+ d: "M457.951,265.306s-12.49,14.706-13.5,29.613,1.813,82.194.6,95.691c0,0,15.512-1.209,22.16,3.022s9.872,4.23,9.872,4.23,3.223-32.232,1.41-53.385S467.823,277.393,457.951,265.306Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorLeftArm",
+ },
+ {
+ d: "M444.655,394.639s3.627-1.209,8.864,1.612,21.153,4.835,21.153,4.835a241.987,241.987,0,0,1-6.245,50.968c-6.446,27.8-23.167,79.977-22.966,81.992,0,0-17.325-4.03-20.951-3.828,0,0,1.209-21.354,1.612-31.427s.2-42.91,6.648-63.659S444.454,396.049,444.655,394.639Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorLeftForearm",
+ },
+ {
+ d: "M423.5,533.844s-4.029,2.82-7.454,5.036-12.49,13.1-15.311,18.131-11.482,15.915-10.274,16.923,5.44.2,7.454-2.216,7.051-8.663,10.476-7.253c0,0,1.007,12.087-3.224,22.966s-4.633,13.7-4.633,13.7,2.591,2.22,7.063.809q.291-.091.592-.2s1.612,4.835.806,8.864,3.022,3.425,7.655,1.007,21.959-22.562,24.175-35.053,1.611-40.895,1.611-40.895S427.33,534.65,423.5,533.844Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorLeftHand",
+ },
+ {
+ d: "M650.678,265.306s12.49,14.706,13.5,29.613-1.813,82.194-.6,95.691c0,0-15.512-1.209-22.16,3.022s-9.871,4.23-9.871,4.23-3.224-32.232-1.41-53.385S640.807,277.393,650.678,265.306Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorRightArm",
+ },
+ {
+ d: "M663.974,394.639s-3.626-1.209-8.864,1.612-21.153,4.835-21.153,4.835a242.066,242.066,0,0,0,6.245,50.968c6.447,27.8,23.168,79.977,22.966,81.992,0,0,17.325-4.03,20.951-3.828,0,0-1.208-21.354-1.611-31.427s-.2-42.91-6.648-63.659S664.175,396.049,663.974,394.639Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorRightForearm",
+ },
+ {
+ d: "M685.127,533.844s4.029,2.82,7.453,5.036,12.491,13.1,15.311,18.131,11.483,15.915,10.274,16.923-5.439.2-7.454-2.216-7.051-8.663-10.475-7.253c0,0-1.008,12.087,3.223,22.966s4.633,13.7,4.633,13.7-2.59,2.22-7.062.809q-.291-.091-.593-.2s-1.612,4.835-.806,8.864-3.022,3.425-7.655,1.007-21.958-22.562-24.174-35.053-1.612-40.895-1.612-40.895S681.3,534.65,685.127,533.844Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorRightHand",
+ },
+ {
+ d: "M552.635,495.366s0,66.279-.6,69.9c-.051.277-.126.982-.2,2.065-5.691,6.673-27.473,28.254-58.673,9.04a10.164,10.164,0,0,1-1.738-1.309c-23.066-21.783-7.076-50.968-6.371-52.2l-2.216-1.234c-.176.327-17.652,32.107,6.849,55.249a14.16,14.16,0,0,0,2.166,1.662c9.519,5.842,18.232,8.033,25.988,8.033,16.116,0,27.977-9.519,33.642-15.235-1.661,20.07-6.144,82.369-6.5,86-.4,4.231-7.605,77.51-7.605,80.935,0,0-36.111-4.785-45.579-2.972,0,0,.2-37.672-2.821-59.63s-14.5-65.473-15.914-101.936-1.411-65.473,7.453-91.46C480.514,482.272,499.048,497.582,552.635,495.366Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorLeftThighAndButtock",
+ },
+ {
+ d: "M555.471,495.366s0,66.279.6,69.9c.051.277.126.982.2,2.065,5.691,6.673,27.473,28.254,58.673,9.04a10.164,10.164,0,0,0,1.738-1.309c23.066-21.783,7.076-50.968,6.371-52.2l2.216-1.234c.176.327,17.652,32.107-6.85,55.249a14.151,14.151,0,0,1-2.165,1.662c-9.519,5.842-18.232,8.033-25.988,8.033-16.116,0-27.977-9.519-33.643-15.235,1.662,20.07,6.145,82.369,6.5,86,.4,4.231,7.605,77.51,7.605,80.935,0,0,36.111-4.785,45.579-2.972,0,0-.2-37.672,2.82-59.63s14.5-65.473,15.915-101.936,1.41-65.473-7.453-91.46C627.592,482.272,609.058,497.582,555.471,495.366Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorRightThighAndButtock",
+ },
+ {
+ d: "M492.2,739.529s21.354-2.418,42.909,3.425c0,0,3.627,43.312,1.612,61.846s-7.655,75.445-6.849,80.078c0,0-19.944.907-25.988,2.518,0,0-2.619-29.009-9.267-49.154S486.961,754.839,492.2,739.529Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorLeftLeg",
+ },
+ {
+ d: "M617.088,739.529s-21.354-2.418-42.909,3.425c0,0-3.626,43.312-1.612,61.846s7.655,75.445,6.85,80.078c0,0,19.944.907,25.987,2.518,0,0,2.619-29.009,9.267-49.154S622.326,754.839,617.088,739.529Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorRightLeg",
+ },
+ {
+ d: "M504.387,891.023s17.728-.806,24.879-2.619c0,0,2.015,6.245,1.209,18.131s-1.007,21.555-.6,23.771,1.813,9.67-1.209,15.512S520,967.172,516.978,972.007s-10.275,5.439-11.886-1.611c0,0-1.813,3.424-7.857,1.41s-9.67-1.209-11.483-5.44-4.835-11.684-1.41-16.922,18.937-18.534,20.145-25.182S505.6,895.455,504.387,891.023Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorLeftFoot",
+ },
+ {
+ d: "M604.752,891.023s-17.728-.806-24.88-2.619c0,0-2.014,6.245-1.209,18.131s1.008,21.555.605,23.771-1.813,9.67,1.209,15.512,8.662,21.354,11.684,26.189,10.274,5.439,11.886-1.611c0,0,1.813,3.424,7.856,1.41s9.67-1.209,11.483-5.44,4.835-11.684,1.41-16.922-18.936-18.534-20.145-25.182S603.543,895.455,604.752,891.023Z",
+ transform: "translate(-390.349 -94.472)",
+ region: "PosteriorRightFoot",
+ },
+ ],
+} as const;
+
+export type HumanBodyRegion = (typeof HumanBodyPaths)[
+ | "anterior"
+ | "posterior"][number]["region"];
+
+export const PressureSoreExudateAmountOptions = [
+ "None",
+ "Light",
+ "Moderate",
+ "Heavy",
+] as const;
+
+export const PressureSoreTissueTypeOptions = [
+ "Closed",
+ "Epithelial",
+ "Granulation",
+ "Slough",
+ "Necrotic",
+] as const;
diff --git a/src/Components/ABDM/ABDMFacilityRecords.tsx b/src/Components/ABDM/ABDMFacilityRecords.tsx
index cd21d269536..a37fc0d4932 100644
--- a/src/Components/ABDM/ABDMFacilityRecords.tsx
+++ b/src/Components/ABDM/ABDMFacilityRecords.tsx
@@ -42,8 +42,7 @@ export default function ABDMFacilityRecords({ facilityId }: IProps) {
- {/* eslint-disable-next-line tailwindcss/migration-from-tailwind-2 */}
-
+
@@ -152,7 +151,7 @@ export default function ABDMFacilityRecords({ facilityId }: IProps) {
View
) : (
-
+
View
)}
diff --git a/src/Components/Assets/AssetFilter.tsx b/src/Components/Assets/AssetFilter.tsx
index 0470ea7f701..bf07bad4b09 100644
--- a/src/Components/Assets/AssetFilter.tsx
+++ b/src/Components/Assets/AssetFilter.tsx
@@ -46,7 +46,7 @@ function AssetFilter(props: any) {
useEffect(() => {
setFacilityId(facility?.id ? `${facility?.id}` : "");
setLocationId(
- facility?.id === qParams.facility ? qParams.location ?? "" : "",
+ facility?.id === qParams.facility ? (qParams.location ?? "") : "",
);
}, [facility?.id, qParams.facility, qParams.location]);
diff --git a/src/Components/Assets/AssetManage.tsx b/src/Components/Assets/AssetManage.tsx
index 469d1556fb5..4c17721e1f9 100644
--- a/src/Components/Assets/AssetManage.tsx
+++ b/src/Components/Assets/AssetManage.tsx
@@ -110,7 +110,7 @@ const AssetManage = (props: AssetManageProps) => {
const PrintPreview = () => (
-
+
window.print()}
className="btn btn-primary mr-2"
diff --git a/src/Components/Assets/AssetWarrantyCard.tsx b/src/Components/Assets/AssetWarrantyCard.tsx
index cde8dfc256d..e26575f712b 100644
--- a/src/Components/Assets/AssetWarrantyCard.tsx
+++ b/src/Components/Assets/AssetWarrantyCard.tsx
@@ -33,7 +33,7 @@ export default function AssetWarrantyCard(props: { asset: AssetData }) {
{asset.manufacturer}
-
+
{Object.keys(details).map((key) => (
diff --git a/src/Components/CameraFeed/AssetBedSelect.tsx b/src/Components/CameraFeed/AssetBedSelect.tsx
index dafb28d133f..d9f37d5ed2a 100644
--- a/src/Components/CameraFeed/AssetBedSelect.tsx
+++ b/src/Components/CameraFeed/AssetBedSelect.tsx
@@ -109,7 +109,7 @@ export const CameraPresetDropdown = (
leaveFrom="opacity-100"
leaveTo="opacity-0"
>
-
+
{options?.map((obj) => (
{
- {props.totalCount} {" "}
+ {props.totalCount} {" "}
Camera(s) present
diff --git a/src/Components/CameraFeed/FeedControls.tsx b/src/Components/CameraFeed/FeedControls.tsx
index 8cff960505a..1bacd6c1cfc 100644
--- a/src/Components/CameraFeed/FeedControls.tsx
+++ b/src/Components/CameraFeed/FeedControls.tsx
@@ -224,7 +224,7 @@ export default function FeedControls({ shortcutsDisabled, ...props }: Props) {
-
+
{controls.zoom}
{controls.reset}
diff --git a/src/Components/Common/CareIcon.res b/src/Components/Common/CareIcon.res
deleted file mode 100644
index 343e01f1ddb..00000000000
--- a/src/Components/Common/CareIcon.res
+++ /dev/null
@@ -1,19 +0,0 @@
-type reactClass
-module CareIcon = {
- @module("../../CAREUI/icons/CareIcon.tsx") @react.component
- external make: (
- ~icon: option
,
- ~className: option,
- ~onClick: option unit>,
- ~id: option
- ) => React.element = "default"
-}
-
-@react.component
-let make = (
- ~icon = ?,
- ~className = ?,
- ~onClick = ?,
- ~id = ?,
-) =>
-
diff --git a/src/Components/Common/DialogModal.res b/src/Components/Common/DialogModal.res
deleted file mode 100644
index ae03ad8139c..00000000000
--- a/src/Components/Common/DialogModal.res
+++ /dev/null
@@ -1,20 +0,0 @@
-type reactClass
-module DialogModal = {
- @module("./Dialog.tsx") @react.component
- external make: (
- ~title: React.element,
- ~show: bool,
- ~onClose: unit => unit,
- ~className: string,
- ~children: React.element,
- ) => React.element = "default"
-}
-
-@react.component
-let make = (
- ~title: React.element,
- ~show: bool,
- ~onClose: unit => unit,
- ~className: string,
- ~children: React.element,
-) => {children}
diff --git a/src/Components/Common/ExcelViewer.tsx b/src/Components/Common/ExcelViewer.tsx
index 643b411a9b0..a7e5879ef1f 100644
--- a/src/Components/Common/ExcelViewer.tsx
+++ b/src/Components/Common/ExcelViewer.tsx
@@ -39,9 +39,9 @@ const ExcelViewer = ({
const [selectedRowsData, setSelectedRowsData] = useState([]);
const initialSelectedRows = fileData
- ? fileData
+ ? (fileData
.map((_, i) => i)
- .filter((i) => !errors.some((err) => err.index === i)) ?? []
+ .filter((i) => !errors.some((err) => err.index === i)) ?? [])
: [];
const [selectedRows, setSelectedRows] =
@@ -132,9 +132,7 @@ const ExcelViewer = ({
return (
{showCheckbox && (
@@ -197,10 +195,7 @@ const ExcelViewer = ({
<>
+
{/* flexible spacing */}
diff --git a/src/Components/Common/Sidebar/SidebarItem.tsx b/src/Components/Common/Sidebar/SidebarItem.tsx
index b119aa58565..bf0b0589011 100644
--- a/src/Components/Common/Sidebar/SidebarItem.tsx
+++ b/src/Components/Common/Sidebar/SidebarItem.tsx
@@ -32,8 +32,7 @@ const SidebarItemBase = forwardRef(
return (
-
-
-
-
- setShow(false)}
- />
-
-
-
-
-
diff --git a/src/Components/Common/TemperatureFormField.tsx b/src/Components/Common/TemperatureFormField.tsx
index 2d81ab3d8df..236d87826e9 100644
--- a/src/Components/Common/TemperatureFormField.tsx
+++ b/src/Components/Common/TemperatureFormField.tsx
@@ -3,6 +3,7 @@ import { FormFieldBaseProps } from "../Form/FormFields/Utils";
import RangeAutocompleteFormField from "../Form/FormFields/RangeAutocompleteFormField";
import CareIcon from "../../CAREUI/icons/CareIcon";
import ButtonV2 from "./components/ButtonV2";
+import { fahrenheitToCelsius } from "../../Utils/utils";
type TemperatureUnit = "celsius" | "fahrenheit";
@@ -74,11 +75,3 @@ export default function TemperatureFormField(props: Props) {
/>
);
}
-
-export const celsiusToFahrenheit = (celsius: number) => {
- return (celsius * 9) / 5 + 32;
-};
-
-export const fahrenheitToCelsius = (fahrenheit: number) => {
- return ((fahrenheit - 32) * 5) / 9;
-};
diff --git a/src/Components/Common/Transition.res b/src/Components/Common/Transition.res
deleted file mode 100644
index 54d3e4c772d..00000000000
--- a/src/Components/Common/Transition.res
+++ /dev/null
@@ -1,26 +0,0 @@
-type reactClass
-module Transition = {
- @module("./Transition.tsx") @react.component
- external make: (
- ~show: option
,
- ~enter: string,
- ~enterFrom: string,
- ~enterTo: string,
- ~leave: string,
- ~leaveFrom: string,
- ~leaveTo: string,
- ~children: 'a,
- ) => React.element = "default"
-}
-
-@react.component
-let make = (
- ~show=None,
- ~enter="",
- ~enterFrom="",
- ~enterTo="",
- ~leave="",
- ~leaveFrom="",
- ~leaveTo="",
- ~children,
-) => children
diff --git a/src/Components/Common/Uptime.tsx b/src/Components/Common/Uptime.tsx
index 6883d0f3871..a1cf0ee90b3 100644
--- a/src/Components/Common/Uptime.tsx
+++ b/src/Components/Common/Uptime.tsx
@@ -51,7 +51,7 @@ function UptimeInfo({
-
{date}
+
{date}
{incidents.length === 0 ? (
<>
diff --git a/src/Components/Common/UserAutocompleteFormField.tsx b/src/Components/Common/UserAutocompleteFormField.tsx
index 3ff6a3ae7c2..a42fea1890c 100644
--- a/src/Components/Common/UserAutocompleteFormField.tsx
+++ b/src/Components/Common/UserAutocompleteFormField.tsx
@@ -151,7 +151,7 @@ export const LinkedFacilityUsers = (props: LinkedFacilitySearchProps) => {
const userOnlineDot = (user: UserBareMinimum) => (
diff --git a/src/Components/Common/components/ButtonV2.tsx b/src/Components/Common/components/ButtonV2.tsx
index 014a182ba94..bc67e150fdc 100644
--- a/src/Components/Common/components/ButtonV2.tsx
+++ b/src/Components/Common/components/ButtonV2.tsx
@@ -128,7 +128,7 @@ const ButtonV2 = ({
if (href && !(disabled || loading)) {
return (
-
+
{children}
diff --git a/src/Components/Common/components/CheckBox.tsx b/src/Components/Common/components/CheckBox.tsx
deleted file mode 100644
index ac1193220dc..00000000000
--- a/src/Components/Common/components/CheckBox.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-interface Props {
- id?: string;
- className?: string;
- name?: string;
- onCheck: (value: boolean) => void;
- checked?: boolean;
- error?: string;
- required?: boolean;
- label?: string;
-}
-
-export default function Checkbox(props: Props) {
- return (
-
-
- props.onCheck(event.target.checked)}
- />
- {props.label}
-
-
- );
-}
diff --git a/src/Components/Common/components/Checkbox.res b/src/Components/Common/components/Checkbox.res
deleted file mode 100644
index 967de556c04..00000000000
--- a/src/Components/Common/components/Checkbox.res
+++ /dev/null
@@ -1,15 +0,0 @@
-let str = React.string
-
-@react.component
-let make = (~id, ~label, ~onChange, ~checked=false) =>
-
-
-
-
-
-
-
-
- {label |> str}
-
-
diff --git a/src/Components/Common/components/ContactLink.tsx b/src/Components/Common/components/ContactLink.tsx
index ff13433cc3b..ee834b3f2a9 100644
--- a/src/Components/Common/components/ContactLink.tsx
+++ b/src/Components/Common/components/ContactLink.tsx
@@ -9,7 +9,7 @@ export default function ContactLink(props: ContactLinkProps) {
Webapi.Dom.KeyboardEvent.t = "%identity"
-
-let onConfirm = (href, onClick, event) => {
- ReactEvent.Mouse.preventDefault(event)
- Belt.Option.mapWithDefault(onClick, (), onClick => onClick(event))
- RescriptReactRouter.push(href)
-}
-
-let onCancel = event => event |> ReactEvent.Mouse.preventDefault
-
-let handleOnClick = (href, confirm, onClick, event) => {
- let keyboardEvent = event |> unsafeAsKeyboardEvent
- let modifierPressed = keyboardEvent |> ctrlKey || keyboardEvent |> metaKey
-
- switch (modifierPressed, confirm) {
- | (true, _) => ()
- | (false, Some(confirmationText)) =>
- WindowUtils.confirm(
- ~onCancel=() => onCancel(event),
- confirmationText,
- () => onConfirm(href, onClick, event),
- )
- | (false, None) => onConfirm(href, onClick, event)
- }
-}
-
-@react.component
-let make = (
- ~href,
- ~ariaLabel=?,
- ~className=?,
- ~confirm=?,
- ~id=?,
- ~onClick=?,
- ~title=?,
- ~children,
-) =>
-
- children
-
diff --git a/src/Components/Common/components/Menu.tsx b/src/Components/Common/components/Menu.tsx
index a6f66ff9d2f..632644df988 100644
--- a/src/Components/Common/components/Menu.tsx
+++ b/src/Components/Common/components/Menu.tsx
@@ -34,7 +34,7 @@ export default function DropdownMenu({
-
-
-
-
-
-
-
-
- {label->str}
-
-
diff --git a/src/Components/Common/components/SkeletonLoading.res b/src/Components/Common/components/SkeletonLoading.res
deleted file mode 100644
index 71f4f11df91..00000000000
--- a/src/Components/Common/components/SkeletonLoading.res
+++ /dev/null
@@ -1,144 +0,0 @@
-let card = (~className="", ()) =>
-
-
-let smallCard = () =>
-
-
-let userCard = () =>
-
-
-let heading = () =>
-
-
-let profileCard = () =>
-
-
-let image = () =>
-
-
-let courseCard = () =>
-
-
-let paragraph = () =>
-
-
-let contents = () =>
-
-
-let pageLoad = () =>
-
-
-let multiple = (~count, ~element) =>
- Array.make(count, element)
- |> Array.mapi((key, element) =>
string_of_int}> element
)
- |> React.array
diff --git a/src/Components/Common/prescription-builder/types/Prescription__Prescription.res b/src/Components/Common/prescription-builder/types/Prescription__Prescription.res
deleted file mode 100644
index 97c42c6257f..00000000000
--- a/src/Components/Common/prescription-builder/types/Prescription__Prescription.res
+++ /dev/null
@@ -1,75 +0,0 @@
-@genType
-type t = {
- medicine: string,
- dosage: string,
- days: int,
- dosage_new : string,
- route : string,
- notes : string
-}
-
-let medicine = t => t.medicine
-let dosage = t => t.dosage
-let days = t => t.days
-let dosage_new = t => t.dosage_new
-let route = t => t.route
-let notes = t => t.notes
-
-let make = (medicine, dosage, days, dosage_new, route, notes) => {
- medicine: medicine,
- dosage: dosage,
- days: days,
- route : route,
- notes : notes,
- dosage_new : dosage_new
-}
-
-let empty = () => {
- medicine: "",
- route: "",
- dosage: "",
- dosage_new: "0 mg",
- days: 0,
- notes: ""
-}
-
-let updateMedicine = (medicine, t) => {...t, medicine: medicine}
-let updateDosage = (dosage, t) => {...t, dosage: dosage}
-let updateDays = (days, t) => {...t, days: days}
-let updateDosageNew = (dosage, t) => {...t, dosage_new: dosage}
-let updateRoute = (route, t) => {...t, route: route}
-let updateNotes = (notes, t) => {...t, notes: notes}
-
-let decode = json => {
- open Json.Decode
- {
- medicine: json |> field("medicine", string),
- dosage: json |> field("dosage", string),
- days: json |> field("days", int),
- route: json |> field("route", string),
- dosage_new: json |> field("dosage_new", string),
- notes: json |> field("notes", string),
- }
-}
-
-let encode = t => {
- open Json.Encode
- object_(list{
- ("medicine", t.medicine |> string),
- ("dosage", t.dosage |> string),
- ("dosage_new", t.dosage_new |> string),
- ("route", t.route |> string),
- ("notes", t.notes |> string),
- ("days", t.days |> int),
- })
-}
-
-let encodeArray = prescriptions =>
- prescriptions |> {
- open Json.Encode
- array(encode)
- }
-
-let makeFromJs = json => {
- Js.Array.isArray(json) ? Js.Array.map(p => make(p["medicine"], p["dosage"], p["days"], p["dosage_new"], p["route"], p["notes"]), json) : []
-}
diff --git a/src/Components/Common/utils/ArrayUtils.res b/src/Components/Common/utils/ArrayUtils.res
deleted file mode 100644
index c5f55b7b9e5..00000000000
--- a/src/Components/Common/utils/ArrayUtils.res
+++ /dev/null
@@ -1,44 +0,0 @@
-exception UnsafeFindFailed(string)
-
-let copyAndSort = (f, t) => {
- let cp = Js.Array.copy(t)
- Js.Array.sortInPlaceWith(f, cp)
-}
-
-let copyAndPush = (e, t) => {
- let copy = Js.Array.copy(t)
- Js.Array.push(e, copy) |> ignore
- copy
-}
-
-let isEmpty = a => Js.Array.length(a) == 0
-
-let isNotEmpty = a => !isEmpty(a)
-
-let replaceWithIndex = (i, t, l) => Js.Array.mapi((a, index) => index == i ? t : a, l)
-
-let flatten = a => a |> Js.Array.reduce((flat, next) => flat |> Js.Array.concat(next), [])
-
-let sort_uniq = (f, t) => t |> Array.to_list |> List.sort_uniq(f) |> Array.of_list
-
-let getOpt = (a, i) =>
- try Some(a |> Array.get(i)) catch {
- | Not_found => None
- }
-
-let swapUp = (i, t) =>
- if i <= 0 || i >= (t |> Array.length) {
- t
- } else {
- let copy = Js.Array.copy(t)
-
- copy[i] = t[i - 1]
- copy[i - 1] = t[i]
- copy
- }
-
-let swapDown = (i, t) => swapUp(i + 1, t)
-
-let last = t => t->Js.Array.unsafe_get(Js.Array.length(t) - 1)
-
-let findAndReplace = (index, f, array) => array |> Array.mapi((i, p) => i == index ? f(p) : p)
diff --git a/src/Components/Common/utils/DateFns.res b/src/Components/Common/utils/DateFns.res
deleted file mode 100644
index 4fa70abb144..00000000000
--- a/src/Components/Common/utils/DateFns.res
+++ /dev/null
@@ -1,129 +0,0 @@
-type locale
-
-@deriving(abstract)
-type formatDistanceOptions = {
- @optional
- includeSeconds: bool,
- @optional
- addSuffix: bool,
- @optional
- locale: locale,
-}
-
-@deriving(abstract)
-type formatDistanceStrictOptions = {
- @optional
- addSuffix: bool,
- @optional
- unit: string,
- @optional
- roundingMethod: string,
- @optional
- locale: locale,
-}
-
-// TODO: This function should return the user's actual / selected timezone.
-let currentTimeZone = () => "Asia/Kolkata"
-
-// TODO: This function should return either "HH:mm", or "h:mm a" depending on user's preferred time format.
-let selectedTimeFormat = () => "HH:mm"
-
-@module("date-fns")
-external formatDistanceOpt: (Js.Date.t, Js.Date.t, formatDistanceOptions) => string =
- "formatDistance"
-
-@module("date-fns")
-external formatDistanceStrictOpt: (Js.Date.t, Js.Date.t, formatDistanceStrictOptions) => string =
- "formatDistanceStrict"
-
-@module("date-fns")
-external formatDistanceToNowOpt: (Js.Date.t, formatDistanceOptions) => string =
- "formatDistanceToNow"
-
-@module("date-fns")
-external formatDistanceToNowStrictOpt: (Js.Date.t, formatDistanceStrictOptions) => string =
- "formatDistanceToNowStrict"
-
-let formatDistance = (date, baseDate, ~includeSeconds=false, ~addSuffix=false, ()) => {
- let options = formatDistanceOptions(~includeSeconds, ~addSuffix, ())
- formatDistanceOpt(date, baseDate, options)
-}
-
-let formatDistanceStrict = (
- date,
- baseDate,
- ~addSuffix=false,
- ~unit=?,
- ~roundingMethod="round",
- (),
-) => {
- let options = formatDistanceStrictOptions(~addSuffix, ~unit?, ~roundingMethod, ())
- formatDistanceStrictOpt(date, baseDate, options)
-}
-
-let formatDistanceToNow = (date, ~includeSeconds=false, ~addSuffix=false, ()) => {
- let options = formatDistanceOptions(~includeSeconds, ~addSuffix, ())
- formatDistanceToNowOpt(date, options)
-}
-
-let formatDistanceToNowStrict = (date, ~addSuffix=false, ~unit=?, ~roundingMethod="round", ()) => {
- let options = formatDistanceStrictOptions(~addSuffix, ~unit?, ~roundingMethod, ())
-
- formatDistanceToNowStrictOpt(date, options)
-}
-
-@deriving(abstract)
-type formatOptions = {
- timeZone: string,
- @optional
- locale: locale,
- @optional
- weekStartsOn: int,
- @optional
- firstWeekContainsDate: int,
- @optional
- useAdditionalWeekYearTokens: bool,
- @optional
- useAdditionalDayOfYearTokens: bool,
-}
-
-@module("date-fns-tz")
-external formatTz: (Js.Date.t, string, formatOptions) => string = "format"
-
-let format = (date, fmt) => {
- let timeZone = currentTimeZone()
-
- // Since the passed date is not time-zone-sensitive, we need to pass the
- // time-zone here so that the user's timezone is displayed in the generated
- // string.
- formatTz(date, fmt, formatOptions(~timeZone, ()))
-}
-
-let formatPreset = (date, ~short=false, ~year=false, ~time=false, ()) => {
- let leading = short ? "MMM d" : "MMMM d"
- let middle = year ? ", yyyy" : ""
- let trailing = time ? " " ++ selectedTimeFormat() : ""
-
- format(date, leading ++ (middle ++ trailing))
-}
-
-@module("date-fns")
-external decodeISOJs: Js.Json.t => Js.Date.t = "parseISO"
-
-let decodeISO = json =>
- if Js.typeof(json) == "string" {
- decodeISOJs(json)
- } else {
- raise(Json.Decode.DecodeError("Expected string, got " ++ Js.typeof(json)))
- }
-
-let encodeISO = date => Js.Date.toISOString(date)->Js.Json.string
-
-@module("date-fns") external parseISO: string => Js.Date.t = "parseISO"
-
-@module("date-fns") external isPast: Js.Date.t => bool = "isPast"
-
-@module("date-fns") external isFuture: Js.Date.t => bool = "isFuture"
-
-@module("date-fns")
-external differenceInSeconds: (Js.Date.t, Js.Date.t) => int = "differenceInSeconds"
diff --git a/src/Components/Common/utils/DictUtils.res b/src/Components/Common/utils/DictUtils.res
deleted file mode 100644
index 748ceed51c7..00000000000
--- a/src/Components/Common/utils/DictUtils.res
+++ /dev/null
@@ -1,26 +0,0 @@
-let setOptionalString = (key, value, payload) => {
- if String.trim(value) !== "" {
- Js.Dict.set(payload, key, Js.Json.string(value))
- }
-}
-
-let setOptionalNumber = (key, value, payload) => {
- switch value {
- | Some(v) => Js.Dict.set(payload, key, Js.Json.number(float_of_int(v)))
- | None => Js.Dict.set(payload, key, Js.Json.null)
- }
-}
-
-let setOptionalFloat = (key, value, payload) => {
- switch value {
- | Some(v) => Js.Dict.set(payload, key, Js.Json.number(v))
- | None => Js.Dict.set(payload, key, Js.Json.null)
- }
-}
-
-let setOptionalBool = (key, value, payload) => {
- switch value {
- | Some(v) => Js.Dict.set(payload, key, Js.Json.boolean(v))
- | None => Js.Dict.set(payload, key, Js.Json.null)
- }
-}
diff --git a/src/Components/Common/utils/ReactUtils.res b/src/Components/Common/utils/ReactUtils.res
deleted file mode 100644
index c83a85853d4..00000000000
--- a/src/Components/Common/utils/ReactUtils.res
+++ /dev/null
@@ -1,3 +0,0 @@
-let nullUnless = (element, condition) => condition ? element : React.null
-
-let nullIf = (element, condition) => nullUnless(element, !condition)
diff --git a/src/Components/Common/utils/ValidationUtils.res b/src/Components/Common/utils/ValidationUtils.res
deleted file mode 100644
index 61a79fbffa2..00000000000
--- a/src/Components/Common/utils/ValidationUtils.res
+++ /dev/null
@@ -1,22 +0,0 @@
-let isInputInRangeFloat = (minString, maxString, val) => {
- let min = Js.Float.fromString(minString)
- let max = Js.Float.fromString(maxString)
- let value = Js.Option.getWithDefault(min, val)
- if value < min || value > max {
- Some("Input outside range")
- } else {
- None
- }
-}
-
-let isInputInRangeInt = (min, max, val) => {
- switch val {
- | Some(value) =>
- switch (value < min, value > max) {
- | (true, _) => Some("Input less than " ++ string_of_int(min))
- | (_, true) => Some("Input greater than maximum")
- | _ => None
- }
- | None => None
- }
-}
diff --git a/src/Components/Common/utils/WindowUtils.res b/src/Components/Common/utils/WindowUtils.res
deleted file mode 100644
index e8eb1ceb4dc..00000000000
--- a/src/Components/Common/utils/WindowUtils.res
+++ /dev/null
@@ -1,9 +0,0 @@
-let confirm = (~onCancel=?, message, f) =>
- if {
- open Webapi.Dom
- window -> Window.confirm(message)
- } {
- f()
- } else {
- Belt.Option.mapWithDefault(onCancel, (), onCancel => onCancel())
- }
diff --git a/src/Components/CriticalCareRecording/ABGAnalysisEditor/CriticalCare__ABGAnalysisEditor.res b/src/Components/CriticalCareRecording/ABGAnalysisEditor/CriticalCare__ABGAnalysisEditor.res
deleted file mode 100644
index c3e5a6e7025..00000000000
--- a/src/Components/CriticalCareRecording/ABGAnalysisEditor/CriticalCare__ABGAnalysisEditor.res
+++ /dev/null
@@ -1,216 +0,0 @@
-open CriticalCare__Types
-let str = React.string
-
-@module("../CriticalCare__API")
-external updateDailyRound: (string, string, Js.Json.t, _ => unit, _ => unit) => unit =
- "updateDailyRound"
-
-let string_of_float = data => Belt.Option.mapWithDefault(data, "", Js.Float.toString)
-let string_of_int = data => Belt.Option.mapWithDefault(data, "", Js.Int.toString)
-let int_of_string = data => data->Belt.Int.fromString
-let float_of_string = data => data->Belt.Float.fromString
-
-type state = {
- po2: option
,
- pco2: option,
- pH: option,
- hco3: option,
- baseExcess: option,
- lactate: option,
- sodium: option,
- potassium: option,
- dirty: bool,
- saving: bool,
-}
-
-type action =
- | SetPO2(option)
- | SetPCO2(option)
- | SetpH(option)
- | SetHCO3(option)
- | SetBaseExcess(option)
- | SetLactate(option)
- | SetSodium(option)
- | SetPotassium(option)
- | SetSaving
- | ClearSaving
-
-let reducer = (state, action) => {
- switch action {
- | SetPO2(po2) => {...state, po2: po2, dirty: true}
- | SetPCO2(pco2) => {...state, pco2: pco2, dirty: true}
- | SetpH(pH) => {...state, pH: pH, dirty: true}
- | SetHCO3(hco3) => {...state, hco3: hco3, dirty: true}
- | SetBaseExcess(baseExcess) => {...state, baseExcess: baseExcess, dirty: true}
- | SetLactate(lactate) => {...state, lactate: lactate, dirty: true}
- | SetSodium(sodium) => {...state, sodium: sodium, dirty: true}
- | SetPotassium(potassium) => {...state, potassium: potassium, dirty: true}
- | SetSaving => {...state, saving: true}
- | ClearSaving => {...state, saving: false}
- }
-}
-
-let initialState = abg => {
- {
- po2: ABGAnalysis.po2(abg),
- pco2: ABGAnalysis.pco2(abg),
- pH: ABGAnalysis.pH(abg),
- hco3: ABGAnalysis.hco3(abg),
- baseExcess: ABGAnalysis.baseExcess(abg),
- lactate: ABGAnalysis.lactate(abg),
- sodium: ABGAnalysis.sodium(abg),
- potassium: ABGAnalysis.potassium(abg),
- saving: false,
- dirty: false,
- }
-}
-
-let makePayload = state => {
- let payload = Js.Dict.empty()
- DictUtils.setOptionalNumber("po2", state.po2, payload)
- DictUtils.setOptionalNumber("pco2", state.pco2, payload)
- DictUtils.setOptionalFloat("ph", state.pH, payload)
- DictUtils.setOptionalFloat("hco3", state.hco3, payload)
- DictUtils.setOptionalNumber("base_excess", state.baseExcess, payload)
- DictUtils.setOptionalFloat("lactate", state.lactate, payload)
- DictUtils.setOptionalFloat("sodium", state.sodium, payload)
- DictUtils.setOptionalFloat("potassium", state.potassium, payload)
- payload
-}
-
-let successCB = (send, updateCB, data) => {
- send(ClearSaving)
- updateCB(CriticalCare__DailyRound.makeFromJs(data))
-}
-
-let errorCB = (send, _error) => {
- send(ClearSaving)
-}
-
-let saveData = (id, consultationId, state, send, updateCB) => {
- send(SetSaving)
- updateDailyRound(
- consultationId,
- id,
- Js.Json.object_(makePayload(state)),
- successCB(send, updateCB),
- errorCB(send),
- )
-}
-
-let getStatus = (min, minText, max, maxText, val) => {
- if val >= min && val <= max {
- ("Normal", "#059669")
- } else if val < min {
- (minText, "#DC2626")
- } else {
- (maxText, "#DC2626")
- }
-}
-
-
-
-@react.component
-let make = (~arterialBloodGasAnalysis, ~updateCB, ~id, ~consultationId) => {
- let (state, send) = React.useReducer(reducer, initialState(arterialBloodGasAnalysis))
-
-
-
-
- send(SetPO2(int_of_string(s)))}
- getLabel={getStatus(50.0, "Low", 200.0, "High")}
- hasError={ValidationUtils.isInputInRangeInt(10, 400, state.po2)}
- />
- send(SetPCO2(int_of_string(s)))}
- getLabel={getStatus(35.0, "Low", 45.0, "High")}
- hasError={ValidationUtils.isInputInRangeInt(10, 200, state.pco2)}
- />
- send(SetpH(float_of_string(s)))}
- getLabel={getStatus(7.35, "Low", 7.45, "High")}
- hasError={ValidationUtils.isInputInRangeFloat("0.0", "10.0", state.pH)}
- />
- send(SetHCO3(float_of_string(s)))}
- getLabel={getStatus(22.0, "Low", 26.0, "High")}
- hasError={ValidationUtils.isInputInRangeFloat("5.0", "80.0", state.hco3)}
- />
- send(SetBaseExcess(int_of_string(s)))}
- getLabel={getStatus(-2.0, "Low", 2.0, "High")}
- hasError={ValidationUtils.isInputInRangeInt(-20, 20, state.baseExcess)}
- />
- send(SetLactate(float_of_string(s)))}
- getLabel={getStatus(0.0, "Low", 2.0, "High")}
- hasError={ValidationUtils.isInputInRangeFloat("0.0", "20.0", state.lactate)}
- />
- send(SetSodium(float_of_string(s)))}
- getLabel={getStatus(135.0, "Low", 145.0, "High")}
- hasError={ValidationUtils.isInputInRangeFloat("100.0", "170.0", state.sodium)}
- />
- send(SetPotassium(float_of_string(s)))}
- getLabel={getStatus(3.5, "Low", 5.5, "High")}
- hasError={ValidationUtils.isInputInRangeFloat("1.0", "10.0", state.potassium)}
- />
-
-
saveData(id, consultationId, state, send, updateCB)}>
- {str("Update Details")}
-
-
-}
diff --git a/src/Components/CriticalCareRecording/ABGAnalysisEditor/DailyRound__ABG.res b/src/Components/CriticalCareRecording/ABGAnalysisEditor/DailyRound__ABG.res
deleted file mode 100644
index 82b7e25f7e9..00000000000
--- a/src/Components/CriticalCareRecording/ABGAnalysisEditor/DailyRound__ABG.res
+++ /dev/null
@@ -1,68 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@react.component
-let make = (
- ~arterialBloodGasAnalysis,
- ~renderOptionalIntWithIndicators,
- ~renderOptionalFloatWithIndicators,
-) => {
-
- {renderOptionalIntWithIndicators(
- "PO2",
- ABGAnalysis.po2(arterialBloodGasAnalysis),
- 35,
- 45,
- "Low",
- "High",
- )}
- {renderOptionalFloatWithIndicators(
- "pH",
- ABGAnalysis.pH(arterialBloodGasAnalysis),
- 7.35,
- 7.45,
- "Low",
- "High",
- )}
- {renderOptionalFloatWithIndicators(
- "HCO3",
- ABGAnalysis.hco3(arterialBloodGasAnalysis),
- 22.0,
- 26.0,
- "Low",
- "High",
- )}
- {renderOptionalIntWithIndicators(
- "Base Excess",
- ABGAnalysis.baseExcess(arterialBloodGasAnalysis),
- -2,
- 2,
- "Low",
- "High",
- )}
- {renderOptionalFloatWithIndicators(
- "Lactate",
- ABGAnalysis.lactate(arterialBloodGasAnalysis),
- 0.0,
- 2.0,
- "Low",
- "High",
- )}
- {renderOptionalFloatWithIndicators(
- "Sodium",
- ABGAnalysis.sodium(arterialBloodGasAnalysis),
- 135.0,
- 145.0,
- "Low",
- "High",
- )}
- {renderOptionalFloatWithIndicators(
- "Potassium",
- ABGAnalysis.potassium(arterialBloodGasAnalysis),
- 3.5,
- 5.5,
- "Low",
- "High",
- )}
-
-}
diff --git a/src/Components/CriticalCareRecording/BloodSugarEditor/CriticalCare_BloodSugarEditor.res b/src/Components/CriticalCareRecording/BloodSugarEditor/CriticalCare_BloodSugarEditor.res
deleted file mode 100644
index 65db7a1bbf8..00000000000
--- a/src/Components/CriticalCareRecording/BloodSugarEditor/CriticalCare_BloodSugarEditor.res
+++ /dev/null
@@ -1,144 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@module("../CriticalCare__API")
-external updateDailyRound: (string, string, Js.Json.t, _ => unit, _ => unit) => unit =
- "updateDailyRound"
-
-type state = {
- blood_sugar_level: option,
- insulin_intake_dose: option,
- insulin_intake_frequency: BloodSugar.frequency,
- dirty: bool,
- saving: bool,
-}
-
-type action =
- | SetBloodSugarLevel(int)
- | SetDosage(float)
- | SetFrequency(BloodSugar.frequency)
- | SetSaving
- | ClearSaving
-
-let reducer = (state, action) => {
- switch action {
- | SetBloodSugarLevel(blood_sugar_level) => {
- ...state,
- blood_sugar_level: Some(blood_sugar_level),
- dirty: true,
- }
- | SetDosage(dosage) => {...state, insulin_intake_dose: Some(dosage), dirty: true}
- | SetFrequency(frequency) => {...state, insulin_intake_frequency: frequency, dirty: true}
- | SetSaving => {...state, saving: true}
- | ClearSaving => {...state, saving: false}
- }
-}
-
-let getStatus = (min, max, val) => {
- if val >= min && val <= max {
- ("Normal", "#059669")
- } else if val < min {
- ("Low", "#DC2626")
- } else {
- ("High", "#DC2626")
- }
-}
-
-let initialState = bloodsugarParameters => {
- {
- blood_sugar_level: BloodSugar.bloodsugar_level(bloodsugarParameters),
- insulin_intake_dose: BloodSugar.dosage(bloodsugarParameters),
- insulin_intake_frequency: BloodSugar.frequency(bloodsugarParameters),
- saving: false,
- dirty: false,
- }
-}
-
-let makePayload = state => {
- let payload = Js.Dict.empty()
-
- DictUtils.setOptionalNumber("blood_sugar_level", state.blood_sugar_level, payload)
- DictUtils.setOptionalFloat("insulin_intake_dose", state.insulin_intake_dose, payload)
- Js.Dict.set(
- payload,
- "insulin_intake_frequency",
- Js.Json.string(BloodSugar.encodeFrequency(state.insulin_intake_frequency)),
- )
- payload
-}
-
-let successCB = (send, updateCB, data) => {
- send(ClearSaving)
- updateCB(CriticalCare__DailyRound.makeFromJs(data))
-}
-
-let errorCB = (send, _error) => {
- send(ClearSaving)
-}
-
-let saveData = (id, consultationId, state, send, updateCB) => {
- send(SetSaving)
- updateDailyRound(
- consultationId,
- id,
- Js.Json.object_(makePayload(state)),
- successCB(send, updateCB),
- errorCB(send),
- )
-}
-
-@react.component
-let make = (~bloodsugarParameters, ~updateCB, ~id, ~consultationId) => {
- let (state, send) = React.useReducer(reducer, initialState(bloodsugarParameters))
-
-
-
{str("Blood Sugar")}
-
-
send(SetBloodSugarLevel(int_of_string(s)))}
- getLabel={getStatus(70.0, 110.0)}
- hasError={ValidationUtils.isInputInRangeInt(0, 700, state.blood_sugar_level)}
- />
- {str("Insulin Intake")}
- send(SetDosage(float_of_string(s)))}
- getLabel={_ => ("", "#ff0000")}
- hasError={ValidationUtils.isInputInRangeFloat("0", "100", state.insulin_intake_dose)}
- />
-
-
{str("Frequency")}
-
- {Js.Array.map(
- f =>
- send(SetFrequency(f))}
- />,
- [OD, BD, TD, UNKNOWN],
- )->React.array}
-
-
-
-
saveData(id, consultationId, state, send, updateCB)}>
- {str("Update Details")}
-
-
-}
diff --git a/src/Components/CriticalCareRecording/BloodSugarEditor/DailyRound__BloodSugar.res b/src/Components/CriticalCareRecording/BloodSugarEditor/DailyRound__BloodSugar.res
deleted file mode 100644
index c650e27284d..00000000000
--- a/src/Components/CriticalCareRecording/BloodSugarEditor/DailyRound__BloodSugar.res
+++ /dev/null
@@ -1,18 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@react.component
-let make = (~bloodSugar, ~renderLine, ~renderOptionalIntWithIndicators, ~renderOptionalFloat) => {
-
- {renderOptionalIntWithIndicators(
- "Blood Sugar Level",
- BloodSugar.bloodsugar_level(bloodSugar),
- 70,
- 110,
- "Low",
- "High",
- )}
- {renderOptionalFloat("Dosage", BloodSugar.dosage(bloodSugar))}
- {renderLine("Frequency", BloodSugar.frequencyToString(BloodSugar.frequency(bloodSugar)))}
-
-}
diff --git a/src/Components/CriticalCareRecording/CriticalCareRecording.res b/src/Components/CriticalCareRecording/CriticalCareRecording.res
deleted file mode 100644
index acbd4aee531..00000000000
--- a/src/Components/CriticalCareRecording/CriticalCareRecording.res
+++ /dev/null
@@ -1,4 +0,0 @@
-@react.component
-let make = (~id, ~facilityId, ~patientId, ~consultationId, ~preview) => {
-
-}
diff --git a/src/Components/CriticalCareRecording/CriticalCare__API.tsx b/src/Components/CriticalCareRecording/CriticalCare__API.tsx
deleted file mode 100644
index 7bddbf9eaee..00000000000
--- a/src/Components/CriticalCareRecording/CriticalCare__API.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import { fireRequestV2 } from "../../Redux/fireRequest";
-import routes from "../../Redux/api";
-import request from "../../Utils/request/request";
-
-export const loadDailyRound = (
- consultationId: string,
- id: string,
- successCB: any = () => null,
- errorCB: any = () => null,
-) => {
- fireRequestV2("getDailyReport", [], {}, successCB, errorCB, {
- consultationId,
- id,
- });
-};
-
-export const updateDailyRound = (
- consultationId: string,
- id: string,
- params: object,
- successCB: any = () => null,
- errorCB: any = () => null,
-) => {
- fireRequestV2("updateDailyRound", [], params, successCB, errorCB, {
- consultationId,
- id,
- });
-};
-
-export const getAsset = (
- consultationId: string,
- setAsset: React.Dispatch>,
-) => {
- request(routes.listConsultationBeds, {
- query: { consultation: consultationId, limit: 1 },
- }).then(({ data }) => {
- // here its fetching the ventilator type assets
- const assets = data?.results[0].assets_objects?.filter(
- (asset) => asset.asset_class == "VENTILATOR",
- );
- setAsset(assets?.length || 0);
- });
-};
diff --git a/src/Components/CriticalCareRecording/CriticalCare__Index.res b/src/Components/CriticalCareRecording/CriticalCare__Index.res
deleted file mode 100644
index 0290728fd82..00000000000
--- a/src/Components/CriticalCareRecording/CriticalCare__Index.res
+++ /dev/null
@@ -1,210 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-let renderLine = (title, value) => {
-
- {str(`${title}:`)}
- {str(value)}
-
-}
-
-let renderIndicators = (title, value, isMin, isMax, minText, maxText) => {
- let indicator = if isMax {
-
-
- {str(maxText)}
-
- } else if isMin {
-
-
- {str(minText)}
-
- } else {
-
-
- {str("Normal")}
-
- }
-
-
- {str(`${title}:`)}
- {str(value)}
- {indicator}
-
-}
-
-let renderOptionalIntWithIndicators = (title, value, min, max, minText, maxText) => {
- Belt.Option.mapWithDefault(value, React.null, v => {
- renderIndicators(title, string_of_int(v), v < min, v > max, minText, maxText)
- })
-}
-
-let renderOptionalFloatWithIndicators = (title, value, min, max, minText, maxText) => {
- Belt.Option.mapWithDefault(value, React.null, v =>
- renderIndicators(title, Js.Float.toString(v), v < min, v > max, minText, maxText)
- )
-}
-
-let renderIntWithIndicators = (title, value, min, max, minText, maxText) => {
- renderIndicators(title, string_of_int(value), value < min, value > max, minText, maxText)
-}
-
-let renderFloatWithIndicators = (title, value, min, max, minText, maxText) => {
- renderIndicators(title, Js.Float.toString(value), value < min, value > max, minText, maxText)
-}
-
-let renderOptionalInt = (title, value) => {
- Belt.Option.mapWithDefault(value, React.null, v => renderLine(title, string_of_int(v)))
-}
-
-let renderOptionalFloat = (title, value) => {
- Belt.Option.mapWithDefault(value, React.null, v => renderLine(title, Js.Float.toString(v)))
-}
-
-let renderOptionalBool = (title, value) => {
- Belt.Option.mapWithDefault(value, React.null, v => renderLine(title, v ? "Yes" : "No"))
-}
-
-let renderOptionalDescription = (title, value) => {
- switch value {
- | Some(v) =>
-
- {str(`${title}:`)}
- {str(v)}
-
- | None => React.null
- }
-}
-
-let title = text => {
- {str(text)}
-}
-
-@genType @react.component
-let make = (
- ~id,
- ~facilityId,
- ~patientId,
- ~consultationId,
- ~dailyRound: CriticalCare__DailyRound.t,
-) => {
- let neurologicalMonitoring = DailyRound.neurologicalMonitoring(dailyRound)
- let hemodynamicParameter = DailyRound.hemodynamicParameters(dailyRound)
- let nursingCare = DailyRound.nursingCare(dailyRound)
- let arterialBloodGasAnalysis = DailyRound.arterialBloodGasAnalysis(dailyRound)
- let ioBalance = DailyRound.ioBalance(dailyRound)
- let dialysis = DailyRound.dialysis(dailyRound)
- let pressureSoreParameter = DailyRound.pressureSoreParameter(dailyRound)
- let bloodSugar = DailyRound.bloodSugar(dailyRound)
- let ventilatorParameters = DailyRound.ventilatorParameters(dailyRound)
- let medicine = DailyRound.medicine(dailyRound)
- let others = DailyRound.others(dailyRound)
-
-
-
-
- {str("Go back to Consultation")}
-
-
-
-
-
{str("Consultation Update")}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ()}
- id={id}
- consultationId={consultationId}
- />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-}
diff --git a/src/Components/CriticalCareRecording/CriticalCare__Root.res b/src/Components/CriticalCareRecording/CriticalCare__Root.res
deleted file mode 100644
index 33f2564096c..00000000000
--- a/src/Components/CriticalCareRecording/CriticalCare__Root.res
+++ /dev/null
@@ -1,47 +0,0 @@
-@module("./CriticalCare__API")
-external loadDailyRound: (string, string, _ => unit, _ => unit) => unit = "loadDailyRound"
-
-open CriticalCare__Types
-let str = React.string
-
-type state = {
- loading: bool,
- dailyRound: option,
-}
-
-let successCB = (setState, dailyRound) => {
- setState(_state => {loading: false, dailyRound: Some(DailyRound.makeFromJs(dailyRound))})
-}
-
-let errorCB = (setState, _error) => {
- setState(_state => {dailyRound: None, loading: false})
-}
-
-let loadData = (setState, consultationId, id) => {
- loadDailyRound(consultationId, id, successCB(setState), errorCB(setState))
-}
-
-@react.component
-let make = (~id, ~facilityId, ~patientId, ~consultationId, ~preview) => {
- let (state, setState) = React.useState(() => {loading: true, dailyRound: None})
- React.useEffect1(() => {
- loadData(setState, consultationId, id)
- None
- }, [id])
-
-
- {state.loading
- ?
- : switch state.dailyRound {
- | Some(dailyRound) =>
- preview
- ?
- :
-
- | None => {
- Notifications.error({msg: "No Data "})
- <> >
- }
- }}
-
-}
diff --git a/src/Components/CriticalCareRecording/DailyRound__Medicines.res b/src/Components/CriticalCareRecording/DailyRound__Medicines.res
deleted file mode 100644
index ce143c24d29..00000000000
--- a/src/Components/CriticalCareRecording/DailyRound__Medicines.res
+++ /dev/null
@@ -1,50 +0,0 @@
-let str = React.string
-
-@react.component
-let make = (~prescriptions) => {
-
- {ArrayUtils.isEmpty(prescriptions)
- ?
{str("No Medicines Prescribed")}
- :
-
-
-
-
-
-
- {str("Medicine")}
-
-
- {str("Dosage")}
-
-
- {str("Days")}
-
-
-
- {Js.Array.mapi((p, index) => {
-
-
- {str(Prescription__Prescription.medicine(p))}
-
-
- {str(Prescription__Prescription.dosage(p))}
-
-
- {str(string_of_int(Prescription__Prescription.days(p)))}
-
-
- }, prescriptions)->React.array}
-
-
-
-
}
-
-}
diff --git a/src/Components/CriticalCareRecording/DialysisEditor/CriticalCare_DialysisEditor.res b/src/Components/CriticalCareRecording/DialysisEditor/CriticalCare_DialysisEditor.res
deleted file mode 100644
index bb10cf38a69..00000000000
--- a/src/Components/CriticalCareRecording/DialysisEditor/CriticalCare_DialysisEditor.res
+++ /dev/null
@@ -1,116 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@module("../CriticalCare__API")
-external updateDailyRound: (string, string, Js.Json.t, _ => unit, _ => unit) => unit =
- "updateDailyRound"
-
-type state = {
- dialysis_fluid_balance: option,
- dialysis_net_balance: option,
- dirty: bool,
- saving: bool,
-}
-
-type action =
- | SetFluidBalance(int)
- | SetNetBalance(int)
- | SetSaving
- | ClearSaving
-
-let reducer = (state, action) => {
- switch action {
- | SetFluidBalance(fluid_balance) => {
- ...state,
- dialysis_fluid_balance: Some(fluid_balance),
- dirty: true,
- }
- | SetNetBalance(net_balance) => {
- ...state,
- dialysis_net_balance: Some(net_balance),
- dirty: true,
- }
- | SetSaving => {...state, saving: true}
- | ClearSaving => {...state, saving: false}
- }
-}
-
-let initialState = dialysis_parameters => {
- {
- dialysis_fluid_balance: Dialysis.fluid_balance(dialysis_parameters),
- dialysis_net_balance: Dialysis.net_balance(dialysis_parameters),
- saving: false,
- dirty: false,
- }
-}
-
-let makePayload = state => {
- let payload = Js.Dict.empty()
-
- DictUtils.setOptionalNumber("dialysis_fluid_balance", state.dialysis_fluid_balance, payload)
- DictUtils.setOptionalNumber("dialysis_net_balance", state.dialysis_net_balance, payload)
-
- payload
-}
-
-let successCB = (send, updateCB, data) => {
- send(ClearSaving)
- updateCB(CriticalCare__DailyRound.makeFromJs(data))
-}
-
-let errorCB = (send, _error) => {
- send(ClearSaving)
-}
-
-let saveData = (id, consultationId, state, send, updateCB) => {
- send(SetSaving)
- updateDailyRound(
- consultationId,
- id,
- Js.Json.object_(makePayload(state)),
- successCB(send, updateCB),
- errorCB(send),
- )
-}
-
-
-@react.component
-let make = (~dialysisParameters, ~updateCB, ~id, ~consultationId) => {
- let (state, send) = React.useReducer(reducer, initialState(dialysisParameters))
-
-
-
{str("Dialysis")}
-
-
- send(SetFluidBalance(int_of_string(s)))}
- getLabel={_ => ("", "#ff0000")}
- hasError={ValidationUtils.isInputInRangeInt(0, 5000, state.dialysis_fluid_balance)}
- />
- send(SetNetBalance(int_of_string(s)))}
- getLabel={_ => ("", "#ff0000")}
- hasError={ValidationUtils.isInputInRangeInt(0, 5000, state.dialysis_net_balance)}
- />
-
-
saveData(id, consultationId, state, send, updateCB)}>
- {str("Update Details")}
-
-
-
-}
diff --git a/src/Components/CriticalCareRecording/DialysisEditor/DailyRound__Dialysis.res b/src/Components/CriticalCareRecording/DialysisEditor/DailyRound__Dialysis.res
deleted file mode 100644
index c023acb1636..00000000000
--- a/src/Components/CriticalCareRecording/DialysisEditor/DailyRound__Dialysis.res
+++ /dev/null
@@ -1,10 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@react.component
-let make = (~dialysis, ~renderOptionalInt) => {
-
- {renderOptionalInt("Fluid Balance", Dialysis.fluid_balance(dialysis))}
- {renderOptionalInt("Net Balance", Dialysis.net_balance(dialysis))}
-
-}
diff --git a/src/Components/CriticalCareRecording/HemodynamicParameters/CriticalCare__HemodynamicParametersEditor.res b/src/Components/CriticalCareRecording/HemodynamicParameters/CriticalCare__HemodynamicParametersEditor.res
deleted file mode 100644
index 47cc040440e..00000000000
--- a/src/Components/CriticalCareRecording/HemodynamicParameters/CriticalCare__HemodynamicParametersEditor.res
+++ /dev/null
@@ -1,358 +0,0 @@
-open CriticalCare__Types
-let str = React.string
-
-@module("../CriticalCare__API")
-external updateDailyRound: (string, string, Js.Json.t, _ => unit, _ => unit) => unit =
- "updateDailyRound"
-
-let fahrenheitToCelcius = (temp: option) => {
- switch temp {
- | Some(x) =>
- Js.Float.toFixedWithPrecision((x -. 32.0) *. (5.0 /. 9.0), ~digits=2)->Belt.Float.fromString
- | None => None
- }
-}
-let celciusToFahrenheit = (temp: option) => {
- switch temp {
- | Some(x) =>
- Js.Float.toFixedWithPrecision(x *. 9.0 /. 5.0 +. 32.0, ~digits=2)->Belt.Float.fromString
- | None => None
- }
-}
-
-type state = {
- pain: array,
- systolic: option,
- diastolic: option,
- pulse: option,
- spo2: option,
- temperature: option,
- resp: option,
- rhythm: HemodynamicParameters.rhythm,
- rhythmDetails: string,
- tempInCelcius: bool,
- dirty: bool,
- saving: bool,
-}
-
-type action =
- | SetPain(array)
- | SetSystolic(int)
- | SetDiastolic(int)
- | SetPulse(int)
- | SetSPO2(int)
- | SetTemperature(float)
- | ToggleTemperatureUnit
- | SetResp(int)
- | SetRhythm(HemodynamicParameters.rhythm)
- | SetRhythmDetails(string)
- | SetSaving
- | ClearSaving
-
-let reducer = (state, action) => {
- switch action {
- | SetPain(pain) => {
- ...state,
- pain,
- dirty: true,
- }
- | SetSystolic(systolic) => {
- ...state,
- systolic: Some(systolic),
- dirty: true,
- }
- | SetDiastolic(diastolic) => {
- ...state,
- diastolic: Some(diastolic),
- dirty: true,
- }
- | SetPulse(pulse) => {...state, pulse: Some(pulse), dirty: true}
- | SetSPO2(spo2) => {...state, spo2: Some(spo2), dirty: true}
- | SetTemperature(temperature) => {
- ...state,
- temperature: Some(temperature),
- dirty: true,
- }
- | ToggleTemperatureUnit => {
- ...state,
- temperature: state.tempInCelcius
- ? state.temperature->celciusToFahrenheit
- : state.temperature->fahrenheitToCelcius,
- tempInCelcius: !state.tempInCelcius,
- }
- | SetResp(resp) => {
- ...state,
- resp: Some(resp),
- dirty: true,
- }
- | SetRhythm(rhythm) => {...state, rhythm, dirty: true}
- | SetRhythmDetails(rhythmDetails) => {
- ...state,
- rhythmDetails,
- dirty: true,
- }
- | SetSaving => {...state, saving: true}
- | ClearSaving => {...state, saving: false}
- }
-}
-
-let initialState = hdp => {
- let bp = HemodynamicParameters.bp(hdp)
-
- {
- pain: HemodynamicParameters.pain(hdp),
- systolic: Belt.Option.map(bp, HemodynamicParameters.systolic),
- diastolic: Belt.Option.map(bp, HemodynamicParameters.diastolic),
- pulse: HemodynamicParameters.pulse(hdp),
- spo2: HemodynamicParameters.spo2(hdp),
- temperature: HemodynamicParameters.temperature(hdp),
- resp: HemodynamicParameters.resp(hdp),
- rhythm: HemodynamicParameters.rhythm(hdp),
- rhythmDetails: Belt.Option.getWithDefault(HemodynamicParameters.rhythmDetails(hdp), ""),
- tempInCelcius: false,
- saving: false,
- dirty: false,
- }
-}
-
-let computeMeanArterialPressure = (systolic, diastolic) => {
- float_of_int(systolic + 2 * diastolic) /. 3.0
-}
-
-let makePainField = p => {
- let payload = Js.Dict.empty()
- Js.Dict.set(payload, "region", Js.Json.string(Pain.endcodeRegion(p)))
- Js.Dict.set(payload, "scale", Js.Json.number(float_of_int(Pain.scale(p))))
- Js.Dict.set(payload, "description", Js.Json.string(p.description))
- payload
-}
-
-let makeBpPayload = (systolic, diastolic) => {
- let payload = Js.Dict.empty()
- Js.Dict.set(payload, "systolic", Js.Json.number(float_of_int(systolic)))
- Js.Dict.set(payload, "diastolic", Js.Json.number(float_of_int(diastolic)))
- Js.Dict.set(payload, "mean", Js.Json.number(computeMeanArterialPressure(systolic, diastolic)))
- payload
-}
-
-let makePayload = state => {
- let payload = Js.Dict.empty()
-
- switch (state.systolic, state.diastolic) {
- | (Some(systolic), Some(diastolic)) =>
- Js.Dict.set(payload, "bp", Js.Json.object_(makeBpPayload(systolic, diastolic)))
- | (_, _) => ()
- }
- Js.Dict.set(
- payload,
- "pain_scale_enhanced",
- Js.Json.objectArray(Js.Array.map(makePainField, state.pain)),
- )
- DictUtils.setOptionalNumber("pulse", state.pulse, payload)
- DictUtils.setOptionalNumber("ventilator_spo2", state.spo2, payload)
- DictUtils.setOptionalFloat(
- "temperature",
- state.tempInCelcius ? state.temperature->celciusToFahrenheit : state.temperature,
- payload,
- )
- DictUtils.setOptionalNumber("resp", state.resp, payload)
- Js.Dict.set(payload, "rhythm", Js.Json.string(HemodynamicParameters.encodeRhythm(state.rhythm)))
- DictUtils.setOptionalString("rhythm_detail", state.rhythmDetails, payload)
- payload
-}
-let successCB = (send, updateCB, data) => {
- send(ClearSaving)
- updateCB(CriticalCare__DailyRound.makeFromJs(data))
-}
-
-let errorCB = (send, _error) => {
- send(ClearSaving)
-}
-
-let saveData = (id, consultationId, state, send, updateCB) => {
- send(SetSaving)
- updateDailyRound(
- consultationId,
- id,
- Js.Json.object_(makePayload(state)),
- successCB(send, updateCB),
- errorCB(send),
- )
-}
-
-let getStatus = (min, minText, max, maxText, val) => {
- switch (val >= min, val <= max) {
- | (true, true) => ("Normal", "#059669")
- | (true, false) => (maxText, "#DC2626")
- | _ => (minText, "#DC2626")
- }
-}
-
-let meanArterialPressure = state => {
- switch (state.systolic, state.diastolic) {
- | (Some(systolic), Some(diastolic)) => computeMeanArterialPressure(systolic, diastolic)
- | (_, _) => 0.0
- }
-}
-
-let getPainStatus = val => {
- if val == 0.0 {
- ("No Pain", "#059669")
- } else if val < 4.0 {
- ("Minute", "#ff3f00")
- } else if val < 8.0 {
- ("Moderate", "#ff002c")
- } else {
- ("Severe", "#de000c")
- }
-}
-
-@react.component
-let make = (~hemodynamicParameter, ~updateCB, ~id, ~consultationId) => {
- let (state, send) = React.useReducer(reducer, initialState(hemodynamicParameter))
-
-
-
{str("Vitals")}
-
-
-
-
{str("BP (mm hg)")}
-
- {str(
- `Mean Arterial Pressure: ${Js.Float.toFixedWithPrecision(
- meanArterialPressure(state),
- ~digits=2,
- )}`,
- )}
-
-
-
send(SetSystolic(int_of_string(s)))}
- getLabel={getStatus(100.0, "Low", 140.0, "High")}
- hasError={ValidationUtils.isInputInRangeInt(0, 250, state.systolic)}
- />
- send(SetDiastolic(int_of_string(s)))}
- getLabel={getStatus(50.0, "Low", 90.0, "High")}
- hasError={ValidationUtils.isInputInRangeInt(30, 180, state.diastolic)}
- />
- send(SetSPO2(int_of_string(s)))}
- getLabel={getStatus(90.0, "Low", 100.0, "High")}
- hasError={ValidationUtils.isInputInRangeInt(0, 100, state.spo2)}
- />
-
-
-
ToggleTemperatureUnit->send}>
- {state.tempInCelcius ? "C"->str : "F"->str}
- }
- start={state.tempInCelcius ? "35" : "95"}
- end={state.tempInCelcius ? "41" : "106"}
- interval={"10"}
- step={0.1}
- value={Belt.Option.mapWithDefault(state.temperature, "", Js.Float.toString)}
- setValue={s => send(SetTemperature(float_of_string(s)))}
- getLabel={state.tempInCelcius
- ? getStatus(36.4, "Low", 37.5, "High")
- : getStatus(97.6, "Low", 99.6, "High")}
- hasError={state.tempInCelcius
- ? ValidationUtils.isInputInRangeFloat("35", "41", state.temperature)
- : ValidationUtils.isInputInRangeFloat("95", "106", state.temperature)}
- />
-
send(SetResp(int_of_string(s)))}
- getLabel={getStatus(12.0, "Low", 16.0, "High")}
- hasError={ValidationUtils.isInputInRangeInt(0, 150, state.resp)}
- />
-
-
-
{str("Pain")}
-
{str("Mark region and intensity of pain")}
-
-
- {
- send(SetPain(data))
- }}
- id={id}
- consultationId={consultationId}
- />
-
- send(SetPulse(int_of_string(s)))}
- getLabel={getStatus(40.0, "Bradycardia", 100.0, "Tachycardia")}
- hasError={ValidationUtils.isInputInRangeInt(0, 200, state.pulse)}
- />
-
-
{str("Heartbeat Rhythm")}
-
- {Js.Array.map(
- r =>
- send(SetRhythm(r))}
- />,
- [Regular, IrRegular, UNKNOWN],
- )->React.array}
-
-
-
-
- {str("Heartbeat Description")}
-
-
-
- saveData(id, consultationId, state, send, updateCB)}>
- {str("Update Details")}
-
-
-}
diff --git a/src/Components/CriticalCareRecording/HemodynamicParameters/DailyRound__HemodynamicParameters.res b/src/Components/CriticalCareRecording/HemodynamicParameters/DailyRound__HemodynamicParameters.res
deleted file mode 100644
index 94f68240720..00000000000
--- a/src/Components/CriticalCareRecording/HemodynamicParameters/DailyRound__HemodynamicParameters.res
+++ /dev/null
@@ -1,71 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@react.component
-let make = (
- ~hemodynamicParameter,
- ~title,
- ~renderOptionalDescription,
- ~renderLine,
- ~renderIntWithIndicators,
- ~renderOptionalIntWithIndicators,
- ~renderFloatWithIndicators,
- ~renderOptionalFloatWithIndicators,
- ~renderOptionalInt,
-) => {
-
-
- {switch HemodynamicParameters.bp(hemodynamicParameter) {
- | Some(data) =>
-
- {title("Blood Pressure: ")}
- {renderIntWithIndicators("Systolic", data.systolic, 100, 140, "Low", "High")}
- {renderIntWithIndicators("Diastolic", data.diastolic, 50, 90, "Low", "High")}
- {renderFloatWithIndicators("Mean", data.mean, 65.0, 75.0, "Low", "High")}
-
-
- | None => React.null
- }}
-
- {renderOptionalIntWithIndicators(
- "Pulse",
- HemodynamicParameters.pulse(hemodynamicParameter),
- 40,
- 100,
- "Bradycardia",
- "Tachycardia",
- )}
- {renderOptionalFloatWithIndicators(
- "Temperature",
- HemodynamicParameters.temperature(hemodynamicParameter),
- 97.6,
- 99.6,
- "Low",
- "High",
- )}
- {renderOptionalIntWithIndicators(
- "Respiratory Rate",
- HemodynamicParameters.resp(hemodynamicParameter),
- 12,
- 16,
- "Low",
- "High",
- )}
-
{str("Pain Scale")}
-
()}
- id={""}
- consultationId={""}
- />
- {renderLine(
- "Rhythm",
- HemodynamicParameters.rhythmToString(HemodynamicParameters.rhythm(hemodynamicParameter)),
- )}
- {renderOptionalDescription(
- "Rhythm Description",
- HemodynamicParameters.rhythmDetails(hemodynamicParameter),
- )}
-
-}
diff --git a/src/Components/CriticalCareRecording/IOBalance/CriticalCare__IOBalanceEditor.res b/src/Components/CriticalCareRecording/IOBalance/CriticalCare__IOBalanceEditor.res
deleted file mode 100644
index de6ac260f49..00000000000
--- a/src/Components/CriticalCareRecording/IOBalance/CriticalCare__IOBalanceEditor.res
+++ /dev/null
@@ -1,159 +0,0 @@
-open CriticalCare__Types
-let str = React.string
-
-@module("../CriticalCare__API")
-external updateDailyRound: (string, string, Js.Json.t, _ => unit, _ => unit) => unit =
- "updateDailyRound"
-
-type state = {
- infusions: array,
- ivfluids: array,
- feeds: array,
- outputs: array,
- dirty: bool,
- saving: bool,
-}
-
-let infusionCollection = ["Adrenalin", "Nor-adrenalin", "Vasopressin", "Dopamine", "Dobutamine"]
-let ivfluidsCollection = ["RL", "NS", "DNS"]
-let feedsCollection = ["Ryles Tube", "Normal Feed"]
-let outputsCollection = ["Urine", "Rules Tube Aspiration", "ICD"]
-
-type action =
- | SetInfusions(array)
- | SetIVFluid(array)
- | SetFeed(array)
- | SetOutput(array)
- | SetSaving
- | ClearSaving
-
-let reducer = (state, action) => {
- switch action {
- | SetInfusions(infusions) => {...state, infusions: infusions}
- | SetIVFluid(ivfluids) => {...state, ivfluids: ivfluids}
- | SetFeed(feeds) => {...state, feeds: feeds}
- | SetOutput(outputs) => {...state, outputs: outputs}
- | SetSaving => {...state, saving: true}
- | ClearSaving => {...state, saving: false}
- }
-}
-
-let initialState = iob => {
- {
- infusions: IOBalance.infusions(iob),
- ivfluids: IOBalance.ivFluid(iob),
- feeds: IOBalance.feed(iob),
- outputs: IOBalance.output(iob),
- dirty: false,
- saving: false,
- }
-}
-
-let makeUnitsPayload = items => {
- Js.Array.map(item => {
- let p = Js.Dict.empty()
- Js.Dict.set(p, "name", Js.Json.string(IOBalance.name(item)))
- Js.Dict.set(p, "quantity", Js.Json.number(IOBalance.quantity(item)))
- p
- }, items)
-}
-
-let makePayload = state => {
- let payload = Js.Dict.empty()
- Js.Dict.set(payload, "infusions", Js.Json.objectArray(makeUnitsPayload(state.infusions)))
- Js.Dict.set(payload, "iv_fluids", Js.Json.objectArray(makeUnitsPayload(state.ivfluids)))
- Js.Dict.set(payload, "feeds", Js.Json.objectArray(makeUnitsPayload(state.feeds)))
- Js.Dict.set(payload, "output", Js.Json.objectArray(makeUnitsPayload(state.outputs)))
-
- payload
-}
-
-let successCB = (send, updateCB, data) => {
- updateCB(CriticalCare__DailyRound.makeFromJs(data))
- send(ClearSaving)
-}
-
-let errorCB = (send, _error) => {
- send(ClearSaving)
-}
-
-let saveData = (id, consultationId, state, send, updateCB) => {
- send(SetSaving)
- updateDailyRound(
- consultationId,
- id,
- Js.Json.object_(makePayload(state)),
- successCB(send, updateCB),
- errorCB(send),
- )
-}
-
-let sumOfArray = items => {
- Js.Array.reduce(\"+.", 0.0, Js.Array.map(IOBalance.quantity, items))
-}
-
-@react.component
-let make = (~ioBalance, ~updateCB, ~id, ~consultationId) => {
- let (state, send) = React.useReducer(reducer, initialState(ioBalance))
-
- let outputsTotal = sumOfArray(state.outputs)
- let totalInput = sumOfArray(ArrayUtils.flatten([state.infusions, state.ivfluids, state.feeds]))
-
-
-
-
-
{str("Intake")}
- send(SetInfusions(infusions))}
- />
- send(SetIVFluid(ivfluid))}
- />
- send(SetFeed(feed))}
- />
- Js.Array2.joinWith("+")}
- rightMain={Js.Float.toString(totalInput)}
- />
-
-
-
{str("Outturn")}
- send(SetOutput(output))}
- />
- Js.Array2.joinWith("+")}
- rightMain={Js.Float.toString(outputsTotal)}
- />
-
-
-
saveData(id, consultationId, state, send, updateCB)}>
- {str("Update Details")}
-
-
-}
diff --git a/src/Components/CriticalCareRecording/IOBalance/DailyRound__IOBalance.res b/src/Components/CriticalCareRecording/IOBalance/DailyRound__IOBalance.res
deleted file mode 100644
index 17f6f3c34dd..00000000000
--- a/src/Components/CriticalCareRecording/IOBalance/DailyRound__IOBalance.res
+++ /dev/null
@@ -1,88 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@react.component
-let make = (~ioBalance, ~title, ~renderOptionalDescription) => {
-
-
- {title("Infusions")}
-
-
- {str("Name")}
- {str("Quantity")}
-
- {Js.Array.map(item =>
-
- {str(IOBalance.name(item))}
-
- {React.float(IOBalance.quantity(item))}
-
-
- , IOBalance.infusions(ioBalance))->React.array}
-
-
-
- {title("IV Fluid")}
-
-
- {str("Name")}
- {str("Quantity")}
-
- {Js.Array.map(item =>
-
- {str(IOBalance.name(item))}
-
- {React.float(IOBalance.quantity(item))}
-
-
- , IOBalance.ivFluid(ioBalance))->React.array}
-
-
-
- {title("Feed")}
-
-
- {str("Name")}
- {str("Quantity")}
-
- {Js.Array.map(item =>
-
- {str(IOBalance.name(item))}
-
- {React.float(IOBalance.quantity(item))}
-
-
- , IOBalance.feed(ioBalance))->React.array}
-
-
-
- {title("Output")}
-
-
- {str("Name")}
- {str("Quantity")}
-
- {Js.Array.map(item =>
-
- {str(IOBalance.name(item))}
-
- {React.float(IOBalance.quantity(item))}
-
-
- , IOBalance.output(ioBalance))->React.array}
-
-
- {renderOptionalDescription(
- "Total Intake Calculated",
- IOBalance.total_intake_calculated(ioBalance),
- )}
- {renderOptionalDescription(
- "Total Output Calculated",
- IOBalance.total_output_calculated(ioBalance),
- )}
-
-}
diff --git a/src/Components/CriticalCareRecording/IOBalance/IOBalance__Summary.res b/src/Components/CriticalCareRecording/IOBalance/IOBalance__Summary.res
deleted file mode 100644
index b858c19f61a..00000000000
--- a/src/Components/CriticalCareRecording/IOBalance/IOBalance__Summary.res
+++ /dev/null
@@ -1,12 +0,0 @@
-let str = React.string
-
-@react.component
-let make = (~leftMain, ~rightMain, ~rightSub, ~noBorder=false) => {
-
-
{str(leftMain)}
-
-
{str(rightSub)}
-
{str(rightMain)}
-
-
-}
diff --git a/src/Components/CriticalCareRecording/IOBalance/IOBalance__UnitPicker.res b/src/Components/CriticalCareRecording/IOBalance/IOBalance__UnitPicker.res
deleted file mode 100644
index 448b74cf726..00000000000
--- a/src/Components/CriticalCareRecording/IOBalance/IOBalance__UnitPicker.res
+++ /dev/null
@@ -1,98 +0,0 @@
-let str = React.string
-
-open Webapi.Dom
-
-let onWindowClick = (showDropdown, setShowDropdown, _event) =>
- if showDropdown {
- setShowDropdown(_ => false)
- } else {
- ()
- }
-
-let toggleDropdown = (setShowDropdown, event) => {
- event |> ReactEvent.Mouse.stopPropagation
- setShowDropdown(showDropdown => !showDropdown)
-}
-
-let search = (searchString, selectables) =>
- (selectables |> Js.Array.filter(selection =>
- selection
- |> String.lowercase_ascii
- |> Js.String.includes(searchString |> String.lowercase_ascii) && selection != searchString
- ))->Belt.SortArray.stableSortBy((x, y) => String.compare(x, y))
-
-let renderSelectables = (selections, updateCB) =>
- selections |> Array.mapi((index, selection) =>
- string_of_int}
- onClick={_ => updateCB(selection)}
- className="w-full block px-4 py-2 text-sm leading-5 text-left text-secondary-700 hover:bg-secondary-100 hover:text-secondary-900 focus:outline-none focus:bg-secondary-100 focus:text-secondary-900">
- {selection |> str}
-
- )
-
-let searchResult = (searchInput, updateCB, selectables) => {
- // Remove all excess space characters from the user input.
- let normalizedString =
- searchInput
- |> Js.String.trim
- |> Js.String.replaceByRe(Js.Re.fromStringWithFlags("\\s+", ~flags="g"), " ")
- switch normalizedString {
- | "" => []
- | searchString =>
- let matchingSelections = search(searchString, selectables)
- renderSelectables(matchingSelections, updateCB)
- }
-}
-
-let renderDropdown = results =>
-
-
-
{results |> React.array}
-
-
-
-@react.component
-let make = (~id, ~value, ~updateCB, ~placeholder, ~selectables) => {
- let results = searchResult(value, updateCB, selectables)
- let (showDropdown, setShowDropdown) = React.useState(_ => false)
- React.useEffect1(() => {
- let curriedFunction = onWindowClick(showDropdown, setShowDropdown)
-
- let removeEventListener = () => Window.removeEventListener(window, "click", curriedFunction)
-
- if showDropdown {
- Window.addEventListener(window, "click", curriedFunction)
- Some(removeEventListener)
- } else {
- removeEventListener()
- None
- }
- }, [showDropdown])
-
-
- {
- ReactEvent.Mouse.stopPropagation(e)
- setShowDropdown(_ => !showDropdown)
- }}
- onChange={e => updateCB(ReactEvent.Form.target(e)["value"])}
- className="appearance-none h-10 mt-1 block w-full border border-secondary-400 rounded py-2 px-4 text-sm bg-secondary-100 hover:bg-secondary-200 focus:outline-none focus:bg-white focus:ring-primary-500"
- placeholder
- required=true
- />
- {results |> Array.length == 0
- ? switch showDropdown {
- | true => renderDropdown(renderSelectables(selectables, updateCB))
- | false => React.null
- }
- : switch showDropdown {
- | true => renderDropdown(results)
- | false => React.null
- }}
-
-}
diff --git a/src/Components/CriticalCareRecording/IOBalance/IOBalance__UnitSection.res b/src/Components/CriticalCareRecording/IOBalance/IOBalance__UnitSection.res
deleted file mode 100644
index 73d07909555..00000000000
--- a/src/Components/CriticalCareRecording/IOBalance/IOBalance__UnitSection.res
+++ /dev/null
@@ -1,91 +0,0 @@
-open CriticalCare__Types
-
-let str = React.string
-
-let findAndReplace = (index, f, array) =>
- Js.Array.mapi((item, i) => i == index ? f(item) : item, array)
-
-type action =
- | UpdateField(string, int)
- | UpdateValue(float, int)
- | DeleteUnit(int)
- | AddUnit
-
-let reducer = (state, action) => {
- switch action {
- | UpdateField(field, index) => findAndReplace(index, IOBalance.updateName(field), state)
- | UpdateValue(value, index) => findAndReplace(index, IOBalance.updateQuantity(value), state)
- | AddUnit => Js.Array.concat([IOBalance.makeDefaultItem()], state)
- | DeleteUnit(index) => Js.Array.filteri((_, i) => i != index, state)
- }
-}
-
-let showUnit = (name, item, params, index, send) => {
- string_of_int}>
-
- string_of_int}
- value={IOBalance.name(item)}
- updateCB={field => UpdateField(field, index)->send}
- placeholder={"Add" ++ name}
- selectables=params
- />
-
-
- string_of_int}
- className="appearance-none h-10 mt-1 block w-full border border-secondary-400 rounded py-2 px-4 text-sm bg-secondary-100 hover:bg-secondary-200 focus:outline-none focus:bg-white focus:ring-primary-500"
- placeholder="Value"
- onChange={e =>
- UpdateValue(ReactEvent.Form.target(e)["value"]->Js.Float.fromString, index)->send}
- value={IOBalance.quantity(item)->Belt.Float.toString}
- type_="number"
- required=true
- min="0"
- />
-
-
index->DeleteUnit->send}
- className="appearance-none h-10 mt-1 block border border-secondary-400 rounded py-2 px-4 text-sm bg-secondary-100 hover:bg-secondary-200 focus:outline-none focus:bg-white focus:border-secondary-600 text-secondary-600 font-bold">
- {"x"->str}
-
-
-}
-
-@react.component
-let make = (~name, ~items, ~collection, ~updateCB) => {
- let send = action => reducer(items, action)->updateCB
- let selectables = Js.Array.filter(
- p => Belt.Option.isNone(Js.Array.find(f => p === IOBalance.name(f), items)),
- collection,
- )
-
-
- {name->str}
-
-
-
-
- {"Field"->str}
-
-
-
-
- {"Value (ml)"->str}
-
-
-
- {Js.Array.mapi(
- (item, index) => showUnit(name, item, selectables, index, send),
- items,
- )->React.array}
-
- AddUnit->send}
- className="w-full font-bold block px-4 py-2 text-sm leading-5 text-left text-secondary-700 hover:bg-secondary-100 hover:text-secondary-900 focus:outline-none focus:bg-secondary-100 focus:text-secondary-900">
- {"+ Add a field"->str}
-
-
-
-}
diff --git a/src/Components/CriticalCareRecording/NeurologicalMonitoring/CriticalCare__Description.res b/src/Components/CriticalCareRecording/NeurologicalMonitoring/CriticalCare__Description.res
deleted file mode 100644
index 0123f5088d6..00000000000
--- a/src/Components/CriticalCareRecording/NeurologicalMonitoring/CriticalCare__Description.res
+++ /dev/null
@@ -1,20 +0,0 @@
-let str = React.string
-
-let handleOnChange = (onChange, event) => {
- let value = ReactEvent.Form.target(event)["value"]
- onChange(value)
-}
-
-@react.component
-let make = (~name, ~text, ~onChange, ~label=name) => {
-
- {str(label)}
-
-
-}
diff --git a/src/Components/CriticalCareRecording/NeurologicalMonitoring/CriticalCare__NeurologicalMonitoringEditor.res b/src/Components/CriticalCareRecording/NeurologicalMonitoring/CriticalCare__NeurologicalMonitoringEditor.res
deleted file mode 100644
index 83f935cd65f..00000000000
--- a/src/Components/CriticalCareRecording/NeurologicalMonitoring/CriticalCare__NeurologicalMonitoringEditor.res
+++ /dev/null
@@ -1,580 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@module("../CriticalCare__API")
-external updateDailyRound: (string, string, Js.Json.t, _ => unit, _ => unit) => unit =
- "updateDailyRound"
-
-type state = {
- inPronePosition: bool,
- consciousnessLevel: NeurologicalMonitoring.consciousnessLevel,
- consciousnessLevelDetails: string,
- leftPupilSize: option,
- leftPupilSizeDetails: string,
- leftPupilLightReaction: NeurologicalMonitoring.lightReaction,
- leftPupilLightReactionDetails: string,
- rightPupilSize: option,
- rightPupilSizeDetails: string,
- rightPupilLightReaction: NeurologicalMonitoring.lightReaction,
- rightPupilLightReactionDetails: string,
- glasgowEyeOpen: option,
- glasgowVerbalResponse: option,
- glasgowMotorResponse: option,
- limbResponseUpperExtremityRight: NeurologicalMonitoring.limpResponse,
- limbResponseUpperExtremityLeft: NeurologicalMonitoring.limpResponse,
- limbResponseLowerExtremityRight: NeurologicalMonitoring.limpResponse,
- limbResponseLowerExtremityLeft: NeurologicalMonitoring.limpResponse,
- saving: bool,
- dirty: bool,
-}
-
-type action =
- | SetInPronePosition
- | SetNotInPronePosition
- | SetConsciousnessLevel(NeurologicalMonitoring.consciousnessLevel)
- | SetConsciousnessLevelDetails(string)
- | SetLeftPupilSize(int)
- | SetLeftPupilSizeDetails(string)
- | SetLeftPupilLightReaction(NeurologicalMonitoring.lightReaction)
- | SetLeftPupilLightReactionDetails(string)
- | SetRightPupilSize(int)
- | SetRightPupilSizeDetails(string)
- | SetRightPupilLightReactionDetails(string)
- | SetRightPupilLightReaction(NeurologicalMonitoring.lightReaction)
- | SetGlasgowEyeOpen(int)
- | SetGlasgowVerbalResponse(int)
- | SetGlasgowMotorResponse(int)
- | SetLimbResponseUpperExtremityRight(NeurologicalMonitoring.limpResponse)
- | SetLimbResponseUpperExtremityLeft(NeurologicalMonitoring.limpResponse)
- | SetLimbResponseLowerExtremityRight(NeurologicalMonitoring.limpResponse)
- | SetLimbResponseLowerExtremityLeft(NeurologicalMonitoring.limpResponse)
- | SetSaving
- | ClearSaving
-
-let reducer = (state, action) => {
- switch action {
- | SetInPronePosition => {
- ...state,
- dirty: true,
- inPronePosition: true,
- }
-
- | SetNotInPronePosition => {
- ...state,
- dirty: true,
- inPronePosition: false,
- }
-
- | SetConsciousnessLevel(consciousnessLevel) => {
- ...state,
- dirty: true,
- consciousnessLevel,
- }
- | SetConsciousnessLevelDetails(consciousnessLevelDetails) => {
- ...state,
- dirty: true,
- consciousnessLevelDetails,
- }
- | SetLeftPupilSize(leftPupilSize) => {
- ...state,
- dirty: true,
- leftPupilSize: Some(leftPupilSize),
- }
- | SetLeftPupilSizeDetails(leftPupilSizeDetails) => {
- ...state,
- dirty: true,
- leftPupilSizeDetails,
- }
- | SetLeftPupilLightReaction(leftPupilLightReaction) => {
- ...state,
- dirty: true,
- leftPupilLightReaction,
- }
- | SetLeftPupilLightReactionDetails(leftPupilLightReactionDetails) => {
- ...state,
- dirty: true,
- leftPupilLightReactionDetails,
- }
- | SetRightPupilSize(rightPupilSize) => {
- ...state,
- dirty: true,
- rightPupilSize: Some(rightPupilSize),
- }
- | SetRightPupilSizeDetails(rightPupilSizeDetails) => {
- ...state,
- dirty: true,
- rightPupilSizeDetails,
- }
- | SetRightPupilLightReaction(rightPupilLightReaction) => {
- ...state,
- dirty: true,
- rightPupilLightReaction,
- }
- | SetRightPupilLightReactionDetails(rightPupilLightReactionDetails) => {
- ...state,
- dirty: true,
- rightPupilLightReactionDetails,
- }
- | SetGlasgowEyeOpen(glasgowEyeOpen) => {...state, glasgowEyeOpen: Some(glasgowEyeOpen)}
- | SetGlasgowVerbalResponse(glasgowVerbalResponse) => {
- ...state,
- dirty: true,
- glasgowVerbalResponse: Some(glasgowVerbalResponse),
- }
- | SetGlasgowMotorResponse(glasgowMotorResponse) => {
- ...state,
- dirty: true,
- glasgowMotorResponse: Some(glasgowMotorResponse),
- }
- | SetLimbResponseUpperExtremityRight(limbResponseUpperExtremityRight) => {
- ...state,
- dirty: true,
- limbResponseUpperExtremityRight,
- }
- | SetLimbResponseUpperExtremityLeft(limbResponseUpperExtremityLeft) => {
- ...state,
- dirty: true,
- limbResponseUpperExtremityLeft,
- }
- | SetLimbResponseLowerExtremityRight(limbResponseLowerExtremityRight) => {
- ...state,
- dirty: true,
- limbResponseLowerExtremityRight,
- }
- | SetLimbResponseLowerExtremityLeft(limbResponseLowerExtremityLeft) => {
- ...state,
- dirty: true,
- limbResponseLowerExtremityLeft,
- }
-
- | SetSaving => {...state, saving: true}
- | ClearSaving => {...state, saving: false}
- }
-}
-
-let handleProneSelect = (send, event) => {
- event ? send(SetInPronePosition) : send(SetNotInPronePosition)
-}
-
-let initialState = neurologicalMonitoring => {
- inPronePosition: Belt.Option.getWithDefault(
- NeurologicalMonitoring.inPronePosition(neurologicalMonitoring),
- false,
- ),
- consciousnessLevel: NeurologicalMonitoring.consciousnessLevel(neurologicalMonitoring),
- consciousnessLevelDetails: Belt.Option.getWithDefault(
- NeurologicalMonitoring.consciousnessLevelDetails(neurologicalMonitoring),
- "",
- ),
- leftPupilSize: NeurologicalMonitoring.leftPupilSize(neurologicalMonitoring),
- leftPupilSizeDetails: Belt.Option.getWithDefault(
- NeurologicalMonitoring.leftPupilSizeDetails(neurologicalMonitoring),
- "",
- ),
- leftPupilLightReaction: NeurologicalMonitoring.leftPupilLightReaction(neurologicalMonitoring),
- leftPupilLightReactionDetails: Belt.Option.getWithDefault(
- NeurologicalMonitoring.leftPupilLightReactionDetails(neurologicalMonitoring),
- "",
- ),
- rightPupilSize: NeurologicalMonitoring.rightPupilSize(neurologicalMonitoring),
- rightPupilSizeDetails: Belt.Option.getWithDefault(
- NeurologicalMonitoring.rightPupilSizeDetails(neurologicalMonitoring),
- "",
- ),
- rightPupilLightReaction: NeurologicalMonitoring.rightPupilLightReaction(neurologicalMonitoring),
- rightPupilLightReactionDetails: Belt.Option.getWithDefault(
- NeurologicalMonitoring.rightPupilLightReactionDetails(neurologicalMonitoring),
- "",
- ),
- glasgowEyeOpen: NeurologicalMonitoring.glasgowEyeOpen(neurologicalMonitoring),
- glasgowVerbalResponse: NeurologicalMonitoring.glasgowVerbalResponse(neurologicalMonitoring),
- glasgowMotorResponse: NeurologicalMonitoring.glasgowMotorResponse(neurologicalMonitoring),
- limbResponseUpperExtremityRight: NeurologicalMonitoring.limbResponseUpperExtremityRight(
- neurologicalMonitoring,
- ),
- limbResponseUpperExtremityLeft: NeurologicalMonitoring.limbResponseUpperExtremityLeft(
- neurologicalMonitoring,
- ),
- limbResponseLowerExtremityRight: NeurologicalMonitoring.limbResponseLowerExtremityRight(
- neurologicalMonitoring,
- ),
- limbResponseLowerExtremityLeft: NeurologicalMonitoring.limbResponseLowerExtremityLeft(
- neurologicalMonitoring,
- ),
- saving: false,
- dirty: false,
-}
-
-let renderLightReaction = (
- ~input,
- ~name,
- ~label=name,
- ~onInputChange,
- ~inputDetails,
- ~onInputDetailsChange,
-) => {
-
-
{str("Reaction")}
-
- {Js.Array.map(lightReaction => {
- onInputChange(lightReaction)}
- />
- }, [Brisk, Sluggish, Fixed, CannotBeAssessed])->React.array}
-
- {ReactUtils.nullUnless(
-
onInputDetailsChange(value)}
- />,
- input === NeurologicalMonitoring.CannotBeAssessed,
- )}
-
-}
-
-let renderLimpResponse = (~input, ~onInputChange, ~label) => {
-
-
{str(label)}
-
- {Js.Array.map(limpResponse => {
- onInputChange(limpResponse)}
- />
- }, [Strong, Moderate, Weak, Flexion, Extension, NONE_])->React.array}
-
-
-}
-
-let renderConsciousnessLevel = (
- ~input,
- ~name,
- ~label=name,
- ~onInputChange,
- ~inputDetails,
- ~onInputDetailsChange,
-) => {
-
-
{str("Level Of Consciousness")}
-
- {Js.Array.map(consciousnessLevel => {
- onInputChange(consciousnessLevel)}
- />
- }, [
- Unresponsive,
- Alert,
- RespondsToPain,
- RespondsToVoice,
- AgitatedOrConfused,
- OnsetOfAgitationAndConfusion,
- ])->React.array}
-
-
-}
-
-let renderPupil = (state, send) => {
-
-
{str("Pupil")}
-
-
{str("Left Pupil")}
-
send(SetLeftPupilSize(value))}
- />
- {ReactUtils.nullUnless(
- send(SetLeftPupilSizeDetails(event))}
- />,
- state.leftPupilSize === Some(0),
- )}
- {renderLightReaction(
- ~input=state.leftPupilLightReaction,
- ~onInputChange={value => send(SetLeftPupilLightReaction(value))},
- ~inputDetails={state.leftPupilLightReactionDetails},
- ~onInputDetailsChange={
- value => {
- send(SetLeftPupilLightReactionDetails(value))
- }
- },
- ~label="Left",
- ~name="left",
- )}
-
-
-
{str("Right Pupil")}
-
send(SetRightPupilSize(value))}
- />
- {ReactUtils.nullUnless(
- send(SetRightPupilSizeDetails(event))}
- />,
- state.rightPupilSize === Some(0),
- )}
- {renderLightReaction(
- ~input=state.rightPupilLightReaction,
- ~onInputChange={value => send(SetRightPupilLightReaction(value))},
- ~inputDetails={state.rightPupilLightReactionDetails},
- ~onInputDetailsChange={value => send(SetRightPupilLightReactionDetails(value))},
- ~label="Right",
- ~name="right",
- )}
-
-
-}
-
-let glasgowScore = state => {
- Belt.Option.getWithDefault(state.glasgowEyeOpen, 0) +
- Belt.Option.getWithDefault(state.glasgowVerbalResponse, 0) +
- Belt.Option.getWithDefault(state.glasgowMotorResponse, 0)
-}
-
-let setOptionalString = (key, value, payload) => {
- if String.trim(value) !== "" {
- Js.Dict.set(payload, key, Js.Json.string(value))
- }
-}
-
-let setOptionalNumber = (key, value, payload) => {
- switch value {
- | Some(v) => Js.Dict.set(payload, key, Js.Json.number(float_of_int(v)))
- | None => ()
- }
-}
-
-let makePayload = state => {
- let payload = Js.Dict.empty()
- Js.Dict.set(payload, "in_prone_position", Js.Json.boolean(state.inPronePosition))
-
- Js.Dict.set(
- payload,
- "consciousness_level",
- Js.Json.string(NeurologicalMonitoring.encodeConConsciousnessLevel(state.consciousnessLevel)),
- )
-
- DictUtils.setOptionalString(
- "consciousness_level_detail",
- state.consciousnessLevelDetails,
- payload,
- )
-
- if !state.inPronePosition {
- DictUtils.setOptionalNumber("left_pupil_size", state.leftPupilSize, payload)
- DictUtils.setOptionalString("left_pupil_size_detail", state.leftPupilSizeDetails, payload)
- DictUtils.setOptionalString(
- "left_pupil_light_reaction_detail",
- state.leftPupilLightReactionDetails,
- payload,
- )
- Js.Dict.set(
- payload,
- "left_pupil_light_reaction",
- Js.Json.string(NeurologicalMonitoring.encodeLightReaction(state.leftPupilLightReaction)),
- )
-
- DictUtils.setOptionalNumber("right_pupil_size", state.rightPupilSize, payload)
- DictUtils.setOptionalString("right_pupil_size_detail", state.rightPupilSizeDetails, payload)
- DictUtils.setOptionalString(
- "right_pupil_light_reaction_detail",
- state.rightPupilLightReactionDetails,
- payload,
- )
- Js.Dict.set(
- payload,
- "right_pupil_light_reaction",
- Js.Json.string(NeurologicalMonitoring.encodeLightReaction(state.rightPupilLightReaction)),
- )
- }
- DictUtils.setOptionalNumber("glasgow_eye_open", state.glasgowEyeOpen, payload)
- DictUtils.setOptionalNumber("glasgow_verbal_response", state.glasgowVerbalResponse, payload)
- DictUtils.setOptionalNumber("glasgow_motor_response", state.glasgowMotorResponse, payload)
-
- Js.Dict.set(
- payload,
- "limb_response_upper_extremity_right",
- Js.Json.string(
- NeurologicalMonitoring.encodeLimpResponse(state.limbResponseUpperExtremityRight),
- ),
- )
-
- Js.Dict.set(
- payload,
- "limb_response_upper_extremity_left",
- Js.Json.string(NeurologicalMonitoring.encodeLimpResponse(state.limbResponseUpperExtremityLeft)),
- )
- Js.Dict.set(
- payload,
- "limb_response_lower_extremity_right",
- Js.Json.string(
- NeurologicalMonitoring.encodeLimpResponse(state.limbResponseLowerExtremityRight),
- ),
- )
- Js.Dict.set(
- payload,
- "limb_response_lower_extremity_left",
- Js.Json.string(NeurologicalMonitoring.encodeLimpResponse(state.limbResponseLowerExtremityLeft)),
- )
-
- payload
-}
-
-let successCB = (send, updateCB, data) => {
- send(ClearSaving)
- updateCB(CriticalCare__DailyRound.makeFromJs(data))
-}
-
-let errorCB = (send, _error) => {
- send(ClearSaving)
-}
-
-let saveData = (id, consultationId, state, send, updateCB) => {
- send(SetSaving)
- updateDailyRound(
- consultationId,
- id,
- Js.Json.object_(makePayload(state)),
- successCB(send, updateCB),
- errorCB(send),
- )
-}
-
-@react.component
-let make = (~updateCB, ~neurologicalMonitoring, ~id, ~consultationId) => {
- let (state, send) = React.useReducer(reducer, initialState(neurologicalMonitoring))
-
-
- {
-
-
-
- {renderConsciousnessLevel(
- ~input=state.consciousnessLevel,
- ~onInputChange={value => send(SetConsciousnessLevel(value))},
- ~inputDetails={state.consciousnessLevelDetails},
- ~onInputDetailsChange={value => send(SetConsciousnessLevelDetails(value))},
- ~label="Consciousness Level",
- ~name="consciousness_level",
- )}
- {ReactUtils.nullIf(renderPupil(state, send), state.inPronePosition)}
-
-
-
{str("Glasgow Coma Scale")}
-
-
{str("Eye Opening Response")}
-
- {Js.Array.mapi(
- (x, i) =>
- x === o)}
- onChange={_ => send(SetGlasgowEyeOpen(x))}
- />,
- [1, 2, 3, 4],
- )->React.array}
-
-
-
-
{str("Verbal Response")}
-
- {Js.Array.mapi(
- (x, i) =>
-
- x === o
- )}
- onChange={_ => send(SetGlasgowVerbalResponse(x))}
- />,
- [1, 2, 3, 4, 5],
- )->React.array}
-
-
-
-
{str("Motor Response")}
-
- {Js.Array.mapi(
- (x, i) =>
-
- x === o
- )}
- onChange={_ => send(SetGlasgowMotorResponse(x))}
- />,
- [1, 2, 3, 4, 5, 6],
- )->React.array}
-
-
-
-
{str("Total")}
-
- {str(string_of_int(glasgowScore(state)))}
-
-
-
-
-
-
{str("Limb Response")}
-
- {renderLimpResponse(
- ~input=state.limbResponseUpperExtremityRight,
- ~onInputChange=value => send(SetLimbResponseUpperExtremityRight(value)),
- ~label="Upper Extremity Right
- ",
- )}
- {renderLimpResponse(
- ~input=state.limbResponseUpperExtremityLeft,
- ~onInputChange=value => send(SetLimbResponseUpperExtremityLeft(value)),
- ~label="Upper Extremity Left",
- )}
- {renderLimpResponse(
- ~input=state.limbResponseLowerExtremityRight,
- ~onInputChange=value => send(SetLimbResponseLowerExtremityRight(value)),
- ~label="Lower Extremity Right",
- )}
- {renderLimpResponse(
- ~input=state.limbResponseLowerExtremityLeft,
- ~onInputChange=value => send(SetLimbResponseLowerExtremityLeft(value)),
- ~label="Lower Extremity Left",
- )}
-
-
-
-
saveData(id, consultationId, state, send, updateCB)}>
- {str("Update Details")}
-
-
}
-
-}
diff --git a/src/Components/CriticalCareRecording/NeurologicalMonitoring/CriticalCare__Switch.res b/src/Components/CriticalCareRecording/NeurologicalMonitoring/CriticalCare__Switch.res
deleted file mode 100644
index e5d1c8ff727..00000000000
--- a/src/Components/CriticalCareRecording/NeurologicalMonitoring/CriticalCare__Switch.res
+++ /dev/null
@@ -1,28 +0,0 @@
-let str = React.string
-
-@react.component
-let make = (~checked, ~onChange) => {
-
-
{str("The patient is on prone position")}
-
-
onChange(!checked)}>
-
-
-
-
-
-
-}
diff --git a/src/Components/CriticalCareRecording/NeurologicalMonitoring/DailyRound__NeurologicalMonitoring.res b/src/Components/CriticalCareRecording/NeurologicalMonitoring/DailyRound__NeurologicalMonitoring.res
deleted file mode 100644
index 74b6147de59..00000000000
--- a/src/Components/CriticalCareRecording/NeurologicalMonitoring/DailyRound__NeurologicalMonitoring.res
+++ /dev/null
@@ -1,117 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@react.component
-let make = (
- ~neurologicalMonitoring,
- ~renderLine,
- ~renderOptionalDescription,
- ~renderOptionalInt,
- ~title,
-) => {
-
- {renderLine(
- "Level of Consciousness",
- NeurologicalMonitoring.consciousnessLevelToString(
- NeurologicalMonitoring.consciousnessLevel(neurologicalMonitoring),
- ),
- )}
-
-
- {title("Left Pupil")}
- {renderOptionalInt("Size", NeurologicalMonitoring.leftPupilSize(neurologicalMonitoring))}
- {renderOptionalDescription(
- "Pupil Size Description",
- NeurologicalMonitoring.leftPupilSizeDetails(neurologicalMonitoring),
- )}
- {renderLine(
- "Light Reaction",
- NeurologicalMonitoring.lightReactionToString(
- NeurologicalMonitoring.leftPupilLightReaction(neurologicalMonitoring),
- ),
- )}
- {renderOptionalDescription(
- "Light Reaction Description",
- NeurologicalMonitoring.leftPupilLightReactionDetails(neurologicalMonitoring),
- )}
-
-
- {title("Right Pupil")}
- {renderOptionalInt("Size", NeurologicalMonitoring.rightPupilSize(neurologicalMonitoring))}
- {renderOptionalDescription(
- "Pupil Size Description",
- NeurologicalMonitoring.rightPupilSizeDetails(neurologicalMonitoring),
- )}
- {renderLine(
- "Light Reaction",
- NeurologicalMonitoring.lightReactionToString(
- NeurologicalMonitoring.leftPupilLightReaction(neurologicalMonitoring),
- ),
- )}
- {renderOptionalDescription(
- "Light Reaction Description",
- NeurologicalMonitoring.leftPupilLightReactionDetails(neurologicalMonitoring),
- )}
-
-
- {renderOptionalInt(
- "Glasgow Eye Open",
- NeurologicalMonitoring.glasgowEyeOpen(neurologicalMonitoring),
- )}
- {renderOptionalInt(
- "Glasgow Verbal Response",
- NeurologicalMonitoring.glasgowVerbalResponse(neurologicalMonitoring),
- )}
- {renderOptionalInt(
- "Glasgow Motor Response",
- NeurologicalMonitoring.glasgowMotorResponse(neurologicalMonitoring),
- )}
- {renderOptionalInt(
- "Glasgow Total Calculated",
- NeurologicalMonitoring.glasgowTotalCalculated(neurologicalMonitoring),
- )}
-
- {title("Limb Response")}
-
-
- {renderLine(
- "Upper Left",
- NeurologicalMonitoring.limpResponseToString(
- NeurologicalMonitoring.limbResponseUpperExtremityLeft(neurologicalMonitoring),
- ),
- )}
-
-
- {renderLine(
- "Upper Right",
- NeurologicalMonitoring.limpResponseToString(
- NeurologicalMonitoring.limbResponseUpperExtremityRight(neurologicalMonitoring),
- ),
- )}
-
-
-
-
- {renderLine(
- "Lower Left",
- NeurologicalMonitoring.limpResponseToString(
- NeurologicalMonitoring.limbResponseLowerExtremityLeft(neurologicalMonitoring),
- ),
- )}
-
-
- {renderLine(
- "Lower Right",
- NeurologicalMonitoring.limpResponseToString(
- NeurologicalMonitoring.limbResponseLowerExtremityRight(neurologicalMonitoring),
- ),
- )}
-
-
-
-
-}
diff --git a/src/Components/CriticalCareRecording/NursingCare/CriticalCare__NursingCareEditor.res b/src/Components/CriticalCareRecording/NursingCare/CriticalCare__NursingCareEditor.res
deleted file mode 100644
index d24d60a4614..00000000000
--- a/src/Components/CriticalCareRecording/NursingCare/CriticalCare__NursingCareEditor.res
+++ /dev/null
@@ -1,157 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@module("../CriticalCare__API")
-external updateDailyRound: (string, string, Js.Json.t, _ => unit, _ => unit) => unit =
- "updateDailyRound"
-
-type state = {
- procedures: array,
- saving: bool,
- dirty: bool,
-}
-
-type action =
- | UpdateDescription(string, NursingCare.item)
- | DeleteProcedure(NursingCare.procedure)
- | AddProcedure(NursingCare.procedure)
- | SetSaving
- | ClearSaving
-
-let reducer = (state, action) => {
- switch action {
- | UpdateDescription(field, item) => {
- ...state,
- procedures: Js.Array.map(
- f =>
- NursingCare.procedure(f) === NursingCare.procedure(item)
- ? NursingCare.updateDescription(field, item)
- : f,
- state.procedures,
- ),
- dirty: true,
- }
- | AddProcedure(procedure) => {
- ...state,
- procedures: Js.Array.concat([NursingCare.makeDefaultItem(procedure)], state.procedures),
- dirty: true,
- }
- | DeleteProcedure(procedure) => {
- ...state,
- procedures: Js.Array.filter(f => NursingCare.procedure(f) != procedure, state.procedures),
- dirty: true,
- }
- | SetSaving => {
- ...state,
- saving: true,
- }
- | ClearSaving => {
- ...state,
- saving: false,
- }
- }
-}
-
-let makeField = p => {
- let payload = Js.Dict.empty()
- Js.Dict.set(payload, "procedure", Js.Json.string(NursingCare.encodeProcedure(p)))
- Js.Dict.set(payload, "description", Js.Json.string(NursingCare.description(p)))
- payload
-}
-
-let flattenV2 = a => a |> Js.Array.reduce((flat, next) => flat |> Js.Array.concat(next), [])
-
-let makePayload = state => {
- Js.Dict.fromArray([("nursing", Js.Json.objectArray(Js.Array.map(makeField, state.procedures)))])
-}
-
-let successCB = (send, updateCB, data) => {
- send(ClearSaving)
- updateCB(CriticalCare__DailyRound.makeFromJs(data))
-}
-
-let errorCB = (send, _error) => {
- send(ClearSaving)
-}
-
-let saveData = (id, consultationId, state, send, updateCB) => {
- send(SetSaving)
- updateDailyRound(
- consultationId,
- id,
- Js.Json.object_(makePayload(state)),
- successCB(send, updateCB),
- errorCB(send),
- )
-}
-
-let initialState = nursing => {
- {
- procedures: nursing,
- saving: false,
- dirty: false,
- }
-}
-
-let getFieldValue = event => {
- ReactEvent.Form.target(event)["value"]
-}
-
-let handleOnChange = (send, item, event) => {
- let value = ReactEvent.Form.target(event)["value"]
- send(UpdateDescription(value, item))
-}
-
-@react.component
-let make = (~nursingCare, ~updateCB, ~id, ~consultationId) => {
- let (state, send) = React.useReducer(reducer, initialState(nursingCare))
-
-
-
-
{Js.Array.mapi((procedure, index) => {
- let selected = Js.Array.find(f => NursingCare.procedure(f) === procedure, state.procedures)
-
-
- send(
- Belt.Option.isSome(selected) ? DeleteProcedure(procedure) : AddProcedure(procedure),
- )}
- />
- {switch selected {
- | Some(s) =>
-
-
-
- | None => React.null
- }}
-
- }, [
- NursingCare.PersonalHygiene,
- Positioning,
- Suctioning,
- RylesTubeCare,
- IVSitecare,
- Nubulisation,
- Dressing,
- DVTPumpStocking,
- Restrain,
- ChestTubeCare,
- TracheostomyCare,
- StomaCare,
- CatheterCare,
- ])->React.array}
-
saveData(id, consultationId, state, send, updateCB)}>
- {str("Done")}
-
-
-}
diff --git a/src/Components/CriticalCareRecording/NursingCare/DailyRound__NursingCare.res b/src/Components/CriticalCareRecording/NursingCare/DailyRound__NursingCare.res
deleted file mode 100644
index 9a0356afcc2..00000000000
--- a/src/Components/CriticalCareRecording/NursingCare/DailyRound__NursingCare.res
+++ /dev/null
@@ -1,12 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@react.component
-let make = (~nursingCare, ~renderLine) => {
- {Js.Array.map(nursing => {
- renderLine(
- NursingCare.procedureString(NursingCare.procedure(nursing)),
- NursingCare.description(nursing),
- )
- }, nursingCare)->React.array}
-}
diff --git a/src/Components/CriticalCareRecording/Others/CriticalCare__OthersEditor.res b/src/Components/CriticalCareRecording/Others/CriticalCare__OthersEditor.res
deleted file mode 100644
index aae2b079fd3..00000000000
--- a/src/Components/CriticalCareRecording/Others/CriticalCare__OthersEditor.res
+++ /dev/null
@@ -1,139 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@module("../CriticalCare__API")
-external updateDailyRound: (string, string, Js.Json.t, _ => unit, _ => unit) => unit =
- "updateDailyRound"
-
-let string_of_float = data => Belt.Option.mapWithDefault(data, "", Js.Float.toString)
-let string_of_int = data => Belt.Option.mapWithDefault(data, "", Js.Int.toString)
-let int_of_string = data => data->Belt.Int.fromString
-let float_of_string = data => data->Belt.Float.fromString
-
-type state = {
- bilateral_air_entry: option,
- etco2: option,
- saving: bool,
- dirty: bool,
-}
-
-type action =
- | SetBilateralAirEntry(option)
- | SetETCO2(option)
- | SetSaving
- | ClearSaving
-
-let reducer = (state, action) => {
- switch action {
- | SetBilateralAirEntry(bilateral_air_entry) => {
- ...state,
- bilateral_air_entry: bilateral_air_entry,
- dirty: true,
- }
- | SetETCO2(etco2) => {
- ...state,
- etco2: etco2,
- dirty: true,
- }
- | SetSaving => {...state, saving: true}
- | ClearSaving => {...state, saving: false}
- }
-}
-
-let initialState = others => {
- {
- bilateral_air_entry: Others.bilateral_air_entry(others),
- etco2: Others.etco2(others),
- saving: false,
- dirty: false,
- }
-}
-
-let makePayload = state => {
- let payload = Js.Dict.empty()
- DictUtils.setOptionalBool("bilateral_air_entry", state.bilateral_air_entry, payload)
- DictUtils.setOptionalNumber("etco2", state.etco2, payload)
- payload
-}
-let successCB = (send, updateCB, data) => {
- send(ClearSaving)
- updateCB(DailyRound.makeFromJs(data))
-}
-
-let errorCB = (send, _error) => {
- send(ClearSaving)
-}
-
-let saveData = (id, consultationId, state, send, updateCB) => {
- send(SetSaving)
- updateDailyRound(
- consultationId,
- id,
- Js.Json.object_(makePayload(state)),
- successCB(send, updateCB),
- errorCB(send),
- )
-}
-
-let getStatus = (min, minText, max, maxText, val) => {
- if val >= min && val <= max {
- ("Normal", "#059669")
- } else if val < min {
- (minText, "#DC2626")
- } else {
- (maxText, "#DC2626")
- }
-}
-
-@react.component
-let make = (~others, ~updateCB, ~id, ~consultationId) => {
- let (state, send) = React.useReducer(reducer, initialState(others))
-
-
-
-
-
{str("Bilateral Air Entry")}
-
- bae
- | None => false
- }}
- onChange={_ => send(SetBilateralAirEntry(Some(true)))}
- />
-
- !bae
- | None => false
- }}
- onChange={_ => send(SetBilateralAirEntry(Some(false)))}
- />
-
-
-
send(SetETCO2(int_of_string(s)))}
- getLabel={getStatus(35.0, "Low", 45.0, "High")}
- hasError={ValidationUtils.isInputInRangeInt(0, 200, state.etco2)}
- />
-
-
saveData(id, consultationId, state, send, updateCB)}>
- {str("Update Details")}
-
-
-}
diff --git a/src/Components/CriticalCareRecording/Others/DailyRound__General.res b/src/Components/CriticalCareRecording/Others/DailyRound__General.res
deleted file mode 100644
index 138eb7d2241..00000000000
--- a/src/Components/CriticalCareRecording/Others/DailyRound__General.res
+++ /dev/null
@@ -1,57 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-type optionType = {
- id: int,
- text: string,
-}
-
-let symptoms = [
- "ASYMPTOMATIC",
- "FEVER",
- "SORE THROAT",
- "COUGH",
- "BREATHLESSNESS",
- "MYALGIA",
- "ABDOMINAL DISCOMFORT",
- "VOMITING",
- "OTHERS",
- "",
- "SPUTUM",
- "NAUSEA",
- "CHEST PAIN",
- "HEMOPTYSIS",
- "NASAL DISCHARGE",
- "BODY ACHE",
- "DIARRHOEA",
- "PAIN",
- "PEDAL EDEMA",
- "WOUND",
- "CONSTIPATION",
- "HEAD ACHE",
- "BLEEDING",
- "DIZZINESS",
-]
-
-@react.component
-let make = (~others, ~renderOptionalDescription, ~title) => {
- let additionalSymptoms = Others.additional_symptoms(others)
-
- {title("Symptoms")}
-
- {switch additionalSymptoms {
- | Some(symptomsArray) => Js.Array.map(id => {
-
- {str(symptoms[id - 1])}
-
- }, symptomsArray)->React.array
- | None => React.null
- }}
-
- {renderOptionalDescription(
- "Physical Examination Info",
- Others.physical_examination_info(others),
- )}
- {renderOptionalDescription("Other Details", Others.other_details(others))}
-
-}
diff --git a/src/Components/CriticalCareRecording/Others/DailyRound__Others.res b/src/Components/CriticalCareRecording/Others/DailyRound__Others.res
deleted file mode 100644
index 0c36a798d0a..00000000000
--- a/src/Components/CriticalCareRecording/Others/DailyRound__Others.res
+++ /dev/null
@@ -1,19 +0,0 @@
-let str = React.string
-
-@react.component
-let make = (~others, ~renderOptionalIntWithIndicators, ~renderOptionalBool) => {
-
- {renderOptionalBool(
- "Bilateral Air Entry",
- CriticalCare__Others.bilateral_air_entry(others)
- )}
- {renderOptionalIntWithIndicators(
- "EtCO2",
- CriticalCare__Others.etco2(others),
- 35,
- 45,
- "Low",
- "High",
- )}
-
-}
diff --git a/src/Components/CriticalCareRecording/Pain/CriticalCare__PainEditor.res b/src/Components/CriticalCareRecording/Pain/CriticalCare__PainEditor.res
deleted file mode 100644
index 1401d465558..00000000000
--- a/src/Components/CriticalCareRecording/Pain/CriticalCare__PainEditor.res
+++ /dev/null
@@ -1,398 +0,0 @@
-@val external setTimeout: (unit => unit, int) => float = "setTimeout"
-@val external clearTimeout: float => unit = "clearTimeout"
-
-@val external innerWidth: int = "window.innerWidth"
-@val external innerHeight: int = "window.innerHeight"
-
-@val external document: 'a = "document"
-
-let str = React.string
-open CriticalCare__Types
-
-@module("../CriticalCare__API")
-external updateDailyRound: (string, string, Js.Json.t, _ => unit, _ => unit) => unit =
- "updateDailyRound"
-
-// type for scrollIntoView function options
-type scrollIntoView = {
- behavior: string,
- block: string,
- inline: string,
-}
-
-type state = {
- modalPosition: CriticalCare__PainInputModal.position,
- selectedRegion: Pain.region,
- parts: array,
- saving: bool,
- dirty: bool,
- previewMode: bool,
-}
-
-type action =
- | AutoManageScale(Pain.part)
- | AddPain(Pain.region)
- | AddSelectedPart(Pain.region)
- | UpdateSelectedPart(Pain.part)
- | RemoveFromSelectedParts(Pain.part)
- | Update(array)
- | SetSelectedRegion(Pain.region)
- | SetModalPosition(CriticalCare__PainInputModal.position)
- | ShowInputModal(Pain.region, CriticalCare__PainInputModal.position)
- | SetPreviewMode
- | ClearPreviewMode
- | SetSaving
- | ClearSaving
-
-let reducer = (state, action) => {
- switch action {
- | AutoManageScale(part) => {
- let newParts = Js.Array.map(
- p => Pain.region(p) === Pain.region(part) ? Pain.autoScale(part) : p,
- state.parts,
- )
- {
- ...state,
- parts: Js.Array.filter(f => Pain.scale(f) !== 0, newParts),
- dirty: true,
- }
- }
- | RemoveFromSelectedParts(part) => {
- ...state,
- parts: Js.Array.filter(p => Pain.region(p) !== Pain.region(part), state.parts),
- dirty: true,
- }
- | AddPain(region) => {
- ...state,
- parts: Js.Array.concat(state.parts, [Pain.makeDefault(region)]),
- dirty: true,
- }
- | AddSelectedPart(region) => {
- ...state,
- parts: Js.Array.concat(
- Js.Array.filter(p => Pain.region(p) !== region, state.parts),
- [
- Belt.Option.getWithDefault(
- Js.Array.find(p => Pain.region(p) === region, state.parts),
- Pain.makeDefault(region),
- ),
- ],
- ),
- dirty: true,
- }
- | UpdateSelectedPart(part) => {
- ...state,
- parts: Js.Array.concat(
- Js.Array.filter((item: Pain.part) => item.region != part.region, state.parts),
- [part],
- ),
- dirty: true,
- }
- | SetSelectedRegion(region) => {
- ...state,
- selectedRegion: region,
- }
- | SetModalPosition(position) => {
- ...state,
- modalPosition: position,
- }
- | ShowInputModal(region, position) => {
- ...state,
- selectedRegion: region,
- modalPosition: position,
- }
- | SetSaving => {...state, saving: true}
- | ClearSaving => {...state, saving: false}
- | Update(parts) => {
- ...state,
- parts,
- }
- | SetPreviewMode => {...state, previewMode: true}
- | ClearPreviewMode => {...state, previewMode: false}
- }
-}
-
-let makeField = p => {
- let payload = Js.Dict.empty()
- Js.Dict.set(payload, "region", Js.Json.string(Pain.endcodeRegion(p)))
- Js.Dict.set(payload, "scale", Js.Json.number(float_of_int(Pain.scale(p))))
- Js.Dict.set(payload, "description", Js.Json.string(p.description))
- payload
-}
-
-let makePayload = state => {
- Js.Dict.fromArray([("pain", Js.Json.objectArray(Js.Array.map(makeField, state.parts)))])
-}
-
-let successCB = (send, updateCB, data) => {
- send(ClearSaving)
- updateCB(CriticalCare__DailyRound.makeFromJs(data))
-}
-
-let errorCB = (send, _error) => {
- send(ClearSaving)
-}
-
-let saveData = (id, consultationId, state, send, updateCB) => {
- send(SetSaving)
- updateDailyRound(
- consultationId,
- id,
- Js.Json.object_(makePayload(state)),
- successCB(send, updateCB),
- errorCB(send),
- )
-}
-
-let initialState = (psp, previewMode) => {
- {
- parts: psp,
- modalPosition: {"x": 0, "y": 0},
- selectedRegion: Pain.Other,
- saving: false,
- dirty: false,
- previewMode,
- }
-}
-
-let selectedClass = (part: option) => {
- switch part {
- | Some(p) =>
- let score = p.scale
- if score <= 0 {
- "text-secondary-400 hover:bg-red-400 tooltip"
- } else if score <= 3 {
- "text-red-200 hover:bg-red-400 tooltip"
- } else if score <= 6 {
- "text-red-400 hover:bg-red-500 tooltip"
- } else if score <= 10 {
- "text-red-500 hover:bg-red-600 tooltip"
- } else if score <= 15 {
- "text-red-600 hover:bg-red-700 tooltip"
- } else {
- "text-red-700 hover:bg-red-800 tooltip"
- }
- | None => "text-secondary-400 hover:text-red-200 tooltip"
- }
-}
-// UI for each Label
-let selectedLabelClass = (part: option) => {
- switch part {
- | Some(p) =>
- let score = p.scale
- if score <= 0 {
- "bg-secondary-300 text-black hover:bg-secondary-400"
- } else if score <= 3 {
- "bg-red-200 text-red-700 hover:bg-red-400"
- } else if score <= 6 {
- "bg-red-400 text-white hover:bg-red-500"
- } else if score <= 10 {
- "bg-red-500 text-white hover:bg-red-600"
- } else if score <= 15 {
- "bg-red-600 text-white hover:bg-red-700"
- } else {
- "bg-red-700 text-white hover:bg-red-200"
- }
- | None => "bg-secondary-300 text-black hover:bg-red-200"
- }
-}
-
-let painScoreValue = (selectedPart: option) => {
- switch selectedPart {
- | Some(p) => Belt.Int.toFloat(p.scale)
- | None => 0.0
- }->Js.Float.toString
-}
-
-let getIntoView = (region: string, isPart: bool) => {
- let scrollValues: scrollIntoView = {
- behavior: "smooth",
- block: "nearest",
- inline: "center",
- }
-
- // Label
- let ele = document["getElementById"](region)
- if isPart {
- ele["scrollIntoView"](~scrollIntoViewOptions=scrollValues)
- }
- ele["classList"]["add"]("border-2")
- ele["classList"]["add"]("border-red-700")
-
- //Part
- let part = document["getElementById"](`part${region}`)
- if !isPart {
- part["scrollIntoView"](~scrollIntoViewOptions=scrollValues)
- }
- part["classList"]["add"]("text-red-900")
-
- let _id = setTimeout(() => {
- ele["classList"]["remove"]("border-2")
- ele["classList"]["remove"]("border-red-700")
-
- part["classList"]["remove"]("text-red-900")
- }, 900)
-}
-
-let renderBody = (state, send, title, partPaths, substr) => {
- let show =
- state.selectedRegion !== Pain.Other &&
- partPaths->Belt.Array.some(p => Pain.regionForPath(p) === state.selectedRegion)
-
- let inputModal = React.useRef(Js.Nullable.null)
- let isMouseOverInputModal = %raw(`
- function (event, ref) {
- if (ref.current) {
- let rect = ref.current.getBoundingClientRect()
- return event.clientX >= rect.left && event.clientX <= rect.right && event.clientY >= rect.top && event.clientY <= rect.bottom;
- }
- return false;
- }
- `)
-
-
-
{str(title)}
- // Badges
-
-
- {Js.Array.mapi((part, index) => {
- let regionType = Pain.regionForPath(part)
- let selectedPart = Js.Array.find(p => Pain.region(p) === regionType, state.parts)
-
-
getIntoView(Pain.regionToString(regionType), false)}>
-
-
- {str(
- Js.String.sliceToEnd(
- ~from=substr,
- Pain.regionToString(regionType) ++ (
- painScoreValue(selectedPart) === "0"
- ? ""
- : " : " ++ painScoreValue(selectedPart)
- ),
- ),
- )}
-
- {switch selectedPart {
- | Some(p) =>
-
getIntoView(Pain.regionToString(regionType), false)
- : _ => send(RemoveFromSelectedParts(p))}
- />
- | None => React.null
- }}
-
-
- }, partPaths)->React.array}
-
-
- // Diagram
-
-
- send(SetSelectedRegion(Pain.Other))}
- position={state.modalPosition}
- part={Belt.Option.getWithDefault(
- Js.Array.find(p => Pain.region(p) === state.selectedRegion, state.parts),
- Pain.makeDefault(state.selectedRegion),
- )}
- updatePart={part => send(UpdateSelectedPart(part))}
- previewMode={state.previewMode}
- />
-
-
- {Js.Array.mapi((part, renderIndex) => {
- let regionType = Pain.regionForPath(part)
- let selectedPart = Js.Array.find(p => Pain.region(p) === regionType, state.parts)
- {
- send(
- ShowInputModal(
- part.region,
- {"x": e->ReactEvent.Mouse.clientX, "y": e->ReactEvent.Mouse.clientY},
- ),
- )
- }}>
- {str(Pain.regionToString(regionType))}
-
- }, partPaths)->React.array}
-
-
-
-}
-
-@react.component
-let make = (~painParameter, ~updateCB, ~id, ~consultationId, ~previewMode) => {
- let (state, send) = React.useReducer(reducer, initialState(painParameter, previewMode))
- Js.log("Input")
- Js.log(painParameter)
- Js.log(state)
-
- React.useEffect1(() => {
- send(Update(painParameter))
- None
- }, [painParameter])
-
- React.useEffect1(() => {
- updateCB(state.parts)
- None
- }, [state.parts])
-
-
-
- {!previewMode
- ? <>
-
-
- // Toggle
-
- //Toggle Button
-
- {str(state.previewMode ? "Preview Mode" : "Edit Mode")}
-
-
-
send(state.previewMode ? ClearPreviewMode : SetPreviewMode)}
- />
-
-
-
-
- >
- : React.null}
-
-
- {renderBody(state, send, "Front", Pain.anteriorParts, 8)}
- {renderBody(state, send, "Back", Pain.posteriorParts, 9)}
-
-
-}
diff --git a/src/Components/CriticalCareRecording/Pain/CriticalCare__PainInputModal.res b/src/Components/CriticalCareRecording/Pain/CriticalCare__PainInputModal.res
deleted file mode 100644
index 7ad8377bd95..00000000000
--- a/src/Components/CriticalCareRecording/Pain/CriticalCare__PainInputModal.res
+++ /dev/null
@@ -1,200 +0,0 @@
-@val external innerWidth: int = "window.innerWidth"
-@val external innerHeight: int = "window.innerHeight"
-
-let str = React.string
-open CriticalCare__Types
-
-type position = {"x": int, "y": int}
-
-type part = Pain.part
-
-@react.component
-let make = (
- ~show: bool,
- ~modalRef: ReactDOM.domRef,
- ~previewMode: bool,
- ~hideModal: ReactEvent.Mouse.t => unit,
- ~position: position,
- ~part: part,
- ~updatePart: part => unit,
-) => {
- let (state, setState) = React.useState(_ => part)
- let (painScale, setPainScale) = React.useState(_ => 0.0)
-
- React.useEffect2(() => {
- setState(_ => part)
- None
- }, (part, show))
-
- React.useEffect1(() => {
- setPainScale(_ => Belt.Int.toFloat(state.scale))
- None
- }, [state])
-
- let handleClickOutside = %raw(`
- function (event, ref, hideModal) {
- if (ref.current && !ref.current.contains(event.target)) {
- hideModal(event)
- }
- }
- `)
-
- let getModalPosition = React.useMemo(() => {
- () => {
- let modalWidth = 350
- let modalHeight = 352
-
- {
- "top": (
- innerHeight - position["y"] < modalHeight ? position["y"] - modalHeight : position["y"]
- )->Belt.Int.toString ++ "px",
- "left": (
- innerWidth - position["x"] < modalWidth ? position["x"] - modalWidth : position["x"]
- )->Belt.Int.toString ++ "px",
- }
- }
- })
-
- let getLabels = val => {
- if val < 4 {
- ("Low", "green")
- } else if val < 8 {
- ("Mild", "orange")
- } else {
- ("High", "red")
- }
- }
-
- handleClickOutside(e, modalRef, hideModal)}
- className="absolute w-full inset-0 z-40 overflow-y-auto">
-
-
= 720 ? "absolute" : ""},
- ~left=getModalPosition()["left"],
- ~top=getModalPosition()["top"],
- (),
- )}
- className="transform max-w-[350px] rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 sm:w-fit overflow-hidden">
-
-
-
-
- {str("Region: ")}
- {str(Pain.regionToString(state.region))}
-
- {!previewMode
- ?
-
-
{
- let value = s->Belt.Int.fromString
- switch value {
- | Some(value) => setState(prev => {...prev, scale: value})
- | None => setState(prev => {...prev, scale: 0})
- }
- }}
- getLabel={_ => getLabels(Belt.Float.toInt(painScale))}
- hasError={ValidationUtils.isInputInRangeInt(
- 0,
- 10,
- Belt.Float.toString(painScale)->Belt.Int.fromString,
- )}
- />
-
-
- {str("Description")}
-
-
-
-
- :
-
-
-
- {str(Belt.Float.toString(painScale))}
-
color
- },
- ),
- (),
- )}>
- {str(
- switch getLabels(Belt.Float.toInt(painScale)) {
- | (label, _) => label
- },
- )}
-
-
-
{str("Pain Scale")}
-
-
- {state.description !== ""
- ?
-
- {str("Description")}
-
-
{str(state.description)}
-
- : React.null}
-
}
-
-
-
-
-
- {!previewMode
- ? {
- if painScale == 0.0 {
- hideModal(e)
- } else {
- updatePart(state)
- hideModal(e)
- }
- }}
- className="inline-flex w-full justify-center rounded-md border border-transparent bg-primary-600 px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 sm:ml-3 sm:w-auto sm:text-sm">
- {str("Apply")}
-
- : React.null}
-
- {str(!previewMode ? "Cancel" : "Close")}
-
-
-
-
-
-
-}
diff --git a/src/Components/CriticalCareRecording/Pain/CriticalCare__PainViewer.res b/src/Components/CriticalCareRecording/Pain/CriticalCare__PainViewer.res
deleted file mode 100644
index d8b99afde4a..00000000000
--- a/src/Components/CriticalCareRecording/Pain/CriticalCare__PainViewer.res
+++ /dev/null
@@ -1,11 +0,0 @@
-@react.component
-let make = (~painParameter, ~id, ~consultationId) => {
- let painParameter = CriticalCare__Pain.makeFromJsx(painParameter)
- ()}
- id={id}
- consultationId={consultationId}
- />
-}
diff --git a/src/Components/CriticalCareRecording/Pain/DailyRound__Pain.res b/src/Components/CriticalCareRecording/Pain/DailyRound__Pain.res
deleted file mode 100644
index 4695cafcbf1..00000000000
--- a/src/Components/CriticalCareRecording/Pain/DailyRound__Pain.res
+++ /dev/null
@@ -1,21 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@react.component
-let make = (~painParameter) => {
-
-
- {str("Part")}
- {str("Scale")}
-
- {Js.Array.map(pain => {
-
-
- {str(Pain.regionToString(Pain.region(pain)))}
-
- {React.int(Pain.scale(pain))}
-
- }, painParameter)->React.array}
-
-}
diff --git a/src/Components/CriticalCareRecording/PressureSore/CriticalCare__PressureSoreEditor.res b/src/Components/CriticalCareRecording/PressureSore/CriticalCare__PressureSoreEditor.res
deleted file mode 100644
index c6e7bffdb14..00000000000
--- a/src/Components/CriticalCareRecording/PressureSore/CriticalCare__PressureSoreEditor.res
+++ /dev/null
@@ -1,421 +0,0 @@
-@val external setTimeout: (unit => unit, int) => float = "setTimeout"
-@val external clearTimeout: float => unit = "clearTimeout"
-
-@val external innerWidth: int = "window.innerWidth"
-@val external innerHeight: int = "window.innerHeight"
-
-@val external document: 'a = "document"
-
-let str = React.string
-open CriticalCare__Types
-
-@module("../CriticalCare__API")
-external updateDailyRound: (string, string, Js.Json.t, _ => unit, _ => unit) => unit =
- "updateDailyRound"
-
-// type for scrollIntoView function options
-type scrollIntoView = {
- behavior: string,
- block: string,
- inline: string,
-}
-
-type state = {
- modalPosition: CriticalCare__PressureSoreInputModal.position,
- selectedRegion: PressureSore.region,
- parts: array,
- saving: bool,
- dirty: bool,
- previewMode: bool,
-}
-
-type action =
- | AutoManageScale(PressureSore.part)
- | AddPressureSore(PressureSore.region)
- | AddSelectedPart(PressureSore.region)
- | UpdateSelectedPart(PressureSore.part)
- | RemoveFromSelectedParts(PressureSore.part)
- | Update(array)
- | SetSelectedRegion(PressureSore.region)
- | SetModalPosition(CriticalCare__PressureSoreInputModal.position)
- | ShowInputModal(PressureSore.region, CriticalCare__PressureSoreInputModal.position)
- | SetPreviewMode
- | ClearPreviewMode
- | SetSaving
- | ClearSaving
-
-let reducer = (state, action) => {
- switch action {
- | AutoManageScale(part) => {
- let newParts = Js.Array.map(
- p =>
- PressureSore.region(p) === PressureSore.region(part) ? PressureSore.autoScale(part) : p,
- state.parts,
- )
- {
- ...state,
- parts: Js.Array.filter(f => PressureSore.scale(f) !== 0, newParts),
- dirty: true,
- }
- }
- | RemoveFromSelectedParts(part) => {
- ...state,
- parts: Js.Array.filter(
- p => PressureSore.region(p) !== PressureSore.region(part),
- state.parts,
- ),
- dirty: true,
- }
- | AddPressureSore(region) => {
- ...state,
- parts: Js.Array.concat(state.parts, [PressureSore.makeDefault(region)]),
- dirty: true,
- }
- | AddSelectedPart(region) => {
- ...state,
- parts: Js.Array.concat(
- Js.Array.filter(p => PressureSore.region(p) !== region, state.parts),
- [
- Belt.Option.getWithDefault(
- Js.Array.find(p => PressureSore.region(p) === region, state.parts),
- PressureSore.makeDefault(region),
- ),
- ],
- ),
- dirty: true,
- }
- | UpdateSelectedPart(part) => {
- ...state,
- parts: Js.Array.concat(
- Js.Array.filter((item: PressureSore.part) => item.region != part.region, state.parts),
- [part],
- ),
- dirty: true,
- }
- | SetSelectedRegion(region) => {
- ...state,
- selectedRegion: region,
- }
- | SetModalPosition(position) => {
- ...state,
- modalPosition: position,
- }
- | ShowInputModal(region, position) => {
- ...state,
- selectedRegion: region,
- modalPosition: position,
- }
- | SetSaving => {...state, saving: true}
- | ClearSaving => {...state, saving: false}
- | Update(parts) => {
- ...state,
- parts,
- }
- | SetPreviewMode => {...state, previewMode: true}
- | ClearPreviewMode => {...state, previewMode: false}
- }
-}
-
-let makeField = p => {
- let payload = Js.Dict.empty()
- Js.Dict.set(payload, "region", Js.Json.string(PressureSore.endcodeRegion(p)))
- Js.Dict.set(payload, "scale", Js.Json.number(float_of_int(PressureSore.scale(p))))
- Js.Dict.set(payload, "width", Js.Json.number(p.width))
- Js.Dict.set(payload, "length", Js.Json.number(p.length))
- Js.Dict.set(
- payload,
- "tissue_type",
- Js.Json.string(PressureSore.tissueTypeToString(p.tissue_type)),
- )
- Js.Dict.set(
- payload,
- "exudate_amount",
- Js.Json.string(PressureSore.extrudateAmountToString(p.exudate_amount)),
- )
- Js.Dict.set(payload, "description", Js.Json.string(p.description))
- payload
-}
-
-let makePayload = state => {
- Js.Dict.fromArray([("pressure_sore", Js.Json.objectArray(Js.Array.map(makeField, state.parts)))])
-}
-
-let successCB = (send, updateCB, data) => {
- send(ClearSaving)
- updateCB(CriticalCare__DailyRound.makeFromJs(data))
-}
-
-let errorCB = (send, _error) => {
- send(ClearSaving)
-}
-
-let saveData = (id, consultationId, state, send, updateCB) => {
- send(SetSaving)
- updateDailyRound(
- consultationId,
- id,
- Js.Json.object_(makePayload(state)),
- successCB(send, updateCB),
- errorCB(send),
- )
-}
-
-let initialState = (psp, previewMode) => {
- {
- parts: psp,
- modalPosition: {"x": 0, "y": 0},
- selectedRegion: PressureSore.Other,
- saving: false,
- dirty: false,
- previewMode,
- }
-}
-
-let selectedClass = (part: option) => {
- switch part {
- | Some(p) =>
- let score = PressureSore.calculatePushScore(p.length, p.width, p.exudate_amount, p.tissue_type)
- if score <= 0.0 {
- "text-secondary-400 hover:bg-red-400 tooltip"
- } else if score <= 3.0 {
- "text-red-200 hover:bg-red-400 tooltip"
- } else if score <= 6.0 {
- "text-red-400 hover:bg-red-500 tooltip"
- } else if score <= 10.0 {
- "text-red-500 hover:bg-red-600 tooltip"
- } else if score <= 15.0 {
- "text-red-600 hover:bg-red-700 tooltip"
- } else {
- "text-red-700 hover:bg-red-800 tooltip"
- }
- | None => "text-secondary-400 hover:text-red-200 tooltip"
- }
-}
-// UI for each Label
-let selectedLabelClass = (part: option) => {
- switch part {
- | Some(p) =>
- let score = PressureSore.calculatePushScore(p.length, p.width, p.exudate_amount, p.tissue_type)
- if score <= 0.0 {
- "bg-secondary-300 text-black hover:bg-secondary-400"
- } else if score <= 3.0 {
- "bg-red-200 text-red-700 hover:bg-red-400"
- } else if score <= 6.0 {
- "bg-red-400 text-white hover:bg-red-500"
- } else if score <= 10.0 {
- "bg-red-500 text-white hover:bg-red-600"
- } else if score <= 15.0 {
- "bg-red-600 text-white hover:bg-red-700"
- } else {
- "bg-red-700 text-white hover:bg-red-200"
- }
- | None => "bg-secondary-300 text-black hover:bg-red-200"
- }
-}
-
-let pushScoreValue = (selectedPart: option) => {
- switch selectedPart {
- | Some(p) => PressureSore.calculatePushScore(p.length, p.width, p.exudate_amount, p.tissue_type)
- | None => 0.0
- }->Js.Float.toString
-}
-
-let getIntoView = (region: string, isPart: bool) => {
- let scrollValues: scrollIntoView = {
- behavior: "smooth",
- block: "nearest",
- inline: "center",
- }
-
- // Label
- let ele = document["getElementById"](region)
- if isPart {
- ele["scrollIntoView"](~scrollIntoViewOptions=scrollValues)
- }
- ele["classList"]["add"]("border-2")
- ele["classList"]["add"]("border-red-700")
-
- //Part
- let part = document["getElementById"](`part${region}`)
- if !isPart {
- part["scrollIntoView"](~scrollIntoViewOptions=scrollValues)
- }
- part["classList"]["add"]("text-red-900")
-
- let _id = setTimeout(() => {
- ele["classList"]["remove"]("border-2")
- ele["classList"]["remove"]("border-red-700")
-
- part["classList"]["remove"]("text-red-900")
- }, 900)
-}
-
-let renderBody = (state, send, title, partPaths, substr) => {
- let show =
- state.selectedRegion !== PressureSore.Other &&
- partPaths->Belt.Array.some(p => PressureSore.regionForPath(p) === state.selectedRegion)
-
- let inputModal = React.useRef(Js.Nullable.null)
- let isMouseOverInputModal = %raw(`
- function (event, ref) {
- if (ref.current) {
- let rect = ref.current.getBoundingClientRect()
- return event.clientX >= rect.left && event.clientX <= rect.right && event.clientY >= rect.top && event.clientY <= rect.bottom;
- }
- return false;
- }
- `)
-
-
-
{str(title)}
-
- {str("Braden Scale (Risk Severity) (" ++ title ++ ")")}
-
- // Badges
-
-
- {Js.Array.mapi((part, index) => {
- let regionType = PressureSore.regionForPath(part)
- let selectedPart = Js.Array.find(p => PressureSore.region(p) === regionType, state.parts)
-
-
getIntoView(PressureSore.regionToString(regionType), false)}>
-
-
- {str(
- Js.String.sliceToEnd(
- ~from=substr,
- PressureSore.regionToString(regionType) ++ (
- pushScoreValue(selectedPart) === "0"
- ? ""
- : " : " ++ pushScoreValue(selectedPart)
- ),
- ),
- )}
-
- {state.previewMode
- ? React.null
- :
- {switch selectedPart {
- | Some(p) =>
- getIntoView(PressureSore.regionToString(regionType), false)
- : _ => send(RemoveFromSelectedParts(p))}
- />
- | None => React.null
- }}
-
}
-
-
- }, partPaths)->React.array}
-
-
- // Diagram
-
-
- send(SetSelectedRegion(PressureSore.Other))}
- position={state.modalPosition}
- part={Belt.Option.getWithDefault(
- Js.Array.find(p => PressureSore.region(p) === state.selectedRegion, state.parts),
- PressureSore.makeDefault(state.selectedRegion),
- )}
- updatePart={part => send(UpdateSelectedPart(part))}
- previewMode={state.previewMode}
- />
-
-
- {Js.Array.mapi((part, renderIndex) => {
- let regionType = PressureSore.regionForPath(part)
- let selectedPart = Js.Array.find(p => PressureSore.region(p) === regionType, state.parts)
- {
- send(
- ShowInputModal(
- part.region,
- {"x": e->ReactEvent.Mouse.clientX, "y": e->ReactEvent.Mouse.clientY},
- ),
- )
- }}>
- {str(PressureSore.regionToString(regionType))}
-
- }, partPaths)->React.array}
-
-
-
-}
-
-@react.component
-let make = (~pressureSoreParameter, ~updateCB, ~id, ~consultationId, ~previewMode) => {
- let (state, send) = React.useReducer(reducer, initialState(pressureSoreParameter, previewMode))
-
- React.useEffect1(() => {
- send(Update(pressureSoreParameter))
- None
- }, [pressureSoreParameter])
-
-
-
- {!previewMode
- ? <>
-
{str("Pressure Sore")}
-
- // Toggle
-
- //Toggle Button
-
- {str(state.previewMode ? "Preview Mode" : "Edit Mode")}
-
-
-
send(state.previewMode ? ClearPreviewMode : SetPreviewMode)}
- />
-
-
-
-
- >
- : React.null}
-
-
- {renderBody(state, send, "Front", PressureSore.anteriorParts, 8)}
- {renderBody(state, send, "Back", PressureSore.posteriorParts, 9)}
-
- {!previewMode
- ?
saveData(id, consultationId, state, send, updateCB)}>
- {str("Done")}
-
- : React.null}
-
-}
diff --git a/src/Components/CriticalCareRecording/PressureSore/CriticalCare__PressureSoreInputModal.res b/src/Components/CriticalCareRecording/PressureSore/CriticalCare__PressureSoreInputModal.res
deleted file mode 100644
index b35a6af7bd3..00000000000
--- a/src/Components/CriticalCareRecording/PressureSore/CriticalCare__PressureSoreInputModal.res
+++ /dev/null
@@ -1,263 +0,0 @@
-@val external innerWidth: int = "window.innerWidth"
-@val external innerHeight: int = "window.innerHeight"
-
-let str = React.string
-open CriticalCare__Types
-
-type position = {"x": int, "y": int}
-
-type part = PressureSore.part
-
-@react.component
-let make = (
- ~show: bool,
- ~modalRef: ReactDOM.domRef,
- ~previewMode: bool,
- ~hideModal: ReactEvent.Mouse.t => unit,
- ~position: position,
- ~part: part,
- ~updatePart: part => unit,
-) => {
- let (state, setState) = React.useState(_ => part)
- let (pushScore, setPushScore) = React.useState(_ => 0.0)
-
- React.useEffect2(() => {
- setState(_ => part)
- None
- }, (part, show))
-
- React.useEffect1(() => {
- let score = PressureSore.calculatePushScore(
- state.length,
- state.width,
- state.exudate_amount,
- state.tissue_type,
- )
- setPushScore(_ => score)
- None
- }, [state])
-
- let handleSubmit = e => {
- let region = PressureSore.regionToString(state.region)
- if state.length === 0.0 && state.width === 0.0 {
- hideModal(e)
- } else if (
- (state.length > 0.0 && state.width == 0.0) || (state.length == 0.0 && state.width > 0.0)
- ) {
- hideModal(e)
- Notifications.error({msg: `Please fill in both width and length for ${region} part`})
- setState(prev => {...prev, length: 0.0, width: 0.0})
- } else {
- updatePart(state)
- hideModal(e)
- Notifications.success({msg: `${region} part updated`})
- }
- }
-
- let handleClickOutside = %raw(`
- function (event, ref, hideModal) {
- if (ref.current && !ref.current.contains(event.target)) {
- hideModal(event)
- }
- }
- `)
-
- let getModalPosition = React.useMemo(() => {
- () => {
- let modalWidth = 350
- let modalHeight = 352
-
- {
- "top": (
- innerHeight - position["y"] < modalHeight ? position["y"] - modalHeight : position["y"]
- )->Belt.Int.toString ++ "px",
- "left": (
- innerWidth - position["x"] < modalWidth ? position["x"] - modalWidth : position["x"]
- )->Belt.Int.toString ++ "px",
- }
- }
- })
-
- handleClickOutside(e, modalRef, hideModal)}
- className="absolute w-full inset-0 z-40 overflow-y-auto">
-
-
= 720 ? "absolute" : ""},
- ~left=getModalPosition()["left"],
- ~top=getModalPosition()["top"],
- (),
- )}
- className="transform max-w-[350px] rounded-lg overflow-hidden bg-white text-left shadow-xl transition-all sm:my-8 sm:w-fit">
-
-
-
-
- {str("Region: ")}
-
- {str(PressureSore.regionToString(state.region))}
-
-
- {!previewMode
- ? <>
-
-
- PressureSore.encodeExudateAmount}
- updateCB={value =>
- setState(prev => {
- ...prev,
- exudate_amount: value->PressureSore.decodeExtrudateAmount,
- })}
- placeholder="Exudate amount"
- selectables=["None", "Light", "Moderate", "Heavy"]
- disabled={previewMode}
- />
- PressureSore.encodeTissueType}
- updateCB={value =>
- setState(prev => {
- ...prev,
- tissue_type: value->PressureSore.decodeTissueType,
- })}
- placeholder="Tissue type"
- selectables=["Closed", "Epithelial", "Granulation", "Slough", "Necrotic"]
- disabled={previewMode}
- />
-
-
-
- {str("Description")}
-
-
- >
- : <>
-
-
-
-
- {str(state.width->Belt.Float.toString)}
-
-
{str("Width")}
-
-
-
- {str(state.length->Belt.Float.toString)}
-
-
{str("Length")}
-
-
-
- {str(state.exudate_amount->PressureSore.encodeExudateAmount)}
-
-
- {str("Exudate Amount")}
-
-
-
-
- {str(state.tissue_type->PressureSore.encodeTissueType)}
-
-
{str("Tissue Type")}
-
-
-
- {state.description !== ""
- ?
-
- {str("Description")}
-
-
{str(state.description)}
-
- : React.null}
- >}
-
-
-
-
-
- {str("Push Score: ")}
- {str(pushScore->Belt.Float.toString)}
-
-
- {!previewMode
- ?
- {str("Apply")}
-
- : React.null}
-
- {str(!previewMode ? "Cancel" : "Close")}
-
-
-
-
-
-
-}
diff --git a/src/Components/CriticalCareRecording/PressureSore/CriticalCare__PressureSoreViewer.res b/src/Components/CriticalCareRecording/PressureSore/CriticalCare__PressureSoreViewer.res
deleted file mode 100644
index 6596fa687db..00000000000
--- a/src/Components/CriticalCareRecording/PressureSore/CriticalCare__PressureSoreViewer.res
+++ /dev/null
@@ -1,11 +0,0 @@
-@react.component
-let make = (~pressureSoreParameter, ~id, ~consultationId) => {
- let pressureSoreParameter = CriticalCare__PressureSore.makeFromJsx(pressureSoreParameter)
- ()}
- id={id}
- consultationId={consultationId}
- />
-}
diff --git a/src/Components/CriticalCareRecording/PressureSore/DailyRound__PressureSore.res b/src/Components/CriticalCareRecording/PressureSore/DailyRound__PressureSore.res
deleted file mode 100644
index cd24b26d37e..00000000000
--- a/src/Components/CriticalCareRecording/PressureSore/DailyRound__PressureSore.res
+++ /dev/null
@@ -1,23 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@react.component
-let make = (~pressureSoreParameter) => {
-
-
- {str("Part")}
- {str("Push Score")}
-
- {Js.Array.map(pressure => {
-
-
- {str(PressureSore.regionToString(PressureSore.region(pressure)))}
-
-
- {React.float(PressureSore.calculateScore(pressure))}
-
-
- }, pressureSoreParameter)->React.array}
-
-}
diff --git a/src/Components/CriticalCareRecording/Recording/CriticalCare__Recording.res b/src/Components/CriticalCareRecording/Recording/CriticalCare__Recording.res
deleted file mode 100644
index a3729277e12..00000000000
--- a/src/Components/CriticalCareRecording/Recording/CriticalCare__Recording.res
+++ /dev/null
@@ -1,258 +0,0 @@
-let str = React.string
-
-type editor =
- | NeurologicalMonitoringEditor
- | HemodynamicParametersEditor
- | VentilatorParametersEditor
- | ArterialBloodGasAnalysisEditor
- | BloodSugarEditor
- | IOBalanceEditor
- | DialysisEditor
- | PressureSoreEditor
- | NursingCareEditor
-
-type state = {
- visibleEditor: option,
- dailyRound: CriticalCare__DailyRound.t,
- updatedEditors: array,
-}
-
-type action =
- | ShowEditor(editor)
- | CloseEditor
- | UpdateDailyRound(CriticalCare__DailyRound.t, editor)
-
-let showEditor = (editor, send) => {
- send(ShowEditor(editor))
-}
-
-let showStatus = item => {
- str("Completed " ++ item ++ "%")
-}
-
-let basicEditor = (~facilityId, ~patientId, ~consultationId, ~id) => {
-
-
-
-
{str("Basic Editor")}
-
-
-
-
-
-}
-let editorNameToString = editor => {
- switch editor {
- | NeurologicalMonitoringEditor => "Neurological Monitoring"
- | HemodynamicParametersEditor => "Vitals"
- | VentilatorParametersEditor => "Respiratory Support"
- | ArterialBloodGasAnalysisEditor => "Arterial Blood Gas Analysis"
- | BloodSugarEditor => "Blood Sugar"
- | IOBalanceEditor => "I/O Balance"
- | DialysisEditor => "Dialysis"
- | PressureSoreEditor => "Pressure Sore"
- | NursingCareEditor => "Nursing Care"
- }
-}
-
-let editorToggle = (editorName, state, send) => {
- let editorUpdated = Js.Array.find(f => f === editorName, state.updatedEditors)
- showEditor(editorName, send)}>
-
-
-
- {str(editorNameToString(editorName))}
-
-
-
- {Belt.Option.isNone(editorUpdated)
- ?
- : }
-
-
-}
-
-let reducer = (state, action) => {
- switch action {
- | ShowEditor(editor) => {...state, visibleEditor: Some(editor)}
- | CloseEditor => {...state, visibleEditor: None}
- | UpdateDailyRound(dailyRound, editor) => {
- dailyRound,
- visibleEditor: None,
- updatedEditors: Js.Array.concat([editor], state.updatedEditors),
- }
- }
-}
-
-let initialState = dailyRound => {
- visibleEditor: None,
- dailyRound,
- updatedEditors: [],
-}
-
-let updateDailyRound = (send, editor, dailyRound) => {
- send(UpdateDailyRound(dailyRound, editor))
-}
-
-@genType @react.component
-let make = (~id, ~facilityId, ~patientId, ~consultationId, ~dailyRound) => {
- let (state, send) = React.useReducer(reducer, initialState(dailyRound))
-
- let sections =
- dailyRound.roundsType == VentilatorRound
- ? [
- HemodynamicParametersEditor,
- NeurologicalMonitoringEditor,
- VentilatorParametersEditor,
- ArterialBloodGasAnalysisEditor,
- BloodSugarEditor,
- IOBalanceEditor,
- DialysisEditor,
- PressureSoreEditor,
- NursingCareEditor,
- ]
- : [NeurologicalMonitoringEditor, VentilatorParametersEditor]
-
-
- {ReactUtils.nullUnless(
-
-
- {str("Go back to Consultation")}
-
-
,
- Belt.Option.isNone(state.visibleEditor),
- )}
-
- {switch state.visibleEditor {
- | Some(editor) =>
-
-
send(CloseEditor)}>
- {str("Back")}
-
-
- {switch editor {
- | NeurologicalMonitoringEditor =>
-
- | HemodynamicParametersEditor =>
-
- | VentilatorParametersEditor =>
- // This need to updated
-
- | ArterialBloodGasAnalysisEditor =>
-
- | BloodSugarEditor =>
-
- | IOBalanceEditor =>
-
- | DialysisEditor =>
-
- | PressureSoreEditor =>
-
- | NursingCareEditor =>
-
- }}
-
-
- | None =>
-
-
{str("Record Updates")}
-
- {basicEditor(~facilityId, ~patientId, ~consultationId, ~id)}
- {Js.Array.map(editor => {
- editorToggle(editor, state, send)
- }, sections)->React.array}
-
-
-
Notifications.success({msg: "Detailed Update filed successfully"})}
- className="btn btn-primary w-full mt-6">
- {str("Complete")}
-
-
-
- }}
-
-
-}
diff --git a/src/Components/CriticalCareRecording/Recording/Icons/ic-blood_sugar.svg b/src/Components/CriticalCareRecording/Recording/Icons/ic-blood_sugar.svg
deleted file mode 100644
index b03efca93ab..00000000000
--- a/src/Components/CriticalCareRecording/Recording/Icons/ic-blood_sugar.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/src/Components/CriticalCareRecording/Recording/Icons/ic-dialysis.svg b/src/Components/CriticalCareRecording/Recording/Icons/ic-dialysis.svg
deleted file mode 100644
index 69d756f8360..00000000000
--- a/src/Components/CriticalCareRecording/Recording/Icons/ic-dialysis.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/src/Components/CriticalCareRecording/Recording/Icons/ic-hemodynamic.svg b/src/Components/CriticalCareRecording/Recording/Icons/ic-hemodynamic.svg
deleted file mode 100644
index f1843b3a13d..00000000000
--- a/src/Components/CriticalCareRecording/Recording/Icons/ic-hemodynamic.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/src/Components/CriticalCareRecording/Recording/Icons/ic-io_balance.svg b/src/Components/CriticalCareRecording/Recording/Icons/ic-io_balance.svg
deleted file mode 100644
index 74f256d7719..00000000000
--- a/src/Components/CriticalCareRecording/Recording/Icons/ic-io_balance.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/src/Components/CriticalCareRecording/Recording/Icons/ic-neurology.svg b/src/Components/CriticalCareRecording/Recording/Icons/ic-neurology.svg
deleted file mode 100644
index 2072516deae..00000000000
--- a/src/Components/CriticalCareRecording/Recording/Icons/ic-neurology.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Components/CriticalCareRecording/Recording/Icons/ic-nursing_care.svg b/src/Components/CriticalCareRecording/Recording/Icons/ic-nursing_care.svg
deleted file mode 100644
index 96cab15301e..00000000000
--- a/src/Components/CriticalCareRecording/Recording/Icons/ic-nursing_care.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/src/Components/CriticalCareRecording/Recording/Icons/ic-pressure_sore.svg b/src/Components/CriticalCareRecording/Recording/Icons/ic-pressure_sore.svg
deleted file mode 100644
index c602869c628..00000000000
--- a/src/Components/CriticalCareRecording/Recording/Icons/ic-pressure_sore.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/src/Components/CriticalCareRecording/Recording/Icons/ic-ventilator.svg b/src/Components/CriticalCareRecording/Recording/Icons/ic-ventilator.svg
deleted file mode 100644
index fe4eddee642..00000000000
--- a/src/Components/CriticalCareRecording/Recording/Icons/ic-ventilator.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/src/Components/CriticalCareRecording/Recording/styles.css b/src/Components/CriticalCareRecording/Recording/styles.css
deleted file mode 100644
index cc1c72cc48b..00000000000
--- a/src/Components/CriticalCareRecording/Recording/styles.css
+++ /dev/null
@@ -1,3 +0,0 @@
-html {
- scroll-behavior: smooth;
-}
diff --git a/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor.res b/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor.res
deleted file mode 100644
index cd3010b1c1d..00000000000
--- a/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor.res
+++ /dev/null
@@ -1,335 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@module("../CriticalCare__API")
-external updateDailyRound: (string, string, Js.Json.t, _ => unit, _ => unit) => unit =
- "updateDailyRound"
-
-@module("../CriticalCare__API")
-external getAsset: (string, (int => int) => unit) => option unit> = "getAsset"
-
-open VentilatorParameters
-
-let string_of_int = data => Belt.Option.mapWithDefault(data, "", Js.Int.toString)
-let int_of_string = data => data->Belt.Int.fromString
-
-let reducer = (state: VentilatorParameters.state, action: VentilatorParameters.action) => {
- switch action {
- | SetBilateralAirEntry(bilateral_air_entry) => {
- ...state,
- bilateral_air_entry,
- }
- | SetETCO2(etco2) => {
- ...state,
- etco2,
- }
- | SetVentilatorInterface(ventilator_interface) => {
- ...state,
- ventilator_interface,
- }
- | SetVentilatorMode(ventilator_mode) => {
- ...state,
- ventilator_mode,
- }
-
- | SetOxygenModality(oxygen_modality) => {
- ...state,
- ventilator_oxygen_modality: oxygen_modality,
- }
- | SetPeep(peep) => {
- ...state,
- ventilator_peep: peep,
- }
- | SetPIP(pip) => {
- ...state,
- ventilator_pip: pip,
- }
- | SetMeanAirwayPressure(mean_airway_pressure) => {
- ...state,
- ventilator_mean_airway_pressure: mean_airway_pressure,
- }
- | SetRespiratoryRate(respiratory_rate) => {
- ...state,
- ventilator_resp_rate: respiratory_rate,
- }
- | SetPressureSupport(pressure_support) => {
- ...state,
- ventilator_pressure_support: pressure_support,
- }
- | SetTidalVolume(tidal_volume) => {
- ...state,
- ventilator_tidal_volume: tidal_volume,
- }
- | SetOxygenModalityOxygenRate(ventilator_oxygen_modality_oxygen_rate) => {
- ...state,
- ventilator_oxygen_modality_oxygen_rate,
- }
- | SetOxygenModalityFlowRate(oxygen_modality_flow_rate) => {
- ...state,
- ventilator_oxygen_modality_flow_rate: oxygen_modality_flow_rate,
- }
- | SetFIO2(fio2) => {
- ...state,
- ventilator_fi02: fio2,
- }
- | SetSPO2(spo2) => {
- ...state,
- ventilator_spo2: spo2,
- }
- | SetSaving => {...state, saving: true}
- | ClearSaving => {...state, saving: false}
- | _ => state
- }
-}
-
-let makePayload = (state: VentilatorParameters.state) => {
- let payload = Js.Dict.empty()
- DictUtils.setOptionalString(
- "ventilator_interface",
- VentilatorParameters.encodeVentilatorInterfaceType(state.ventilator_interface),
- payload,
- )
- DictUtils.setOptionalString(
- "ventilator_mode",
- VentilatorParameters.encodeVentilatorModeType(state.ventilator_mode),
- payload,
- )
- DictUtils.setOptionalString(
- "ventilator_oxygen_modality",
- VentilatorParameters.encodeVentilatorOxygenModalityType(state.ventilator_oxygen_modality),
- payload,
- )
- DictUtils.setOptionalFloat("ventilator_peep", state.ventilator_peep, payload)
- DictUtils.setOptionalNumber("ventilator_pip", state.ventilator_pip, payload)
- DictUtils.setOptionalNumber(
- "ventilator_mean_airway_pressure",
- state.ventilator_mean_airway_pressure,
- payload,
- )
- DictUtils.setOptionalNumber("ventilator_resp_rate", state.ventilator_resp_rate, payload)
- DictUtils.setOptionalNumber(
- "ventilator_pressure_support",
- state.ventilator_pressure_support,
- payload,
- )
- DictUtils.setOptionalNumber("ventilator_tidal_volume", state.ventilator_tidal_volume, payload)
- DictUtils.setOptionalNumber(
- "ventilator_oxygen_modality_oxygen_rate",
- state.ventilator_interface === OXYGEN_SUPPORT &&
- state.ventilator_oxygen_modality !== HIGH_FLOW_NASAL_CANNULA
- ? state.ventilator_oxygen_modality_oxygen_rate
- : None,
- payload,
- )
- DictUtils.setOptionalNumber(
- "ventilator_oxygen_modality_flow_rate",
- state.ventilator_oxygen_modality === HIGH_FLOW_NASAL_CANNULA
- ? state.ventilator_oxygen_modality_flow_rate
- : None,
- payload,
- )
- DictUtils.setOptionalNumber(
- "ventilator_fi02",
- state.ventilator_oxygen_modality === HIGH_FLOW_NASAL_CANNULA ||
- state.ventilator_interface === INVASIVE ||
- state.ventilator_interface === NON_INVASIVE
- ? state.ventilator_fi02
- : None,
- payload,
- )
- DictUtils.setOptionalNumber("ventilator_spo2", state.ventilator_spo2, payload)
- DictUtils.setOptionalBool("bilateral_air_entry", state.bilateral_air_entry, payload)
- DictUtils.setOptionalNumber("etco2", state.etco2, payload)
- payload
-}
-
-let successCB = (_send, updateCB, data) => {
- updateCB(CriticalCare__DailyRound.makeFromJs(data))
-}
-
-let errorCB = (send, _error) => {
- send(ClearSaving)
-}
-
-let saveData = (id, consultationId, state, send, updateCB) => {
- send(SetSaving)
- updateDailyRound(
- consultationId,
- id,
- Js.Json.object_(makePayload(state)),
- successCB(send, updateCB),
- errorCB(send),
- )
-}
-
-let ventilatorInterfaceOptions: array = [
- {
- label: "None",
- value: "UNKNOWN",
- name: "ventilator_interface",
- },
- {
- label: "Invasive ventilator (IV)",
- value: "INVASIVE",
- name: "ventilator_interface",
- },
- {
- label: "Non-Invasive ventilator (NIV)",
- value: "NON_INVASIVE",
- name: "ventilator_interface",
- },
- {
- label: "Oxygen Support",
- value: "OXYGEN_SUPPORT",
- name: "ventilator_interface",
- },
-]
-
-let initialState: VentilatorParameters.t => VentilatorParameters.state = ventilatorParameters => {
- {
- ventilator_interface: ventilatorParameters.ventilator_interface,
- ventilator_mode: ventilatorParameters.ventilator_mode,
- ventilator_oxygen_modality: ventilatorParameters.ventilator_oxygen_modality,
- ventilator_peep: ventilatorParameters.ventilator_peep,
- ventilator_pip: ventilatorParameters.ventilator_pip,
- ventilator_mean_airway_pressure: ventilatorParameters.ventilator_mean_airway_pressure,
- ventilator_resp_rate: ventilatorParameters.ventilator_resp_rate,
- ventilator_pressure_support: ventilatorParameters.ventilator_pressure_support,
- ventilator_tidal_volume: ventilatorParameters.ventilator_tidal_volume,
- ventilator_oxygen_modality_oxygen_rate: ventilatorParameters.ventilator_oxygen_modality_oxygen_rate,
- ventilator_oxygen_modality_flow_rate: ventilatorParameters.ventilator_oxygen_modality_flow_rate,
- ventilator_fi02: ventilatorParameters.ventilator_fi02,
- ventilator_spo2: ventilatorParameters.ventilator_spo2,
- etco2: ventilatorParameters.etco2,
- bilateral_air_entry: ventilatorParameters.bilateral_air_entry,
- saving: false,
- }
-}
-
-@react.component
-let make = (
- ~ventilatorParameters: VentilatorParameters.t,
- ~id,
- ~consultationId,
- ~updateCB,
- ~facilityId,
- ~patientId,
-) => {
- let (state, send) = React.useReducer(reducer, initialState(ventilatorParameters))
- let (isOpen, setIsOpen) = React.useState(() => false)
- let toggleOpen = () => setIsOpen(prevState => !prevState)
- let (asset, setAsset) = React.useState(() => 0)
-
- React.useEffect1(() => {
- getAsset(consultationId, setAsset)
- }, [isOpen])
-
- let editor = switch state.ventilator_interface {
- | INVASIVE =>
- | NON_INVASIVE =>
- | UNKNOWN =>
- | OXYGEN_SUPPORT =>
- }
-
-
-
-
-
-
{str("Bilateral Air Entry")}
-
- bae
- | None => false
- }}
- onChange={_ => send(SetBilateralAirEntry(Some(true)))}
- />
- !bae
- | None => false
- }}
- onChange={_ => send(SetBilateralAirEntry(Some(false)))}
- />
-
-
-
send(SetETCO2(int_of_string(s)))}
- getLabel={getStatus(35.0, "Low", 45.0, "High")}
- hasError={ValidationUtils.isInputInRangeInt(0, 200, state.etco2)}
- />
-
-
-
-
{str("Respiratory Support")}
-
-
-
- send(
- SetVentilatorInterface(
- VentilatorParameters.decodeVentilatorInterfaceType(
- ReactEvent.Form.target(e)["id"],
- ),
- ),
- )}
- options={ventilatorInterfaceOptions}
- ishorizontal={true}
- />
-
- {editor}
-
-
-
{
- // here checking if any asset linked or not before proceeding
- if (
- asset == 0 &&
- (state.ventilator_interface !=
- CriticalCare__VentilatorParameters.decodeVentilatorInterfaceType(
- ventilatorInterfaceOptions[0].value,
- ) &&
- state.ventilator_interface !=
- CriticalCare__VentilatorParameters.decodeVentilatorInterfaceType(
- ventilatorInterfaceOptions[3].value,
- ))
- ) {
- toggleOpen()
- } else {
- saveData(id, consultationId, state, send, updateCB)
- }
- }}
- className="btn btn-primary btn-large w-full">
- {str("Update Details")}
-
-
toggleOpen()}
- className="md:max-w-3xl">
- toggleOpen()}
- />
-
-
-
-}
diff --git a/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__Invasive.res b/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__Invasive.res
deleted file mode 100644
index 005880f00bd..00000000000
--- a/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__Invasive.res
+++ /dev/null
@@ -1,234 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-let cmvOptionsArray: array = [
- {label: "Volume Control Ventilation (VCV)", value: "VCV", name: "cmv"},
- {label: "Pressure Control Ventilation (PCV)", value: "PCV", name: "cmv"},
- {
- label: "Pressure Regulated Volume Controlled Ventilation (PRVC)",
- value: "PRVC",
- name: "cmv",
- },
- {label: "Airway Pressure Release Ventilation (APRV)", value: "APRV", name: "cmv"},
-]
-
-let simvOptionArray: array = [
- {label: "Volume Controlled SIMV (VC-SIMV)", value: "VC_SIMV", name: "simv"},
- {label: "Pressure Controlled SIMV (PC-SIMV)", value: "PC_SIMV", name: "simv"},
- {
- label: "Pressure Regulated Volume Controlled SIMV (PRVC-SIMV)",
- value: "PRVC_SIMV",
- name: "simv",
- },
- {label: "Adapative Support Ventilation (ASV)", value: "ASV", name: "simv"},
-]
-
-let silderOptionArray = [
- {
- "title": "Peak Inspiratory Pressure (PIP) (cm H2O)",
- "start": "0",
- "end": "100",
- "interval": "10",
- "step": 1.0,
- "id": "ventilator_pip",
- "min": 12.0,
- "max": 30.0,
- },
- {
- "title": "Mean Airway Pressure (cm H2O)",
- "start": "0",
- "end": "40",
- "interval": "5",
- "step": 1.0,
- "id": "ventilator_mean_airway_pressure",
- "min": 12.0,
- "max": 25.0,
- },
- {
- "title": "Respiratory Rate Ventilator (bpm)",
- "start": "0",
- "end": "100",
- "interval": "10",
- "step": 1.0,
- "id": "ventilator_resp_rate",
- "min": 40.0,
- "max": 60.0,
- },
- {
- "title": "Pressure Support",
- "start": "0",
- "end": "40",
- "interval": "5",
- "step": 1.0,
- "id": "ventilator_pressure_support",
- "min": 5.0,
- "max": 15.0,
- },
- {
- "title": "Tidal Volume (ml)",
- "start": "0",
- "end": "1000",
- "interval": "100",
- "step": 1.0,
- "id": "ventilator_tidal_volume",
- "min": 0.0,
- "max": 1000.0,
- },
- {
- "title": "FiO2 (%)",
- "start": "21",
- "end": "100",
- "interval": "10",
- "step": 1.0,
- "id": "ventilator_fi02",
- "min": 21.0,
- "max": 60.0,
- },
- {
- "title": "SPO2 (%)",
- "start": "0",
- "end": "100",
- "interval": "10",
- "step": 1.0,
- "id": "ventilator_spo2",
- "min": 90.0,
- "max": 100.0,
- },
-]
-
-@react.component
-let make = (~state: VentilatorParameters.state, ~send: VentilatorParameters.action => unit) => {
- let defaultChecked = VentilatorParameters.getParentVentilatorMode(state.ventilator_mode)
- let (parentVentilatorMode, setParentVentilatorMode) = React.useState(() => defaultChecked)
-
-
-
{str("Ventilator Mode")}
-
-
{
- setParentVentilatorMode(_ => CMV)
- send(SetVentilatorMode(UNKNOWN))
- }}
- />
-
- {
- send(
- SetVentilatorMode(
- VentilatorParameters.decodeVentilatorModeType(ReactEvent.Form.target(e)["id"]),
- ),
- )
- }}
- options={cmvOptionsArray}
- ishorizontal={false}
- />
-
-
-
-
{
- setParentVentilatorMode(_ => SIMV)
- send(SetVentilatorMode(UNKNOWN))
- }}
- />
-
- {
- send(
- SetVentilatorMode(
- VentilatorParameters.decodeVentilatorModeType(ReactEvent.Form.target(e)["id"]),
- ),
- )
- }}
- options={simvOptionArray}
- ishorizontal={false}
- />
-
-
-
-
{
- setParentVentilatorMode(_ => UNKNOWN)
- send(SetVentilatorMode(PSV))
- }}
- />
-
- value
- | _ => 0.0
- }, ~digits=1
- )}
- setValue={s => send(SetPeep(Belt.Float.fromString(s)))}
- getLabel={VentilatorParameters.getStatus(10.0, "Low", 30.0, "High")}
- hasError={ValidationUtils.isInputInRangeFloat("0", "30", state.ventilator_peep)}
- />
-
- {silderOptionArray
- |> Array.map(option => {
- let value: option = switch option["id"] {
- | "ventilator_pip" => state.ventilator_pip
- | "ventilator_mean_airway_pressure" => state.ventilator_mean_airway_pressure
- | "ventilator_resp_rate" => state.ventilator_resp_rate
- | "ventilator_pressure_support" => state.ventilator_pressure_support
- | "ventilator_tidal_volume" => state.ventilator_tidal_volume
- | "ventilator_fi02" => state.ventilator_fi02
- | "ventilator_spo2" => state.ventilator_spo2
- | _ => None
- }
-
- // SUPRESSED WARNING ADDED AT TOP OF THE FILE
- // Partial match: missing cases in pattern-matching.
-
- @warning("-8")
- let handleChange: option => VentilatorParameters.action = s =>
- switch option["id"] {
- | "ventilator_pip" => SetPIP(s)
- | "ventilator_mean_airway_pressure" => SetMeanAirwayPressure(s)
- | "ventilator_resp_rate" => SetRespiratoryRate(s)
- | "ventilator_pressure_support" => SetPressureSupport(s)
- | "ventilator_tidal_volume" => SetTidalVolume(s)
- | "ventilator_fi02" => SetFIO2(s)
- | "ventilator_spo2" => SetSPO2(s)
- }
- value
- | _ => Pervasives.int_of_string(option["start"])
- },
- )}
- setValue={s => send(handleChange(Belt.Int.fromString(s)))}
- getLabel={VentilatorParameters.getStatus(option["min"], "Low", option["max"], "High")}
- hasError={ValidationUtils.isInputInRangeFloat(option["start"], option["end"], Some(Belt.Int.toFloat(switch value { | None => Pervasives.int_of_string(option["start"]) | Some(v) => v })))}
- />
- })
- |> React.array}
-
-
-
-}
diff --git a/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__NonInvasive.res b/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__NonInvasive.res
deleted file mode 100644
index 9f68a1f22d5..00000000000
--- a/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__NonInvasive.res
+++ /dev/null
@@ -1,216 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-let cmvOptionsArray: array = [
- {label: "Volume Control Ventilation (VCV)", value: "VCV", name: "cmv"},
- {label: "Pressure Control Ventilation (PCV)", value: "PCV", name: "cmv"},
-]
-
-let simvOptionArray: array = [
- {label: "Volume Controlled SIMV (VC-SIMV)", value: "VC_SIMV", name: "simv"},
- {label: "Pressure Controlled SIMV (PC-SIMV)", value: "PC_SIMV", name: "simv"},
-]
-
-let silderOptionArray = [
- {
- "title": "Peak Inspiratory Pressure (PIP) (cm H2O)",
- "start": "0",
- "end": "100",
- "interval": "10",
- "step": 1.0,
- "id": "ventilator_pip",
- "min": 12.0,
- "max": 30.0,
- },
- {
- "title": "Mean Airway Pressure (MAP) (cm H2O)",
- "start": "0",
- "end": "40",
- "interval": "5",
- "step": 1.0,
- "id": "ventilator_mean_airway_pressure",
- "min": 12.0,
- "max": 25.0,
- },
- {
- "title": "Respiratory Rate Ventilator (bpm)",
- "start": "0",
- "end": "100",
- "interval": "10",
- "step": 1.0,
- "id": "ventilator_resp_rate",
- "min": 40.0,
- "max": 60.0,
- },
- {
- "title": "Pressure Support",
- "start": "0",
- "end": "40",
- "interval": "5",
- "step": 1.0,
- "id": "ventilator_pressure_support",
- "min": 5.0,
- "max": 15.0,
- },
- {
- "title": "Tidal Volume (ml)",
- "start": "0",
- "end": "1000",
- "interval": "100",
- "step": 1.0,
- "id": "ventilator_tidal_volume",
- "min": 0.0,
- "max": 1000.0,
- },
- {
- "title": "FiO2 (%)",
- "start": "21",
- "end": "100",
- "interval": "10",
- "step": 1.0,
- "id": "ventilator_fi02",
- "min": 21.0,
- "max": 60.0,
- },
- {
- "title": "SPO2 (%)",
- "start": "0",
- "end": "100",
- "interval": "10",
- "step": 1.0,
- "id": "ventilator_spo2",
- "min": 90.0,
- "max": 100.0,
- },
-]
-
-@react.component
-let make = (~state: VentilatorParameters.state, ~send: VentilatorParameters.action => unit) => {
- let defaultChecked = VentilatorParameters.getParentVentilatorMode(state.ventilator_mode)
- let (parentVentilatorMode, setParentVentilatorMode) = React.useState(() => defaultChecked)
-
-
-
{str("Ventilator Mode")}
-
-
setParentVentilatorMode(_ => CMV)}
- />
-
-
- send(
- SetVentilatorMode(
- VentilatorParameters.decodeVentilatorModeType(ReactEvent.Form.target(e)["id"]),
- ),
- )}
- options={cmvOptionsArray}
- ishorizontal={false}
- />
-
-
-
-
setParentVentilatorMode(_ => SIMV)}
- />
-
-
- send(
- SetVentilatorMode(
- VentilatorParameters.decodeVentilatorModeType(ReactEvent.Form.target(e)["id"]),
- ),
- )}
- options={simvOptionArray}
- ishorizontal={false}
- />
-
-
-
-
{
- setParentVentilatorMode(_ => UNKNOWN)
- send(SetVentilatorMode(PSV))
- }}
- />
-
- value
- | _ => 0.0
- },
- ~digits=1,
- )}
- setValue={s => send(SetPeep(Belt.Float.fromString(s)))}
- getLabel={VentilatorParameters.getStatus(10.0, "Low", 30.0, "High")}
- hasError={ValidationUtils.isInputInRangeFloat("0", "30", state.ventilator_peep)}
- />
-
- {silderOptionArray
- |> Array.map(option => {
- let value: option = switch option["id"] {
- | "ventilator_pip" => state.ventilator_pip
- | "ventilator_mean_airway_pressure" => state.ventilator_mean_airway_pressure
- | "ventilator_resp_rate" => state.ventilator_resp_rate
- | "ventilator_pressure_support" => state.ventilator_pressure_support
- | "ventilator_tidal_volume" => state.ventilator_tidal_volume
- | "ventilator_fi02" => state.ventilator_fi02
- | "ventilator_spo2" => state.ventilator_spo2
- | _ => None
- }
-
- // SUPRESSED WARNING ADDED AT TOP OF THE FILE
- // Partial match: missing cases in pattern-matching.
-
- @warning("-8")
- let handleChange: option => VentilatorParameters.action = s => {
- switch option["id"] {
- | "ventilator_pip" => SetPIP(s)
- | "ventilator_mean_airway_pressure" => SetMeanAirwayPressure(s)
- | "ventilator_resp_rate" => SetRespiratoryRate(s)
- | "ventilator_pressure_support" => SetPressureSupport(s)
- | "ventilator_tidal_volume" => SetTidalVolume(s)
- | "ventilator_fi02" => SetFIO2(s)
- | "ventilator_spo2" => SetSPO2(s)
- }
- }
- value
- | _ => Pervasives.int_of_string(option["start"])
- },
- )}
- setValue={s => send(handleChange(Belt.Int.fromString(s)))}
- getLabel={VentilatorParameters.getStatus(option["min"], "Low", option["max"], "High")}
- hasError={ValidationUtils.isInputInRangeFloat(option["start"], option["end"], Some(Belt.Int.toFloat(switch value { | None => Pervasives.int_of_string(option["start"]) | Some(v) => v })))}
- />
- })
- |> React.array}
-
-
-
-}
diff --git a/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__None.res b/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__None.res
deleted file mode 100644
index 5de0ae63daf..00000000000
--- a/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__None.res
+++ /dev/null
@@ -1,4 +0,0 @@
-@react.component
-let make = () => {
-
-}
diff --git a/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__OxygenSupport.res b/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__OxygenSupport.res
deleted file mode 100644
index a41dcad7ac5..00000000000
--- a/src/Components/CriticalCareRecording/VentilatorParametersEditor/CriticalCare__VentilatorParametersEditor__OxygenSupport.res
+++ /dev/null
@@ -1,149 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-let ventilatorOxygenModality: array = [
- {label: "Nasal Prongs", value: "NASAL_PRONGS", name: "oxygenModality"},
- {label: "Simple Face Mask", value: "SIMPLE_FACE_MASK", name: "oxygenModality"},
- {label: "Non Rebreathing Mask", value: "NON_REBREATHING_MASK", name: "oxygenModality"},
- {label: "High Flow Nasal Cannula", value: "HIGH_FLOW_NASAL_CANNULA", name: "oxygenModality"},
-]
-
-let silderOptionArray = [
- {
- "title": "FiO2 (%)",
- "start": "21",
- "end": "100",
- "interval": "10",
- "step": 1.0,
- "id": "ventilator_fi02",
- "min": 21.0,
- "max": 60.0,
- },
- {
- "title": "SPO2 (%)",
- "start": "0",
- "end": "100",
- "interval": "10",
- "step": 1.0,
- "id": "ventilator_spo2",
- "min": 90.0,
- "max": 100.0,
- },
-]
-
-@react.component
-let make = (~state: VentilatorParameters.state, ~send: VentilatorParameters.action => unit) => {
- let getOxygenFlowRateLabel = switch state.ventilator_oxygen_modality {
- | NASAL_PRONGS => VentilatorParameters.getStatus(1.0, "Low", 4.0, "High")
- | SIMPLE_FACE_MASK => VentilatorParameters.getStatus(5.0, "Low", 10.0, "High")
- | NON_REBREATHING_MASK => VentilatorParameters.getStatus(11.0, "Low", 15.0, "High")
- | _ => VentilatorParameters.getStatus(0.0, "Low", 50.0, "High")
- }
-
-
{str("Oxygen Modality")}
- {
- send(
- SetOxygenModality(
- VentilatorParameters.decodeVetilatorOxygenModalityType(ReactEvent.Form.target(e)["id"]),
- ),
- )
- }}
- options={ventilatorOxygenModality}
- ishorizontal={false}
- />
- {state.ventilator_oxygen_modality === HIGH_FLOW_NASAL_CANNULA
- ? value
- | _ => 0
- },
- )}
- setValue={s => send(SetOxygenModalityFlowRate(Belt.Int.fromString(s)))}
- getLabel={VentilatorParameters.getStatus(35.0, "Low", 60.0, "High")}
- hasError={ValidationUtils.isInputInRangeInt(
- 0,
- 70,
- state.ventilator_oxygen_modality_flow_rate,
- )}
- />
- : value
- | _ => 0
- },
- )}
- setValue={s => send(SetOxygenModalityOxygenRate(Belt.Int.fromString(s)))}
- getLabel={getOxygenFlowRateLabel}
- hasError={ValidationUtils.isInputInRangeInt(
- 0,
- 50,
- state.ventilator_oxygen_modality_oxygen_rate,
- )}
- />}
- {silderOptionArray
- |> Array.map(option => {
- let value: option = switch option["id"] {
- | "ventilator_oxygen_modality_flow_rate" => state.ventilator_oxygen_modality_flow_rate
- | "ventilator_fi02" => state.ventilator_fi02
- | "ventilator_spo2" => state.ventilator_spo2
- | _ => None
- }
- let handleChange: option => VentilatorParameters.action = s =>
- switch option["id"] {
- | "ventilator_fi02" => SetFIO2(s)
- | "ventilator_spo2" => SetSPO2(s)
- }
- let className =
- option["id"] === "ventilator_fi02" &&
- state.ventilator_oxygen_modality !== HIGH_FLOW_NASAL_CANNULA
- ? "hidden"
- : ""
- value
- | _ => Pervasives.int_of_string(option["start"])
- },
- )}
- setValue={s => send(handleChange(Belt.Int.fromString(s)))}
- getLabel={VentilatorParameters.getStatus(option["min"], "Low", option["max"], "High")}
- hasError={ValidationUtils.isInputInRangeFloat(
- option["start"],
- option["end"],
- Some(
- Belt.Int.toFloat(
- switch value {
- | None => Pervasives.int_of_string(option["start"])
- | Some(v) => v
- },
- ),
- ),
- )}
- />
- })
- |> React.array}
-
-}
diff --git a/src/Components/CriticalCareRecording/VentilatorParametersEditor/DailyRound__VentilatorParameters.res b/src/Components/CriticalCareRecording/VentilatorParametersEditor/DailyRound__VentilatorParameters.res
deleted file mode 100644
index 1fc95bc5f0e..00000000000
--- a/src/Components/CriticalCareRecording/VentilatorParametersEditor/DailyRound__VentilatorParameters.res
+++ /dev/null
@@ -1,128 +0,0 @@
-let str = React.string
-open CriticalCare__Types
-
-@react.component
-let make = (
- ~ventilatorParameters,
- ~renderOptionalIntWithIndicators,
- ~renderOptionalFloatWithIndicators,
- ~renderOptionalInt,
- ~renderLine,
-) => {
-
- {renderLine(
- "Interface",
- VentilatorParameters.ventilatorInterfaceTypeToString(
- VentilatorParameters.ventilatorInterface(ventilatorParameters),
- ),
- )}
- {renderLine(
- "Mode",
- VentilatorParameters.ventilatorModeTypeToString(
- VentilatorParameters.ventilatorMode(ventilatorParameters),
- ),
- )}
- {renderLine(
- "Oxygen Modality",
- VentilatorParameters.ventilatorOxygenModalityTypeToString(
- VentilatorParameters.oxygenModality(ventilatorParameters),
- ),
- )}
- {renderOptionalFloatWithIndicators(
- "PEEP",
- VentilatorParameters.peep(ventilatorParameters),
- 5.0,
- 10.0,
- "Low",
- "High",
- )}
- {renderOptionalIntWithIndicators(
- "Peak Inspiratory Pressure (PIP)",
- VentilatorParameters.pip(ventilatorParameters),
- 12,
- 30,
- "Low",
- "High",
- )}
- {renderOptionalIntWithIndicators(
- "Mean Airway Pressure",
- VentilatorParameters.meanAirwayPressure(ventilatorParameters),
- 12,
- 25,
- "Low",
- "High",
- )}
- {renderOptionalIntWithIndicators(
- "Respiratory Rate",
- VentilatorParameters.respiratoryRate(ventilatorParameters),
- 12,
- 20,
- "Low",
- "High",
- )}
- {renderOptionalIntWithIndicators(
- "Pressure Support",
- VentilatorParameters.pressureSupport(ventilatorParameters),
- 5,
- 15,
- "Low",
- "High",
- )}
- {renderOptionalInt("Tidal Volume", VentilatorParameters.tidalVolume(ventilatorParameters))}
- {switch VentilatorParameters.oxygenModality(ventilatorParameters) {
- | NASAL_PRONGS =>
- renderOptionalIntWithIndicators(
- "Oxygen Flow Rate",
- VentilatorParameters.oxygenModalityOxygenRate(ventilatorParameters),
- 1,
- 4,
- "Low",
- "High",
- )
- | SIMPLE_FACE_MASK =>
- renderOptionalIntWithIndicators(
- "Oxygen Flow Rate",
- VentilatorParameters.oxygenModalityOxygenRate(ventilatorParameters),
- 5,
- 10,
- "Low",
- "High",
- )
- | NON_REBREATHING_MASK =>
- renderOptionalIntWithIndicators(
- "Oxygen Flow Rate",
- VentilatorParameters.oxygenModalityOxygenRate(ventilatorParameters),
- 11,
- 15,
- "Low",
- "High",
- )
- | HIGH_FLOW_NASAL_CANNULA =>
- renderOptionalIntWithIndicators(
- "Flow Rate",
- VentilatorParameters.oxygenModalityFlowRate(ventilatorParameters),
- 35,
- 60,
- "Low",
- "High",
- )
- | _ =>
- }}
- {renderOptionalIntWithIndicators(
- "FIO2",
- VentilatorParameters.fio2(ventilatorParameters),
- 21,
- 60,
- "Low",
- "High",
- )}
- {renderOptionalIntWithIndicators(
- "SPO2",
- VentilatorParameters.spo2(ventilatorParameters),
- 90,
- 100,
- "Low",
- "High",
- )}
-
-}
diff --git a/src/Components/CriticalCareRecording/components/CriticalCare__DoubleRangeSlider.res b/src/Components/CriticalCareRecording/components/CriticalCare__DoubleRangeSlider.res
deleted file mode 100644
index cb254569b31..00000000000
--- a/src/Components/CriticalCareRecording/components/CriticalCare__DoubleRangeSlider.res
+++ /dev/null
@@ -1,30 +0,0 @@
-@val external document: {..} = "document"
-
-let str = React.string
-
-let handleClick = val => {
- let range = document["getElementById"]("pupil_slider1")
- let active_val = document["getElementsByClassName"]("active")
- let class_val = "pupil_label" ++ active_val[0]["innerText"]
- active_val[0]["className"] = class_val ++ " label"
- range["value"] = val
- let set_active_class = "pupil_label" ++ Belt.Int.toString(val)
- let set_active = document["getElementsByClassName"](set_active_class)
- set_active[0]["className"] = set_active[0]["className"] ++ " active selected"
-}
-
-@react.component
-let make = () => {
-
-
-
-
-
-
-
-
-
{str("10")}
-
{str("20")}
-
-
-}
diff --git a/src/Components/CriticalCareRecording/components/CriticalCare__Dropdown.res b/src/Components/CriticalCareRecording/components/CriticalCare__Dropdown.res
deleted file mode 100644
index 76908972723..00000000000
--- a/src/Components/CriticalCareRecording/components/CriticalCare__Dropdown.res
+++ /dev/null
@@ -1,100 +0,0 @@
-let str = React.string
-
-open Webapi.Dom
-
-let onWindowClick = (showDropdown, setShowDropdown, _event) =>
- if showDropdown {
- setShowDropdown(_ => false)
- } else {
- ()
- }
-
-let toggleDropdown = (setShowDropdown, event) => {
- event |> ReactEvent.Mouse.stopPropagation
- setShowDropdown(showDropdown => !showDropdown)
-}
-
-let search = (searchString, selectables) =>
- (selectables |> Js.Array.filter(selection =>
- selection
- |> String.lowercase_ascii
- |> Js.String.includes(searchString |> String.lowercase_ascii) && selection != searchString
- ))->Belt.SortArray.stableSortBy((x, y) => String.compare(x, y))
-
-let renderSelectables = (selections, updateCB) =>
- selections |> Array.mapi((index, selection) =>
- string_of_int}
- onClick={_ => updateCB(selection)}
- className="w-full block px-4 py-2 text-sm leading-5 text-left text-secondary-700 hover:bg-secondary-100 hover:text-secondary-900 focus:outline-none focus:bg-secondary-100 focus:text-secondary-900">
- {selection |> str}
-
- )
-
-let searchResult = (searchInput, updateCB, selectables) => {
- // Remove all excess space characters from the user input.
- let normalizedString =
- searchInput
- |> Js.String.trim
- |> Js.String.replaceByRe(Js.Re.fromStringWithFlags("\\s+", ~flags="g"), " ")
- switch normalizedString {
- | "" => []
- | searchString =>
- let matchingSelections = search(searchString, selectables)
- renderSelectables(matchingSelections, updateCB)
- }
-}
-
-let renderDropdown = results =>
-
-
-
{results |> React.array}
-
-
-
-@react.component
-let make = (~id, ~value, ~updateCB, ~placeholder, ~selectables, ~label="", ~disabled=false) => {
- let results = searchResult(value, updateCB, selectables)
- let (showDropdown, setShowDropdown) = React.useState(_ => false)
- React.useEffect1(() => {
- let curriedFunction = onWindowClick(showDropdown, setShowDropdown)
-
- let removeEventListener = () => Window.removeEventListener(window, "click", curriedFunction)
-
- if showDropdown {
- Window.addEventListener(window, "click", curriedFunction)
- Some(removeEventListener)
- } else {
- removeEventListener()
- None
- }
- }, [showDropdown])
-
-
- {str(label)}
- {
- ReactEvent.Mouse.stopPropagation(e)
- setShowDropdown(_ => !showDropdown)
- }}
- onChange={e => updateCB(ReactEvent.Form.target(e)["value"])}
- className="cui-input-base appearance-none h-10 mt-1 block py-2 px-4"
- disabled
- placeholder
- required=true
- />
- {results |> Array.length == 0
- ? switch showDropdown {
- | true => renderDropdown(renderSelectables(selectables, updateCB))
- | false => React.null
- }
- : switch showDropdown {
- | true => renderDropdown(results)
- | false => React.null
- }}
-
-}
diff --git a/src/Components/CriticalCareRecording/components/CriticalCare__Home.res b/src/Components/CriticalCareRecording/components/CriticalCare__Home.res
deleted file mode 100644
index 35f543f4c16..00000000000
--- a/src/Components/CriticalCareRecording/components/CriticalCare__Home.res
+++ /dev/null
@@ -1,327 +0,0 @@
-// let str = React.string
-
-// let loc_options :array = [
-// {
-// name: "loc",
-// value: "alert",
-// label: "Alert",
-// },
-// {
-// name: "loc",
-// value: "drowsy",
-// label: "Drowsy",
-// },
-// {
-// name: "loc",
-// value: "stuporous",
-// label: "Stuporous",
-// },
-// {
-// name: "loc",
-// value: "comatosed",
-// label: "Comatosed",
-// },
-// {
-// name: "loc",
-// value: "restless",
-// label: "Restless",
-// }
-
-// ]
-
-// let limp_options :array = [
-// {
-// name: "limp",
-// value: "strong",
-// label: "Strong",
-// },
-// {
-// name: "limp",
-// value: "moderate",
-// label: "Moderate",
-// },
-// {
-// name: "limp",
-// value: "weak",
-// label: "Weak",
-// },
-// {
-// name: "limp",
-// value: "flexion",
-// label: "Flexion",
-// },
-// {
-// name: "limp",
-// value: "extension",
-// label: "Extension",
-// },
-// {
-// name: "limp",
-// value: "none",
-// label: "None",
-// }
-
-// ]
-
-// let ventillator_mode_options :array = [
-// {
-// name: "ventillator_mode",
-// value: "vcv",
-// label: "VCV",
-// },
-// {
-// name: "ventillator_mode",
-// value: "pcv",
-// label: "PCV",
-// },
-// {
-// name: "ventillator_mode",
-// value: "prvc",
-// label: "PRVC",
-// }
-// ]
-
-// let limps = ["Upper Extremity-Right", "Upper Extremity-Left", "Lower Extremity-Right", "Lower Extremity-Left"]
-
-// let reaction_options :array = [
-// {
-// name: "reaction",
-// value: "brisk",
-// label: "Brisk",
-// },
-// {
-// name: "reaction",
-// value: "sluggish",
-// label: "Sluggish",
-// },
-// {
-// name: "reaction",
-// value: "fixed",
-// label: "Fixed",
-// },
-// {
-// name: "reaction",
-// value: "eyes_closed_by_swelling",
-// label: "Eyes Closed by Swelling",
-// }
-
-// ]
-
-// let title_val = [
-// "eye_open",
-// "verbal_response",
-// "motor_response"
-// ]
-// let glassgowComaScale :Options.glassgow_coma_scale = [
-// {
-// title: "Eye Open",
-// title_value: title_val[0],
-// options: [
-// {
-// name: title_val[0],
-// value: "4",
-// label: "4 - Spontaneous",
-// },
-// {
-// name: title_val[0],
-// value: "3",
-// label: "3 - To Speech",
-// },
-// {
-// name: title_val[0],
-// value: "2",
-// label: "2 - To Pain",
-// },
-// {
-// name: title_val[0],
-// value: "1",
-// label: "1 - None",
-// }
-// ]
-// },
-// {
-// title: "Verbal Response",
-// title_value: title_val[1],
-// options: [
-// {
-// name: title_val[1],
-// value: "5",
-// label: "5 - Oriented/Coos/Babbies",
-// },
-// {
-// name: title_val[1],
-// value: "4",
-// label: "4 - Confused/Irritable",
-// },
-// {
-// name: title_val[1],
-// value: "3",
-// label: "3 - Inappropriate words/Cry to pain",
-// },
-// {
-// name: title_val[1],
-// value: "2",
-// label: "2 - Incomprehensible words/Moans to pain",
-// },
-// {
-// name: title_val[1],
-// value: "1",
-// label: "1 - None",
-// }
-// ]
-// },
-// {
-// title: "Motor Response",
-// title_value: "motor_response",
-// options: [
-// {
-// name: title_val[2],
-// value: "6",
-// label: "6 - Obeying/Normal Activity",
-// },
-// {
-// name: title_val[2],
-// value: "5",
-// label: "5 - Localizing/Withdrawl to touch",
-// },
-// {
-// name: title_val[2],
-// value: "4",
-// label: "4 - Withdrawing",
-// },
-// {
-// name: title_val[2],
-// value: "3",
-// label: "3 - Abnormal Flexion",
-// },
-// {
-// name: title_val[2],
-// value: "2",
-// label: "2 - incomprehensible words/Moans to pain",
-// },
-// {
-// name: title_val[2],
-// value: "1",
-// label: "1 - None",
-// }
-// ]
-// }
-// ]
-
-// let ventilator_parameters = ["PIP/PEEP", "Peak Pressure", "Mean Presure", "Resp. Rate. Vent/Patient", "Tidak Volume", "O2/Mode", "FiO2/SPO2"]
-// let infusion_parameters = ["Atracurium (Inj)", "Fenta (Inj)", "Midaz (Inj)", "Colistin (Inj)"]
-// let feed_parameters = ["RT Feed"]
-// let output_parameters = ["Urine"]
-
-// @react.component
-// let make = () => {
-//
-//
-//
{str("LOC")}
-// //
-//
-//
-//
{str("Pupil")}
-//
{str("Left Pupil")}
-//
-//
-//
{str("Reaction")}
-// //
-//
-
-//
{str("Right Pupil")}
-//
-//
-//
{str("Reaction")}
-// //
-//
-//
-//
-//
-//
{str("Glasgow Coma Scale")}
-//
-// {glassgowComaScale|>Array.map((x) => {
-// <>
-//
-//
{str(Options.title(x))}
-//
{str("1")}
-//
-// //
-// >
-// })
-// |> React.array }
-//
-//
-//
{str("Total")}
-//
{str("3")}
-//
-//
-
-//
-
-//
-//
{str("Limb Response")}
-//
-// {limps|>Array.map((x) => {
-// <>
-//
{str(x)}
-// //
-// >
-// })
-// |> React.array }
-//
-//
-
-//
-
-//
-//
-//
-
-//
-
-//
-//
{str("Ventillator Parameters")}
-//
-//
{str("Ventillator Mode")}
-//
-// //
-//
-//
-//
-//
-
-//
-
-//
-//
{str("Infusions")}
-//
-//
-
-//
-
-//
-//
{str("Feed")}
-//
-//
-//
{str("Total")}
-//
{str("3")}
-//
-//
-
-//
-
-//
-//
{str("Output")}
-//
-//
-//
{str("Total")}
-//
{str("3")}
-//
-//
-
-//
-
-//
-// }
-
diff --git a/src/Components/CriticalCareRecording/components/CriticalCare__InputGroupError.res b/src/Components/CriticalCareRecording/components/CriticalCare__InputGroupError.res
deleted file mode 100644
index 47b842e7e53..00000000000
--- a/src/Components/CriticalCareRecording/components/CriticalCare__InputGroupError.res
+++ /dev/null
@@ -1,13 +0,0 @@
-let str = React.string
-
-@react.component
-let make = (~message, ~active) =>
- if active {
-
-
- {message |> str}
-
- } else {
- React.null
- }
diff --git a/src/Components/CriticalCareRecording/components/CriticalCare__Loader.res b/src/Components/CriticalCareRecording/components/CriticalCare__Loader.res
deleted file mode 100644
index 139797a150c..00000000000
--- a/src/Components/CriticalCareRecording/components/CriticalCare__Loader.res
+++ /dev/null
@@ -1,6 +0,0 @@
-let img = "https://cdn.coronasafe.network/break-chain.webp"
-
-@react.component
-let make = () => {
- {SkeletonLoading.pageLoad()}
-}
diff --git a/src/Components/CriticalCareRecording/components/CriticalCare__NumberInput.res b/src/Components/CriticalCareRecording/components/CriticalCare__NumberInput.res
deleted file mode 100644
index d133348e4d6..00000000000
--- a/src/Components/CriticalCareRecording/components/CriticalCare__NumberInput.res
+++ /dev/null
@@ -1,22 +0,0 @@
-let str = React.string
-
-@react.component
-let make = (~labels) => {
-
- {labels
- |> Array.map(x => {
-
- })
- |> React.array}
-
-}
diff --git a/src/Components/CriticalCareRecording/components/CriticalCare__PageTitle.res b/src/Components/CriticalCareRecording/components/CriticalCare__PageTitle.res
deleted file mode 100644
index e62a0c9dcb7..00000000000
--- a/src/Components/CriticalCareRecording/components/CriticalCare__PageTitle.res
+++ /dev/null
@@ -1,9 +0,0 @@
-let str = React.string
-@val @scope(("window", "history")) external goBack: int => () = "go"
-
-@react.component
-let make = (~title: string) => {
-
-
{str(title)}
-
-}
diff --git a/src/Components/CriticalCareRecording/components/CriticalCare__PupilRangeSlider.res b/src/Components/CriticalCareRecording/components/CriticalCare__PupilRangeSlider.res
deleted file mode 100644
index 27f0f221de7..00000000000
--- a/src/Components/CriticalCareRecording/components/CriticalCare__PupilRangeSlider.res
+++ /dev/null
@@ -1,59 +0,0 @@
-let str = React.string
-
-let handleOnChange = (setValueCB, event) => {
- setValueCB(ReactEvent.Form.target(event)["value"])
-}
-
-let circleClasses = bool => {
- "m-1 p-2 h-20 w-20 flex flex-col justify-end items-center border rounded-lg" ++ (
- bool ? " border-green-500 text-green-600 bg-green-100 font-semibold" : ""
- )
-}
-
-let inference = value => {
- if value <= 0 {
- ""
- } else if value <= 2 {
- "Constricted"
- } else if value <= 6 {
- "Normal"
- } else {
- "Dialated"
- }
-}
-
-@react.component
-let make = (~name, ~value, ~setValueCB) => {
- let pupilSizes = [1, 2, 3, 4, 5, 6, 7, 8]
-
-
-
-
{str("Size")}
-
{str(Belt.Option.mapWithDefault(value, "", val => inference(val)))}
-
-
-
- {Js.Array.map(
- x =>
-
x === val))}
- onClick={e => setValueCB(x)}>
-
{str(string_of_int(x))}
-
,
- pupilSizes,
- )->React.array}
-
-
-
-
- setValueCB(0)}
- checked={Belt.Option.mapWithDefault(value, false, val => val === 0)}
- />
-
-
-
-}
diff --git a/src/Components/CriticalCareRecording/components/CriticalCare__RadioButton.res b/src/Components/CriticalCareRecording/components/CriticalCare__RadioButton.res
deleted file mode 100644
index 5437f94ffe4..00000000000
--- a/src/Components/CriticalCareRecording/components/CriticalCare__RadioButton.res
+++ /dev/null
@@ -1,41 +0,0 @@
-let str = React.string
-
-let divClasses = isIsHorizontal => {
- isIsHorizontal ? "flex flex-wrap w-full" : "my-3"
-}
-
-let labelClasses = ishorizontal => {
- ishorizontal ? "flex flex-wrap items-center justify-center mr-20 mt-2" : "my-1 block"
-}
-
-@react.component
-let make = (
- ~options,
- ~ishorizontal=true,
- ~defaultChecked="",
- ~onChange: ReactEvent.Form.t => unit,
-) => {
- {Js.Array.mapi((x, i) => {
-
- //
- //
- // {str({Options.label(x)})}
- //
- Belt.Int.toString}
- id={Options.value(x)}
- label={Options.label(x)}
- checked={Options.value(x) === defaultChecked}
- onChange
- />
-
- }, options)->React.array}
-}
diff --git a/src/Components/CriticalCareRecording/components/Notifications.res b/src/Components/CriticalCareRecording/components/Notifications.res
deleted file mode 100644
index 3ed1a2a3703..00000000000
--- a/src/Components/CriticalCareRecording/components/Notifications.res
+++ /dev/null
@@ -1,5 +0,0 @@
-type props = {msg: string}
-
-@module("../../../Utils/Notifications.js") external success: props => unit = "Success"
-@module("../../../Utils/Notifications.js") external error: props => unit = "Error"
-@module("../../../Utils/Notifications.js") external badRequest: props => unit = "BadRequest"
diff --git a/src/Components/CriticalCareRecording/components/PressureSore.js b/src/Components/CriticalCareRecording/components/PressureSore.js
deleted file mode 100644
index b03dbf4de19..00000000000
--- a/src/Components/CriticalCareRecording/components/PressureSore.js
+++ /dev/null
@@ -1,216 +0,0 @@
-import { useState } from "react";
-
-// TODO: Add Name, Value to each body part and implement multiselect
-const parts = [
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
- {
- path: (addlProps) => (
-
- ),
- },
-];
-export default function PressureSore() {
- const [selected, setSelected] = useState();
- return (
-
-
- {parts.map((part, renderIndex) => {
- const Path = part.path;
- return (
- setSelected(renderIndex)}
- />
- );
- })}
-
-
- );
-}
diff --git a/src/Components/CriticalCareRecording/components/ShowOnChecked.res b/src/Components/CriticalCareRecording/components/ShowOnChecked.res
deleted file mode 100644
index a7a43658c54..00000000000
--- a/src/Components/CriticalCareRecording/components/ShowOnChecked.res
+++ /dev/null
@@ -1,25 +0,0 @@
-let str = React.string
-
-@react.component
-let make = (
- ~title,
- ~id=title,
- ~name=title,
- ~value=title,
- ~children,
- ~onChange,
- ~defaultChecked=false,
-) => {
- let (checked, setChecked) = React.useState(_ => defaultChecked)
- let handleChange = _ => {
- onChange(!checked)
- setChecked(prev => !prev)
- }
-
- <>
-
-
-
- {checked ? children : React.null}
- >
-}
diff --git a/src/Components/CriticalCareRecording/components/Slider.res b/src/Components/CriticalCareRecording/components/Slider.res
deleted file mode 100644
index 9dc8dfd2d2c..00000000000
--- a/src/Components/CriticalCareRecording/components/Slider.res
+++ /dev/null
@@ -1,147 +0,0 @@
-// USAGE:
-
-// let (slide, setSlider) = React.useState(() => "0")
-
-// setSlider(_ => s)}
-// getLabel={getLabel}
-// />
-//
-//
-// And getLabel can be something like:
-//
-// let getLabel = (value) => {
-// if (value > 50.0) {
-// ("Disease", "#ff0000")
-// } else {
-// ("Normal", "#2856ff")
-// }
-// }
-
-let str = React.string
-// %%raw(`import ("./styles.css")`)
-%%raw(`import ('@yaireo/ui-range')`)
-
-@genType @react.component
-let make = (
- ~title: string,
- ~titleNeighbour: React.element=
,
- ~start: string,
- ~end: string,
- ~step: float,
- ~value: string,
- ~setValue: string => unit,
- ~getLabel: float => (string, string),
- ~interval: string,
- ~disabled: bool=false,
- ~hasError=None,
- ~className="",
-) => {
- let (textColor, setColor) = React.useState(() => "#2856ff")
- let (text, setText) = React.useState(() => "Normal")
- let (precision, setPrecision) = React.useState(() => 1)
- let (displayValue, setDisplayValue) = React.useState(() => value)
- let justifyContentClassName = title != "" ? "justify-between" : "justify-center"
- let alignItemClassName = title != "" ? "items-end" : "items-center"
- let boxWidthClassName = title != "" ? "" : "w-16"
-
- React.useEffect1(() => {
- let (text, color) = getLabel(value->Belt.Float.fromString->Belt.Option.getWithDefault(0.0))
- setColor(_ => color)
- setText(_ => text)
-
- None
- }, [value])
-
- React.useEffect2(() => {
- let digits = (value->Js.String2.split("."))[0]->Js.String.length
- setDisplayValue(_ => value->Js.String2.slice(~from=0, ~to_=digits + 1 + precision))
-
- None
- }, (value, precision))
-
- React.useEffect0(() => {
- open Belt
- let decimals = (step->Js.Float.toString->Js.String2.split("."))[1]
- switch decimals {
- | Some(x) => setPrecision(_ => Belt.Option.mapWithDefault(x->Belt.Int.fromString, 0, i => i))
- | None => setPrecision(_ => 0)
- }
-
- None
- })
-
- <>
-
-
-
-
{title->str} titleNeighbour
-
-
-
- {switch value->Belt.Float.fromString {
- | Some(_) => text->str
- | None => React.null
- }}
-
- setValue(
- ReactEvent.Form.target(event)["value"]
- ->Js.Float.fromString
- ->Js.Float.toFixedWithPrecision(~digits=precision),
- )}
- />
-
-
-
-
-
-
setValue(ReactEvent.Form.target(event)["value"])}
- onChange={event => {
- setValue(ReactEvent.Form.target(event)["value"])
- }}
- />
-
{str(displayValue)}
-
-
-
- >
-}
diff --git a/src/Components/CriticalCareRecording/components/styles.css b/src/Components/CriticalCareRecording/components/styles.css
deleted file mode 100644
index 2ced689186e..00000000000
--- a/src/Components/CriticalCareRecording/components/styles.css
+++ /dev/null
@@ -1,387 +0,0 @@
-.range {
- position: relative;
- width: 644px;
- height: 5px;
-}
-.range input {
- width: 100%;
- position: absolute;
- top: 2px;
- height: 0;
- -webkit-appearance: none;
-}
-.range input::-webkit-slider-thumb {
- -webkit-appearance: none;
- width: 18px;
- height: 18px;
- margin: -8px 0 0;
- border-radius: 50%;
- background: rgb(7, 109, 243);
- cursor: pointer;
- border: 0 !important;
- z-index: 10;
-}
-.range input::-moz-range-thumb {
- width: 18px;
- height: 18px;
- margin: -8px 0 0;
- border-radius: 50%;
- background: rgb(7, 109, 243);
- cursor: pointer;
- border: 0 !important;
- z-index: 10;
-}
-.range input::-ms-thumb {
- width: 18px;
- height: 18px;
- margin: -8px 0 0;
- border-radius: 50%;
- background: rgb(7, 109, 243);
- cursor: pointer;
- border: 0 !important;
- z-index: 10;
-}
-.range input::-webkit-slider-runnable-track {
- width: 100%;
- height: 2px;
- cursor: pointer;
- background: #b2b2b2;
- z-index: 1;
-}
-
-.range input::-moz-range-track {
- width: 100%;
- height: 2px;
- cursor: pointer;
- background: black;
- z-index: 1;
-}
-.range input::-ms-track {
- width: 100%;
- height: 2px;
- cursor: pointer;
- background: #b2b2b2;
- z-index: 1;
-}
-.range input:focus {
- background: none;
- outline: none;
-}
-.range input::-ms-track {
- width: 100%;
- cursor: pointer;
- background: transparent;
- border-color: transparent;
- color: transparent;
-}
-.range-labels {
- margin: 18px -41px 0;
- padding: 0;
- list-style: none;
-}
-.range-labels li {
- position: relative;
- float: left;
- width: 90.25px;
- text-align: center;
- color: black;
- font-size: 14px;
- cursor: pointer;
-}
-.range-labels .label::before {
- position: absolute;
- top: -25px;
- right: 0;
- left: 0;
- content: "";
- margin: 0 auto;
- width: 9px;
- height: 9px;
- background: #b2b2b2;
- border-radius: 50%;
-}
-.double-range-labels {
- margin: 18px -41px 0;
- padding: 0;
- list-style: none;
-}
-.double-range-labels li {
- position: relative;
- float: left;
- width: 45.25px;
- text-align: center;
- color: black;
- font-size: 14px;
- cursor: pointer;
-}
-.double-range-labels .label::before {
- position: absolute;
- top: -25px;
- right: 0;
- left: 0;
- content: "";
- margin: 0 auto;
- width: 9px;
- height: 9px;
- background: #b2b2b2;
- border-radius: 50%;
-}
-.upper-label {
- height: 10px;
- margin-bottom: 10px;
-}
-.pupil1 {
- bottom: 0;
- margin: 0 auto;
- width: 9px;
- height: 9px;
- border-radius: 50%;
- background-color: black;
-}
-.pupil2 {
- bottom: 0;
- margin: 0 auto;
- width: 15px;
- height: 15px;
- border-radius: 50%;
- background-color: black;
-}
-
-.pupil3 {
- bottom: 0;
- margin: 0 auto;
- width: 21px;
- height: 21px;
- border-radius: 50%;
- background-color: black;
-}
-
-.pupil4 {
- bottom: 0;
- margin: 0 auto;
- width: 25px;
- height: 25px;
- border-radius: 50%;
- background-color: black;
-}
-
-.pupil5 {
- bottom: 0;
- margin: 0 auto;
- width: 30px;
- height: 30px;
- border-radius: 50%;
- background-color: black;
-}
-
-.pupil6 {
- bottom: 0;
- margin: 0 auto;
- width: 35px;
- height: 35px;
- border-radius: 50%;
- background-color: black;
-}
-
-.pupil7 {
- bottom: 0;
- margin: 0 auto;
- width: 38px;
- height: 38px;
- border-radius: 50%;
- background-color: black;
-}
-
-.pupil8 {
- width: 41px;
- height: 41px;
- border-radius: 50%;
- background-color: black;
-}
-
-.range-labels .active {
- color: rgb(7, 109, 243);
-}
-.range-labels .selected::before {
- background: rgb(7, 109, 243);
-}
-.range-labels .active.selected::before {
- display: none;
-}
-
-.align-circles {
- position: relative;
- display: flex;
- justify-content: center;
- height: 41px;
- vertical-align: baseline;
-}
-
-input[type="number"] {
- background-color: #fbfafc;
-}
-
-/* Copied CSS */
-
-.slider {
- position: relative;
- width: 200px;
-}
-
-.slider__track,
-.slider__range,
-.slider__left-value,
-.slider__right-value {
- position: absolute;
-}
-
-.slider__track,
-.slider__range {
- border-radius: 3px;
- height: 5px;
-}
-
-.slider__track {
- background-color: #1476d8;
- width: 100%;
- z-index: 1;
-}
-
-.slider__range {
- background-color: #19ebe0;
- z-index: 2;
-}
-
-.slider__left-value,
-.slider__right-value {
- color: #1c85ee;
- font-size: 12px;
- margin-top: 20px;
-}
-
-.slider__left-value {
- left: 6px;
-}
-
-.slider__right-value {
- right: -4px;
-}
-
-/* Removing the default appearance */
-
-.thumb input {
- pointer-events: none;
- position: absolute;
- height: 0;
- width: 200px;
- outline: none;
-}
-
-.thumb--left {
- z-index: 3;
-}
-
-.thumb--right {
- z-index: 4;
-}
-
-/* For Chrome browsers */
-.thumb input::-webkit-slider-thumb {
- background-color: #242525;
- border: none;
- border-radius: 50%;
- box-shadow: 0 0 1px 1px #0b2846;
- cursor: pointer;
- height: 18px;
- width: 18px;
- margin-top: 4px;
- pointer-events: all;
- position: relative;
-}
-
-/* For Firefox browsers */
-.thumb input::-moz-range-thumb {
- background-color: #272b2c;
- border: none;
- border-radius: 50%;
- box-shadow: 0 0 1px 1px #0d2d4d;
- cursor: pointer;
- height: 18px;
- width: 18px;
- margin-top: 4px;
- pointer-events: all;
- position: relative;
-}
-
-.slider {
- appearance: none;
- background-color: #dee0e4;
- width: 100%;
- height: 4px;
- margin: 0;
- padding: 0;
- z-index: 2;
-}
-
-.slider::-webkit-slider-thumb {
- cursor: pointer;
-}
-
-.slider-container {
- position: relative;
- width: 100%;
- /* max-width: 700px; */
- display: flex;
- justify-content: center;
-}
-
-.indicators {
- position: absolute;
- top: -200%;
- width: 100%;
- height: 20px;
- border-left: 2px solid #dee0e4;
-}
-
-.tick {
- content: "";
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: linear-gradient(to left, #dee0e4 2px, transparent 2px);
-}
-
-.slider-box {
- width: 100%;
- /* max-width: 700px; */
- padding: 20px 10px 60px 10px;
- border-radius: 12px;
-}
-
-.slider-head {
- font-family: sans-serif;
- margin-bottom: 2rem;
-}
-
-.slider-head > div > h1 {
- font-size: 1rem;
- font-weight: bold;
-}
-
-.slider-head input {
- padding: 0.5rem 0.7rem;
- border-radius: 8px;
- border: 1px solid #979aa0;
- margin-left: 12px;
- font-size: 1.1rem;
- color: #383a3e;
- letter-spacing: 1px;
-}
-
-.slider-head label {
- font-weight: 700;
- color: #2856ff;
- font-size: 1rem;
-}
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare_BloodSugar.res b/src/Components/CriticalCareRecording/types/CriticalCare_BloodSugar.res
deleted file mode 100644
index c875d5f51e0..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare_BloodSugar.res
+++ /dev/null
@@ -1,56 +0,0 @@
-type frequency =
- | UNKNOWN
- | OD
- | BD
- | TD
-
-type t = {
- bloodsugar_level: option,
- dosage: option,
- frequency: frequency,
-}
-
-let makeFrequency = frequency => {
- switch frequency {
- | "OD" => OD
- | "BD" => BD
- | "TD" => TD
- | _ => UNKNOWN
- }
-}
-
-let encodeFrequency = frequency => {
- switch frequency {
- | OD => "OD"
- | BD => "BD"
- | TD => "TD"
- | UNKNOWN => "UNKNOWN"
- }
-}
-
-let frequencyToString = frequency => {
- switch frequency {
- | OD => "Once a Day(OD)"
- | BD => "Twice a day(BD)"
- | TD => "Thrice in a day(TD)"
- | UNKNOWN => "Unknown"
- }
-}
-
-let bloodsugar_level = t => t.bloodsugar_level
-let dosage = t => t.dosage
-let frequency = t => t.frequency
-
-let make = (~bloodsugar_level, ~dosage, ~frequency) => {
- bloodsugar_level: bloodsugar_level,
- dosage: dosage,
- frequency: frequency,
-}
-
-let makeFromJs = dailyRound => {
- make(
- ~bloodsugar_level=dailyRound["blood_sugar_level"]->Js.Nullable.toOption,
- ~dosage=dailyRound["insulin_intake_dose"]->Js.Nullable.toOption,
- ~frequency=makeFrequency(dailyRound["insulin_intake_frequency"]),
- )
-}
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare_Dialysis.res b/src/Components/CriticalCareRecording/types/CriticalCare_Dialysis.res
deleted file mode 100644
index efbc03d1fea..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare_Dialysis.res
+++ /dev/null
@@ -1,20 +0,0 @@
-type t = {
- fluid_balance: option,
- net_balance: option,
-}
-
-let fluid_balance = t => t.fluid_balance
-let net_balance = t => t.net_balance
-
-let make = (~fluid_balance, ~net_balance) => {
- fluid_balance: fluid_balance,
- net_balance: net_balance,
-}
-
-let makeFromJs = dailyRound => {
- make(
- ~fluid_balance=dailyRound["dialysis_fluid_balance"]->Js.Nullable.toOption,
- ~net_balance=dailyRound["dialysis_net_balance"]->Js.Nullable.toOption,
- )
-}
-
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare__ABGAnalysis.res b/src/Components/CriticalCareRecording/types/CriticalCare__ABGAnalysis.res
deleted file mode 100644
index 7c778685466..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare__ABGAnalysis.res
+++ /dev/null
@@ -1,43 +0,0 @@
-type t = {
- po2: option,
- pco2: option,
- pH: option,
- hco3: option,
- baseExcess: option,
- lactate: option,
- sodium: option,
- potassium: option,
-}
-
-let make = (~po2, ~pco2, ~pH, ~hco3, ~baseExcess, ~lactate, ~sodium, ~potassium) => {
- po2: po2,
- pco2: pco2,
- pH: pH,
- hco3: hco3,
- baseExcess: baseExcess,
- lactate: lactate,
- sodium: sodium,
- potassium: potassium,
-}
-
-let makeFromJs = dailyRound => {
- make(
- ~po2=dailyRound["po2"]->Js.Nullable.toOption,
- ~pco2=dailyRound["pco2"]->Js.Nullable.toOption,
- ~pH=dailyRound["ph"]->Js.Nullable.toOption,
- ~hco3=dailyRound["hco3"]->Js.Nullable.toOption,
- ~baseExcess=dailyRound["base_excess"]->Js.Nullable.toOption,
- ~lactate=dailyRound["lactate"]->Js.Nullable.toOption,
- ~sodium=dailyRound["sodium"]->Js.Nullable.toOption,
- ~potassium=dailyRound["potassium"]->Js.Nullable.toOption,
- )
-}
-
-let po2 = t => t.po2
-let pco2 = t => t.pco2
-let pH = t => t.pH
-let hco3 = t => t.hco3
-let baseExcess = t => t.baseExcess
-let lactate = t => t.lactate
-let sodium = t => t.sodium
-let potassium = t => t.potassium
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare__DailyRound.res b/src/Components/CriticalCareRecording/types/CriticalCare__DailyRound.res
deleted file mode 100644
index e7e7001b59b..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare__DailyRound.res
+++ /dev/null
@@ -1,95 +0,0 @@
-type roundsType = NormalRound | ICURound | VentilatorRound
-
-type t = {
- createdAt: Js.Date.t,
- admittedTo: string,
- createdByTelemedicine: bool,
- neurologicalMonitoring: CriticalCare__NeurologicalMonitoring.t,
- hemodynamicParameter: CriticalCare__HemodynamicParameters.t,
- nursingCare: CriticalCare__NursingCare.t,
- arterialBloodGasAnalysis: CriticalCare__ABGAnalysis.t,
- ioBalance: CriticalCare__IOBalance.t,
- dialysis: CriticalCare_Dialysis.t,
- pressureSoreParameter: CriticalCare__PressureSore.t,
- bloodSugar: CriticalCare_BloodSugar.t,
- ventilatorParameters: CriticalCare__VentilatorParameters.t,
- medicine: array,
- others: CriticalCare__Others.t,
- roundsType: roundsType,
-}
-
-let make = (
- ~createdAt,
- ~admittedTo,
- ~createdByTelemedicine,
- ~neurologicalMonitoring,
- ~hemodynamicParameter,
- ~nursingCare,
- ~arterialBloodGasAnalysis,
- ~ioBalance,
- ~dialysis,
- ~pressureSoreParameter,
- ~bloodSugar,
- ~medicine,
- ~ventilatorParameters,
- ~others,
- ~roundsType,
-) => {
- createdAt: createdAt,
- admittedTo: admittedTo,
- createdByTelemedicine: createdByTelemedicine,
- neurologicalMonitoring: neurologicalMonitoring,
- hemodynamicParameter: hemodynamicParameter,
- nursingCare: nursingCare,
- arterialBloodGasAnalysis: arterialBloodGasAnalysis,
- ioBalance: ioBalance,
- dialysis: dialysis,
- pressureSoreParameter: pressureSoreParameter,
- bloodSugar: bloodSugar,
- medicine: medicine,
- ventilatorParameters: ventilatorParameters,
- others: others,
- roundsType: roundsType,
-}
-
-let neurologicalMonitoring = t => t.neurologicalMonitoring
-let hemodynamicParameters = t => t.hemodynamicParameter
-let nursingCare = t => t.nursingCare
-let arterialBloodGasAnalysis = t => t.arterialBloodGasAnalysis
-let ioBalance = t => t.ioBalance
-let dialysis = t => t.dialysis
-let pressureSoreParameter = t => t.pressureSoreParameter
-let bloodSugar = t => t.bloodSugar
-let medicine = t => t.medicine
-let ventilatorParameters = t => t.ventilatorParameters
-let others = t => t.others
-let roundsType = t => t.roundsType
-
-let makeRoundsType = d => {
- switch d["rounds_type"] {
- | "NORMAL" => NormalRound
- | "ICU" => ICURound
- | "VENTILATOR" => VentilatorRound
- | _ => NormalRound
- }
-}
-
-let makeFromJs = dailyRound => {
- make(
- ~createdAt=DateFns.decodeISO(dailyRound["created_date"]),
- ~admittedTo=dailyRound["admitted_to"],
- ~createdByTelemedicine=dailyRound["created_by_telemedicine"],
- ~neurologicalMonitoring=CriticalCare__NeurologicalMonitoring.makeFromJs(dailyRound),
- ~hemodynamicParameter=CriticalCare__HemodynamicParameters.makeFromJs(dailyRound),
- ~nursingCare=CriticalCare__NursingCare.makeFromJs(dailyRound),
- ~arterialBloodGasAnalysis=CriticalCare__ABGAnalysis.makeFromJs(dailyRound),
- ~ioBalance=CriticalCare__IOBalance.makeFromJs(dailyRound),
- ~dialysis=CriticalCare_Dialysis.makeFromJs(dailyRound),
- ~pressureSoreParameter=CriticalCare__PressureSore.makeFromJs(dailyRound),
- ~bloodSugar=CriticalCare_BloodSugar.makeFromJs(dailyRound),
- ~medicine=Prescription__Prescription.makeFromJs(dailyRound["medication_given"]),
- ~ventilatorParameters=CriticalCare__VentilatorParameters.makeFromJs(dailyRound),
- ~others=CriticalCare__Others.makeFromJs(dailyRound),
- ~roundsType=makeRoundsType(dailyRound),
- )
-}
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare__HemodynamicParameters.res b/src/Components/CriticalCareRecording/types/CriticalCare__HemodynamicParameters.res
deleted file mode 100644
index d88a45cea88..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare__HemodynamicParameters.res
+++ /dev/null
@@ -1,92 +0,0 @@
-type bp = {
- systolic: int,
- diastolic: int,
- mean: float,
-}
-
-type rhythm =
- | UNKNOWN
- | Regular
- | IrRegular
-
-@genType
-type t = {
- pain: array,
- bp: option,
- pulse: option,
- spo2: option,
- temperature: option,
- resp: option,
- rhythm: rhythm,
- rhythmDetails: option,
-}
-
-let makeBP = (~systolic, ~diastolic, ~mean) => {
- systolic: systolic,
- diastolic: diastolic,
- mean: mean,
-}
-
-let makeRhythm = rhythm => {
- switch rhythm {
- | "REGULAR" => Regular
- | "IRREGULAR" => IrRegular
- | _ => UNKNOWN
- }
-}
-
-let encodeRhythm = rhythm => {
- switch rhythm {
- | Regular => "REGULAR"
- | IrRegular => "IRREGULAR"
- | UNKNOWN => "UNKNOWN"
- }
-}
-
-let rhythmToString = rhythm => {
- switch rhythm {
- | Regular => "Regular"
- | IrRegular => "Irregular"
- | UNKNOWN => "Unknown"
- }
-}
-
-let make = (~pain, ~bp, ~pulse, ~spo2, ~temperature, ~resp, ~rhythm, ~rhythmDetails) => {
- pain: pain,
- bp: bp,
- pulse: pulse,
- spo2: spo2,
- temperature: temperature,
- resp: resp,
- rhythm: rhythm,
- rhythmDetails: rhythmDetails,
-}
-
-let makeBPFromJs = bp => {
- ArrayUtils.isEmpty(Js.Obj.keys(bp))
- ? None
- : Some(makeBP(~diastolic=bp["diastolic"], ~systolic=bp["systolic"], ~mean=bp["mean"]))
-}
-let makeFromJs = dailyRound => {
- make(
- ~pain=CriticalCare__Pain.makeFromJs(dailyRound),
- ~bp=makeBPFromJs(dailyRound["bp"]),
- ~pulse=dailyRound["pulse"]->Js.Nullable.toOption,
- ~spo2=dailyRound["ventilator_spo2"]->Js.Nullable.toOption,
- ~temperature=dailyRound["temperature"]->Js.Nullable.toOption,
- ~resp=dailyRound["resp"]->Js.Nullable.toOption,
- ~rhythm=makeRhythm(dailyRound["rhythm"]),
- ~rhythmDetails=dailyRound["rhythm_detail"]->Js.Nullable.toOption,
- )
-}
-
-let pain = t => t.pain
-let bp = t => t.bp
-let systolic = bp => bp.systolic
-let diastolic = bp => bp.diastolic
-let pulse = t => t.pulse
-let spo2 = t => t.spo2
-let temperature = t => t.temperature
-let resp = t => t.resp
-let rhythm = t => t.rhythm
-let rhythmDetails = t => t.rhythmDetails
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare__HemodynamicParametersRhythm.res b/src/Components/CriticalCareRecording/types/CriticalCare__HemodynamicParametersRhythm.res
deleted file mode 100644
index 1c9cb9223e0..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare__HemodynamicParametersRhythm.res
+++ /dev/null
@@ -1,4 +0,0 @@
-type rhythmVar =
- | None
- | Regular
- | IrRegular
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare__IOBalance.res b/src/Components/CriticalCareRecording/types/CriticalCare__IOBalance.res
deleted file mode 100644
index d942bcc250e..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare__IOBalance.res
+++ /dev/null
@@ -1,72 +0,0 @@
-type item = {
- name: string,
- quantity: float,
-}
-
-type t = {
- infusions: array- ,
- ivFluid: array
- ,
- feed: array
- ,
- output: array
- ,
- total_intake_calculated: option
,
- total_output_calculated: option,
-}
-
-let make = (
- ~infusions,
- ~ivFluid,
- ~feed,
- ~output,
- ~total_intake_calculated,
- ~total_output_calculated,
-) => {
- infusions: infusions,
- ivFluid: ivFluid,
- feed: feed,
- output: output,
- total_intake_calculated: total_intake_calculated,
- total_output_calculated: total_output_calculated,
-}
-
-let makeItem = (~name, ~quantity) => {
- name: name,
- quantity: quantity,
-}
-
-let makeItems = items => {
- Js.Array.map(i => makeItem(~name=i["name"], ~quantity=i["quantity"]), items)
-}
-
-let makeFromJs = dailyRound => {
- make(
- ~infusions=makeItems(dailyRound["infusions"]),
- ~ivFluid=makeItems(dailyRound["iv_fluids"]),
- ~feed=makeItems(dailyRound["feeds"]),
- ~output=makeItems(dailyRound["output"]),
- ~total_intake_calculated=dailyRound["total_intake_calculated"]->Js.Nullable.toOption,
- ~total_output_calculated=dailyRound["total_output_calculated"]->Js.Nullable.toOption,
- )
-}
-
-let name = item => item.name
-let quantity = item => item.quantity
-let infusions = t => t.infusions
-let ivFluid = t => t.ivFluid
-let feed = t => t.feed
-let output = t => t.output
-let total_intake_calculated = t => t.total_intake_calculated
-let total_output_calculated = t => t.total_output_calculated
-
-let updateName = (name, item) => {
- ...item,
- name: name,
-}
-
-let updateQuantity = (quantity, item) => {
- ...item,
- quantity: quantity,
-}
-
-let makeDefaultItem = () => {
- makeItem(~name="", ~quantity=0.0)
-}
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare__NeurologicalMonitoring.res b/src/Components/CriticalCareRecording/types/CriticalCare__NeurologicalMonitoring.res
deleted file mode 100644
index 0fae710ce36..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare__NeurologicalMonitoring.res
+++ /dev/null
@@ -1,321 +0,0 @@
-type consciousnessLevel =
- | Unresponsive
- | RespondsToPain
- | RespondsToVoice
- | Alert
- | AgitatedOrConfused
- | OnsetOfAgitationAndConfusion
- | Unknown
-type lightReaction = Brisk | Sluggish | Fixed | CannotBeAssessed | Unknown
-type limpResponse = Strong | Moderate | Weak | Flexion | Extension | NONE_ | Unknown
-
-type t = {
- inPronePosition: option,
- consciousnessLevel: consciousnessLevel,
- consciousnessLevelDetails: option,
- leftPupilSize: option,
- leftPupilSizeDetails: option,
- leftPupilLightReaction: lightReaction,
- leftPupilLightReactionDetails: option,
- rightPupilSize: option,
- rightPupilSizeDetails: option,
- rightPupilLightReaction: lightReaction,
- rightPupilLightReactionDetails: option,
- glasgowEyeOpen: option,
- glasgowVerbalResponse: option,
- glasgowMotorResponse: option,
- glasgowTotalCalculated: option,
- limbResponseUpperExtremityRight: limpResponse,
- limbResponseUpperExtremityLeft: limpResponse,
- limbResponseLowerExtremityRight: limpResponse,
- limbResponseLowerExtremityLeft: limpResponse,
-}
-
-let make = (
- ~inPronePosition,
- ~consciousnessLevel,
- ~consciousnessLevelDetails,
- ~leftPupilSize,
- ~leftPupilSizeDetails,
- ~leftPupilLightReaction,
- ~leftPupilLightReactionDetails,
- ~rightPupilSize,
- ~rightPupilSizeDetails,
- ~rightPupilLightReaction,
- ~rightPupilLightReactionDetails,
- ~glasgowEyeOpen,
- ~glasgowVerbalResponse,
- ~glasgowMotorResponse,
- ~glasgowTotalCalculated,
- ~limbResponseUpperExtremityRight,
- ~limbResponseUpperExtremityLeft,
- ~limbResponseLowerExtremityRight,
- ~limbResponseLowerExtremityLeft,
-) => {
- inPronePosition,
- consciousnessLevel,
- consciousnessLevelDetails,
- leftPupilSize,
- leftPupilSizeDetails,
- leftPupilLightReaction,
- leftPupilLightReactionDetails,
- rightPupilSize,
- rightPupilSizeDetails,
- rightPupilLightReaction,
- rightPupilLightReactionDetails,
- glasgowEyeOpen,
- glasgowVerbalResponse,
- glasgowMotorResponse,
- glasgowTotalCalculated,
- limbResponseUpperExtremityRight,
- limbResponseUpperExtremityLeft,
- limbResponseLowerExtremityRight,
- limbResponseLowerExtremityLeft,
-}
-
-let makeConsciousnessLevel = consciousnessLevel => {
- switch consciousnessLevel {
- | "UNRESPONSIVE" => Unresponsive
- | "RESPONDS_TO_PAIN" => RespondsToPain
- | "RESPONDS_TO_VOICE" => RespondsToVoice
- | "ALERT" => Alert
- | "AGITATED_OR_CONFUSED" => AgitatedOrConfused
- | "ONSET_OF_AGITATION_AND_CONFUSION" => OnsetOfAgitationAndConfusion
- | "UNKNOWN"
- | _ =>
- Unknown
- }
-}
-
-let encodeConConsciousnessLevel = consciousnessLevel => {
- switch consciousnessLevel {
- | Unresponsive => "UNRESPONSIVE"
- | RespondsToPain => "RESPONDS_TO_PAIN"
- | RespondsToVoice => "RESPONDS_TO_VOICE"
- | Alert => "ALERT"
- | AgitatedOrConfused => "AGITATED_OR_CONFUSED"
- | OnsetOfAgitationAndConfusion => "ONSET_OF_AGITATION_AND_CONFUSION"
- | Unknown => "UNKNOWN"
- }
-}
-
-let makeLightReaction = lightReaction => {
- switch lightReaction {
- | "BRISK" => Brisk
- | "SLUGGISH" => Sluggish
- | "FIXED" => Fixed
- | "CANNOT_BE_ASSESSED" => CannotBeAssessed
- | "UNKNOWN"
- | _ =>
- Unknown
- }
-}
-
-let encodeLightReaction = lightReaction => {
- switch lightReaction {
- | Brisk => "BRISK"
- | Sluggish => "SLUGGISH"
- | Fixed => "FIXED"
- | CannotBeAssessed => "CANNOT_BE_ASSESSED"
- | Unknown => "UNKNOWN"
- }
-}
-
-let makeLimpResponse = limpResponse => {
- switch limpResponse {
- | "STRONG" => Strong
- | "MODERATE" => Moderate
- | "WEAK" => Weak
- | "FLEXION" => Flexion
- | "EXTENSION" => Extension
- | "NONE" => NONE_
- | "UNKNOWN"
- | _ =>
- Unknown
- }
-}
-
-let encodeLimpResponse = limbResponse => {
- switch limbResponse {
- | Strong => "STRONG"
- | Moderate => "MODERATE"
- | Weak => "WEAK"
- | Flexion => "FLEXION"
- | Extension => "EXTENSION"
- | NONE_ => "NONE"
- | Unknown => "UNKNOWN"
- }
-}
-
-let lightReactionToString = lightReaction => {
- switch lightReaction {
- | Brisk => "Brisk"
- | Sluggish => "Sluggish"
- | Fixed => "Fixed"
- | CannotBeAssessed => "Cannot be assessed"
- | Unknown => "Unknown"
- }
-}
-
-let consciousnessLevelToString = consciousnessLevel => {
- switch consciousnessLevel {
- | Unresponsive => "Unresponsive"
- | RespondsToPain => "Responds to Pain"
- | RespondsToVoice => "Responds to Voice"
- | Alert => "Alert"
- | AgitatedOrConfused => "Agitated or Confused"
- | OnsetOfAgitationAndConfusion => "Onset of Agitation and Confusion"
- | Unknown => "Unknown"
- }
-}
-
-let limpResponseToString = limpResponse => {
- switch limpResponse {
- | Strong => "Strong"
- | Moderate => "Moderate"
- | Weak => "Weak"
- | Flexion => "Flexion"
- | Extension => "Extension"
- | NONE_ => "None"
- | Unknown => "Unknown"
- }
-}
-
-let eyeOpenToString = eyeOpen => {
- switch eyeOpen {
- | 1 => "1 - No Response"
- | 2 => "2 - To Pain"
- | 3 => "3 - To Speech"
- | 4 => "4 - Spontaneous"
- | _ => "Unknown"
- }
-}
-
-let motorResposneToString = eyeOpen => {
- switch eyeOpen {
- | 1 => "1 - No Response"
- | 2 => "2 - Abnormal Extension"
- | 3 => "3 - Abnormal Flexion"
- | 4 => "4 - Flexion/Withdrawal to pain"
- | 5 => "5 - Moves to localized pain"
- | 6 => "6 - Obeys commands/Normal Activity"
- | _ => "Unknown"
- }
-}
-
-let verbalResposneToString = eyeOpen => {
- switch eyeOpen {
- | 1 => "1 - No Response"
- | 2 => "2 - Incomprehensible words/Moans to pain"
- | 3 => "3 - Inappropriate words/Cry to pain"
- | 4 => "4 - Confused/Irritable"
- | 5 => "5 - Oriented to Time, Place and Person"
- | _ => "Unknown"
- }
-}
-
-let makeFromJs = dailyRound => {
- make(
- ~inPronePosition=dailyRound["in_prone_position"]->Js.Nullable.toOption,
- ~consciousnessLevel=makeConsciousnessLevel(dailyRound["consciousness_level"]),
- ~consciousnessLevelDetails=dailyRound["consciousness_level_detail"]->Js.Nullable.toOption,
- ~leftPupilSize=dailyRound["left_pupil_size"]->Js.Nullable.toOption,
- ~leftPupilSizeDetails=dailyRound["left_pupil_size_detail"]->Js.Nullable.toOption,
- ~leftPupilLightReaction=makeLightReaction(dailyRound["left_pupil_light_reaction"]),
- ~leftPupilLightReactionDetails=dailyRound["left_pupil_light_reaction_detail"]->Js.Nullable.toOption,
- ~rightPupilSize=dailyRound["right_pupil_size"]->Js.Nullable.toOption,
- ~rightPupilSizeDetails=dailyRound["right_pupil_size_detail"]->Js.Nullable.toOption,
- ~rightPupilLightReaction=makeLightReaction(dailyRound["right_pupil_light_reaction"]),
- ~rightPupilLightReactionDetails=dailyRound["right_pupil_light_reaction_detail"]->Js.Nullable.toOption,
- ~glasgowEyeOpen=dailyRound["glasgow_eye_open"]->Js.Nullable.toOption,
- ~glasgowVerbalResponse=dailyRound["glasgow_verbal_response"]->Js.Nullable.toOption,
- ~glasgowMotorResponse=dailyRound["glasgow_motor_response"]->Js.Nullable.toOption,
- ~glasgowTotalCalculated=dailyRound["glasgow_total_calculated"]->Js.Nullable.toOption,
- ~limbResponseUpperExtremityRight=makeLimpResponse(
- dailyRound["limb_response_upper_extremity_right"],
- ),
- ~limbResponseUpperExtremityLeft=makeLimpResponse(
- dailyRound["limb_response_upper_extremity_left"],
- ),
- ~limbResponseLowerExtremityRight=makeLimpResponse(
- dailyRound["limb_response_lower_extremity_right"],
- ),
- ~limbResponseLowerExtremityLeft=makeLimpResponse(
- dailyRound["limb_response_lower_extremity_left"],
- ),
- )
-}
-
-let inPronePosition = t => t.inPronePosition
-let consciousnessLevel = t => t.consciousnessLevel
-let consciousnessLevelDetails = t => t.consciousnessLevelDetails
-let leftPupilSize = t => t.leftPupilSize
-let leftPupilSizeDetails = t => t.leftPupilSizeDetails
-let leftPupilLightReaction = t => t.leftPupilLightReaction
-let leftPupilLightReactionDetails = t => t.leftPupilLightReactionDetails
-let rightPupilSize = t => t.rightPupilSize
-let rightPupilSizeDetails = t => t.rightPupilSizeDetails
-let rightPupilLightReaction = t => t.rightPupilLightReaction
-let rightPupilLightReactionDetails = t => t.rightPupilLightReactionDetails
-let glasgowEyeOpen = t => t.glasgowEyeOpen
-let glasgowVerbalResponse = t => t.glasgowVerbalResponse
-let glasgowMotorResponse = t => t.glasgowMotorResponse
-let glasgowTotalCalculated = t => t.glasgowTotalCalculated
-let limbResponseUpperExtremityRight = t => t.limbResponseUpperExtremityRight
-let limbResponseUpperExtremityLeft = t => t.limbResponseUpperExtremityLeft
-let limbResponseLowerExtremityRight = t => t.limbResponseLowerExtremityRight
-let limbResponseLowerExtremityLeft = t => t.limbResponseLowerExtremityLeft
-
-let showStatus = data => {
- let total = ref(0.0)
- let count = ref(0.0)
-
- // if inPronePosition(data) === true {
- // total := 9.0
- // } else {
- // total := 13.0
- // if leftPupilSize(data) !== Some("") {
- // count := count.contents +. 1.0
- // }
- // if leftPupilLightReaction(data) !== Some("") {
- // count := count.contents +. 1.0
- // }
- // if rightPupilSize(data) !== Some("") {
- // count := count.contents +. 1.0
- // }
- // if rightPupilLightReaction(data) !== Some("") {
- // count := count.contents +. 1.0
- // }
- // }
-
- // if consciousnessLevel(data) !== "" {
- // count := count.contents +. 1.0
- // }
-
- // if glasgowEyeOpen(data) !== "" {
- // count := count.contents +. 1.0
- // }
- // if glasgowVerbalResponse(data) !== "" {
- // count := count.contents +. 1.0
- // }
- // if glasgowMotorResponse(data) !== "" {
- // count := count.contents +. 1.0
- // }
- // if glasgowTotalCalculated(data) !== "" {
- // count := count.contents +. 1.0
- // }
- // if limbResponseUpperExtremityRight(data) !== "" {
- // count := count.contents +. 1.0
- // }
- // if limbResponseUpperExtremityLeft(data) !== "" {
- // count := count.contents +. 1.0
- // }
- // if limbResponseLowerExtremityRight(data) !== "" {
- // count := count.contents +. 1.0
- // }
- // if limbResponseLowerExtremityLeft(data) !== "" {
- // count := count.contents +. 1.0
- // }
-
- Js.Float.toFixed(count.contents /. total.contents *. 100.0)
-}
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare__NursingCare.res b/src/Components/CriticalCareRecording/types/CriticalCare__NursingCare.res
deleted file mode 100644
index 47c51bbd57a..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare__NursingCare.res
+++ /dev/null
@@ -1,139 +0,0 @@
-type procedure =
- | PersonalHygiene
- | Positioning
- | Suctioning
- | RylesTubeCare
- | IVSitecare
- | Nubulisation
- | Dressing
- | DVTPumpStocking
- | Restrain
- | ChestTubeCare
- | TracheostomyCare
- | StomaCare
- | CatheterCare
- | Other(string)
-
-type item = {
- procedure: procedure,
- description: string,
-}
-
-type t = array-
-
-let decodeProcedure = procedure => {
- switch procedure {
- | "personal_hygiene" => PersonalHygiene
- | "positioning" => Positioning
- | "suctioning" => Suctioning
- | "ryles_tube_care" => RylesTubeCare
- | "iv_sitecare" => IVSitecare
- | "nubulisation" => Nubulisation
- | "dressing" => Dressing
- | "dvt_pump_stocking" => DVTPumpStocking
- | "restrain" => Restrain
- | "chest_tube_care" => ChestTubeCare
- | "tracheostomy_care" => TracheostomyCare
- | "stoma_care" => StomaCare
- | "catheter_care" => CatheterCare
- | p => Other(p)
- }
-}
-
-let encodeProcedure = item => {
- switch item.procedure {
- | PersonalHygiene => "personal_hygiene"
- | Positioning => "positioning"
- | Suctioning => "suctioning"
- | RylesTubeCare => "ryles_tube_care"
- | IVSitecare => "iv_sitecare"
- | Nubulisation => "nubulisation"
- | Dressing => "dressing"
- | DVTPumpStocking => "dvt_pump_stocking"
- | Restrain => "restrain"
- | ChestTubeCare => "chest_tube_care"
- | TracheostomyCare => "tracheostomy_care"
- | StomaCare => "stoma_care"
- | CatheterCare => "catheter_care"
- | Other(p) => p
- }
-}
-
-let procedureString = procedure => {
- switch procedure {
- | PersonalHygiene => "Personal Hygiene"
- | Positioning => "Positioning"
- | Suctioning => "Suctioning"
- | RylesTubeCare => "Ryles Tube Care"
- | IVSitecare => "IV Sitecare"
- | Nubulisation => "Nubulisation"
- | Dressing => "Dressing"
- | DVTPumpStocking => "DVT Pump Stocking"
- | Restrain => "Restrain"
- | ChestTubeCare => "Chest Tube Care"
- | TracheostomyCare => "Tracheostomy Care"
- | StomaCare => "Stoma Care"
- | CatheterCare => "Catheter Care"
- | Other(p) => p
- }
-}
-
-let procedure = t => t.procedure
-let description = t => t.description
-let updateDescription = (description, t) => {...t, description: description}
-let makeDefaultItem = procedure => {procedure: procedure, description: ""}
-
-let showStatus = data => {
- let total = 12.0
- let count = ref(0.0)
- // if personalHygiene(data) !== None {
- // count := count.contents +. 1.0
- // }
- // if positioning(data) !== None {
- // count := count.contents +. 1.0
- // }
- // if suctioning(data) !== None {
- // count := count.contents +. 1.0
- // }
- // if rylesTubeCare(data) !== None {
- // count := count.contents +. 1.0
- // }
- // if iVSitecare(data) !== None {
- // count := count.contents +. 1.0
- // }
- // if dressing(data) !== None {
- // count := count.contents +. 1.0
- // }
- // if nubulisation(data) !== None {
- // count := count.contents +. 1.0
- // }
- // if dVTPumpStocking(data) !== None {
- // count := count.contents +. 1.0
- // }
- // if restrain(data) !== None {
- // count := count.contents +. 1.0
- // }
- // if chestTubeCare(data) !== None {
- // count := count.contents +. 1.0
- // }
- // if tracheostomyCare(data) !== None {
- // count := count.contents +. 1.0
- // }
- // if stomaCare(data) !== None {
- // count := count.contents +. 1.0
- // }
-
- Js.Float.toFixed(count.contents /. total *. 100.0)
-}
-
-let make = (~procedure, ~description) => {
- procedure: procedure,
- description: description,
-}
-
-let makeFromJs = dailyRound => {
- Js.Array.map(
- d => make(~procedure=decodeProcedure(d["procedure"]), ~description=d["description"]),
- dailyRound["nursing"],
- )
-}
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare__Others.res b/src/Components/CriticalCareRecording/types/CriticalCare__Others.res
deleted file mode 100644
index 21b9513eb8d..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare__Others.res
+++ /dev/null
@@ -1,41 +0,0 @@
-type t = {
- bilateral_air_entry: option
,
- etco2: option,
- physical_examination_info: option,
- additional_symptoms: option>,
- other_details: option,
- other_symptoms: option,
-}
-let bilateral_air_entry = t => t.bilateral_air_entry
-let etco2 = t => t.etco2
-let physical_examination_info = t => t.physical_examination_info
-let other_details = t => t.other_details
-let other_symptoms = t => t.other_symptoms
-let additional_symptoms = t => t.additional_symptoms
-
-let make = (
- ~bilateral_air_entry,
- ~etco2,
- ~physical_examination_info,
- ~additional_symptoms,
- ~other_symptoms,
- ~other_details,
-) => {
- bilateral_air_entry,
- etco2,
- physical_examination_info,
- other_details,
- additional_symptoms,
- other_symptoms,
-}
-
-let makeFromJs = dailyRound => {
- make(
- ~bilateral_air_entry=dailyRound["bilateral_air_entry"]->Js.Nullable.toOption,
- ~etco2=dailyRound["etco2"]->Js.Nullable.toOption,
- ~physical_examination_info=dailyRound["physical_examination_info"]->Js.Nullable.toOption,
- ~other_details=dailyRound["other_details"]->Js.Nullable.toOption,
- ~additional_symptoms=dailyRound["additional_symptoms"],
- ~other_symptoms=dailyRound["other_symptoms"]->Js.Nullable.toOption,
- )
-}
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare__Pain.res b/src/Components/CriticalCareRecording/types/CriticalCare__Pain.res
deleted file mode 100644
index c178676818b..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare__Pain.res
+++ /dev/null
@@ -1,521 +0,0 @@
-type region =
- | AnteriorHead
- | AnteriorNeck
- | AnteriorRightShoulder
- | AnteriorRightChest
- | AnteriorRightArm
- | AnteriorRightForearm
- | AnteriorRightHand
- | AnteriorLeftHand
- | AnteriorLeftShoulder
- | AnteriorLeftChest
- | AnteriorLowerChest
- | AnteriorLeftArm
- | AnteriorLeftForearm
- | AnteriorRightFoot
- | AnteriorLeftFoot
- | AnteriorLeftLeg
- | AnteriorRightLeg
- | AnteriorAbdomen
- | AnteriorRightThigh
- | AnteriorLeftThigh
- | AnteriorGroin
- | PosteriorHead
- | PosteriorNeck
- | PosteriorLeftChest
- | PosteriorRightChest
- | PosteriorAbdomen
- | PosteriorLeftShoulder
- | PosteriorRightShoulder
- | PosteriorLeftArm
- | PosteriorLeftForearm
- | PosteriorLeftHand
- | PosteriorRightArm
- | PosteriorRightForearm
- | PosteriorRightHand
- | PosteriorLeftThighAndButtock
- | PosteriorRightThighAndButtock
- | PosteriorLeftLeg
- | PosteriorRightLeg
- | PosteriorLeftFoot
- | PosteriorRightFoot
- | Other
-
-type extrudateAmount =
- | None
- | Light
- | Moderate
- | Heavy
-
-type tissueType =
- | Closed
- | Epithelial
- | Granulation
- | Slough
- | Necrotic
-
-type path = {d: string, transform: string, region: region}
-let d = path => path.d
-let transform = path => path.transform
-let regionForPath = path => path.region
-
-type part = {
- region: region,
- scale: int,
- description: string,
-}
-
-type t = array
-
-let decodeRegion = region => switch region {
- | "anterior_head" => AnteriorHead
- | "anterior_neck" => AnteriorNeck
- | "anterior_right_shoulder" => AnteriorRightShoulder
- | "anterior_right_chest" => AnteriorRightChest
- | "anterior_right_arm" => AnteriorRightArm
- | "anterior_right_forearm" => AnteriorRightForearm
- | "anterior_right_hand" => AnteriorRightHand
- | "anterior_left_hand" => AnteriorLeftHand
- | "anterior_left_shoulder" => AnteriorLeftShoulder
- | "anterior_left_chest" => AnteriorLeftChest
- | "anterior_lower_chest" => AnteriorLowerChest
- | "anterior_left_arm" => AnteriorLeftArm
- | "anterior_left_forearm" => AnteriorLeftForearm
- | "anterior_right_foot" => AnteriorRightFoot
- | "anterior_left_foot" => AnteriorLeftFoot
- | "anterior_left_leg" => AnteriorLeftLeg
- | "anterior_right_leg" => AnteriorRightLeg
- | "anterior_abdomen" => AnteriorAbdomen
- | "anterior_right_thigh" => AnteriorRightThigh
- | "anterior_left_thigh" => AnteriorLeftThigh
- | "anterior_groin" => AnteriorGroin
- | "posterior_head" => PosteriorHead
- | "posterior_neck" => PosteriorNeck
- | "posterior_left_chest" => PosteriorLeftChest
- | "posterior_right_chest" => PosteriorRightChest
- | "posterior_abdomen" => PosteriorAbdomen
- | "posterior_left_shoulder" => PosteriorLeftShoulder
- | "posterior_right_shoulder" => PosteriorRightShoulder
- | "posterior_left_arm" => PosteriorLeftArm
- | "posterior_left_forearm" => PosteriorLeftForearm
- | "posterior_left_hand" => PosteriorLeftHand
- | "posterior_right_arm" => PosteriorRightArm
- | "posterior_right_forearm" => PosteriorRightForearm
- | "posterior_right_hand" => PosteriorRightHand
- | "posterior_left_thigh_and_buttock" => PosteriorLeftThighAndButtock
- | "posterior_right_thigh_and_buttock" => PosteriorRightThighAndButtock
- | "posterior_left_leg" => PosteriorLeftLeg
- | "posterior_right_leg" => PosteriorRightLeg
- | "posterior_left_foot" => PosteriorLeftFoot
- | "posterior_right_foot" => PosteriorRightFoot
- | _ => Other
- }
-
- let decodeExtrudateAmount = extrudateAmount => switch extrudateAmount {
- | "None" => None
- | "Light" => Light
- | "Moderate" => Moderate
- | "Heavy" => Heavy
- | _ => None
- }
-
- let decodeTissueType = tissueType => switch tissueType {
- | "Closed" => Closed
- | "Epithelial" => Epithelial
- | "Granulation" => Granulation
- | "Slough" => Slough
- | "Necrotic" => Necrotic
- | _ => Closed
- }
-
-let makePart = p => {
- {
- region: decodeRegion(p["region"]),
- scale: p["scale"],
- description: p["description"],
- }
-}
-
-let encodeExudateAmount = extrudateAmount => {
- switch extrudateAmount {
- | None => "None"
- | Light => "Light"
- | Moderate => "Moderate"
- | Heavy => "Heavy"
- }
-}
-
-let extrudateAmountToString = extrudateAmount => {
- switch extrudateAmount {
- | None => "None"
- | Light => "Light"
- | Moderate => "Moderate"
- | Heavy => "Heavy"
- }
-}
-
-let encodeTissueType = tissueType => {
- switch tissueType {
- | Closed => "Closed"
- | Epithelial => "Epithelial"
- | Granulation => "Granulation"
- | Slough => "Slough"
- | Necrotic => "Necrotic"
- }
-}
-
-let tissueTypeToString = tissueType => switch tissueType {
- | Closed => "Closed"
- | Epithelial => "Epithelial"
- | Granulation => "Granulation"
- | Slough => "Slough"
- | Necrotic => "Necrotic"
-}
-
-
-let endcodeRegion = part => {
- switch part.region {
- | AnteriorHead => "anterior_head"
- | AnteriorNeck => "anterior_neck"
- | AnteriorRightShoulder => "anterior_right_shoulder"
- | AnteriorRightChest => "anterior_right_chest"
- | AnteriorRightArm => "anterior_right_arm"
- | AnteriorRightForearm => "anterior_right_forearm"
- | AnteriorRightHand => "anterior_right_hand"
- | AnteriorLeftHand => "anterior_left_hand"
- | AnteriorLeftShoulder => "anterior_left_shoulder"
- | AnteriorLeftChest => "anterior_left_chest"
- | AnteriorLowerChest => "anterior_lower_chest"
- | AnteriorLeftArm => "anterior_left_arm"
- | AnteriorLeftForearm => "anterior_left_forearm"
- | AnteriorRightFoot => "anterior_right_foot"
- | AnteriorLeftFoot => "anterior_left_foot"
- | AnteriorLeftLeg => "anterior_left_leg"
- | AnteriorRightLeg => "anterior_right_leg"
- | AnteriorAbdomen => "anterior_abdomen"
- | AnteriorRightThigh => "anterior_right_thigh"
- | AnteriorLeftThigh => "anterior_left_thigh"
- | AnteriorGroin => "anterior_groin"
- | PosteriorHead => "posterior_head"
- | PosteriorNeck => "posterior_neck"
- | PosteriorLeftChest => "posterior_left_chest"
- | PosteriorRightChest => "posterior_right_chest"
- | PosteriorAbdomen => "posterior_abdomen"
- | PosteriorLeftShoulder => "posterior_left_shoulder"
- | PosteriorRightShoulder => "posterior_right_shoulder"
- | PosteriorLeftArm => "posterior_left_arm"
- | PosteriorLeftForearm => "posterior_left_forearm"
- | PosteriorLeftHand => "posterior_left_hand"
- | PosteriorRightArm => "posterior_right_arm"
- | PosteriorRightForearm => "posterior_right_forearm"
- | PosteriorRightHand => "posterior_right_hand"
- | PosteriorLeftThighAndButtock => "posterior_left_thigh_and_buttock"
- | PosteriorRightThighAndButtock => "posterior_right_thigh_and_buttock"
- | PosteriorLeftLeg => "posterior_left_leg"
- | PosteriorRightLeg => "posterior_right_leg"
- | PosteriorLeftFoot => "posterior_left_foot"
- | PosteriorRightFoot => "posterior_right_foot"
- | Other => "other"
- }
-}
-
-let regionToString = region => {
- switch region {
- | AnteriorHead => "Anterior Head"
- | AnteriorNeck => "Anterior Neck"
- | AnteriorRightShoulder => "Anterior Right Shoulder"
- | AnteriorRightChest => "Anterior Right Chest"
- | AnteriorRightArm => "Anterior Right Arm"
- | AnteriorRightForearm => "Anterior Right Forearm"
- | AnteriorRightHand => "Anterior Right Hand"
- | AnteriorLeftHand => "Anterior Left Hand"
- | AnteriorLeftShoulder => "Anterior Left Shoulder"
- | AnteriorLeftChest => "Anterior Left Chest"
- | AnteriorLowerChest => "Anterior Lower Chest"
- | AnteriorLeftArm => "Anterior Left Arm"
- | AnteriorLeftForearm => "Anterior Left Forearm"
- | AnteriorRightFoot => "Anterior Right Foot"
- | AnteriorLeftFoot => "Anterior Left Foot"
- | AnteriorLeftLeg => "Anterior Left Leg"
- | AnteriorRightLeg => "Anterior Right Leg"
- | AnteriorAbdomen => "Anterior Abdomen"
- | AnteriorRightThigh => "Anterior Right Thigh"
- | AnteriorLeftThigh => "Anterior Left Thigh"
- | AnteriorGroin => "Anterior Groin"
- | PosteriorHead => "Posterior Head"
- | PosteriorNeck => "Posterior Neck"
- | PosteriorLeftChest => "Posterior Left Chest"
- | PosteriorRightChest => "Posterior Right Chest"
- | PosteriorAbdomen => "Posterior Abdomen"
- | PosteriorLeftShoulder => "Posterior Left Shoulder"
- | PosteriorRightShoulder => "Posterior Right Shoulder"
- | PosteriorLeftArm => "Posterior Left Arm"
- | PosteriorLeftForearm => "Posterior Left Forearm"
- | PosteriorLeftHand => "Posterior Left Hand"
- | PosteriorRightArm => "Posterior Right Arm"
- | PosteriorRightForearm => "Posterior Right Forearm"
- | PosteriorRightHand => "Posterior Right Hand"
- | PosteriorLeftThighAndButtock => "Posterior Left Thigh And Buttock"
- | PosteriorRightThighAndButtock => "Posterior Right Thigh And Buttock"
- | PosteriorLeftLeg => "Posterior Left Leg"
- | PosteriorRightLeg => "Posterior Right Leg"
- | PosteriorLeftFoot => "Posterior Left Foot"
- | PosteriorRightFoot => "Posterior Right Foot"
- | Other => "Other"
- }
-}
-
-let region = part => part.region
-let scale = part => part.scale
-let makeDefault = (region) => {
- region: region,
- scale: 0,
- description: ""
-}
-
-let calculatePushScore = (length, width, exudate_amount, tissue_type) => {
- let areaIntervalPoints = [0.0, 0.3, 0.6, 1.0, 2.2, 3.0, 4.0, 8.0, 12.0, 24.0]
- let exudateAmounts = ["None", "Light", "Moderate", "Heavy"]
- let tissueTypes = ["Closed", "Epithelial", "Granulation", "Slough", "Necrotic"]
-
- let area = length *. width
- let areaScore =
- areaIntervalPoints
- ->Belt.Array.getIndexBy(interval => interval >= area)
- ->Belt.Option.getWithDefault(10)
- ->float_of_int
- let exudateScore =
- exudateAmounts
- ->Belt.Array.getIndexBy(amount =>
- amount == exudate_amount->extrudateAmountToString
- )
- ->Belt.Option.getWithDefault(0)
- ->float_of_int
- let tissueScore =
- tissueTypes
- ->Belt.Array.getIndexBy(tissue =>
- tissue == tissue_type->tissueTypeToString
- )
- ->Belt.Option.getWithDefault(0)
- ->float_of_int
-
- areaScore +. exudateScore +. tissueScore
-}
-
-let autoScale = part => {
- {...part, scale: mod(part.scale + 1, 6)}
-}
-
-let makeFromJs = dailyRound => {
- Js.Array.map(p => makePart(p), dailyRound["pain_scale_enhanced"])
-}
-
-let makeFromJsx = ps => {
- Js.Array.map(p => makePart(p), ps)
-}
-
-let anteriorParts = [
- {
- d: "M535.244,212.572c32.253.43,32.684-31.823,32.684-31.823,9.891-.215,14.191-19.783,13.331-23.653s-7.526-1.5-7.526-1.5c3.656-30.1-9.676-48.38-17.847-53.756S535.244,95.6,535.244,95.6h.43s-12.472.86-20.643,6.236-21.5,23.653-17.846,53.756c0,0-6.666-2.365-7.526,1.5s3.44,23.438,13.331,23.653c0,0,.43,32.253,32.684,31.823Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorHead,
- },
- {
- d: "M512.129,213.97s31.608,4.954,47.574-1.394v14.456s-26.287,4.355-47.574,0Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorNeck,
- },
- {
- d: "M505.355,231.279s-56.766,25.8-69.452,34.4c0,0,15.7,20.857,21.072,66.872C456.975,332.555,469.417,246.838,505.355,231.279Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightShoulder,
- },
- {
- d: "M526.482,232.838l.806,137.346s-46.607-22.2-67.745,18.762C459.543,388.946,455.685,234.612,526.482,232.838Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightChest,
- },
- {
- d: "M433.108,269.768s34.728,55.552,18.279,141.992c0,0-19.57-9.107-33.761-7.333,0,0-1.613-106.276,0-110.952S429.721,271.058,433.108,269.768Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightArm,
- },
- {
- d: "M415.207,408.781s27.254-.968,35.963,11.45c0,0-7.58,59.024-13.547,77.57s-19.03,56.766-19.03,56.766l-22.254-2.742s1.451-34.672,1.29-45.477,5-49.993,9.514-62.249S415.207,408.781,415.207,408.781Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightForearm,
- },
- {
- d: "M396.6,556.524l18.245,2.606a1.808,1.808,0,0,1,1.565,1.776c.049,6.373.053,30.692-2.6,41.987-2.568,10.951-16.244,28.022-26.205,35.726a4.126,4.126,0,0,1-6.575-2.7c-.192-1.322-.39-2.923-.584-4.855a1.828,1.828,0,0,0-2.054-1.637l-4.174.551a1.818,1.818,0,0,1-2.026-2.171c.631-3.043,1.887-8.187,3.72-11.529,2.591-4.724,5.9-18.948,5.442-26.76a1.79,1.79,0,0,0-1.514-1.635,7.118,7.118,0,0,0-5.448,1c-1.364,1.043-3.83,4.558-5.963,7.825-1.941,2.973-6.715.452-5.152-2.736.018-.037.037-.074.056-.111,1.936-3.71,13.063-18.708,16.288-24.513,2.9-5.221,13.627-8.747,15.171-11.984A1.706,1.706,0,0,1,396.6,556.524Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightHand,
- },
- {
- d: "M674.037,556.2l-18.244,2.606a1.808,1.808,0,0,0-1.566,1.776c-.049,6.373-.052,30.692,2.6,41.988,2.569,10.951,16.244,28.021,26.205,35.726a4.126,4.126,0,0,0,6.576-2.7c.191-1.322.389-2.922.584-4.855a1.827,1.827,0,0,1,2.053-1.637l4.174.551a1.818,1.818,0,0,0,2.027-2.17c-.632-3.043-1.888-8.188-3.721-11.53-2.59-4.723-5.9-18.948-5.442-26.76a1.79,1.79,0,0,1,1.515-1.634,7.114,7.114,0,0,1,5.447,1c1.364,1.043,3.83,4.558,5.964,7.826,1.94,2.973,6.715.451,5.151-2.736-.018-.038-.037-.075-.056-.112-1.935-3.709-13.063-18.707-16.288-24.513-2.9-5.221-13.627-8.746-15.171-11.984A1.707,1.707,0,0,0,674.037,556.2Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftHand,
- },
- {
- d: "M544.705,232.838h19.137s18.062,15.643,20,19.513,29.888,42.79,26.878,128.154c0,0-16.557-16.556-31.178-15.051,0,0,2.365-33.114-34.834-34.619Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftChest,
- },
- {
- d: "M569.432,231.279s61.927,31.824,65.153,35.694c0,0-12.9,9.752-18.707,73.791C615.878,340.764,610.072,268.048,569.432,231.279Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftShoulder,
- },
- {
- d: "M638.455,271.058s14.407,18.923,14.837,23.223-1.291,105.362.86,108.8c0,0-26.233,1.29-34.834,9.891,0,0-4.3-51.176.86-78.484S633.079,279.659,638.455,271.058Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftArm,
- },
- {
- d: "M621.038,419s16.342-12.257,33.974-10.537c0,0,7.741,26.233,8.816,34.189s10.321,49.241,9.246,66.658.087,41.069.087,41.069-16.214,3.44-20.084,4.731c0,0-17.2-46.661-18.062-52.036S620.982,426.52,621.038,419Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftForearm,
- },
- {
- d: "M510.758,934.272s-20.723,1.451-24.973,1.5a56.32,56.32,0,0,0-1.556,10.672c0,4.355.484,25.481-.645,28.061s-21.771,27.254-23.383,30.641.645,8.386,1.935,9.192,2.1,4.757,4.193,5.644c1.807.765,3.064,3.709,5.644,4.032s10.482-.645,12.418.726c0,0,.887,3.144,2.58,3.306.864.082,5.644,1.774,10.644-5.967s13.04-35.019,13.439-37.791c.249-1.732-1.183-2.125-1.506-5.189a112.484,112.484,0,0,1,1.855-20.64C513.419,948.3,510.758,934.272,510.758,934.272Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightFoot,
- },
- {
- d: "M563.251,934.191s20.756.564,25.006.616c0,0,.151,7.125.151,11.479s.162,24.351,1.29,26.932,22.531,27.576,24.144,30.963-.645,8.386-1.935,9.192-2.1,4.758-4.193,5.645c-1.807.764-3.064,3.709-5.645,4.031s-10.482-.645-12.417.726c0,0-.887,3.145-2.581,3.306-.864.082-5.644,1.774-10.643-5.967s-13.04-35.018-13.439-37.79c-.25-1.733,1.182-2.126,1.5-5.19a112.484,112.484,0,0,0-1.855-20.64C560.623,947.334,563.251,934.191,563.251,934.191Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftFoot,
- },
- {
- d: "M485.2,932.363l24.513-1.4s1.666-37.2,2.526-41.285,4.731-85.149,4.086-99.771c0,0-30,2.527-49.348-3.924,0,0-6.451,44.026-1.828,62.841C467.775,859.527,484.874,929.6,485.2,932.363Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightLeg,
- },
- {
- d: "M469.231,420.715s-5.966-30.318-4.515-34.834a115.141,115.141,0,0,1,16.772-10.966c10.428-5.483,29.727-6.773,36.339-3.548,5.81,2.834,4.972,2.548,13.439,4.73l.054-142.13h9.192V334.92s32.415,1.291,31.931,33.06a72.9,72.9,0,0,0,8.869,2.419c5.322,1.129,23.062,9.031,25.642,19.675,0,0-4.945,22.2-3.655,32.684,0,0-39.4-29.835-47.306-31.609s-12.959,2.31-16.933,2.8c-4.483.547-11.71-.628-18.142-2.9C514.306,388.7,475.2,414.909,469.231,420.715Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLowerChest,
- },
- {
- d: "M461.813,481.665c2.43-11.313,8.042-43.207,7.1-55.467,0,0,48.3-30.56,50.88-30.4s12.122,5.564,23.841,2.338c0,0,6.719-3.225,13.331.162s34.874,24.149,46.324,28.987c0,0-.524,28.746,1.573,37.777s10.159,42.091,10.966,46.123,0,.806,0,.806-58.057,50.155-59.669,52.574c0,0-6.451-6.29-20.481-6.774s-20.643,6.774-20.643,6.774l-60.152-51.122S460.965,485.617,461.813,481.665Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorAbdomen,
- },
- {
- d: "M554.381,790.77s30.748,3.226,51.39-4.945c0,0,3.441,40.424,0,63.432s-16.449,76.871-17.094,81.816c0,0-23.33.108-25.91-1.4,0,0-3.011-33.328-3.871-43S550.08,810.982,554.381,790.77Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftLeg,
- },
- {
- d: "M454.072,520.056s-4.515,29.35-6.128,48.7.323,59.346,6.128,81.278,21.288,89.343,14.514,131.272c0,0,20.464,8.064,47.808,4.516,0,0,7.2-74.822,6.7-87.73,0,0,3.333-50.745,3.333-58.7s1.72-27.738,1.72-27.738-20.642-10.106-14.837-44.08C513.311,567.576,462.351,524.571,454.072,520.056Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightThigh,
- },
- {
- d: "M553.114,785.825s37.713,2.741,50.615-3.548c0,0-6.451-35.8-1.129-63.325s19.943-77.408,20.8-92.03,2.33-87.3-7.221-108.371l-56.426,49.455s3.441,37.629-18.922,44.725c0,0,7.741,68.807,7.741,78.913S554.857,777.654,553.114,785.825Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftThigh,
- },
- {
- d: "M535.624,610.466s16.722-10.1,18.818-27.355-3.386-17.578-5.805-18.545-13.063-1.291-13.063-1.291h.1s-10.644.323-13.063,1.291-7.9,1.29-5.806,18.545S535.624,610.466,535.624,610.466Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorGroin,
- },
-]
-
-let posteriorParts = [
- {
- d: "M 506.9838 158.0121 C 509.6029 173.1336 512.1258 187.9477 521.5039 184.4407 C 517.7283 191.6346 525.6919 202.9266 528.0919 210.8841 C 544.9623 208.3461 562.3174 208.3461 579.1878 210.8841 C 581.5893 202.9236 589.5363 191.6662 585.7863 184.4511 C 595.6744 187.4586 596.8188 174.3021 600.3813 158.5926 C 600.1173 156.4611 595.9999 158.5806 594.7788 159.0816 C 597.7384 128.3122 591.2088 97.1811 553.7104 97.22 C 516.1444 97.1497 509.5249 128.2116 512.5008 159.0891 C 511.0564 158.4651 508.4914 157.0971 506.9838 158.0121 Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorHead,
- },
- {
- d: "M 503.129 213.97 s 30.871 -1.97 46.871 0.03 v 12.456 s -26 -2.456 -47.574 0 Z",
- transform: "translate(-362.967 -95.599)",
- region: PosteriorNeck,
- },
- {
- d: "M545.584,228.037V361.6s-13.6,10.828-25.282,13.145c-10.077,2-36.162,3.374-36.766-.857S478.9,239.117,545.584,228.037Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftChest,
- },
- {
- d: "M563.865,228.037V361.6s13.6,10.828,25.282,13.145c10.076,2,36.161,3.374,36.766-.857S630.546,239.117,563.865,228.037Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightChest,
- },
- {
- d: "M550.973,228.188h8.914l.151,136.435s20.7,17.828,59.681,16.317c0,0-4.684,38.528-1.057,56.508s9.216,41.248,9.216,41.248-77.812,30.218-145.954-.151c0,0,9.67-35.96,9.972-58.321a167.6,167.6,0,0,0-4.23-39.888s37.924,5.439,62.1-15.713C549.764,364.623,550.52,228.188,550.973,228.188Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorAbdomen,
- },
- {
- d: "M523.223,230.857s-40.694,20.548-50.968,25.182-11.08,5.439-11.08,5.439,15.512,18.735,18.533,70.509C479.708,331.987,489.58,244.354,523.223,230.857Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftShoulder,
- },
- {
- d: "M587.084,230.857s40.693,20.548,50.968,25.182,11.08,5.439,11.08,5.439S633.62,280.213,630.6,331.987C630.6,331.987,620.726,244.354,587.084,230.857Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightShoulder,
- },
- {
- d: "M457.951,265.306s-12.49,14.706-13.5,29.613,1.813,82.194.6,95.691c0,0,15.512-1.209,22.16,3.022s9.872,4.23,9.872,4.23,3.223-32.232,1.41-53.385S467.823,277.393,457.951,265.306Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftArm,
- },
- {
- d: "M444.655,394.639s3.627-1.209,8.864,1.612,21.153,4.835,21.153,4.835a241.987,241.987,0,0,1-6.245,50.968c-6.446,27.8-23.167,79.977-22.966,81.992,0,0-17.325-4.03-20.951-3.828,0,0,1.209-21.354,1.612-31.427s.2-42.91,6.648-63.659S444.454,396.049,444.655,394.639Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftForearm,
- },
- {
- d: "M423.5,533.844s-4.029,2.82-7.454,5.036-12.49,13.1-15.311,18.131-11.482,15.915-10.274,16.923,5.44.2,7.454-2.216,7.051-8.663,10.476-7.253c0,0,1.007,12.087-3.224,22.966s-4.633,13.7-4.633,13.7,2.591,2.22,7.063.809q.291-.091.592-.2s1.612,4.835.806,8.864,3.022,3.425,7.655,1.007,21.959-22.562,24.175-35.053,1.611-40.895,1.611-40.895S427.33,534.65,423.5,533.844Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftHand,
- },
- {
- d: "M650.678,265.306s12.49,14.706,13.5,29.613-1.813,82.194-.6,95.691c0,0-15.512-1.209-22.16,3.022s-9.871,4.23-9.871,4.23-3.224-32.232-1.41-53.385S640.807,277.393,650.678,265.306Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightArm,
- },
- {
- d: "M663.974,394.639s-3.626-1.209-8.864,1.612-21.153,4.835-21.153,4.835a242.066,242.066,0,0,0,6.245,50.968c6.447,27.8,23.168,79.977,22.966,81.992,0,0,17.325-4.03,20.951-3.828,0,0-1.208-21.354-1.611-31.427s-.2-42.91-6.648-63.659S664.175,396.049,663.974,394.639Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightForearm,
- },
- {
- d: "M685.127,533.844s4.029,2.82,7.453,5.036,12.491,13.1,15.311,18.131,11.483,15.915,10.274,16.923-5.439.2-7.454-2.216-7.051-8.663-10.475-7.253c0,0-1.008,12.087,3.223,22.966s4.633,13.7,4.633,13.7-2.59,2.22-7.062.809q-.291-.091-.593-.2s-1.612,4.835-.806,8.864-3.022,3.425-7.655,1.007-21.958-22.562-24.174-35.053-1.612-40.895-1.612-40.895S681.3,534.65,685.127,533.844Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightHand,
- },
- {
- d: "M552.635,495.366s0,66.279-.6,69.9c-.051.277-.126.982-.2,2.065-5.691,6.673-27.473,28.254-58.673,9.04a10.164,10.164,0,0,1-1.738-1.309c-23.066-21.783-7.076-50.968-6.371-52.2l-2.216-1.234c-.176.327-17.652,32.107,6.849,55.249a14.16,14.16,0,0,0,2.166,1.662c9.519,5.842,18.232,8.033,25.988,8.033,16.116,0,27.977-9.519,33.642-15.235-1.661,20.07-6.144,82.369-6.5,86-.4,4.231-7.605,77.51-7.605,80.935,0,0-36.111-4.785-45.579-2.972,0,0,.2-37.672-2.821-59.63s-14.5-65.473-15.914-101.936-1.411-65.473,7.453-91.46C480.514,482.272,499.048,497.582,552.635,495.366Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftThighAndButtock,
- },
- {
- d: "M555.471,495.366s0,66.279.6,69.9c.051.277.126.982.2,2.065,5.691,6.673,27.473,28.254,58.673,9.04a10.164,10.164,0,0,0,1.738-1.309c23.066-21.783,7.076-50.968,6.371-52.2l2.216-1.234c.176.327,17.652,32.107-6.85,55.249a14.151,14.151,0,0,1-2.165,1.662c-9.519,5.842-18.232,8.033-25.988,8.033-16.116,0-27.977-9.519-33.643-15.235,1.662,20.07,6.145,82.369,6.5,86,.4,4.231,7.605,77.51,7.605,80.935,0,0,36.111-4.785,45.579-2.972,0,0-.2-37.672,2.82-59.63s14.5-65.473,15.915-101.936,1.41-65.473-7.453-91.46C627.592,482.272,609.058,497.582,555.471,495.366Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightThighAndButtock,
- },
- {
- d: "M492.2,739.529s21.354-2.418,42.909,3.425c0,0,3.627,43.312,1.612,61.846s-7.655,75.445-6.849,80.078c0,0-19.944.907-25.988,2.518,0,0-2.619-29.009-9.267-49.154S486.961,754.839,492.2,739.529Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftLeg,
- },
- {
- d: "M617.088,739.529s-21.354-2.418-42.909,3.425c0,0-3.626,43.312-1.612,61.846s7.655,75.445,6.85,80.078c0,0,19.944.907,25.987,2.518,0,0,2.619-29.009,9.267-49.154S622.326,754.839,617.088,739.529Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightLeg,
- },
- {
- d: "M504.387,891.023s17.728-.806,24.879-2.619c0,0,2.015,6.245,1.209,18.131s-1.007,21.555-.6,23.771,1.813,9.67-1.209,15.512S520,967.172,516.978,972.007s-10.275,5.439-11.886-1.611c0,0-1.813,3.424-7.857,1.41s-9.67-1.209-11.483-5.44-4.835-11.684-1.41-16.922,18.937-18.534,20.145-25.182S505.6,895.455,504.387,891.023Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftFoot,
- },
- {
- d: "M604.752,891.023s-17.728-.806-24.88-2.619c0,0-2.014,6.245-1.209,18.131s1.008,21.555.605,23.771-1.813,9.67,1.209,15.512,8.662,21.354,11.684,26.189,10.274,5.439,11.886-1.611c0,0,1.813,3.424,7.856,1.41s9.67-1.209,11.483-5.44,4.835-11.684,1.41-16.922-18.936-18.534-20.145-25.182S603.543,895.455,604.752,891.023Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightFoot,
- },
-]
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare__PressureSore.res b/src/Components/CriticalCareRecording/types/CriticalCare__PressureSore.res
deleted file mode 100644
index f5eb90d0527..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare__PressureSore.res
+++ /dev/null
@@ -1,535 +0,0 @@
-type region =
- | AnteriorHead
- | AnteriorNeck
- | AnteriorRightShoulder
- | AnteriorRightChest
- | AnteriorRightArm
- | AnteriorRightForearm
- | AnteriorRightHand
- | AnteriorLeftHand
- | AnteriorLeftShoulder
- | AnteriorLeftChest
- | AnteriorLowerChest
- | AnteriorLeftArm
- | AnteriorLeftForearm
- | AnteriorRightFoot
- | AnteriorLeftFoot
- | AnteriorLeftLeg
- | AnteriorRightLeg
- | AnteriorAbdomen
- | AnteriorRightThigh
- | AnteriorLeftThigh
- | AnteriorGroin
- | PosteriorHead
- | PosteriorNeck
- | PosteriorLeftChest
- | PosteriorRightChest
- | PosteriorAbdomen
- | PosteriorLeftShoulder
- | PosteriorRightShoulder
- | PosteriorLeftArm
- | PosteriorLeftForearm
- | PosteriorLeftHand
- | PosteriorRightArm
- | PosteriorRightForearm
- | PosteriorRightHand
- | PosteriorLeftThighAndButtock
- | PosteriorRightThighAndButtock
- | PosteriorLeftLeg
- | PosteriorRightLeg
- | PosteriorLeftFoot
- | PosteriorRightFoot
- | Other
-
-type extrudateAmount =
- | None
- | Light
- | Moderate
- | Heavy
-
-type tissueType =
- | Closed
- | Epithelial
- | Granulation
- | Slough
- | Necrotic
-
-type path = {d: string, transform: string, region: region}
-let d = path => path.d
-let transform = path => path.transform
-let regionForPath = path => path.region
-
-type part = {
- region: region,
- scale: int,
- length: float,
- width: float,
- exudate_amount: extrudateAmount,
- tissue_type: tissueType,
- description: string,
-}
-
-@genType type t = array
-
-let decodeRegion = region =>
- switch region {
- | "anterior_head" => AnteriorHead
- | "anterior_neck" => AnteriorNeck
- | "anterior_right_shoulder" => AnteriorRightShoulder
- | "anterior_right_chest" => AnteriorRightChest
- | "anterior_right_arm" => AnteriorRightArm
- | "anterior_right_forearm" => AnteriorRightForearm
- | "anterior_right_hand" => AnteriorRightHand
- | "anterior_left_hand" => AnteriorLeftHand
- | "anterior_left_shoulder" => AnteriorLeftShoulder
- | "anterior_left_chest" => AnteriorLeftChest
- | "anterior_lower_chest" => AnteriorLowerChest
- | "anterior_left_arm" => AnteriorLeftArm
- | "anterior_left_forearm" => AnteriorLeftForearm
- | "anterior_right_foot" => AnteriorRightFoot
- | "anterior_left_foot" => AnteriorLeftFoot
- | "anterior_left_leg" => AnteriorLeftLeg
- | "anterior_right_leg" => AnteriorRightLeg
- | "anterior_abdomen" => AnteriorAbdomen
- | "anterior_right_thigh" => AnteriorRightThigh
- | "anterior_left_thigh" => AnteriorLeftThigh
- | "anterior_groin" => AnteriorGroin
- | "posterior_head" => PosteriorHead
- | "posterior_neck" => PosteriorNeck
- | "posterior_left_chest" => PosteriorLeftChest
- | "posterior_right_chest" => PosteriorRightChest
- | "posterior_abdomen" => PosteriorAbdomen
- | "posterior_left_shoulder" => PosteriorLeftShoulder
- | "posterior_right_shoulder" => PosteriorRightShoulder
- | "posterior_left_arm" => PosteriorLeftArm
- | "posterior_left_forearm" => PosteriorLeftForearm
- | "posterior_left_hand" => PosteriorLeftHand
- | "posterior_right_arm" => PosteriorRightArm
- | "posterior_right_forearm" => PosteriorRightForearm
- | "posterior_right_hand" => PosteriorRightHand
- | "posterior_left_thigh_and_buttock" => PosteriorLeftThighAndButtock
- | "posterior_right_thigh_and_buttock" => PosteriorRightThighAndButtock
- | "posterior_left_leg" => PosteriorLeftLeg
- | "posterior_right_leg" => PosteriorRightLeg
- | "posterior_left_foot" => PosteriorLeftFoot
- | "posterior_right_foot" => PosteriorRightFoot
- | _ => Other
- }
-
-let decodeExtrudateAmount = extrudateAmount =>
- switch extrudateAmount {
- | "None" => None
- | "Light" => Light
- | "Moderate" => Moderate
- | "Heavy" => Heavy
- | _ => None
- }
-
-let decodeTissueType = tissueType =>
- switch tissueType {
- | "Closed" => Closed
- | "Epithelial" => Epithelial
- | "Granulation" => Granulation
- | "Slough" => Slough
- | "Necrotic" => Necrotic
- | _ => Closed
- }
-
-let makePart = p => {
- {
- region: decodeRegion(p["region"]),
- scale: p["scale"],
- length: p["length"],
- width: p["width"],
- exudate_amount: decodeExtrudateAmount(p["exudate_amount"]),
- tissue_type: decodeTissueType(p["tissue_type"]),
- description: p["description"],
- }
-}
-
-let encodeExudateAmount = extrudateAmount => {
- switch extrudateAmount {
- | None => "None"
- | Light => "Light"
- | Moderate => "Moderate"
- | Heavy => "Heavy"
- }
-}
-
-let extrudateAmountToString = extrudateAmount => {
- switch extrudateAmount {
- | None => "None"
- | Light => "Light"
- | Moderate => "Moderate"
- | Heavy => "Heavy"
- }
-}
-
-let encodeTissueType = tissueType => {
- switch tissueType {
- | Closed => "Closed"
- | Epithelial => "Epithelial"
- | Granulation => "Granulation"
- | Slough => "Slough"
- | Necrotic => "Necrotic"
- }
-}
-
-let tissueTypeToString = tissueType =>
- switch tissueType {
- | Closed => "Closed"
- | Epithelial => "Epithelial"
- | Granulation => "Granulation"
- | Slough => "Slough"
- | Necrotic => "Necrotic"
- }
-
-let endcodeRegion = part => {
- switch part.region {
- | AnteriorHead => "anterior_head"
- | AnteriorNeck => "anterior_neck"
- | AnteriorRightShoulder => "anterior_right_shoulder"
- | AnteriorRightChest => "anterior_right_chest"
- | AnteriorRightArm => "anterior_right_arm"
- | AnteriorRightForearm => "anterior_right_forearm"
- | AnteriorRightHand => "anterior_right_hand"
- | AnteriorLeftHand => "anterior_left_hand"
- | AnteriorLeftShoulder => "anterior_left_shoulder"
- | AnteriorLeftChest => "anterior_left_chest"
- | AnteriorLowerChest => "anterior_lower_chest"
- | AnteriorLeftArm => "anterior_left_arm"
- | AnteriorLeftForearm => "anterior_left_forearm"
- | AnteriorRightFoot => "anterior_right_foot"
- | AnteriorLeftFoot => "anterior_left_foot"
- | AnteriorLeftLeg => "anterior_left_leg"
- | AnteriorRightLeg => "anterior_right_leg"
- | AnteriorAbdomen => "anterior_abdomen"
- | AnteriorRightThigh => "anterior_right_thigh"
- | AnteriorLeftThigh => "anterior_left_thigh"
- | AnteriorGroin => "anterior_groin"
- | PosteriorHead => "posterior_head"
- | PosteriorNeck => "posterior_neck"
- | PosteriorLeftChest => "posterior_left_chest"
- | PosteriorRightChest => "posterior_right_chest"
- | PosteriorAbdomen => "posterior_abdomen"
- | PosteriorLeftShoulder => "posterior_left_shoulder"
- | PosteriorRightShoulder => "posterior_right_shoulder"
- | PosteriorLeftArm => "posterior_left_arm"
- | PosteriorLeftForearm => "posterior_left_forearm"
- | PosteriorLeftHand => "posterior_left_hand"
- | PosteriorRightArm => "posterior_right_arm"
- | PosteriorRightForearm => "posterior_right_forearm"
- | PosteriorRightHand => "posterior_right_hand"
- | PosteriorLeftThighAndButtock => "posterior_left_thigh_and_buttock"
- | PosteriorRightThighAndButtock => "posterior_right_thigh_and_buttock"
- | PosteriorLeftLeg => "posterior_left_leg"
- | PosteriorRightLeg => "posterior_right_leg"
- | PosteriorLeftFoot => "posterior_left_foot"
- | PosteriorRightFoot => "posterior_right_foot"
- | Other => "other"
- }
-}
-
-let regionToString = region => {
- switch region {
- | AnteriorHead => "Anterior Head"
- | AnteriorNeck => "Anterior Neck"
- | AnteriorRightShoulder => "Anterior Right Shoulder"
- | AnteriorRightChest => "Anterior Right Chest"
- | AnteriorRightArm => "Anterior Right Arm"
- | AnteriorRightForearm => "Anterior Right Forearm"
- | AnteriorRightHand => "Anterior Right Hand"
- | AnteriorLeftHand => "Anterior Left Hand"
- | AnteriorLeftShoulder => "Anterior Left Shoulder"
- | AnteriorLeftChest => "Anterior Left Chest"
- | AnteriorLowerChest => "Anterior Lower Chest"
- | AnteriorLeftArm => "Anterior Left Arm"
- | AnteriorLeftForearm => "Anterior Left Forearm"
- | AnteriorRightFoot => "Anterior Right Foot"
- | AnteriorLeftFoot => "Anterior Left Foot"
- | AnteriorLeftLeg => "Anterior Left Leg"
- | AnteriorRightLeg => "Anterior Right Leg"
- | AnteriorAbdomen => "Anterior Abdomen"
- | AnteriorRightThigh => "Anterior Right Thigh"
- | AnteriorLeftThigh => "Anterior Left Thigh"
- | AnteriorGroin => "Anterior Groin"
- | PosteriorHead => "Posterior Head"
- | PosteriorNeck => "Posterior Neck"
- | PosteriorLeftChest => "Posterior Left Chest"
- | PosteriorRightChest => "Posterior Right Chest"
- | PosteriorAbdomen => "Posterior Abdomen"
- | PosteriorLeftShoulder => "Posterior Left Shoulder"
- | PosteriorRightShoulder => "Posterior Right Shoulder"
- | PosteriorLeftArm => "Posterior Left Arm"
- | PosteriorLeftForearm => "Posterior Left Forearm"
- | PosteriorLeftHand => "Posterior Left Hand"
- | PosteriorRightArm => "Posterior Right Arm"
- | PosteriorRightForearm => "Posterior Right Forearm"
- | PosteriorRightHand => "Posterior Right Hand"
- | PosteriorLeftThighAndButtock => "Posterior Left Thigh And Buttock"
- | PosteriorRightThighAndButtock => "Posterior Right Thigh And Buttock"
- | PosteriorLeftLeg => "Posterior Left Leg"
- | PosteriorRightLeg => "Posterior Right Leg"
- | PosteriorLeftFoot => "Posterior Left Foot"
- | PosteriorRightFoot => "Posterior Right Foot"
- | Other => "Other"
- }
-}
-
-let region = part => part.region
-let scale = part => part.scale
-let makeDefault = region => {
- region: region,
- scale: 1,
- length: 0.0,
- width: 0.0,
- exudate_amount: None,
- tissue_type: Closed,
- description: "",
-}
-
-let calculatePushScore = (length, width, exudate_amount, tissue_type) => {
- let areaIntervalPoints = [0.0, 0.3, 0.6, 1.0, 2.2, 3.0, 4.0, 8.0, 12.0, 24.0]
- let exudateAmounts = ["None", "Light", "Moderate", "Heavy"]
- let tissueTypes = ["Closed", "Epithelial", "Granulation", "Slough", "Necrotic"]
-
- let area = length *. width
- let areaScore =
- areaIntervalPoints
- ->Belt.Array.getIndexBy(interval => interval >= area)
- ->Belt.Option.getWithDefault(10)
- ->float_of_int
- let exudateScore =
- exudateAmounts
- ->Belt.Array.getIndexBy(amount => amount == exudate_amount->extrudateAmountToString)
- ->Belt.Option.getWithDefault(0)
- ->float_of_int
- let tissueScore =
- tissueTypes
- ->Belt.Array.getIndexBy(tissue => tissue == tissue_type->tissueTypeToString)
- ->Belt.Option.getWithDefault(0)
- ->float_of_int
-
- areaScore +. exudateScore +. tissueScore
-}
-
-let calculateScore = part =>
- calculatePushScore(part.length, part.width, part.exudate_amount, part.tissue_type)
-
-let autoScale = part => {
- {...part, scale: mod(part.scale + 1, 6)}
-}
-
-let makeFromJs = dailyRound => {
- Js.Array.map(p => makePart(p), dailyRound["pressure_sore"])
-}
-
-let makeFromJsx = ps => {
- Js.Array.map(p => makePart(p), ps)
-}
-
-let anteriorParts = [
- {
- d: "M535.244,212.572c32.253.43,32.684-31.823,32.684-31.823,9.891-.215,14.191-19.783,13.331-23.653s-7.526-1.5-7.526-1.5c3.656-30.1-9.676-48.38-17.847-53.756S535.244,95.6,535.244,95.6h.43s-12.472.86-20.643,6.236-21.5,23.653-17.846,53.756c0,0-6.666-2.365-7.526,1.5s3.44,23.438,13.331,23.653c0,0,.43,32.253,32.684,31.823Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorHead,
- },
- {
- d: "M512.129,213.97s31.608,4.954,47.574-1.394v14.456s-26.287,4.355-47.574,0Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorNeck,
- },
- {
- d: "M505.355,231.279s-56.766,25.8-69.452,34.4c0,0,15.7,20.857,21.072,66.872C456.975,332.555,469.417,246.838,505.355,231.279Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightShoulder,
- },
- {
- d: "M526.482,232.838l.806,137.346s-46.607-22.2-67.745,18.762C459.543,388.946,455.685,234.612,526.482,232.838Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightChest,
- },
- {
- d: "M433.108,269.768s34.728,55.552,18.279,141.992c0,0-19.57-9.107-33.761-7.333,0,0-1.613-106.276,0-110.952S429.721,271.058,433.108,269.768Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightArm,
- },
- {
- d: "M415.207,408.781s27.254-.968,35.963,11.45c0,0-7.58,59.024-13.547,77.57s-19.03,56.766-19.03,56.766l-22.254-2.742s1.451-34.672,1.29-45.477,5-49.993,9.514-62.249S415.207,408.781,415.207,408.781Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightForearm,
- },
- {
- d: "M396.6,556.524l18.245,2.606a1.808,1.808,0,0,1,1.565,1.776c.049,6.373.053,30.692-2.6,41.987-2.568,10.951-16.244,28.022-26.205,35.726a4.126,4.126,0,0,1-6.575-2.7c-.192-1.322-.39-2.923-.584-4.855a1.828,1.828,0,0,0-2.054-1.637l-4.174.551a1.818,1.818,0,0,1-2.026-2.171c.631-3.043,1.887-8.187,3.72-11.529,2.591-4.724,5.9-18.948,5.442-26.76a1.79,1.79,0,0,0-1.514-1.635,7.118,7.118,0,0,0-5.448,1c-1.364,1.043-3.83,4.558-5.963,7.825-1.941,2.973-6.715.452-5.152-2.736.018-.037.037-.074.056-.111,1.936-3.71,13.063-18.708,16.288-24.513,2.9-5.221,13.627-8.747,15.171-11.984A1.706,1.706,0,0,1,396.6,556.524Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightHand,
- },
- {
- d: "M674.037,556.2l-18.244,2.606a1.808,1.808,0,0,0-1.566,1.776c-.049,6.373-.052,30.692,2.6,41.988,2.569,10.951,16.244,28.021,26.205,35.726a4.126,4.126,0,0,0,6.576-2.7c.191-1.322.389-2.922.584-4.855a1.827,1.827,0,0,1,2.053-1.637l4.174.551a1.818,1.818,0,0,0,2.027-2.17c-.632-3.043-1.888-8.188-3.721-11.53-2.59-4.723-5.9-18.948-5.442-26.76a1.79,1.79,0,0,1,1.515-1.634,7.114,7.114,0,0,1,5.447,1c1.364,1.043,3.83,4.558,5.964,7.826,1.94,2.973,6.715.451,5.151-2.736-.018-.038-.037-.075-.056-.112-1.935-3.709-13.063-18.707-16.288-24.513-2.9-5.221-13.627-8.746-15.171-11.984A1.707,1.707,0,0,0,674.037,556.2Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftHand,
- },
- {
- d: "M544.705,232.838h19.137s18.062,15.643,20,19.513,29.888,42.79,26.878,128.154c0,0-16.557-16.556-31.178-15.051,0,0,2.365-33.114-34.834-34.619Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftChest,
- },
- {
- d: "M569.432,231.279s61.927,31.824,65.153,35.694c0,0-12.9,9.752-18.707,73.791C615.878,340.764,610.072,268.048,569.432,231.279Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftShoulder,
- },
- {
- d: "M638.455,271.058s14.407,18.923,14.837,23.223-1.291,105.362.86,108.8c0,0-26.233,1.29-34.834,9.891,0,0-4.3-51.176.86-78.484S633.079,279.659,638.455,271.058Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftArm,
- },
- {
- d: "M621.038,419s16.342-12.257,33.974-10.537c0,0,7.741,26.233,8.816,34.189s10.321,49.241,9.246,66.658.087,41.069.087,41.069-16.214,3.44-20.084,4.731c0,0-17.2-46.661-18.062-52.036S620.982,426.52,621.038,419Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftForearm,
- },
- {
- d: "M510.758,934.272s-20.723,1.451-24.973,1.5a56.32,56.32,0,0,0-1.556,10.672c0,4.355.484,25.481-.645,28.061s-21.771,27.254-23.383,30.641.645,8.386,1.935,9.192,2.1,4.757,4.193,5.644c1.807.765,3.064,3.709,5.644,4.032s10.482-.645,12.418.726c0,0,.887,3.144,2.58,3.306.864.082,5.644,1.774,10.644-5.967s13.04-35.019,13.439-37.791c.249-1.732-1.183-2.125-1.506-5.189a112.484,112.484,0,0,1,1.855-20.64C513.419,948.3,510.758,934.272,510.758,934.272Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightFoot,
- },
- {
- d: "M563.251,934.191s20.756.564,25.006.616c0,0,.151,7.125.151,11.479s.162,24.351,1.29,26.932,22.531,27.576,24.144,30.963-.645,8.386-1.935,9.192-2.1,4.758-4.193,5.645c-1.807.764-3.064,3.709-5.645,4.031s-10.482-.645-12.417.726c0,0-.887,3.145-2.581,3.306-.864.082-5.644,1.774-10.643-5.967s-13.04-35.018-13.439-37.79c-.25-1.733,1.182-2.126,1.5-5.19a112.484,112.484,0,0,0-1.855-20.64C560.623,947.334,563.251,934.191,563.251,934.191Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftFoot,
- },
- {
- d: "M485.2,932.363l24.513-1.4s1.666-37.2,2.526-41.285,4.731-85.149,4.086-99.771c0,0-30,2.527-49.348-3.924,0,0-6.451,44.026-1.828,62.841C467.775,859.527,484.874,929.6,485.2,932.363Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightLeg,
- },
- {
- d: "M469.231,420.715s-5.966-30.318-4.515-34.834a115.141,115.141,0,0,1,16.772-10.966c10.428-5.483,29.727-6.773,36.339-3.548,5.81,2.834,4.972,2.548,13.439,4.73l.054-142.13h9.192V334.92s32.415,1.291,31.931,33.06a72.9,72.9,0,0,0,8.869,2.419c5.322,1.129,23.062,9.031,25.642,19.675,0,0-4.945,22.2-3.655,32.684,0,0-39.4-29.835-47.306-31.609s-12.959,2.31-16.933,2.8c-4.483.547-11.71-.628-18.142-2.9C514.306,388.7,475.2,414.909,469.231,420.715Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLowerChest,
- },
- {
- d: "M461.813,481.665c2.43-11.313,8.042-43.207,7.1-55.467,0,0,48.3-30.56,50.88-30.4s12.122,5.564,23.841,2.338c0,0,6.719-3.225,13.331.162s34.874,24.149,46.324,28.987c0,0-.524,28.746,1.573,37.777s10.159,42.091,10.966,46.123,0,.806,0,.806-58.057,50.155-59.669,52.574c0,0-6.451-6.29-20.481-6.774s-20.643,6.774-20.643,6.774l-60.152-51.122S460.965,485.617,461.813,481.665Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorAbdomen,
- },
- {
- d: "M554.381,790.77s30.748,3.226,51.39-4.945c0,0,3.441,40.424,0,63.432s-16.449,76.871-17.094,81.816c0,0-23.33.108-25.91-1.4,0,0-3.011-33.328-3.871-43S550.08,810.982,554.381,790.77Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftLeg,
- },
- {
- d: "M454.072,520.056s-4.515,29.35-6.128,48.7.323,59.346,6.128,81.278,21.288,89.343,14.514,131.272c0,0,20.464,8.064,47.808,4.516,0,0,7.2-74.822,6.7-87.73,0,0,3.333-50.745,3.333-58.7s1.72-27.738,1.72-27.738-20.642-10.106-14.837-44.08C513.311,567.576,462.351,524.571,454.072,520.056Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorRightThigh,
- },
- {
- d: "M553.114,785.825s37.713,2.741,50.615-3.548c0,0-6.451-35.8-1.129-63.325s19.943-77.408,20.8-92.03,2.33-87.3-7.221-108.371l-56.426,49.455s3.441,37.629-18.922,44.725c0,0,7.741,68.807,7.741,78.913S554.857,777.654,553.114,785.825Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorLeftThigh,
- },
- {
- d: "M535.624,610.466s16.722-10.1,18.818-27.355-3.386-17.578-5.805-18.545-13.063-1.291-13.063-1.291h.1s-10.644.323-13.063,1.291-7.9,1.29-5.806,18.545S535.624,610.466,535.624,610.466Z",
- transform: "translate(-362.967 -95.599)",
- region: AnteriorGroin,
- },
-]
-
-let posteriorParts = [
- {
- d: "M 506.9838 158.0121 C 509.6029 173.1336 512.1258 187.9477 521.5039 184.4407 C 517.7283 191.6346 525.6919 202.9266 528.0919 210.8841 C 544.9623 208.3461 562.3174 208.3461 579.1878 210.8841 C 581.5893 202.9236 589.5363 191.6662 585.7863 184.4511 C 595.6744 187.4586 596.8188 174.3021 600.3813 158.5926 C 600.1173 156.4611 595.9999 158.5806 594.7788 159.0816 C 597.7384 128.3122 591.2088 97.1811 553.7104 97.22 C 516.1444 97.1497 509.5249 128.2116 512.5008 159.0891 C 511.0564 158.4651 508.4914 157.0971 506.9838 158.0121 Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorHead,
- },
- {
- d: "M 503.129 213.97 s 30.871 -1.97 46.871 0.03 v 12.456 s -26 -2.456 -47.574 0 Z",
- transform: "translate(-362.967 -95.599)",
- region: PosteriorNeck,
- },
- {
- d: "M545.584,228.037V361.6s-13.6,10.828-25.282,13.145c-10.077,2-36.162,3.374-36.766-.857S478.9,239.117,545.584,228.037Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftChest,
- },
- {
- d: "M563.865,228.037V361.6s13.6,10.828,25.282,13.145c10.076,2,36.161,3.374,36.766-.857S630.546,239.117,563.865,228.037Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightChest,
- },
- {
- d: "M550.973,228.188h8.914l.151,136.435s20.7,17.828,59.681,16.317c0,0-4.684,38.528-1.057,56.508s9.216,41.248,9.216,41.248-77.812,30.218-145.954-.151c0,0,9.67-35.96,9.972-58.321a167.6,167.6,0,0,0-4.23-39.888s37.924,5.439,62.1-15.713C549.764,364.623,550.52,228.188,550.973,228.188Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorAbdomen,
- },
- {
- d: "M523.223,230.857s-40.694,20.548-50.968,25.182-11.08,5.439-11.08,5.439,15.512,18.735,18.533,70.509C479.708,331.987,489.58,244.354,523.223,230.857Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftShoulder,
- },
- {
- d: "M587.084,230.857s40.693,20.548,50.968,25.182,11.08,5.439,11.08,5.439S633.62,280.213,630.6,331.987C630.6,331.987,620.726,244.354,587.084,230.857Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightShoulder,
- },
- {
- d: "M457.951,265.306s-12.49,14.706-13.5,29.613,1.813,82.194.6,95.691c0,0,15.512-1.209,22.16,3.022s9.872,4.23,9.872,4.23,3.223-32.232,1.41-53.385S467.823,277.393,457.951,265.306Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftArm,
- },
- {
- d: "M444.655,394.639s3.627-1.209,8.864,1.612,21.153,4.835,21.153,4.835a241.987,241.987,0,0,1-6.245,50.968c-6.446,27.8-23.167,79.977-22.966,81.992,0,0-17.325-4.03-20.951-3.828,0,0,1.209-21.354,1.612-31.427s.2-42.91,6.648-63.659S444.454,396.049,444.655,394.639Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftForearm,
- },
- {
- d: "M423.5,533.844s-4.029,2.82-7.454,5.036-12.49,13.1-15.311,18.131-11.482,15.915-10.274,16.923,5.44.2,7.454-2.216,7.051-8.663,10.476-7.253c0,0,1.007,12.087-3.224,22.966s-4.633,13.7-4.633,13.7,2.591,2.22,7.063.809q.291-.091.592-.2s1.612,4.835.806,8.864,3.022,3.425,7.655,1.007,21.959-22.562,24.175-35.053,1.611-40.895,1.611-40.895S427.33,534.65,423.5,533.844Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftHand,
- },
- {
- d: "M650.678,265.306s12.49,14.706,13.5,29.613-1.813,82.194-.6,95.691c0,0-15.512-1.209-22.16,3.022s-9.871,4.23-9.871,4.23-3.224-32.232-1.41-53.385S640.807,277.393,650.678,265.306Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightArm,
- },
- {
- d: "M663.974,394.639s-3.626-1.209-8.864,1.612-21.153,4.835-21.153,4.835a242.066,242.066,0,0,0,6.245,50.968c6.447,27.8,23.168,79.977,22.966,81.992,0,0,17.325-4.03,20.951-3.828,0,0-1.208-21.354-1.611-31.427s-.2-42.91-6.648-63.659S664.175,396.049,663.974,394.639Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightForearm,
- },
- {
- d: "M685.127,533.844s4.029,2.82,7.453,5.036,12.491,13.1,15.311,18.131,11.483,15.915,10.274,16.923-5.439.2-7.454-2.216-7.051-8.663-10.475-7.253c0,0-1.008,12.087,3.223,22.966s4.633,13.7,4.633,13.7-2.59,2.22-7.062.809q-.291-.091-.593-.2s-1.612,4.835-.806,8.864-3.022,3.425-7.655,1.007-21.958-22.562-24.174-35.053-1.612-40.895-1.612-40.895S681.3,534.65,685.127,533.844Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightHand,
- },
- {
- d: "M552.635,495.366s0,66.279-.6,69.9c-.051.277-.126.982-.2,2.065-5.691,6.673-27.473,28.254-58.673,9.04a10.164,10.164,0,0,1-1.738-1.309c-23.066-21.783-7.076-50.968-6.371-52.2l-2.216-1.234c-.176.327-17.652,32.107,6.849,55.249a14.16,14.16,0,0,0,2.166,1.662c9.519,5.842,18.232,8.033,25.988,8.033,16.116,0,27.977-9.519,33.642-15.235-1.661,20.07-6.144,82.369-6.5,86-.4,4.231-7.605,77.51-7.605,80.935,0,0-36.111-4.785-45.579-2.972,0,0,.2-37.672-2.821-59.63s-14.5-65.473-15.914-101.936-1.411-65.473,7.453-91.46C480.514,482.272,499.048,497.582,552.635,495.366Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftThighAndButtock,
- },
- {
- d: "M555.471,495.366s0,66.279.6,69.9c.051.277.126.982.2,2.065,5.691,6.673,27.473,28.254,58.673,9.04a10.164,10.164,0,0,0,1.738-1.309c23.066-21.783,7.076-50.968,6.371-52.2l2.216-1.234c.176.327,17.652,32.107-6.85,55.249a14.151,14.151,0,0,1-2.165,1.662c-9.519,5.842-18.232,8.033-25.988,8.033-16.116,0-27.977-9.519-33.643-15.235,1.662,20.07,6.145,82.369,6.5,86,.4,4.231,7.605,77.51,7.605,80.935,0,0,36.111-4.785,45.579-2.972,0,0-.2-37.672,2.82-59.63s14.5-65.473,15.915-101.936,1.41-65.473-7.453-91.46C627.592,482.272,609.058,497.582,555.471,495.366Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightThighAndButtock,
- },
- {
- d: "M492.2,739.529s21.354-2.418,42.909,3.425c0,0,3.627,43.312,1.612,61.846s-7.655,75.445-6.849,80.078c0,0-19.944.907-25.988,2.518,0,0-2.619-29.009-9.267-49.154S486.961,754.839,492.2,739.529Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftLeg,
- },
- {
- d: "M617.088,739.529s-21.354-2.418-42.909,3.425c0,0-3.626,43.312-1.612,61.846s7.655,75.445,6.85,80.078c0,0,19.944.907,25.987,2.518,0,0,2.619-29.009,9.267-49.154S622.326,754.839,617.088,739.529Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightLeg,
- },
- {
- d: "M504.387,891.023s17.728-.806,24.879-2.619c0,0,2.015,6.245,1.209,18.131s-1.007,21.555-.6,23.771,1.813,9.67-1.209,15.512S520,967.172,516.978,972.007s-10.275,5.439-11.886-1.611c0,0-1.813,3.424-7.857,1.41s-9.67-1.209-11.483-5.44-4.835-11.684-1.41-16.922,18.937-18.534,20.145-25.182S505.6,895.455,504.387,891.023Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorLeftFoot,
- },
- {
- d: "M604.752,891.023s-17.728-.806-24.88-2.619c0,0-2.014,6.245-1.209,18.131s1.008,21.555.605,23.771-1.813,9.67,1.209,15.512,8.662,21.354,11.684,26.189,10.274,5.439,11.886-1.611c0,0,1.813,3.424,7.856,1.41s9.67-1.209,11.483-5.44,4.835-11.684,1.41-16.922-18.936-18.534-20.145-25.182S603.543,895.455,604.752,891.023Z",
- transform: "translate(-390.349 -94.472)",
- region: PosteriorRightFoot,
- },
-]
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare__Types.res b/src/Components/CriticalCareRecording/types/CriticalCare__Types.res
deleted file mode 100644
index 39a761e374d..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare__Types.res
+++ /dev/null
@@ -1,13 +0,0 @@
-module NursingCare = CriticalCare__NursingCare
-module HemodynamicParameters = CriticalCare__HemodynamicParameters
-module HemoDynamicParametersRhythm = CriticalCare__HemodynamicParametersRhythm
-module ABGAnalysis = CriticalCare__ABGAnalysis
-module BloodSugar = CriticalCare_BloodSugar
-module Dialysis = CriticalCare_Dialysis
-module VentilatorParameters = CriticalCare__VentilatorParameters
-module NeurologicalMonitoring = CriticalCare__NeurologicalMonitoring
-module IOBalance = CriticalCare__IOBalance
-module DailyRound = CriticalCare__DailyRound
-module PressureSore = CriticalCare__PressureSore
-module Pain = CriticalCare__Pain
-module Others = CriticalCare__Others
diff --git a/src/Components/CriticalCareRecording/types/CriticalCare__VentilatorParameters.res b/src/Components/CriticalCareRecording/types/CriticalCare__VentilatorParameters.res
deleted file mode 100644
index 693329a8823..00000000000
--- a/src/Components/CriticalCareRecording/types/CriticalCare__VentilatorParameters.res
+++ /dev/null
@@ -1,295 +0,0 @@
-type parentventilatorModeType = CMV | SIMV | UNKNOWN
-
-type ventilatorInterfaceType =
- | UNKNOWN
- | OXYGEN_SUPPORT
- | INVASIVE
- | NON_INVASIVE
-
-type ventilatorModeType =
- | UNKNOWN
- | VCV
- | PCV
- | PRVC
- | APRV
- | VC_SIMV
- | PC_SIMV
- | PRVC_SIMV
- | ASV
- | PSV
-
-type ventilatorOxygenModalityType =
- | UNKNOWN
- | NASAL_PRONGS
- | SIMPLE_FACE_MASK
- | NON_REBREATHING_MASK
- | HIGH_FLOW_NASAL_CANNULA
-
-let encodeParentventilatorModeType = parentventilatorModeType => {
- switch parentventilatorModeType {
- | CMV => "CMV"
- | SIMV => "SIMV"
- | UNKNOWN => "UNKNOWN"
- }
-}
-
-let encodeVentilatorInterfaceType = ventilatorInterfaceType => {
- switch ventilatorInterfaceType {
- | INVASIVE => "INVASIVE"
- | NON_INVASIVE => "NON_INVASIVE"
- | OXYGEN_SUPPORT => "OXYGEN_SUPPORT"
- | UNKNOWN => "UNKNOWN"
- }
-}
-let encodeVentilatorModeType = ventilatorModeType => {
- switch ventilatorModeType {
- | VCV => "VCV"
- | PCV => "PCV"
- | PRVC => "PRVC"
- | APRV => "APRV"
- | VC_SIMV => "VC_SIMV"
- | PC_SIMV => "PC_SIMV"
- | PRVC_SIMV => "PRVC_SIMV"
- | ASV => "ASV"
- | PSV => "PSV"
- | _ => "UNKNOWN"
- }
-}
-
-let encodeVentilatorOxygenModalityType = ventilatorOxygenModalityType => {
- switch ventilatorOxygenModalityType {
- | NASAL_PRONGS => "NASAL_PRONGS"
- | SIMPLE_FACE_MASK => "SIMPLE_FACE_MASK"
- | NON_REBREATHING_MASK => "NON_REBREATHING_MASK"
- | HIGH_FLOW_NASAL_CANNULA => "HIGH_FLOW_NASAL_CANNULA"
- | _ => "UNKNOWN"
- }
-}
-
-let decodeParentventilatorModeType = parentventilatorModeType => {
- switch parentventilatorModeType {
- | "CMV" => CMV
- | "SIMV" => SIMV
- | "UNKNOWN" => UNKNOWN
- | _ => UNKNOWN
- }
-}
-let decodeVentilatorInterfaceType = ventilatorInterfaceType => {
- switch ventilatorInterfaceType {
- | "INVASIVE" => INVASIVE
- | "NON_INVASIVE" => NON_INVASIVE
- | "UNKNOWN" => UNKNOWN
- | "OXYGEN_SUPPORT" => OXYGEN_SUPPORT
- | _ => UNKNOWN
- }
-}
-
-let decodeVentilatorModeType = ventilatorModeType => {
- switch ventilatorModeType {
- | "VCV" => VCV
- | "PCV" => PCV
- | "PRVC" => PRVC
- | "APRV" => APRV
- | "VC_SIMV" => VC_SIMV
- | "PC_SIMV" => PC_SIMV
- | "PRVC_SIMV" => PRVC_SIMV
- | "ASV" => ASV
- | "PSV" => PSV
- | _ => UNKNOWN
- }
-}
-
-let decodeVetilatorOxygenModalityType = ventilatorOxygenModalityType => {
- switch ventilatorOxygenModalityType {
- | "NASAL_PRONGS" => NASAL_PRONGS
- | "SIMPLE_FACE_MASK" => SIMPLE_FACE_MASK
- | "NON_REBREATHING_MASK" => NON_REBREATHING_MASK
- | "HIGH_FLOW_NASAL_CANNULA" => HIGH_FLOW_NASAL_CANNULA
- | _ => UNKNOWN
- }
-}
-
-let ventilatorInterfaceTypeToString = ventilatorInterfaceType => {
- switch ventilatorInterfaceType {
- | INVASIVE => "Invasive"
- | NON_INVASIVE => "Non Invasive"
- | UNKNOWN => "None"
- | OXYGEN_SUPPORT => "Oxygen Support"
- }
-}
-
-let ventilatorModeTypeToString = ventilatorModeType => {
- switch ventilatorModeType {
- | VCV => "VCV"
- | PCV => "PCV"
- | PRVC => "PRVC"
- | APRV => "APRV"
- | VC_SIMV => "VC SIMV"
- | PC_SIMV => "PC SIMV"
- | PRVC_SIMV => "PRVC SIMV"
- | ASV => "ASV"
- | PSV => "PSV"
- | _ => "Unknown"
- }
-}
-
-let ventilatorOxygenModalityTypeToString = ventilatorOxygenModalityType => {
- switch ventilatorOxygenModalityType {
- | NASAL_PRONGS => "Nasal Prongs"
- | SIMPLE_FACE_MASK => "Simple Face Mask"
- | NON_REBREATHING_MASK => "Non Rebreathing Mask"
- | HIGH_FLOW_NASAL_CANNULA => "High Flow Nasal Cannula"
- | _ => "Unknown"
- }
-}
-
-@genType
-type t = {
- ventilator_interface: ventilatorInterfaceType,
- ventilator_mode: ventilatorModeType,
- ventilator_oxygen_modality: ventilatorOxygenModalityType,
- ventilator_peep: option,
- ventilator_pip: option,
- ventilator_mean_airway_pressure: option,
- ventilator_resp_rate: option,
- ventilator_pressure_support: option,
- ventilator_tidal_volume: option,
- ventilator_oxygen_modality_oxygen_rate: option,
- ventilator_oxygen_modality_flow_rate: option,
- ventilator_fi02: option,
- ventilator_spo2: option,
- bilateral_air_entry: option,
- etco2: option,
-}
-
-let ventilatorInterface = t => t.ventilator_interface
-let ventilatorMode = t => t.ventilator_mode
-let oxygenModality = t => t.ventilator_oxygen_modality
-let peep = t => t.ventilator_peep
-let pip = t => t.ventilator_pip
-let meanAirwayPressure = t => t.ventilator_mean_airway_pressure
-let respiratoryRate = t => t.ventilator_resp_rate
-let pressureSupport = t => t.ventilator_pressure_support
-let tidalVolume = t => t.ventilator_tidal_volume
-let oxygenModalityOxygenRate = t => t.ventilator_oxygen_modality_oxygen_rate
-let oxygenModalityFlowRate = t => t.ventilator_oxygen_modality_flow_rate
-let fio2 = t => t.ventilator_fi02
-let spo2 = t => t.ventilator_spo2
-
-let getParentVentilatorMode = ventilatorModeType => {
- switch ventilatorModeType {
- | VCV => CMV
- | PCV => CMV
- | PRVC => CMV
- | APRV => CMV
- | VC_SIMV => SIMV
- | PC_SIMV => SIMV
- | PRVC_SIMV => SIMV
- | ASV => SIMV
- | PSV => UNKNOWN
- | UNKNOWN => UNKNOWN
- }
-}
-type state = {
- ventilator_interface: ventilatorInterfaceType,
- ventilator_mode: ventilatorModeType,
- ventilator_oxygen_modality: ventilatorOxygenModalityType,
- ventilator_peep: option,
- ventilator_pip: option,
- ventilator_mean_airway_pressure: option,
- ventilator_resp_rate: option,
- ventilator_pressure_support: option,
- ventilator_tidal_volume: option,
- ventilator_oxygen_modality_oxygen_rate: option,
- ventilator_oxygen_modality_flow_rate: option,
- ventilator_fi02: option,
- ventilator_spo2: option,
- bilateral_air_entry: option,
- etco2: option,
- saving: bool,
-}
-
-type action =
- | SetVentilatorInterface(ventilatorInterfaceType)
- | SetVentilatorMode(ventilatorModeType)
- | SetOxygenModality(ventilatorOxygenModalityType)
- | SetPeep(option)
- | SetPIP(option)
- | SetMeanAirwayPressure(option)
- | SetRespiratoryRate(option)
- | SetPressureSupport(option)
- | SetTidalVolume(option)
- | SetOxygenModalityOxygenRate(option)
- | SetOxygenModalityFlowRate(option)
- | SetFIO2(option)
- | SetSPO2(option)
- | SetBilateralAirEntry(option)
- | SetETCO2(option)
- | SetSaving
- | ClearSaving
-
-let make = (
- ~ventilator_interface,
- ~ventilator_mode,
- ~ventilator_oxygen_modality,
- ~ventilator_peep,
- ~ventilator_pip,
- ~ventilator_mean_airway_pressure,
- ~ventilator_resp_rate,
- ~ventilator_pressure_support,
- ~ventilator_tidal_volume,
- ~ventilator_oxygen_modality_oxygen_rate,
- ~ventilator_oxygen_modality_flow_rate,
- ~ventilator_fi02,
- ~ventilator_spo2,
- ~bilateral_air_entry,
- ~etco2,
-) => {
- ventilator_interface: ventilator_interface,
- ventilator_mode: ventilator_mode,
- ventilator_oxygen_modality: ventilator_oxygen_modality,
- ventilator_peep: ventilator_peep,
- ventilator_pip: ventilator_pip,
- ventilator_mean_airway_pressure: ventilator_mean_airway_pressure,
- ventilator_resp_rate: ventilator_resp_rate,
- ventilator_pressure_support: ventilator_pressure_support,
- ventilator_tidal_volume: ventilator_tidal_volume,
- ventilator_oxygen_modality_oxygen_rate: ventilator_oxygen_modality_oxygen_rate,
- ventilator_oxygen_modality_flow_rate: ventilator_oxygen_modality_flow_rate,
- ventilator_fi02: ventilator_fi02,
- ventilator_spo2: ventilator_spo2,
- bilateral_air_entry: bilateral_air_entry,
- etco2: etco2,
-}
-
-let makeFromJs = dailyRound => {
- make(
- ~ventilator_interface=decodeVentilatorInterfaceType(dailyRound["ventilator_interface"]),
- ~ventilator_mode=decodeVentilatorModeType(dailyRound["ventilator_mode"]),
- ~ventilator_oxygen_modality=decodeVetilatorOxygenModalityType(
- dailyRound["ventilator_oxygen_modality"],
- ),
- ~ventilator_peep=dailyRound["ventilator_peep"]->Belt.Float.fromString,
- ~ventilator_pip=dailyRound["ventilator_pip"]->Js.Nullable.toOption,
- ~ventilator_mean_airway_pressure=dailyRound["ventilator_mean_airway_pressure"]->Js.Nullable.toOption,
- ~ventilator_resp_rate=dailyRound["ventilator_resp_rate"]->Js.Nullable.toOption,
- ~ventilator_pressure_support=dailyRound["ventilator_pressure_support"]->Js.Nullable.toOption,
- ~ventilator_tidal_volume=dailyRound["ventilator_tidal_volume"]->Js.Nullable.toOption,
- ~ventilator_oxygen_modality_oxygen_rate=dailyRound["ventilator_oxygen_modality_oxygen_rate"]->Js.Nullable.toOption,
- ~ventilator_oxygen_modality_flow_rate=dailyRound["ventilator_oxygen_modality_flow_rate"]->Js.Nullable.toOption,
- ~ventilator_fi02=dailyRound["ventilator_fi02"]->Js.Nullable.toOption,
- ~ventilator_spo2=dailyRound["ventilator_spo2"]->Js.Nullable.toOption,
- ~bilateral_air_entry=dailyRound["bilateral_air_entry"]->Js.Nullable.toOption,
- ~etco2=dailyRound["etco2"]->Js.Nullable.toOption,
- )
-}
-
-let getStatus = (min, minText, max, maxText, val) => {
- if val >= min && val <= max {
- ("Normal", "#059669")
- } else if val < min {
- (minText, "#DC2626")
- } else {
- (maxText, "#DC2626")
- }
-}
diff --git a/src/Components/CriticalCareRecording/types/Options.res b/src/Components/CriticalCareRecording/types/Options.res
deleted file mode 100644
index e9e7a81747a..00000000000
--- a/src/Components/CriticalCareRecording/types/Options.res
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = {name: string, value: string, label: string}
-
-let name = t => t.name
-let value = t => t.value
-let label = t => t.label
-
-type params = {title: string, title_value: string, options: array}
-type glassgow_coma_scale = array
-type limp_options = array
-
-let title = params => params.title
-let title_value = params => params.title_value
-let options = params => params.options
diff --git a/src/Components/CriticalCareRecording/types/VentilatorParametersType.res b/src/Components/CriticalCareRecording/types/VentilatorParametersType.res
deleted file mode 100644
index d8e609e5768..00000000000
--- a/src/Components/CriticalCareRecording/types/VentilatorParametersType.res
+++ /dev/null
@@ -1,32 +0,0 @@
-type rhythmVar =
- | None
- | Regular
- | IrRegular
-
-type t = {
- bp_systolic: string,
- bp_diastolic: string,
- pulse: string,
- temperature: string,
- respiratory_rate: string,
- rhythm: rhythmVar,
- description: string,
-}
-
-let bp_systolic = t => t.bp_systolic
-let bp_diastolic = t => t.bp_diastolic
-let pulse = t => t.pulse
-let temperature = t => t.temperature
-let respiratory_rate = t => t.respiratory_rate
-let rhythm = t => t.rhythm
-let description = t => t.description
-
-let init = {
- bp_systolic: "",
- bp_diastolic: "",
- pulse: "",
- temperature: "",
- respiratory_rate: "",
- rhythm: None,
- description: "",
-}
diff --git a/src/Components/DeathReport/DeathReport.tsx b/src/Components/DeathReport/DeathReport.tsx
index 6ed8652d22d..a3b5e0c4d1f 100644
--- a/src/Components/DeathReport/DeathReport.tsx
+++ b/src/Components/DeathReport/DeathReport.tsx
@@ -142,7 +142,7 @@ export default function PrintDeathReport(props: { id: string }) {
const previewData = () => (
-
+
window.print()}
diff --git a/src/Components/Diagnosis/ConditionVerificationStatusMenu.tsx b/src/Components/Diagnosis/ConditionVerificationStatusMenu.tsx
index 71f6e2888a0..e4c1c019bc4 100644
--- a/src/Components/Diagnosis/ConditionVerificationStatusMenu.tsx
+++ b/src/Components/Diagnosis/ConditionVerificationStatusMenu.tsx
@@ -34,7 +34,7 @@ export default function ConditionVerificationStatusMenu<
"border !border-secondary-400 bg-white hover:bg-secondary-300",
)}
id="condition-verification-status-menu"
- title={props.value ? t(props.value) : props.placeholder ?? t("add_as")}
+ title={props.value ? t(props.value) : (props.placeholder ?? t("add_as"))}
disabled={props.disabled}
variant={props.value ? StatusStyle[props.value].variant : "primary"}
>
diff --git a/src/Components/ExternalResult/ResultList.tsx b/src/Components/ExternalResult/ResultList.tsx
index 404d558d117..abd77e0e4ac 100644
--- a/src/Components/ExternalResult/ResultList.tsx
+++ b/src/Components/ExternalResult/ResultList.tsx
@@ -66,7 +66,7 @@ export default function ResultList() {
page: qParams.page || 1,
name: qParams.name || "",
mobile_number: qParams.mobile_number
- ? parsePhoneNumber(qParams.mobile_number) ?? ""
+ ? (parsePhoneNumber(qParams.mobile_number) ?? "")
: "",
wards: qParams.wards || undefined,
local_bodies: qParams.local_bodies || undefined,
@@ -209,7 +209,7 @@ export default function ResultList() {
-
diff --git a/src/Components/Facility/BedTypeCard.tsx b/src/Components/Facility/BedTypeCard.tsx
index 560b4265e24..5b8f17c7a51 100644
--- a/src/Components/Facility/BedTypeCard.tsx
+++ b/src/Components/Facility/BedTypeCard.tsx
@@ -129,7 +129,7 @@ export const BedTypeCard: React.FC
= ({
id="delete-facility-bedcapacity"
onClick={() => setOpenDeleteDialog(true)}
authorizeFor={NonReadOnlyUsers}
- className=" tooltip bg-opacity/10 flex aspect-square h-7 w-7 flex-col items-center justify-center rounded bg-red-100 px-4 py-0 hover:bg-red-200"
+ className="tooltip bg-opacity/10 flex aspect-square h-7 w-7 flex-col items-center justify-center rounded bg-red-100 px-4 py-0 hover:bg-red-200"
variant="secondary"
ghost
>
diff --git a/src/Components/Facility/CentralNursingStation.tsx b/src/Components/Facility/CentralNursingStation.tsx
index 1f0c2615dec..95c15fa295c 100644
--- a/src/Components/Facility/CentralNursingStation.tsx
+++ b/src/Components/Facility/CentralNursingStation.tsx
@@ -107,7 +107,7 @@ export default function CentralNursingStation({ facilityId }: Props) {